The Agile methodology has made an undeniable impact on the software development industry. With well-documented results, companies and professionals able to embrace Agile soon find themselves progressing far beyond what traditional (waterfall) methods were previously capable of delivering. The question then becomes not whether Agile should be adapted, but rather how to best adapt it.
Most Agile professionals would agree that a successful Agile transformation is the direct result of implementing the right mix of processes, tools, and people. Although a seemly simple concept, this can become infinitely complex given the range of possible failures.
For example, too much process may increase bureaucracy, inefficient tooling can limit productivity, and individuals unwilling to embrace change will inherently promote failure.
How then do we go about successfully implementing Agile? Although it is easy to find information about Agile and details around Agile transformations, in my opinion, there is not enough information about actual techniques for implementing Agile. Thus, I am writing this article in order to provide you with a method that is easy to execute and which has proven successful in my own experience. Specifically, I would like to describe using tool adoption as a means to achieving Agility.
Most organizations start their Agile transformation by securing buy-in and funding from specific stakeholders. Once stakeholders are on board, the next step is to create a roadmap detailing how Agile solutions will be implemented. The plan will typically address the following key areas:
- Overall vision/goal – How will Agile support the organization?
- Architecture – What will the Agile solution look like?
- Roles – Who are the Agile participants and what are their responsibilities?
- Resources – What will be needed in order to implement the Agile solution?
- Process – How will we define our Agile software development lifecycle?
- Tools – What tools will be leveraged and how will they be implemented?
As you can imagine, reaching a consensus on these key areas can be a time-consuming, contentious, and oftentimes overwhelming task.
What if, however, we could expedite this approach by some other means? What if we could more easily build a consensus on how to implement Agile? What if we had a pre-defined configuration from which to start this endeavor?
This is all possible through tool adoption! Per the key areas described, once your overall vision is defined my recommendation is to go right to figuring out what tools you will leverage and how will they be implemented.
You see, whether your organization is adopting Agile for the first time or whether it is attempting to become more mature in its Agile practice, its tooling will need to be either enhanced or replaced; and since tooling can implicate those key areas previously mentioned, why not start here first? Why would you, for example, spend time defining your architecture up front to only have to refine it later once you implement your tooling solution? Why attempt to spend countless hours trying to analyze possible problem areas within your Agile software development process when you could have more easily exposed them through tooling? Remember, once your tools are in place, problems within your lifecycle will more rapidly exposed as a result of automation.
As Pablo Picasso once said, “computers are useless they can only give you answers”.
Remember, change is difficult, self-reflection is uncomfortable, and visibility into programmatic failures and inefficiencies are hard to accept. In the spirit of Agile, this can be mitigated by taking an iterative approach. Make small iterative changes to the tooling over time as a result of the continual feedback from users. Doing so will allow visibility into the current strategy and also allow the organization to pivot when necessary.
In summary, I want to reiterate that tool adoption is probably one of the most effective and simple approaches to implementing Agile. I support this approach because it’s one of the best mechanisms for getting organizations to align their Agile strategy. It forces them to ask the difficult questions: “how have we been doing things, how do we want to do things now, and how will we do them in the future?” Typical Agile implementation requires drawn out strategies and large investments; however, focusing on the immediate needs first (tooling) will generate a more sustained and involved approach to implementing Agile.
Process and Tools Solution Expert, Agile Center of Excellence