This post is from the CollabNet VersionOne blog and has not been updated since the original publish date.
The Airport Needs a Runway!
Call me Captain Obvious, but the airport needs a runway. After all, would an airport be an airport at all without one? Even people who fly crop planes will profess that they need a sound place to take off and land from.
I have come to notice that on more than one occasion, Agile shifts its focus toward all that is happening now without regard for all that will be happening soon. Many teams even choose to forego release planning, as it does not provide the immediate and tangible reward that organizations may be seeking. So how do we continue to focus on the now while laying the foundation for the future?
The reality of it all is that at some point in the process, we need to put our faith in people and know that what we are asking for will be accomplished. This does not, however, mean that we should not be well prepared.
Well, we can certainly begin by going back to our airport analogy. Just as we encounter in travel, some airports are more pleasant to visit than others. Even with a safe place to take off and land upon, there is still more to making a great airport. Amenities often make the difference between desirable and dreaded places to stop at on your way to the destination. In an Agile world, this is really much like a release plan. Some are more smooth and others are very rough. When we focus on both the quality of the delivery and arriving on time and under budget, we can draw towards always taking the best path to reach the destination. The best path is often a combination of the one that ensures safe arrival and smooth delivery.
If we knew a certain flight path consistently provided undesirable results, we would try to avoid it. Yet knowing all of this is true, in a software development world, we often find it hard to adjust even if we have been down the path before. What do we need to do to act in a responsible way and make certain that we are doing what is best for the team, release, organization, and end user? How do we go about making certain the key people are in place to make reaching the final destination an enjoyable venture? Who do we turn to when we need to verify not only that the runway is there for takeoff, but that we can plan on all being for a safe arrival?
1) Fly often! The more frequently we fly the routes, the more familiar we become with successful delivery.
2) Plan ahead for landing! Frequent conversation with the control tower helps us land well every time.
3) Never procrastinate! Do not put off doing what is right!
4) Deliver early and often. It is the only way we can course-correct.
There are certain distinct steps which we can follow to help us make certain the takeoff, flight, and landing go off without a hitch.
1) Identify key resources that will be able & responsible for ensuring the underlying architecture is in place before taking on & committing to the work.
2) Learn to inspect & adapt, allowing you to follow those routes that have the least turbulence.
Agile project management and application development should be an easy win for all involved. It is not rocket science to get it all put together, we just need to focus and make certain the runway is indeed in place for us.
Teams ultimately rely on someone out there to have foundational measures in place for them to build upon. Many argue this is the role of the Agile development manager. Other organizations with a more formal release structure actually build a agile project release team that focuses solely on getting the project built and out the door. In this case, the release manager would be the responsible party. What many small to mid-size organizations that do not practice formal release planning techniques fail to realize is that although no formal role exists for the party responsible for launch, the role does still exist!
Indulge me and picture if you will for a moment that we were all preparing for the space shuttle to launch. I have visited many organizations who have proclaimed that the runway needs to be part of the actual project, or in one case, that the runway is someone else’s responsibility. I went on to ask if they would feel the same way if they were in the airplane at 32 thousand feet when they learned that the airport they would land at did not bother to build a runway.
The analogy to practicing agile development has been likened to building a plane while it is in the air. There is even a YouTube video of this process. My question to you remains, how important is it for our airport to have a runway to take off and land upon? Who is responsible for making certain the runway is in place within your organization? After all, without a sound architectural runway, where will your projects take off and land? Who is ultimately responsible for establishing the foundation and making certain all is in order and integrated when it is time to release? Who holds the keys to the kingdom when it comes to making certain all that we build rolls out according to planned expectations?