The DoIt team functions as a small but rapidly growing "business" inside FirstUnionNationalBank. We've developed a keen appreciation for some of the difficulties facing small startup companies. Outside of the tricky economic questions about growing fast-but-not-too-fast, it seems there is a more insidious problem of how to change the supporting leadership structures as the team gets bigger. Too much "leadership" and things stagnate (plus expenses spiral out of relation to revenue). Too little, and things fall apart, the centre cannot hold. You know, the whole Yeats thing.
When we started, we had two 4 person teams, each with a team lead who was the senior developer. A single manager was the only "non-developer" resource on the team, and all was well.
As the group has grown, we've variously tried roles for production support lead, product manager, development manager, etc.
The goal is to create an "organic organization" that grows just enough leadership to stay nimble but focused. To create organizational units (and leadership roles) where responsibilities and collaborations are spread appropriately. Where we can rapidly change direction, grow, or make quantum leaps without the changes rippling through the entire team. To build a structure that makes sense to people, and create roles that people natively understand and want to be a part of.
During our third or fourth round of soul searching about the right way to organize, I realized how much these goals are exactly the same for the systems we build. Which leads to the question:
"Has anyone ever tried ResponsibilityDrivenOrganizationalDesign??" What would a CRC session to design an organization look like? Is this the same as BusinessProcessEngineering?? Any thoughts?
And what are the best recommendations for information (books? web sites?) on designing successful software development organizations? -- BillBarnett
In Alistair's new book, WritingEffectiveUseCases, he talks about employing UseCases to help with process design. I am very interested in whether anyone has taken the next step: putting the UseCases through CRC card analysis, and building an org chart based on ResponsibilityDrivenDesign principles... Anyone? Bueller? -- BillBarnett
JimCoplien does this to derive the "as-is" picture. He uses CRC cards and walk-through scenarios to get the linkages between people, and then computes a diagram showing relative strengths of inter-role links. He published about it in Dr. Dobbs some years ago, still does it, and my Surviving OO Projects books includes a 2-page summary of some of his results. Check his web page.
But I don't know anyone doing this to design new organizations. It's obviously conceivable, but I haven't seen it tried. One might start from Cope's work to decide how to go forward with it. Cheers --AlistairCockburn