Beyond the buzzword, Agile refers to a now-popular approach to project management, typically used in software development. Why does it matter? Because building software is unpredictable, so using the traditional “waterfall” approach – a structured, linear workflow divided into distinct stages – can make it difficult to adapt to change (i.e. be “agile”) and deliver applications at a rapid pace.
Agile focuses on building products in line with customer needs using shorter cycles, known as “sprints,” to enable rapid delivery and continuous iteration at every stage. Hundreds of articles, whitepapers, and blogs have been written about the implementation of Agile methodology. Many of them are quite good and provide tremendous value on the mechanics of a successful implementation. But a critical piece is frequently overlooked: team virtues.
Instead of focusing solely on frameworks, such as Scrum or Kanban, I find it equally important to understand the shared virtues that underpin Agile methodology. After all, it’s more than just frameworks and policies that make up agile organizations – it’s the people and the values they embed into their day-to-day work that drives successful adoption.
Agile Methodology – Virtues for Success
At Keyfactor, we have adopted our own form of the Agile to enable faster, higher-quality application delivery that addresses the needs of our customers. While the methodology can be implemented in many ways, we’ve found that these common virtues have led to the success of our team.
The age-old adage, “Honesty is the best policy” applies as much to Agile as it does anywhere else. Be honest with the team regarding the amount of work required to successfully implement an Agile process. Be honest with management about the amount of time required for a conversion to Agile. Be honest about the likely false starts and mistakes that will be made along the way. And most difficult of all – be honest about the shortcomings of your current process.
“Strategy” refers to the goals of an operation, while “tactics” are the specific actions taken towards achieving the strategic goals. It is very easy to lose focus on the strategic goals when dealing with the tactical details, so remember to evaluate your current efforts against the larger goal. Does the current tactic serve to implement the strategic objectives? Abandon that tactic if the answer is “no.”
Is the value yielded by a process worth the logistical overhead or effort incurred by the team? In other words, is the juice worth the squeeze? This is admittedly difficult to determine in many scenarios. Therefore, the most effective way is to perform small, manageable experiments. If possible, have a single team try out a proposed improvement for a sprint. If the process proves valuable, adopt it on a slightly larger scale. If not, then very little time and effort has been wasted in the experiment.
There are few concrete rules around how to implement Agile. Frameworks like Scrum and Kanban have been created to provide structure, but even these frameworks are utilitarian, and discipline is essential. It can be very tempting to take shortcuts, and inevitably payment for these will come due – most often at the worst of times. Make every attempt to avoid the temptation of shortcuts.
Flexibility is one of the key tenets of Agile. Flexibility to adjust to ever-changing requirements. Flexibility to adapt to unanticipated blockers. Flexibility in task distribution. It is essential that team members be flexible in their approach to work. Any team will have certain team members more adept in one technology over another. However, there is an increased long-term flexibility benefit in ensuring that all team members have at least some familiarity with technologies leveraged within the project.
This virtue is paramount for a successful process, especially one as open-ended as Agile – it’s one of the most important virtues on this list. Emphasize that the entire team owns the process. Process improvement cannot be simply driven by the group leaders. Trust is predicated on all players taking responsibility for their tasks, and trust is lost if team members are not confident that their teammates will deliver on their promises.
Communication is an anchor to the deployment and continued success of Agile implementation. The importance of communication cannot be overstated – the team loses focus without it. Clear communication of requirements, expectations and goals is essential. Be sure to clearly communicate what “done” looks like.
Adopting Agile – Stick With It
There may be times when you wonder if Agile is really worth the effort. It is, no doubt, a paradigm shift that will not happen overnight. Rest assured the improved efficiency, repeatability and predictability of the process will be more than worth the upfront investment. When implementing Agile, it’s easy to become hyper-focused on what is not working. Don’t forget take to identify the successes and celebrate them with the team along the way!