A few years ago, Scrum was the only Agile methodology. But, times have changed. At present, there are more than fifty known Agile methods.
So what is Agile? Agile is a form of project management style that is iterative and incremental in its approach. Its primary use is in software development, but not limited to. It differs from traditional project management because it is very responsive to change.
In this article, you will discover Agile methods, how they work and how to use them in your projects.
Scrum is one of the most popular subsets of Agile methodologies. This method was created by Ken Schwaber and Jeff Sutherland, who define Scrum as a framework for developing and maintaining complex products.
In Scrum, you divide work into units called sprints. A sprint is a defined time during which a Scrum team works to accomplish a defined amount of work. The Scrum Master, who leads the Scrum team, creates the sprints and organizes the work.
Through Daily Scrum (which usually takes place in the morning), each team member reviews their performance over the past 24 hours. Then they’re notified of the sprint goals for the next 24 hours, and everyone gets to work. If a team member needs help, the Scrum Master helps them solve it.
The Scrum method is scalable and flexible. It is best suited for projects that change quickly and need the flexibility to change as the project evolves.
The origin of Kanban is in the manufacture of automobiles. It is a method that optimizes every step of the production process and ensures that production is just on time. Today, Kanban has evolved beyond manufacturing and is now widely used in project management.
So what is Kanban? Kanban is a workflow project management approach that helps you visualize your work and keep your work flowing smoothly. When you use the Kanban method, you are using a Kanban board that visualizes your work in three columns. These columns are To Do, In Progress, and Done.
Each column has a Work In Progress (WIP) limit that limits the number of items under a column. So if a column has a limit of four, there cannot be more than four cards on it. If a column is full, your team should work on the items in the columns before moving forward or adding more cards.
Kanban is ideal for knowledge work that is often not tangible. Visualization helps you see what you are working on.
3. Adaptive Software Development (ASD)
The Adaptive Software Development Agile methodology was developed by Sam Bayer and Jim Highsmith in the early 1990s. It was created as a refinement of Rapid Application Development (RAD) that was popular with hackers. ASD’s strong point is that it manages uncertainty in software development and promotes collaboration.
ASD, just like other agile methods, works in iterations. However, it differs from the rest because the iterations are based on components and not tasks. These components are a group of features that are provided together. They are grouped into three: main components, technological components and support components. It allows projects to be delivered on time, and in some cases even earlier.
The downside of ASD is that it requires intense user involvement. And, in some cases, it can be difficult to facilitate. Another attraction is that ASD is tolerant of change and adopts shorter deadlines. This can lead to scope drift during projects.
4. Dynamic Software Development Method (DSDM)
Another Agile methodology developed from Rapid Application Development (RAD) is the Dynamic Software Development Method (DSDM). It brings structure to the free form of RAD. Its philosophy is that any project must have clear objectives and must focus on achieving its objectives quickly.
This philosophy is supported by its eight principles, which are: focus on the needs of the business, deliver on time, collaborate, do not compromise on quality, build gradually, develop iteratively, communicate clearly and continuously and be in control. .
DSDM uses the MoSCoW productivity prioritization method which groups tasks into four priorities. These are essential, should have, could have and will not have. This method is useful if you have budget constraints and allows you to prioritize the essentials of the project. In addition, if there is an expertise constraint, it prioritizes the work according to the skills already present in your team.
Another feature of DSDM is timeboxing. DSDM meets strict deadlines, and it does so by breaking down the project into smaller units that have a tight deadline and budget. Apart from that, it is also strict on the order of events in a project. It has them as pre-project phase, project life cycle phase and post-project phase.
5. Feature Based Development (FDD)
Feature-driven development is a customer-centric and pragmatic approach to software development. Its first use was in 1997 to develop software for a Singaporean bank. Since then it has grown as an approach. It is now mainly used in long term complex projects which require a simple but comprehensive approach.
FDD’s structure is simple and teams in charge of complex projects can evolve it to meet their needs. Unlike other Agile methods which are iterative and incremental, FDD follows five steps. These are:
1. Develop the overall model
It covers the scope of the project.
2. Build a list of features
Identify all the features that need to be built. For that, no feature should take more than two weeks to build. If a feature takes longer, you break it down into smaller features.
3. Plan by feature
Organize the order in which the features should be developed and implemented.
4. Design by functionality
Design and build a feature in a two week iteration. Once completed, it is reviewed by the team before developing the next feature.
5. Build by functionality
The functionality completed in step 4 is added to the major version.
These steps are borrowed from best engineering practices and create consistency in a project. These also help reduce confusion and rework, because everything is clear right off the bat.
Traditional methods of project management like linear have been around for some time. They are stable and predictable. However, they have their limits. One of the main ones is that they are slow to react to changes in the market.
This is where Agile comes in. Agile project management may be the newcomer to project management compared to others, but it is very adaptable to changes in the market. It shortened product development times, increased productivity and enabled teams to develop great products.
Whether you are applying for programming positions or want a more efficient way of working, you need to know Agile.
About the Author