In the mid-nineties, people working for software development companies began to come to the realization that “business as usual” simply wasn’t working for them. The traditional business model involved extensive planning, rigid constructs, and bureaucratic hurdles that stifled creativity and made it nearly impossible to adapt to change or adeptly handle the unexpected. In response, software developers began to combine old ideas with new until they found a combination that worked for their situation.
This new, more flexible methodology worked so well for them, they decided to develop a framework to help other people benefit from a methodology that emphasized collaboration and adaptability. The spread of these ideas was very organic, resulting in an array of new frameworks for people to use when working on projects. In 2001, this inconsistency led a group of seventeen to meet in Snowbird, Utah, to figure out what the commonalities in their approaches were. There ended up only being a few things everyone could agree upon, and this eventually became the Manifesto for Agile Software Development and its 12 Principles, as documented by the Agile Alliance, for “guiding practices that support teams in implementing and executing with agility.”
What Is Agile Model?
Agile is an umbrella term for best practices as laid out in the Agile Manifesto. It is a set of principles and values emphasizing collaboration, adaptability to change, and self-organizing teams. It is a recognition that the same methods will not apply to every situation, and an ability to respond agilely to both uncertainty and change. Agile, according to the Agile Alliance, at its core is a guiding mindset for how to deal with unpredictability:
- Face uncertainty unflinchingly.
- Determine a possible solution and give it a go.
- Get feedback.
- Adjust accordingly.
Agile methodology, therefore, is the framework of conventions, techniques, and procedures a team agrees to follow for a given project and situation. There will be variation in what these methods are from team to team and even project to project, but all will adhere to Agile principles and values.
Types of Agile Methodology
These methodologies become frameworks when other teams generalize, adopt, and adapt them for their own purposes. Various types of Agile methodologies are now commonly used, both in and out of the software development world.
- Agile Scrum Methodology. Scrum is one of the most straightforward and widely used Agile methods. According to the Digital Project Manager, the main goal of Scrum Methodology “is to improve communication, teamwork and speed of development.” Scrum is less a project management method than a framework for the maintenance and ongoing development of projects. As is the case with other Agile Methodologies, Scrum was developed with software development in mind. When adapting to other industries, adjustments are made, especially on projects with a fixed budget and timeline. Because of these complications, when Scrum Methodology is used outside the software development world, project managers often take advantage of specific concepts within the overall framework and apply them in a way that works with their situation—such as small, self-organizing teams, daily stand-up meetings, and project reviews.
- Lean. As articulated in the Digital Project Manager, the focus of the Lean Method is efficiency. Unlike some other Agile methods, this program management methodology is a set of principles, rather than processes, to follow. It begins by identifying what is adding value in each situation and then continuously working to emphasize the good while eliminating the bad. This method can be applied in project management by examining the way your team processes projects and paring it back to just the essentials. The three principles of Lean, according to the Lean Way, were first developed in Japan: Muda (無駄, waste), Mura (斑, unevenness), and Muri (無理, overburden), commonly referred to as the 3Ms.
- Muda: Eradicate waste. Remove anything that is not adding value to the customer.
- Mura: Eliminate variations. Remove overhead variances and standardize processes.
- Muri: Remove overload. Anything above 60%–70% capacity actually slows work down.
- eXtreme Programming. This software development methodology shares many similarities to Scrum, particularly with its emphasis on communication and responsiveness. Where it differs, however, is in its prescriptive set of rules for the technical aspects to designing and testing coding. Due to its more specific set of principles, the eXtreme Programming method is not easily applied to other types of project management. Some of the software development-specific rules include making mandatory the following:
- Including user stories – descriptions of small features
- Test-driven development (TDD) – software requirements are converted to test cases before software is developed
- Pair programming – technique where two programmers work together at a single workstation
- Continuous integration – code is uploaded regularly to test throughout the project in order to detect problems early
- Kanban. Kanban shares similarities with both Lean and Scrum. This project management methodology places an emphasis on efficiency (like Lean) and collaboration (like Scrum). Kanban is much less prescriptive in its approach, allowing for greater flexibility and rate of return on deliverables. The drive behind Kanban Methodology is to continually release work both faster and of a better quality. The core practices of Kanban are:
- Visualize the workflow.
- Limit work in progress.
- Measure the lead time.
- Make process policies explicit.
- Continually evaluate improvement opportunities.
Contrast with Waterfall Methodology
Waterfall Methodology is a more traditional approach to project management than Agile and is currently the most commonly practiced project management approach in the modern workplace. The Waterfall Method, as described by Workfront, gets its name from its top-down approach, with each phase of a project being completely wrapped up before the next begins. This method works best in processes that develop a tangible end-product, like construction for example. The success of a project using the Waterfall Method is largely dependent upon how much work is done upfront, especially research. It is much easier to accurately predict something like how much time a project requires if this kind of forethought is put into the process, thus allowing for more accurate project completion estimates. The very characteristics that make the Waterfall Method work in some situations also result in a level of rigidity that makes it difficult to respond to uncertainty and change. Therein lies the appeal of more flexible methods like Agile methodology, which allow for a team to pivot and change course much more easily.
Advantages of Agile Methodology
The advantages of Agile Methodology are inherent in its 12 Principles, as outlined by the Agile Alliance:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Customer satisfaction and quality deliverables are the focus.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. Don’t fight change, instead learn to take advantage of it.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Continually provide results throughout a project, not just at its culmination.
- Business people and developers must work together daily throughout the project. Collaboration is key.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. Bring talented and hardworking members to the team and get out of their way.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Eliminate as many opportunities for miscommunication as possible.
- Working software is the primary measure of progress. It doesn’t need to be perfect, it needs to work.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Slow and steady wins the race.
- Continuous attention to technical excellence and good design enhances agility. Don’t forget to pay attention to the small stuff.
- Simplicity—the art of maximizing the amount of work not done—is essential. Trim the fat.
- The best architectures, requirements, and designs emerge from self-organizing teams. Related to Principle 5, you’ll get the best work from your team if you let them figure out their own roles.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Elicit and provide feedback, absorb the feedback, and adjust where needed.
Disadvantages of Agile Methodology
As with every project management methodology, Agile is not perfect. If Agile is not used effectively, its inherent strengths can also be a team’s downfall. Inc. Magazine outlines some of the most common drawbacks to Agile Methodology:
- Less predictable. The flexibility at the core of the Agile method also means a much lower degree of predictability. It can be much more difficult to accurately estimate the time necessary or quantify the resources and efforts required to complete a project. Many teams fear this uncertainty, and that fear can lead to frustration and poor decision-making.
- More time and commitment. Communication and collaboration is great, but that constant interaction takes more time and energy for everyone involved.
- Greater demands on developers and clients. Commitment from everyone involved is required for Agile Methodology to be effective. Anyone who isn’t on board can negatively impact the quality of a project.
- Lack of necessary documentation. Because tasks are often completed just in time for development under the Agile Method, documentation tends to be less thorough, which can lead to misunderstanding and difficulties down the road.
- Projects easily fall off track. The less-structured nature of Agile Methodology means projects can easily go astray or run beyond the original scope of the project.
The Agile Method is an increasingly attractive project management methodology in the software development world and beyond. Its flexibility and adaptiveness to change make it the ideal project management methodology for the 21st century. Despite its possible drawbacks, if used correctly by a team willing to commit to its principles, the advantages of Agile Methodology are numerous. The COVID-19 pandemic has made the need for adaptability in the face of uncertainty abundantly clear, and the future appears no more certain. While Agile methodology may not be the perfect fit for every project and situation, its principles can be selectively adapted to any type of project to help keep a team light on its feet and ready to face anything.
If you’d like to face the future putting the tenets of Agile Methodology into practice, consider earning your Agile Certificate. Demonstrate to employers that you are willing to put forth the commitment to succeed. Contact CCAPS at the University of Minnesota to learn more about our Agile Certificate and Agile Scrum Certificate, which includes Certified ScrumMaster® and Certified Scrum Product Owner® options.