Undoubtedly, some of you have made the determination that your team is not Agile, but is indeed Fragile. Some of you knew it before you even read any of the blog, but now are even more convinced. But what are you willing to do about it? Are you ready to break down that façade and begin the journey to changing from Fragile to Agile? If your answer to this question is yes, then I recommend the following strategies that can help you achieve that goal. This is not an exhaustive list that when followed will ensure with absolute certainty that you will transform your organization, but these strategies have been proven to help begin that transformation.
In the traditional development space we are all very familiar with the testing tools that are available. We know about industry leaders such as HP Quality Center, QuickTest Professional and Performance Center. We understand the value they add to large projects and how they are essential to ensuring that the testing process is well managed and delivered. But what about Agile? Do these same tools have a place in the agile framework? Does the speed of Agile even allow for the use of testing tools? The answer to all of these questions is a resounding YES!
Often times teams make the argument that Agile means that there is no longer a need for “independent” teams of testers that verify that the solution was built correctly according to the requirement specifications. They argue that this is now the role of the “super developer”, and the business representative, who are both embedded into the team. After all, the business knows what they wanted in the first place. Agile in and of itself doesn’t change any of “Brian’s basic laws of software development”
If you were to survey a group of very frustrated testers about why they have problems with their Agile teams, you would find that in almost all cases they get frustrated trying to get any documentation that helps them identify what to test. Every time they request even minimal documentation, the development team pushes back and says that documentation isn’t needed because Agile eliminates the need to document. After all, Agile promotes “Individuals and interactions over processes and tools”. They will tell the tester to just talk to the developer about what they are building and it will become obvious what the testers should be testing.
The last Agile principle is all about retrospectives. This is one area where a lot of teams have dropped the ball. They don’t take the time to do retrospectives because people don’t understand the value they bring. They are perceived as a waste of time that could be spent on the next development sprint. What they fail to realize is that on a long marathon, it is the small corrections in the sprint execution that make the difference between success and failure. True Agile teams take retrospectives seriously, and each and every team member is laser focused on improving sprint over sprint.
Agile principle eleven deals with the team itself. This principle focuses on the enablement of the team to leverage their unique position as the closest people to the problem manage the work. It also enables the team to safely take risks. The team is typically creating new solutions, and doing it in a rapid fashion. Agile promotes the team trying new things without worrying about being chastised for wasting project time. Teams are encouraged to learn from their mistakes to improve future sprints, and improve the overall delivery. One of the biggest indicators that a team might be Fragile is that leadership still insists on reviewing and approving the project plans, and changing direction. This is NOT a characteristic of an Agile team. This is the characteristic of a leadership team that has not empowered the team to be successful.
The tenth Agile principle focuses on keeping the solution as simple as possible while maximizing value and quality. Agile processes focus on finding the simplest way possible of solving a business problem with quality, not finding the fastest way to code the solution. Sprints are kept as simple as possible to ensure that all work gets prioritized by using the backlog as the gatekeeper. In the Fragile environment workload constantly changes in an effort to keep up with changing priorities and constant feature churn.
Principle nine is all about good design and technical excellence. One of the biggest challenges facing teams that are attempting to do Agile development is the natural urge to just jump in and start coding based on a lose set of requirements, without any real design. This is natural, but almost always results in negative impacts to the project timelines, because the team has to go back and do rework when it is discovered that there are flaws in their assumptions. In true Agile, design is a key component to the success of the project. Time isn’t wasted; it is saved by design, as it eliminates false starts and rework.
The focus of an Agile team is keeping the team fresh, and pushing forward to the end. The focus of the Fragile team is to push toward the end of the sprint and worry about the next sprint tomorrow, and so on. In Fragile teams, the burn down chart really is a burn out chart!
One of the key differences between an Agile team and a Fragile team is the definition of what “done-done” is. In a true agile team, the definition is well understood in the form of completed stories and expected level of quality. In a Fragile team done is whatever the team, or worse, leadership decides. When the clock expires, the code goes out.