Would You Rather Plan For Risk or React To Circumstance

I was asked recently by someone I greatly admire and respect, “Wouldn’t you rather plan for risk than react to the circumstances that befall your project?”

At the time I was stumped.  Yes I guess I would, but we can’t see everything can we?  At least I can’t.

In reflection my answer is: I would rather do both.  See and plan for those risks I know  and use a daily scrum-like meeting to capture what I cannot plan for.

What are your thoughts?

Advertisement

Iterations Are to IT What Containers Were To Shipping

Introduction

Container shipping transformed the way goods were transported across geography and channel.   Instead of having many diverse payloads in differing container configurations for different modes of transport; a standard was defined for a rectangular container that could, through a set of standardized connection points,  be bolted to ship, train, or truck.   The result of simplifying the container configuration meant that transferring cargo between modes of transport became easier, shipping times were reduced from port, to rail, to truck.  Handling and management costs also went down because there was less variation in the cargo.

In the same way agile is standardizing the time-boxed delivery mechanism for software development.  Widely, today, the iteration is seen as that container.  In the majority of agile shops the 2 week iteration with a daily stand-up, front end planning session, and back-end review session; is the norm.  The channel of delivery might be scrum, xp, lean/kanban, or some hybrid of these.  The choice of which channel to use is deeply dependent on the business environment surrounding the software shop.   But regardless of the rails the iteration rolls over; it has become the choice for time-packaging completed requirements.

What are the implications of this to business and development groups?  What changes does this standard for team delivery impose/challenge the modern organization with?

Finance and Accounting

How capital projects are financed for internally used software has not followed the train of direction the iteration has brought forth.  Traditionally, project estimation is bottom up and we derive funding by establishing a level of effort ( LOE ) across the project, with some breakdown into work packages.    Iterations have the capacity to be the bricks of capital financing upon which projects are funded.

The challenge to IT finance groups is to derive the cost accounting for an iteration ( essentially a two week productive work team ) and then establish capital planning policies and procedures that estimate, plan, track and account by those iterations.

At first blush this sounds simple.  Why not just figure out the appropriate team composition: say 3 developers, 2 qa folks, 1 product owner and 1 team leader.   7 people X 50 hours a week = 350 hours X $70.00 per hour = $24,500.00 per iteration.  So now we just need to figure out how many iterations we need.  Right?

But wait….

What if I need a DBA, Infrastructure Person, or support analyst engaged?  How about software licensing, pc costs,  PTO ( paid time off ), employee rates vs consulting rates,  and other indirect costs?   What about the funding mix for any iteration?  Surely not all of it is CAPEX.  Some of it may be OPEX.  But what mix of a typical iteration should be OPEX vs CAPEX?   Should certain iteration models exist depending on what the team is doing?

These questions begin to explode the subtlety.  By standardizing delivery on iterations, the finance group and IT leadership can standardize the IT shop and its costs.  Should success be achieved, CAPEX and OPEX planning should become less complex and more routine; fundamentally reducing the infrastructure, roles, and process associated with this annual event while simultaneously establishing a standardized point of accountability and process planning.

This also changes the very nature of estimation from detailed to relative.  We’re now looking at value creation, rather than cost control.  The challenge back to the business will be how much value is derived at various cost points and at what point cost becomes too much.   Project costing becomes a negotiation toward shared value based on relative targets achieving a defined set of NPVs.

Management and Leadership

In an iterative organization the control, power, and operation are at the iteration team level.  Influencing those groups will require a leadership and management structure that is comfortable with fluid and mobile adaptation of resources to project needs.  Leadership truly begins to shine in this type of paradigm.  No longer dependent on a static formal organizational structure to derive power, the real leaders will begin to exert influence over these mobile iterative pods.

Those succeeding in such an organization will be gifted in the art of servant leadership, coaching, influence, and mentorship.  Command and control will be reserved for extreme HR issues alone.

Innovation

Iterations also change the shape of R&D and new innovative initiatives.  Iterations demand transparency, accountability, and risk reconciliation.  The iteration opens things up and standardizes the cycle of delivery.  To many this may stifle the idea of invention and creation by putting it on a disciplined cycle, but does it?   In plain english: business demands a return on its investment.  Research for research sake is a university concept.

