In this tutorial, we will review the following product development methodologies:
- Lean Development
- Waterfall Development
Lean is a product development philosophy that emphasizes not expending effort until it is clear that the work is ought to be done. While following a lean approach to developing businesses or products, resources will be stretched until there is no option but to invest more to keep the process running. Lean is all about minimizing the resources invested in fleshing out ideas.
Agile software development is the result of applying the lean product development philosophy to software development.
Agile software development looks like this — say we have ten features that we have decided to develop. We prioritize the features using an appropriate process, and then pick anywhere between one to five of them to develop at a time. Having developed the features, we wait for user feedback to trickle back in to verify the assumptions we made in the process before moving on the remaining features.
There are two popular frameworks used to implement the agile software development method — scrum and kanban.
Scrum is one of the most popular frameworks used to guide agile software development. This process consists of the following four steps:
- Sprint Planning Meeting: This is the meeting during which the features that will be worked on over the duration of the sprint are decided. A sprint usually lasts two weeks but may extend to as much as three or four. During this meeting, the team gets together with the goal of moving items from the product backlog — a prioritized list of the features that need to be developed — to our sprint backlog — the list containing the features to be worked on over the course of the sprint.
- Ticketing: Each of the tasks in the sprint backlog is atomized into its constituent sub-tasks and these tasks — the tickets — are fed into a product management software or written on post-its that can be used to create a physical board to track progress. [http://theagilepirate.net/wp-content/uploads/20130131-2.jpg]
3. Daily meetings: These meetings are usually held at the start of the day and their objective is for everyone to gather around the productivity tracker in use — board with post-its or software — to discuss the work that was done since the last update and the work that is yet to be done.
4. Retrospective meetings: These meetings are held at the end of the sprint. The goal is to discuss what did and did not go well and address questions or concerns about the team, organizational structure, and process.
Kanban works best for teams that are working on projects that see a steady stream of tasks appearing in the backlog, each of which need to take the inputs through a definite set of steps in order to be completed. The developers of the kanban methodology believe that only a certain number of tasks can be in each step of the resolution process and therefore rely on tracking techniques — such as the sprint tracking board depicted above — not too different from those employed by scrum practitioners.
The core philosophy and use-case of the kanban method lend to it being less strict than the scrum method — since the tasks are largely repetitive, regular meetings and strict time-bounds are not necessary.
A good candidate for employing the kanban process is a customer support team.
Waterfall is a product development methodology that leads to the development of the entire feature-list at once. Such a methodology is favored while developing products whose internal features have significant interdependencies, such as operating systems and hardware products.