The following is a brief introduction to agile, looking at agile implementation methodologies, philosophies and agile adoption.
An honest dive into the world of project management shows that for many years, the leading techniques were Sequential Development Methodologies (SDM) such as waterfall. Historically, waterfall and other SDM methods proved to be of unparalleled value for project managers and were considered infallible. The assumption behind choosing a method relied on the idea that scalable services and products should be supported and controlled through structured procedures and techniques. A vastly acclaimed assumption, this idea is perfectly true, which led to sustained success for a long time.
And yet sequential methods are said to be rigid and leave little room for flexibility. At the same time, it can be argued that they leave little room for beginners’ failures. Yet the rigidity argument paved the way to a dynamic control process for software development. The new tool provided the desired flexibility and welcomed change.
The hallmarks of flexible predictive life cycle methods are that they are adaptive and iterative. The iterative approach encourages project teams to repeat certain steps as their understanding of the project increases. Consequentially, the deliverables should be better than in linear methods. The edge offered by the Agile approach is, as the name suggests, increased control for managing scope uncertainty. The method makes for agile teams capable of handling unpredictability and risk by creating iterations and sustaining incremental work steps.
1. Agile Implementation Methodologies
Agile encourages iteration, documentation, collaboration, and adaptation. We find these core values at the heart of the Agile Manifesto. In fact, the Manifesto does not propose how to implement the methodology but is centred on these four values and 12 principles. Out of these, a few principles exist, such as using a finely sliced work breakdown structure, sustainability, seeking to deliver value, and self-management of fully autonomous teams.
However, the high adoption rate of Agile provides plenty of concrete examples of implementations, namely:
2. Extreme Programming (XP)
3. Feature Driven Development (FDD)
4. Dynamic Systems Development Method (DSDM)
5. Crystal Clear
6. Kanban, etc.
2. Agile Philosophy
The first and foremost purpose of Agile is to create agile teams capable of simultaneously developing, designing, and gathering project requirements. The development processes are dominated by agility, hence the name of the method. In fact, anyone can derive the benefits and features of the method on their own if they work off of the assumption that the solution should maximize value and adaptability. By Occam’s Razor, choosing the minimum number of core values and leading principles that are absolutely necessary for business should lead to a situation very similar to the Agile method. Although it has become a cliché, the (in) famous analysis paralysis is indeed a peril finely avoided by Agile.
More than that, the methodology enables teams to create the right deliverables by ongoing re-planning and reworking small portions. The equilibrium thus achieved between focus and time management aims to put products on the market on time. This is mainly because the problems hindering product launch are managed on the fly, while other portions of the project are handled in a timely manner. Avoiding stereotypes, the Agile Manifesto provides the flexibility necessary to allow teams to use common sense and a continuous search for excellence. At the same time, it deals with real-life problems encountered during projects.
Quickly, here are some of the principles of the Agile philosophy:
Iteration and incremental steps
Incremental steps are taken on the way to creating a deliverable. Each iteration draws closer to the desired results.
Agile achieves sustainability by its responsiveness to changes and adaptability. A caveat, for example, is that financial sustainability needs to be addressed individually for each project. This type of sustainability is not covered by Agile, as the method instead aims for effort sustainability.
Collaboration and adaptability
Well-defined phases and low interactivity between people and teams place SDM low on the collaboration scale. On the contrary, Agile promotes communication and going back a step when necessary, which is no longer a concern since the steps should be small—recall the work breakdown structure.
Responsiveness to change
Change has multiple roots, some of them belonging to the final customer and some originating in the project team. Agile provides the framework to address such changes made on the go.
No hierarchical structures
With well-defined roles and responsibilities within the team, Agile empowers all contributors to act like owners. Everyone has a voice, and everyone is personally accountable for the success of the project.
Projects are different, and every single one of them is a journey. Having to continuously learn and adapt, all team members should strive for excellence by re-evaluating and improving the process. It makes sense because the process of Agile implementation is itself subject to iterations and improvement.
3. Agile Adoption
A concept rather than a process, Agile has to be tailored for implementation in each individual setting. Like any other implementation brought from the exterior of a company, the method needs to be adopted in a suitable way. Although IT projects are typically associated with coding, the scope and applicability of Agile are wider, and they encompass a significant portion of the industry.
Because it requires a learning period and ramping up to the new challenges of the Agile environment, a company-wide implementation after a switch from SDM can be difficult and sometimes a complete failure with disastrous consequences. Organizational architects are well aware of the resistance to change manifested by most employees. For this reason, implementation should be carefully planned and rolled out in stages, starting with a small pilot team.
Due to its heuristic nature, Agile takes time to master. Before planning such a move, organizations must ensure that they have the capability and maturity level required. A few questions need to be asked before embarking on a large-scale transition:
1. Cultural fit
Can the organizational culture support agility?
2. Capability and maturity
Agile is not a cure for all problems but a lengthy journey to perfection that is troubled by many traps waiting for a wrong step from the inexperienced traveller. Are the team members experienced enough to become agile?
3. Globalization and remote working
Already difficult as an environment for many people, globalization and remote working hinder communication, which is critical for Agile.
These are merely a few questions out of the many more that need to be asked during the preparation phase for an Agile company-wide rollout.
An evolutionary step toward counteracting slow and ample methods such as the waterfall, Agile is a response to criticism raised by those arguing that heavy governance and regulation cause delays. Moreover, strict governance leads to inside-the- box ways of thinking and does not promote creativity and employee empowerment. Lightweight methods championed by such critics became known as Agile, an umbrella term describing various approaches. This method gained popularity and spread throughout the entire field of IT. The reason behind this increasing popularity was the claim to remove division inside projects and erase the barrier between the technical side and the business side, as they came to be known from previous methods. Instead, collaboration focused teams’ aim to deliver business value.
Collaboration, communication, and engagement between individuals and between teams are the foundation of Agile. However, this is a generic framework rather than an implementation-ready set of steps. Adapting and implementing Agile is not easy but rather quite the opposite. It requires careful consideration and planning to ensure that the company has the necessary capabilities and maturity. Moreover, resistance to change can occur inside organizations that insufficiently promote the benefits of the method to their coders and project managers. This happens many times because the Agile Manifesto defines principles but leaves the benefits only stated implicitly.