Org Charts & Structure

How is organizational structure affected by the expansion of iterations?  While most IT shops today are familiar with the matrixed organizational structure, the iterative organizational structure groups teams into standardized pods for delivery.

The pods would favor generalists who are good at a multitude of IT functions but perhaps are not perfect at all aspects.  This structure would be fluid and adapt to organizational need.  An example iterative structure is below.  In this way the iterative POD is responsible to the director as a team.  All individuals in those pods report to him/her.

Personal Career Growth and Development

Iterations have already had an enormous influence on personal career development at software shops.  It’s not enough to be just a code whiz. Iterations place emphasis on teamwork, personal accountability, and decent communication skills.  Flexibility is also a key aptitude sought in the iterative individual.

Good delivery PODs are ready made hired guns.  Teams of professionals that could potentially write their own engagement.  In this way staffing by placement firms and consulting groups changes from individual placement to team sourcing.

Summary

The transformation of the shipping and distribution industries to containers wasn’t a simple overnight change.  Standardization requires upheaval and new ways of thinking, approaching old problems.  Organizations that adapt to the standard IT container and see it as more than just a ‘development thing’ are best positioned to yield the benefits that this change could bring.

A Caboodle of Pragilematic Posts

I’ve been hanging out and posting at the ASPE SDLC blog.  Yes…I have their permission to do that.  Geesh.  Check em out Gilbert:

Six Things To Avoid When Reporting Project Status – Project status is about the facts and your strategy to address and manage those facts.

This Daily Standup Is a Joke – This article details some challenges associated with daily stand-ups and some potential strategies for dealing with these.

An Axiom of Project Success –  What’s the common thread to project success?  We’ve seen projects that should have died.  We’ve also seen projects fall apart that seemed like they were in the bag.  This post attempts to nail the overriding factor.

That’s Great…But How Does Agile Benefit Our Shareholders?  – Selling agile to key leaders in your organization takes more than just a thorough understanding of story points, and time-boxing.  This post brings it home for those wanting  a bigger bang for their agile swang.  Whatever that means.

Getting to Success Instead of Getting to Done

Projects are about getting things done…right?

Uh-Uh.

They’re unique, collaborative, human efforts endeavored to achieve success.  Success is can be defined with certain goals.  Success has a point, a place we reach and can say “Ah-ha!….we did it!”.   There’s a finish line.  Done, on the other hand, is never done.  Excuse the pun.  And the rhyme.

Done is an endless backlog.

Done is a never ending series of requests.

Done is code that’s never perfect.

Done is test cases that still need to be refined.

The fog of “Done” can envelop the project and the minds of our teams.  It obscures the truth.  We’re not looking to get everything “done”.  We’re looking to succeed.  Within success there is room for variation on “done”.

The Root Cause of Water-Scrum-Fall

Introduction

Water-Scrum-Fall is the norm in many organizations today.  Despite the attempts of scrum coaches and consultants, the weeds of waterfall grow back into the agile garden.  What causes this?  This article looks at the root cause for the water-scrum-fall phenomenon and makes a suggestion about how to address it.

The Root Cause

Water-scrum-fall’s reality is not the result of people being unwilling to adopt scrum.  It’s not the result of a lack of passion for agile processes and practices.  Nor is it caused by a lack of executive support.  The cause?

Capital budgeting

In companies that produce software for internal use water-scrum-fall finds it’s greatest adoption.  Internally used software is strictly accounted for by the regulations in SOP98-1 and this financial machinery is what guides the need to plan up front.

Capital projects are investments.  To determine an investment’s return you need to know the estimated initial cost, and estimated revenue ( or savings ) the project will create.  These things are estimated up front so that a decision can be made on whether or not to pursue the investment.  The up-front nature of capital budgeting compliments waterfall and BDUF. It is a core financial business process guided and regulated by FASB.  Think about that for a moment…and then read on.

