Agile for the Enterprise, Part II, or the Good, the Bad, the Dead Pig and the Living Chicken

The difference between a post-mortem and a project retrospective? The obvious answer: nobody has died in the retrospective, and since Agile software development encourages making (small) mistakes (in order to learn from them), the hope is to find the project manager at the finale sitting straight up, still breathing defiantly on the coroner’s table. Which, as far as software-related humor goes, is rather friendly and humanistic compared to Agile’s retelling of the old Sunday-brunch-after-church parable that teaches children the difference between an offering and a sacrifice, the lesson of which has become a tenet of the Agile “movement.”

And here it goes: A pig and a chicken are walking down a road. The chicken looks at the pig and says, “Hey, why don’t we open a restaurant?” The pig looks back at the chicken and says, “Good idea, what do you want to call it?” The chicken thinks about it and says, “Why don’t we call it ‘Ham and Eggs’?” “I don’t think so,” says the pig, “I’d be committed, but you’d only be involved.” We can all guess who is the chicken (not a kind calling in Anglo-American culture), namely the PM making an offering to the gods of Gantt charts, whereas the developer-cum-pig (and as a male techie I just don’t get it!) is putting more than just the proverbial skin in the game.

Such icebreakers set aside, there is in fact a substantial body of evidence that suggests that a number of Agile-flavored methodologies have yielded significant improvements in software development. The results are defined, measurable, and repeatable and typically involve faster turn-around, fewer defects, and less rework. The benefits are increased business value, better visibility, less risk, and improved team morale / productivity. Another key ancillary benefit, inherent in all Agile methodologies, is the ability to cope with changing requirements throughout the development cycle.

Companies that have adopted Agile and are reporting beneficial results are growing in number both nationally and internationally, are varied in size and industry, and range in diversity from John Deere to Google.

Some healthy skepticism within the CIO community has centered around the notion of exactly what problem domain is most suitable for Agile as a solution framework. For instance, it’s not all that surprising that a “heavyweight” methodology might not be the best fit for a relatively small and fast-paced web development project whose requirements, by the very nature of the project, are in flux and subject to user-driven refinement until completion.

Other critical voices have questioned Agile’s place in the enterprise-level IT organization, where a number of factors (mostly as functions of company scale) can conceivably impede its successful adoption. This is where the values which Agile espouses are prima facie at odds with enterprise realities:

  • Open-ended iterations against frequently changing requirements (versus the need for upfront budgeting and ongoing governance, tracking actual against projected hours and against allocated budgets);
  • Intense collaboration amongst co-located team members (versus the geographically / globally distributed nature of most multinationals’ staff);
  • Self-organizing teams that assign tasks bottom-up (versus the prevalence of command-and-control management structures).

Additional concerns are raised when Agile must co-exist with other, typically stage-gate project management models, as the Agile-developed software is often embedded in a larger development context: whether process integration is possible at all, whether the potential benefits are offset by the duplication in training effort, and/or whether the training of only select staff will lead to a cultural divide between Agile and “non-Agile” team members.

I will not attempt here to prescribe a certain, single methodology but rather suggest a framework of proven practices that has also been shown to adapt to some key enterprise requirements. In what is to follow, I will demonstrate how Scrum will:

  • Fit into the stage-gate project management approach;
  • Support a traditional budgeting process;
  • Sustain common IT governance principles;
  • Work for geographically distributed and blended (onshore / offshore) teams;
  • Integrate and beneficially co-exist with other software development methodologies (e.g., Waterfall Model).

Stay tuned.

Advertisements

About Christophe Kolb
Christophe Kolb is Executive Chairman and co-founder of Talent Trust. Headquartered in San Francisco, Talent Trust employs mobile experts at our own development centers in Córdoba, Argentina and Lima, Peru. Our talented people are seasoned technologists with solid backgrounds in software engineering and cutting-edge skills in mobile web / HTML5, Android, iPhone / iPad, and BlackBerry. We have the technical expertise, industry knowledge, and proven capability to deliver winning mobile solutions, and have done so for some of the world’s greatest companies. Our mission is to help our enterprise clients win in mobility, with: • Captive development centers in Córdoba, Argentina and Lima, Peru • Same time zone advantage for U.S. clients, enabling real time communication • Cost-effective offshore development solutions for mobile • Focus on mobile for enterprise clients • 10-year track record of successfully servicing a blue-chip client base in predominantly multi-year relations • Agile development methodology (Scrum and Kanban) • Close collaboration with clients / Product Owners (daily stand-up meetings) • Excellent English communication skills

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

%d bloggers like this: