"We spend between 15% - 30% of our time
dealing with customer or support issues, so we have no concept of uninterrupted
development time."
I was told this in a recent email plea from a former developer-colleague-turned manager. He wanted suggestions on how to role out Scrum in a such a scenario.
My answer?
Sacrifice a developer to hire two or three Support folks. You'll be far better off.
This assumes, of course, that you actually have a developer to sacrifice.
For a typical development project, you only really need three to six developers, anyway. Sure, you'll slow down your rate a bit but you'll be able to do things with Scrum and you'll be way more efficient in the long run.
This was one of the biggest challenges I faced in a recent consulting engagement. The customer simply did not understand the mutually exclusive nature of Application Creation and Application Support. In mingling these, creation always got sacrificed. Other than not getting things built, interrupting Creators to do Support is really bad for morale.
With Creation, tasks are long-running (three to six weeks). Creation requires extended periods of coordinated concentration.
Support needs emergency response. Turn around time is of essence. Otherwise, things in Application Support Land may be slow - even a bit boring. But boredom is the occasional price of good Support.
Application Support folks are like firemen or infantrymen. When issues come in, things get hot in a hurry. Support had better be ready.
Why not do some Creating during the Support 'slow' times? Quick answer because it's ineffective and just plain dumb.
Long answer...
Context switching. Lots of ramp up time is needed for a developer to reach optimal 'flow', where:
- The exact, correct Creation tool windows are all open (or buffered),
- the right file in the code base is in view, and
- the full panoply of APIs, variables and control-flow for a particular area of the code base is fully in mind.
Only when all these details are recalled and then fade into their collective contextual background can the Creator efficiently create. When this happens, time begins to fade away. A new feature emerges. Then another. This is flow.
Flow is invaluable to a Creator and the best ones know how to block things out to get it established. Except...
But, then, their phone rings. A Support call. No doubt, this call must answered and responded to, no matter how catastrophic it is to precious flow. Because, in Support, nothing less than an immediate answer will do.
Bottom line: throwing the context-switch is enormously expensive. If I haven't explained it well enough, Jeff Atwood of Coding Horror does a great job in his post, The Multi-Tasking Myth.Mixing Application Creation and Support is also a tragically inefficient waste of talent.
Comments