Fifth in a Fifteen Part Series
By Chad Greenslade
I have often been asked about my lessons learned in delivering Agile transformations. Below is the fifth in a fifteen part series examining my lessons learned while instituting Agile concepts & practices. I hope that these lessons help you on your journey to Agile nirvana.
Lesson 5: Be Prepared to Address Difficult Questions & Refute Key Concerns
Moving to a completely new way of doing things can be scary, especially when the folks that will be carrying out the work have no advanced knowledge of how they will be carrying out the work. To the uninformed, Agile can be synonymous with little or no process, tools, documentation, commitments, or planning. The truth, however, is quite the contrary. These concerns and misconceptions must be met head-on if they are to be overcome. Below I discuss a few common questions & concerns that you’ll most likely encounter on your journey.
Question #1: Will we be trained in Agile? Anyone who is unfamiliar with agile concepts but is asked to carry them out will immediately ask when they will receive the training required to execute the concepts. There's nothing more intimidating than being asked to complete a project with a methodology that you don't understand, and on which you've received no training. Further, an organization’s commitment to change can be measured in its willingness to invest in the education necessary for their employees to successfully carry out the change. As a leader in an organization’s agile transformation, you’ll need to immediately understand funding constraints relative to the agile training required for the team. You’ll need to be able to explain to each and every team member, as quickly as possible, when and how they’ll be trained. Open communication in this area will go a long way in allaying fears that arise from an uncertain path forward.
Question #2: Is the company hiring an agile coach to help us? It’s important to understand advantages and disadvantages of using an agile coach before you decide to use one. A coach will undoubtedly provide value to the initial teams tasked with carrying out an agile project. Keep in mind that an agile coach is a temporary role, typically hired from outside the company, and is generally no longer required once a few agile teams are up and running and the organization has built some internal agile expertise. Despite the temporary nature, you’ll still want someone who can establish rapport, build relationships, and motivate both agile team members and executive-level stakeholders to follow their lead. Experience matters. Be aware that due to the temporary nature of the role, some internal stakeholders may resist the coach’s direction based on their conclusion that the coach lacks standing to implement lasting change. Conversely, a coach can be unencumbered by internal organization politics allowing them to deliver an honest assessment of the actions required to launch the agile initiative. Whatever your reasons for or against a coach, be ready to explain them to the team.
Question #3: How is this different from our past attempts at change? Most organizations have tried to implement a quality improvement program. In many cases, there are employees in an organization who have been involved in a failed process improvement attempt. It’s important to understand your organization’s past successes and failures and be able to compare and contrast them to the agile transformation at hand. Be prepared to discuss the roadmap you’re following and the champions that you have on-board. Ask for feedback to the plan. Keep a list of the questions received and answers delivered. This list will continue to grow as the transformation unfolds and keeping a readily distributable log of questions and answers will be a valuable time-saving resource as more persons become involved.
Concern #1: Agile teams don’t use any process or tools. While the first tenet of the Agile Manifesto is to value individuals and interactions over processes and tools, anyone with a cursory understanding of the methodology knows that Agile, in and of itself, is a process, and there are many tools on the market today to assist with facilitating and automating the agile processes. The bottom line is that Agile does contain processes and does promote the use of tools, however, the interactions amongst team members and the customer is more important than the use of any specific tool or process.
Concern #2: Agile teams do not produce documentation as the project progresses. The reality here is that a documentation-heavy, waterfall approach to writing software has been proven time and time again to be fraught with waste and rework. In today’s software development environment, it is much more valuable to begin with a high-level design approach and then refine this design as development unfolds. Agile teams will not spend hours attempting to document and control every single variable that they will encounter with on their development journey. Lightweight design tools will be employed including whiteboards and diagrams to produce just the right amount of design at just the right time such that development can begin and the design can be iterated. Agile teams will spend more time documenting the design of what’s been built versus attempting to fit development into a pre-engineered design. The effect is that design, development, and documentation happen at the same time.
Concern #3: Agile teams do not make customer commitments. In the old paradigm, the customer would deliver their requirements to the development team, the development team would provide an estimate, the customer would approve the estimate, and then the development team would commit to a release or implementation date. The customer would largely be absent throughout the design and development process, only to be re-engaged for user acceptance testing and release. In this process, the commitment is clearly visible and is part of the development methodology. The issue, however, is that a vast number of the commitments made by the development team were missed. Agile attempts to solve for this issue in a couple of different ways. First, Agile teams ask the customer to remain engaged throughout the design, development, and testing processes to ensure that constant feedback and collaboration occurs. This collaboration has the effect of ensuring that what is built actually solves the business problem and delivers the value requested. Second, Agile discards the big commitment made up-front in the old paradigm for a series of smaller commitments made incrementally towards the larger goal. The same rules still apply in that the overall project end-date cannot be determined until all customer requirements are defined and delivered upon. However, Agile realizes that in today’s software development environment, requirements evolve over time and are more conducive to a product development lifecycle versus a project lifecycle. Requirements don’t stop coming in once a software development project completes. Agile recognizes this and accounts for it via continuously updating roadmaps and release plans, which drive the lower, sprint-level commitments that are hallmark of the methodology.
Concern #4: Agile teams do not plan. As mentioned in Concern #3 above, you can clearly start to discern the tenets of Agile planning. The key difference between traditional Waterfall planning and Agile planning is that Agile embraces what is known as “horizon planning”. Horizon planning means that you can only plan, with any degree of accuracy, as far you can see. In other words, if you look at the horizon, you can make a plan for how to get to where you can see on that horizon, but you can’t plan with any degree of certainty for how to travel beyond that horizon. With each passing day, the horizon changes, and as such, your plans for how to get to the horizon should also change. Agile embraces the planning horizon and anticipates changing requirements by placing a top-down structure around the uncertainty. At the top level, a more high-level approach to planning is employed whereas at the bottom level a more realistic and time-bound commitment is made. The five levels are as follows:
In this lesson I’ve discussed some common concerns and how each of these is refuted. While it can take some time to persuade everyone to get on board, it’s clear that planning & process is not absent in Agile, simply better tailored to today’s software development environment.
Chad Greenslade studied Information Systems at the University of Texas at Arlington and graduated Magna Cum Laude.