Organizations that have transformed their software development from conventional to agile have gone through numerous trials. Some of these have worked and some haven’t, but the trial results have delivered invaluable knowhow.
Even after textbook implementations of agile methodologies, many organizations have found that they’re far away from realizing its true benefits. In fact, many organizations are still using legacy software development practices, and as such, agile adaption initiatives are engrossed in tweaking agile/Scrum to complement these practices. Building agile capabilities in conjunction with waterfall methodologies or iterative software development has also posed humongous changeover challenges.
Practitioners are gradually realizing that:
- Agile is not about delivering chunks of software, slicing it by feature.
- Agile is not about following practices that are profoundly different.
- Agile is not about traditional role players developing software, just wearing different hats.
When it comes to managing enterprise-wide change and the challenges that come along with it, we need to leverage the agile mindset in order to reap the benefits.
Agile ‘mindset’ is a game changer
A key to leveraging the true capabilities of agile is to embrace the culture of what it means to be agile. This in fact is the most often overlooked aspect of agile implementation.
Focusing early on building the capability of an agile mindset, as well as soft skills (e.g. the ability to self-organize), is an indispensable investment. Secondary investments like supporting tools, technologies and collaboration infrastructure can then be rapidly leveraged by the team as they now understand its significance in delivering agile values.
(Related: Being a tester in an agile world)
Agility has many facets; let’s review the key ones:
- Customer centricity: Teams need to understand that customer centricity is the No. 1 factor to ensuring success. Providing business-enabling software is the primary measure of accomplishment. It’s a moot point if you deliver software that is flawless, complete and on time if it fails to deliver measurable value.
- Continuous Delivery of value adding software: Teams need to orient themselves to carve out a feature from the high-level requirements that can be built fast and pushed to production (say, within a couple of weeks). Conventional “gates,” sign-offs, deep-dive reviews and inspections need to be replaced with suitable techniques from agile or by suitable automation.
There is nothing wrong with these techniques, it is just that they are dated and inefficient methods that fail to meet the expectations of today’s customer expectations. Automation is key to achieving a state of Continuous Delivery, and teams need to progressively automate the engineering activities to the extent they can. Without leveraging automation, Continuous Delivery may not be sustainable.
- Welcoming change to requirements to benefit customers’ competitive advantage: Every seasoned developer knows that any change to requirements is unsettling as it has a ripple effect on subsequent development. But today’s competitive environment has us facing situations where customers experience enormous volatility, and businesses ought to be responsive enough to survive and succeed. Developers need to understand customers and their needs beyond a story or epic to appreciate the value of change to requirements, and to gear up to fulfill it rather than avoiding or deferring it.
- Collaboration between business and developers, encouraging face-to-face conversation: Collaborative working and frequent conversations among the team and business are indispensable to knowing what brings value to business and how quickly it can be achieved, eliminating any bottlenecks.
- Trusting a motivated and competent team to build the software: A competent, multi-skilled and motivated team is indeed a strength, but trust and empowerment make it consummate and unique. The key benefits of agile are delivered best when the teams are self-organizing and have clarity about their mission and goals. Empowered teams may disrupt conventional ways of building software so organizations can reap the benefits of agility.
Conventional software development methodologies didn’t seamlessly integrate concepts that agile brought in, and changing Scrum or XP to fit one’s organizational culture won’t result in any significant or meaningful advances. But adapting to the agile mindset surely will.