An Intro Guide to Agile Software Development and Project Management - Part II
This second part of Agile (see Part I here) intro focus on a few, more popular, concrete methodologies that implement Agile principles and values. The ones presented here are not specific to software development, as is the case of Extreme Programming (XP).
Since 1994, years before the Agile Manifesto, many software development methods appeared that would later be considered agile methodologies or frameworks. According to what was exposed in Part I, the main points in common among agile methodologies are:
1. Iterative development, which is the division of the overall task into work units that delivery potentially viable products or product increments;
2. Frequent customer participation and feedback, mainly at the design and deliver phases of each iteration;
3. Multi-disciplinary, self-organizing small teams with excellent communication.
Also, most of the agile incremental develompent frameworks are tool-independent.
The oldest methodology we consider here is the Dynamic Systems Development Method (DSDM), from 1994. It was initially a software development approach, and has evolved to a generic delivery framework that embraces many of the activities of a project lifecycle. In fact, the robust governance it requires is a big difference in comparison with other methods.
DSDM tools include MoSCoW (MUST have, SHOULD have, COULD have, WON´T have), a technique of prioritisation that helps to adjust the product according to an a priori set of constraints. The prioritisation of the requirements and deliveries is done according to the 80%/20% principle - 80% of the deliveries come from 20% of the requirements. If time or cost is running down, the lower priority requirements are not implemented. Other important aspect of DSDM is the Modeling of the product being developed, thus better clarifying the impact it will have on the business. Broad acceptance of the results is a critical success factor for a DSDM project.
Since 2016, the entity administering DSDM is called the Agile Business Consortium.
The next methodology in focus is Scrum, which also may be used in complex projects and has even evolved to a scalable framework since the term was first presented in 1986. Scrum teams work under the assumption that new technological and market challenges and new customer requirements are unavoidable during the product development, what makes the case for focusing on quick delivery, prompt response to changes and fast adaptation.
Scrum defines three roles for the team participants: (1) Product Owner, which represents the customer and other stakeholders, (2) Development team, responsible for delivering some viable product at each phase (called Sprint), and (3) Scrum master, which has the responsibility of facilitating the team's work by removing any obstacle that may impair their performance, this way being held responsible for the success or failure in the delivery of a potentially viable product, in each Sprint.
Because the Scrum master does not encompass the much more broad roles of a project manager, this may pose a problem in large projects. We will further explore the specifics of Agile Project Management on our Scrum series presented in parallel with the Agile series.
The Scrum Alliance and The Scrum Guide from 2017 are the main sources of scrum-based knowledge and policies.
Finally, let's talk about Kanban, an evolution from a 2004 Microsoft project. Kanban may be considered a refinement of some aspects of Scrum in terms of transparency, such as the awareness that the team has of the work. In Kanban, a visual project management tool (the Kanban board) allow participants to closely follow the process' progress and is helpful in making decisions about what, when and how much to deliver.
However, unlike Scrum, Kanban bases the worflow in a pull system, where a work unit is submited to the team as soon as capacity permits, without waiting for the team to request it.
It is possible to combine Kanban with other development methods. Combination of Scrum and Kanban even has an acronym for it, Scrumban.
The most recent authoritative literature on Kanban is The Essential Kanban Condensed guide, published in 2016.