Agility in Agile

Nicolaus Christian Gozali
Moodah POS
Published in
5 min readOct 3, 2019

taking a peek at the scrum framework and how we do it

There are many ways a team can approach project delivery. This agreed set of conventions, that may be unique to each team and has the aim of ensuring success in software development, is called a methodology.

There are many out there, but one method that is adopted by our group and discussed here is scrum, a framework of Agile, which is a methodology that embraces the ability to create and respond to change.

Agile Software Development

Agile software development is a term for subset of frameworks and practices of software development based on the principles stated in its manifesto.

Agile focuses on the people doing the work and their interactions within a self-organizing and cross-functional team to achieve a common goal. Ultimately, agile is a mindset informed by those values and principles and it can be used as guidance on how to respond and deal with uncertainty.

Manifesto

The agile manifesto comprises of 4 fundamental values

  1. Individuals and interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. Responding to change over following a plan

and 12 supporting principles which lead the approach

  1. prioritize satisfying customer through early and continuous delivery of valuable software
  2. accommodate changing requirements throughout the development process, agile processes harness change for the customer’s competitive advantage
  3. deliver working software frequently
  4. business people and developers must work together daily throughout the project
  5. build projects around motivated individuals, giving them the environment and support needed and trust them to get the job done
  6. the most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. working software is the primary measure of progress.
  8. agile processes promote sustainable development in which the sponsors, developers, and users should be able to maintain a constant pace indefinitely
  9. continuous attention to technical excellence and good design enhances agility
  10. simplicity, develop just enough to get the job done for right now
  11. self-organizing teams encourage great architectures, requirements, and designs
  12. regular reflections on how to become more effective

Scrum framework

Scrum itself is a simple framework for effective team collaboration. It is lightweight, simple to understand but difficult to master. Scrum replaces a programmed algorithmic approach with a heuristic one, with respect for people and self-organization to deal with unpredictability and solving complex problems.

Roles

The Scrum Team consists of a Product Owner who is most familiar with details and vision of the product, the Development Team which is responsible for developing the product, and a Scrum Master who will be promoting and supporting scrum.

Events

scrum flow diagram

There is a cycle of 4 prescribed events are used in Scrum to create regularity and to minimize the need for abrupt unplanned meetings. All events are time-boxed, meaning the duration of each event is strictly regulated to not be longer than needed.

One of these cycles is called a Sprint in which a decided period of time, 2 weeks in this case for us, during which a goal specified at the start will be achieved and a usable product increment is released by the end of it. A sprint consists of 4 events which will be discussed below.

Sprint Planning

is an event where members discuss and decide sprint goal and product backlog item to be implemented, splitting it into smaller, independent tasks, ideally completable within one code-session sitting then each developer picks tasks that will be worked on immediately after planning ends.

our sprint backlog for sprint 1

Our planning covers decision of which product backlog item to finish this sprint then splitting it into smaller tasks that will be eventually assigned and completed by the development team. We did this together with our scrum master as well as developer from RubyH for giving suggestions and supervision.

Daily Scrum

is a short event around 15 minutes where members of development team synchronize activities such as progress done, problems faced to ensure every member is on the same page and lastly, discuss plans until next daily scrum.

This is where each member of dev team speaks for a few minutes, informing the others his/her progress, problems and other issues to be brought up to the team. Lastly, we updating state of tasks (the yellow post-its above) and do the same for our trello kanban board.

Sprint Review

is an event attended by scrum team, product owner, stakeholders consisting of development team demonstrating their work with intent to elicit feedback and foster collaboration, lastly, entire group discuss what to do next as input for next sprint planning.

Since the first sprint, we do sprint review, retrospective followed by planning in one sitting at RubyH’s office. For reviewing, we present our progress within that sprint with the emphasis on features usable or noticed by users and receive inputs from them.

Sprint Retrospective

is an event where scrum team can do reflection including discussion of what went well and what could be improved in the following sprints.

Last retrospective comprises of writing down plus and minuses of last sprint in post-its then our scrum master summarizes it and places it on the improvement experiment section on the top right corner of our sprint board.

In conclusion, implementing scrum in our team has given us more motivation and aware of everyone’s progress in doing our respective tasks. Hopefully this will give you a brief idea of scrum which you may follow in the future. That’s all from me, cheers!

--

--