Robert Holler

Subscribe to Robert Holler: eMailAlertsEmail Alerts
Get Robert Holler: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: Scrum Software Development

Scrum: Article

The Five Cs of Agile Management: Courage, Context, Course, Cadence, and Cost

"Context and course are complementary ideals"

Anyone who has ever been responsible for leading or managing a software development project knows that software isn't easy. Successfully coordinating and dealing with project sponsors, customers, unexpected risks, and changing scope challenges even the most experienced project leader.

Over the last decade, several methodologies (such as Extreme Programming, Scrum, Crystal, Feature-Driven Development, DSDM, and Lean Development) have emerged to help companies effectively deal with projects incorporating tight deadlines, volatile requirements, and/or emerging technologies. Applicable to a wide variety of today's software projects, these agile approaches have gained tremendous industry momentum due to their overall simplicity and laser focus on business value, accelerated delivery cycles, and ability to adapt to changing business demands.

Leading projects in an environment that embraces change and rapid delivery can be a daunting responsibility in any organization. Companies and individuals with the desire to change the fundamental rules of the software game and accept the empirical nature of software development are faced with numerous challenges. To capitalize on the evolving nature of agile development, today's leadership community must embrace and direct five key aspects of agile development - Courage, Context, Course, Cadence, and Cost.

Courage
Agile development isn't for the faint of heart. It doesn't mean that project management won't ultimately be simplified, just that any new way of doing business requires practice and hard work. Don't be afraid to fail, especially early on. With agile development, at least your failures are limited in scope to a couple of weeks, at which point you re-evaluate the situation and adapt accordingly. Use these early iterations to learn, adjust, and stabilize. Teams, and people, generally get good at what they practice. In agile development, planning, estimating, and delivering occur every few weeks as opposed to once a year. Your team will quickly develop a rhythm. Focus on removing whatever obstacles get in the way and let this rhythm emerge and solidify as soon as possible.

Also one of the four primary values of Kent Beck's Extreme Programming (XP) methodology, courage takes on a much broader and strategic scope outside the boundaries of pure product development. Software development requires many interfaces - customers, other project teams, customer support, professional services, external stakeholders, human resources - and the confidence to step up to the plate and be willing to enact positive change in the face of tradition can be a risky, but ultimately a rewarding and valuable experience.

Context
With much of the fundamental project infrastructure - scope, priorities, estimates, schedules, and risks - in a state of flux, it has never been more important to steer and manage decisions in an overall business context. While functional value can often drive the details of a project, business values have to drive project goals. Force hard decisions about the business and project context as early as possible. Get as simple answers as possible to key questions such as:

  • What's the project's vision?
  • What are its primary goals and business drivers?
  • What are the values that should drive key project and product decisions?
  • What are the expectations of project sponsors and stakeholders?
The answers to these questions serve as the basis for future decision-making, as well as providing a thread that can prevent a project from spiraling out of control. The degree of visibility afforded these priorities can serve as a foundation for managing conflict and stakeholder negotiations. Get answers to them on a single page or project Web page, and keep them visible throughout the life of the project. They will serve as a bar to which you will be held accountable.

Course
Context and course are complementary ideals. Where context defines overall circumstances, course defines direction and progress. Just because some agile approaches suggest not looking in detail beyond one to two iterations, do not be lured into believing that longer-range planning isn't necessary. Longer-term software plans serve as a roadmap for important interim business and project decisions. Iteration, milestone, and release plans remain critical components in planning and measuring progress. Keep in mind that the further out your plan, confidence levels diminish, but a three-to-six-month roadmap can serve as a continuous reality check in the face of a changing environment.

Make a concerted effort every week to revisit your objectives, reconcile overall direction, review time frames and deadlines, and communicate variances. Reality has proven that rarely does time get made up on software projects. This is especially true in the world of agile development. Change is accepted and even fostered for business reasons, even if technical in nature, so be prepared to communicate in addition to delivering early and often.

Cadence
I'd like to take credit for using the term cadence in this context, but its initial utterance came from Gary Evans of Evanetics, Inc. (www.evanetics.com) in a conversation we had about the virtues of agile development. At VersionOne, we have consistently used the concept of cadence, or rhythm, to convey one of the most beneficial effects of agile development. Most successful agile teams get into a powerful groove that can significantly benefit on-going commitment and reliability. And this deep ingrained grasp of delivery in its broadest sense can serve as significant mitigator of risk.

Instead of delivering once a year or more, agile teams deliver working, tested, installable software every iteration. In this type of environment, unexpected loose ends greatly diminish, defects are easier to manage, integrated builds are second nature, and production deployment becomes more streamlined and foolproof. This is not to say that some problems won't arise, but those that do will be more manageable.

To early practitioners, this team rhythm is a goal to strive for as early as possible. To experienced practitioners, this rhythm greatly simplifies agile development efforts. Additionally, with this kind of stable rhythm natural to a team, greater predictability, both in the short term and the long term, can be achieved and counted on for project planning and execution purposes.

Cost
Even agile development can't escape the financial component of software development. The challenge and advantage of agile development is the opportunity to justify the cost with business value and customer benefit along the way. Instead of managing projects as cost centers, agile development views software as an investment, with the highest possible returns being generated earliest in the development cycle.

While you may not have the same direct influence over the business benefit that you do over the cost, the opportunity for business to extract value, continuously align business and technology objectives, and adjust to changing business dynamics is extremely valuable. Although the cost model for most agile development projects is fairly straightforward (i.e., cost per iteration), fundamental changes to any financial assumptions still need to be managed and communicated as they evolve. In agile, while changes may occur more frequently, they should also be more obvious, making decisions regarding impact and future plans easier.

Conclusion
There are so many things that today's project leaders can pay attention to during software development projects. A major goal of agile development is to simplify the process of software development, minimizing and streamlining those aspects and artifacts that actually matter outside of working software. Agree early on with sponsors, stakeholders, and team members the necessary visibility requirements of a project in light of working software being available for review, feedback, and potential deployment on a frequent basis. While planning and tracking a project may require less effort, the challenge and importance of communication in a changing and somewhat chaotic world is amplified exponentially.

More Stories By Robert Holler

Robert Holler is president & CEO, VersionOne LLC.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.