Scrum practitioners run up against a wall with capital budgeting.  It doesn’t fit their operational practice for developing software.  Under scrum….we shouldn’t be designing, estimating and crafting the project up front.  Instead we should approach it incrementally.  The problem with this? It ignores how enterprise software development projects ( capital investments  ) are funded.  The result is that everyone compromises and innovates.  Water-Scrum-Fall is the child of this compromise.

The Challenge

Scrum and other agile practices pose a challenge to enterprise software development efforts and the capital budgeting process.  Indirectly they say “Why are we funding this as a capital investment?  It’s not.  It’s an ongoing operational cost and should be accounted for that way.  If we don’t plan on funding this software development effort for the long haul…then why are we doing it?”  Funding a software development effort as an operational expense, as is done within software companies, does fit the scrum operational practice better.  But again…the difference between a software development effort being labeled CAPEX or OPEX is guided by FASB.  It’s not up to the company.

How Do We Fix Water-Scrum-Fall?

I don’t think there’s a silver bullet here.  But in my last article, Is There a Better Way to Estimate Capital Projects? , I threw out a suggestion for how to estimate a capital investment using tolerances.  This bypasses the need for an up-front detailed analysis of what the the LOE ( Level of Effort ) would be for the project, but still gets the business what it needs: an initial funding point and resulting NPV that augments decision making.

Summary

So water-scrum-fall is a pragmatic reaction by agilists and IT professionals to work with the business and its financial processes.  Did the originators of scrum not understand the capital budgeting process?  Were they oblivious to the financial architecture of the businesses around them?  Maybe…but to their credit; they weren’t trying to address this.  Their focus was on how to do software in an adaptive fashion so that it more organically addressed the operational realities of manifesting a complex vision.

What Techniques Do You Use Most To Deliver?

The poll is multiple choice, and you can add your own too.

2012 Predictions

Here’s some of my 2012 predictions, ok…. guesses:

1. Real Options will become a bigger part of planning software and application development projects.  Unlike other projects we’re not discounting a straight stream of cash flows.  We’re discounting a complicated tree of decisions.

2. Scrum Will Breakup – The forces that made it popular will rip it apart.

3. Agile’s Luster Becomes Rustier – The torrent of zealous marketing and hype will take its toll on agile.  There will be increased backlash and doubt through 2012.

4. The Kanban Rock Will be Turned Over –  Executives will look into Kanban for software development and ask “Where’s the value here?”

5.  Managed Service Providers Will Enter Software Development – Utilizing contingent labor available through sites like Guru.com they’re finding ways to drive down the costs of software development for cheap, simple, fixed bid projects.

6.  Agile 2.0 Bandwagon – The agile 2.0 proponents will attempt to reboot life into the “movement”.

7.  Startups get faster, leaner – Driving towards continuous, high quality delivery…some startups will take Eric Ries Lean Startup philosophy further and push tool vendors, or even create their own tools.

8. Tools Start To Takeover – We may have stretched the limits of new practices and patterns.  Time for the tools crowd to take over?  NoSQL and the rejection of OOD&D as too complex for most development efforts may yield simpler higher quality tools.

I never can seem to round out my lists to 10.  How do other writers do that?  Oh well.  See you in the new year.  🙂

The “A” Word

Over commercialized, overused and mis-applied the word “agile” has become synonymous with being better, faster, and cheaper.  The hype around the “A” word is nonsense.  Most of the software vendors, consultants, and marketers plastering agile on everything are simply capitalizing on the popularity of some ideas that aren’t even correlated with what their selling.

Agility is not a panacea. It’s not a software tool.  It’s not a product you can buy.  To my opinion it was a state of mind, a way of approaching problem solving.

It’s now lost that meaning.  It’s original luster is awash in a sea of hyperbole and advertising.  When someone says they’re agile or they practice agility….I no longer know what they mean.  It might be that they read a book, they use some self-professed agile software tools, they have a poker planning card set, they bought a CSM certification, or they recently attended some conference on agile software development.   Stop Agilizing Everything was written in protest to the fluff, and monetization of agility.

Will it stop?  I doubt it.

Instead it will kill itself through abuse. Eventually it will become the worn fad of the day.  In disdain and disgust we’ll turn our backs on the “A” word and seek something with more substance.

