Agile software development – what should I know about it?
June 21st, 2021
Agile and its methods are very popular nowadays. But for many clients terms like Scrum, the waterfall are not very recognizable. They don’t know the consequence of choosing or following one of these methodologies. That’s why it is worth explaining the differences between them and what is Agile. In this article, we will present what […]
Agile and its methods are very popular nowadays. But for many clients terms like Scrum, the waterfall are not very recognizable. They don’t know the consequence of choosing or following one of these methodologies. That’s why it is worth explaining the differences between them and what is Agile. In this article, we will present what is Agile, how Scrum is connected with Agile, and what are the cons and pros of agile software development.
“Agile” – what is it?
Early software products and projects undertaken to produce them were managed on a traditional “waterfall” basis. The whole work visible before the project launch was split into interrelated tasks, which were estimated up-front and scheduled on a Gantt chart (which looked like a waterfall with cascading project phases following each other). It used to be a project manager’s goal to know the project’s costs and delivery timelines upfront. He typically had the ambition to deliver them according to these assumptions. However, that approach to management hit the wall as projects have become more and more complex. Numerous inputs required by development teams get finalized and are changing after the project launch, leading to expensive creeps in the scope and extended delivery dates. Getting precise status, cost, and the delivery date of a large component gets non-trivial and ultimately fails when the complexity and the scale of change are large enough.
Here is where agile methodologies come to aid. They shift the focus from the precise control of the “big picture” to delivering smaller, deployable, working, and tested increments of a product. They are driven by the awareness of change and are designed for frequent changes. All other things fixed, a set of agile ways of working can either target to produce as large an increment as possible or to respond to any single requirement new as quickly as possible. A team having the first goal in mind falls into the “Scrum” category; the other goal is better achieved in a “Kanban” organization. Mixes are also possible as ways of working differ a lot across teams.
Agile software development – Scrum
Scrum teams work in iterations of a predefined length, for example of 2 working weeks. Typically, all work for the project is model into “user stories,” each describing a piece of functionality that can be developed, tested, and deployed during a single iteration. The set of stories ahead, not assigned to any iteration yet, is called “backlog.” Before implementation, stories get refined with project stakeholders until the team can consider them “ready for development.”
Planning can rely on long-term roadmaps, but the precise scope of each iteration is not known until it starts. That’s why it is called “agile” – the plan can react very flexibly to the changing environment. Scrum iterations involve regular communication focused on managing change and removing impediments (missing inputs for task completion) – daily stand-ups as well as weekly planning, refinements, and kick-offs.
Scrum underlines the importance of the development team, whose members often have large product knowledge. However, apart from the technical leadership, there are new servant-leader roles unique for Scrum. “Product owner” is the single person to align the development with numerous stakeholders, refine and prioritize tasks. “Scrum master” is the person taking care of the agile framework and tackling impediments.
Agile software development – Kanban
Kanban models work similarly as Scrum does. There is a backlog with prioritized items. Iterations are not essential, though. Once the team has the free capacity to start another task, they pick up the one ready to go and has the highest priority. This way, an urgent item appearing in the backlog will usually be handled sooner in Kanban than in Scrum. Some Scrum purists are not keen to change anything in ongoing iteration.
Kanban vs. Scrum and mixing them together
Scrum is like working in the construction industry, and Kanban likes working in a front desk office or emergency services. Scrum reduces the idleness of the team through iteration planning. Kanban accepts potential slack time in exchange for larger flexibility and quicker reaction time.
There are ways to combine both approaches and mix the productivity of Scrum with the flexibility of Kanban. For example, Scrum iterations may contain effort buffers to handle emerging tasks from the Kanban backlog. On the other hand, a Kanban team can partially plan its work for a period.
Agile methodologies and the cost model
Applying agile methodologies implies the time and material cost model. As the project kicks off without the scope fully defined or changes are expected, the supplier expects to get paid for the resources involved rather than per deployable functionality. Therefore, explaining agile to the financial decision-makers can be a key step in introducing it.
Agile – pros and cons
Pros of agile:
- Built-in mechanics to handle uncertainty and change
- Constant product increment aligned with all stakeholders
- The frequent product builds and demos
Cons of agile:
- No precise delivery dates and costs of the product given upfront
Agile software development in BWC.Technology
BWC team has experience in creating agile work environments for distributed software development. Therefore, we recommend the agile approach to solution design and project delivery.
BWC.Technology will guide you through the process of transforming your idea into a working digital product.