Software Manager or Project Manager?
We are structured as a matrix organization right now with me, the "software manager" and basically a software project manager.
Our boss is questioning the need of both. He doesn't understand the need of a software manager. I tried to clarify the need of improving the software development process (CMM), working the detail of the development and test tools, etc.
Does anyone have this organization structure and can diferentiate between the two and the roles? How can I make him understand the need for the Software Manager?
Tuesday, December 04, 2001
Where I work, we have the full constellation of product managers, project managers, engineering managers, business unit managers, marketing managers and team leads. I have been unable to fully grasp the relationships between all these, and I doubt if anyone else in the company has either. I think William of Occam said it best: managers are not to be multiplied beyond necessity. (Alright, he didn't say exactly that, but he would have if he were an engineer).
Typical "managery" roles include gathering requirements, formulating an overall design, procuring resources and equipment, establishing best practices, and directing who should work on what. These are not entirely disjoint skill sets -- most any senior Member of the Technical Staff with good people skills should be able in theory to perform any of these duties when needed. The major limiting factor is the size of project: some small projects can be handled by just one manager, and it doesn't make sense to have separate project, software, and marketing managers or what have you. But for large product development, it's too much for just one person; typically what happens is that the Chief Architect delegates each major feature (or responsibility, as in QA or Requirements) to managers below him or her, and serves as a facilitating/supervisory role over each segment.
I don't have much emperical evidence to go on, but I don't think matrix organization makes sense for management. I think it makes some sense to matrix developers and testers between teams (reduces idle time and promotes cross-pollination), but it's like building a house ... you contract out with one architect, who then goes around grabbing carpenters or plumbers or electricians from various pools. The main liability for matrixing managers is that there is no one who is ultimately responsible coordinating work on the product. I see the same problem frequently where I work, and it results in communication networks that have O(N^2) interconnects, which is annoying -- you never know who to talk to to get something done.
Anyways, more practical advice for you: if you do think that the project is too large to manage alone, what you may try doing is "requisitioning" a second manager (if possible) who works under your direction, and
offloading certain duties to him or her. Failing that, perhaps you can "promote" your best developer to the position, even if unofficially.
Hope this helps,
Wednesday, December 05, 2001
I have seen organizations that distinguish between technical leadership ("software manager") and schedule management ("project manager").
The former worries about architecture, design, requirements, quality etc.; the latter worries about tasks, time lines, and can always answer the question "where are we on this?"
But it is essential that only one person have the ultimate responsibility for delivering the product.
Tuesday, December 11, 2001
Fog Creek Home