The Coming Breakup of Scrum

Introduction

Scrum, probably the most widely adopted agile software development practice, is cracking up.  The signs are evident and this article discusses the trend and what it means for agilists today.  If you practice scrum, are thinking of using it, or have used it in the past you’ll find interest in this article.

Oh yeah?  Prove it!!!

It’s a truism that rapid growth and popularity put a strain on organizations, movements, ideas…….or ,more fundamentally, the people comprising these very human vehicles.  As an idea ferments and then exponentially amplifies to encompass a wider politic of devotees and admirers there is the impending fog of dissent with the origin, the core.  From this comes splintering, debate and eventually more novelty and innovation.

Fine, but what about direct evidence for the rift in scrum?

03/05/2009 – Scrum But…Test.  Jeff Sutherland.

09/15/2009 – Ken Schwaber resigns from Scrum Alliance

06/15/2010 – Ken Schwaber establishes Scrum.org

04/20/2011 – The CSM certification wars

07/26/2011 – Forrester calls Water-Scrum-Fall the norm

08/02/2011 – Bloggers Suggesting Scrum Variations

10/06/2011 – Scrum Extensions announced – allowing modification to basic scrum.

As the agile movement hybridizes and evolves scrum is feeling the brunt of this pain. The forces of hybridization are ripping scrum into distinct camps whose views are aligned with their respective organizational needs.  Who are these camps and what will ultimately happen to scrum as this spider web is tugged from it’s anchors?

The Camps

The Enterprise – Most enterprises don’t build software as a core part of their operations.  Projects here are usually centered on delivering some base set of functionality for a fairly fixed price.  Stability and low cost of operation are prized.  The organization doesn’t usually see this as an investment…but as an expense to be managed and tracked.  The pressures enterprise software development groups face at the capital planning phase and the release phase have sculpted the Water-Scrum-Fall that’s prevalent.

The Software Companies –  In contrast to the enterprise, software companies build software as their core product.  It *IS* their operation.  Software companies see their products as an investment and it’s life cycle is fairly unlimited, or at least tied to the life-cycle of the company.  Pure scrum works in  these companies fairly well.  There’s usually still pressure to reduce the number of production releases but on the planning side managing features in a backlog fashion is workable, even preferable when you have a product that has a potentially unlimited lifespan.

The Startups – Startups face a different set of pressures from their venture capital investors.  The need to rapidly introduce new features and create value to customers and investors by gaining a competitive advantage quickly is paramount.  Startups are tearing scrum towards the Lean Startup methodology professed by Eric Ries.   The focus here is continuous delivery of new software: stability be damned.  Usually these startups don’t build software that’s mission critical or life threatening.

The Purist Methodologists – Among these are the various scrum trainers, agile coaches and general agile philosophers who profess a puritanical approach to scrum.  Their insistence on a dogmatic approach to scrum are rooted less in practice and more in theory.

What are they doing to scrum…where are they taking it?

These groups are doing what’s natural.  They’re catering scrum to their practice and profession of application life-cycle management ( ALM ).  But this tug of war for scrum’s future is changing it.  Instead of a simple, one-size fits all methodology, it’s becoming a framework of patterns & practices.

You can see this through the introduction of scrum extensions, which is a natural way of recognizing the various groups that have adopted scrum in some fashion.  With scrum becoming an umbrella concept, it’s importance is melting away.  It will devolve and eventually disappear. Instead the extensions, much like design patterns in software development, become the value added pieces that development teams will use and rally around.  Each camp will likely pool certain extensions, patterns as their ‘methodology’.   In time, these flavors of scrum will tear it completely apart.

Summary

Scrum’s popularity will likely be its undoing.  But is this something to be avoided or stopped?  Hardly.  Hybridization and evolution of scrum is a natural process that is both pragmatic and necessary.  Jeff and Ken’s baby is growing up and leaving the agile house.  The original agile manifesto signatories accomplished their mission; they broke the one size fits all ALM world down.  The new heterogeneous landscape of practices and patterns, while less clean than the bi-polar world of agile vs waterfall, is primed with greater opportunity for innovation.