Picture this: A vice president in charge sees reports that all is on track, only to be unpleasantly surprised when...
all hell breaks loose at release time. Unfortunately, this scenario is all too common unless your organization uses Agile ALM processes that promote transparency throughout the lifecycle. Let’s look at why Scrum and other Agile processes help create transparency.
Quickly Assess Project Status
Derek Wade, an Agile requirements coach and consultant, tweeted about the transparency inherent in Scrum on January 21: “Scrum encourages and demands visibility, from delivery team to portfolio management. No level of the organization is exempt.”
In companies using Agile development, senior managers can walk over (or, if the team is using a virtual task board, get online) anytime and look at the task board to see what’s in progress, what impediments are blocking progress, how much work is done and how much remains.
Jonathan Cogley, CEO of Thycotic Software, finds that information radiators help him track project status. “The team maintains a burn-down and burn-up chart in a highly visible location (big visible charts). We also do stand-up meetings every morning, to which I am invited, and a demo of the progress to date occurs every week.”
I asked Scott Wesson, senior vice president and chief information officer of UDR, an online apartment search site, what lets him quickly assess project status. He responded, “Seeing the actual application. You can use burn-down charts and estimates all you want, but if you cannot see the solution hands on or are not involved in crafting the solution, then you are always left wondering, ‘Did they get it right?’ ”
Agile development also quickly reveals communication problems and dependencies. If Team A is held up because Team B broke something in the build, the continuous integration process will let everyone know. The urgency of needing to deliver production-ready code with each iteration means impediments are called out with big visible charts, whether physical or virtual, and someone takes responsibility for removing those impediments.
What Makes Agile Transparent?
Managers rely on milestones and benchmarks. Techniques such as story mapping that slice features into user stories and then software releases based on average velocity, help us set milestones. We know that our estimates are only guesses, so we revisit them as we learn more. Project status is shown in burn-down charts and visuals of work completed and remaining.
Agile principles drive us to reflect often on what’s working and what’s not. We collaborate on small experiments to improve. My own team uses a tool to capture our feedback about the current iteration on a daily basis. The results of each of our retrospectives are published on the company wiki. Managers can see what we’re doing to continually improve our ability to deliver business value frequently.
When I asked Scott Wesson what makes development transparent to executives, he responded, “Most executives do not care about the development effort, but care about the project outcome.” His business uses regular updates and status meetings in which executives get feedback from trusted advisers. He says, “The executive must create an environment where transparency is the norm. Mistakes need to be tolerated but learned from. If the atmosphere is not like this, then no matter what the methodology, he or she will never get the real truth from their team, or the delivery team.”
Frequent Deliveries and Sustainable Pace
The key to delivering high-quality software frequently is managing technical debt so that the team’s velocity remains steady. Our managers know the average story points we complete each sprint, and they can plan accordingly. Time for using good testing and coding practices is built into this velocity. When code is well-designed and well-supported with automated regression tests, we can make changes quickly and confidently.
Teams that are new to Agile often start with a huge burden of technical debt. ALM tools can be integrated using the continuous integration process to measure factors such as code complexity and test coverage, which put a dollar value on that debt. Management can understand what previously taken short-cuts in development are costing the business. A big investment up front allows the team to get that under control.
Every software project has setbacks. In a traditional Waterfall process, problems are often hidden until the test phase at the very end. In Agile, we still have issues, but we learn about them quickly and can address them before they have a chance to delay the project. Senior managers can quickly track day-to-day progress and keep software development congruent with business needs.
Follow us on Twitter at @SoftwareTestTT and let us know what you thought of this article.