Monday, January 28, 2008 8:34 PM
I don't know if I'm more sensitive to it these days or if I am just hearing it more, but there is a definite problem in managing human resources on technology projects.
<keep reading when you finish laughing at that understatement>
It seems that with increasing regularity (or I have been living under a rock), people are assigning roles on projects based on the job titles of team members. For example, suppose you are hire someone to fill the position of "Business Analyst". Now let's also suppose that the new hire is a programmer as well. That is, this new hire has both business analysis skills as well as programming skills.
Let's say that this new hire is assigned as a Business Analyst for the Accounting department. Now say a project starts and this person is added to the project as the business analyst. It is not uncommon these days to hear "well we don't need a developer cuz that new person can write code."
WHAT!?!?! As crazy as it sounds, I have seen very similar situations. Of course, the roles and titles are different but the gist is the same.
While it's true that there are situations where we have to wear multiple hats, it is important to make sure this is done appropriately. Some roles require objectivity that is compromised by wearing multiple hats.
- Developer & <anything else> - Developers, like all humans, tend to migrate toward their comfort zone when the going gets tough. This means that whether or not requirements are well defined or design is complete, when the schedule gets tight (and it will), the multi-hat-wearer will start writing code. And we all know how this turns out...
- Project Manager & <anything else> - Seriously, the PM should really be too busy to produce business model documentation.
- Subject Matter Expert & <anything else> - There seems to be a tendency to have the SME participate in various roles. SME & Business Analyst. SME & Tech Lead. and so on. The SME is, practically by definition, almost NEVER objective. (is that written in english?)
So make a list of all the roles needed for the project. Assign people to the roles appropriately based on the following criteria:
- Critical Path - Divide the SDLC into major aspects such as Business & Requirement Modeling & Analysis; Analysis & Design; and so on. This is important so that one person isn't responsible for the work that leads to their work. Dig?
- Objectivity & Focus - Some positions require objectivity and focus. Developers should have a say in requirements. Project managers shouldn't be testing software. If you think that a person in one of these roles won't be busy on a single project, then have them participate on other projects in the same or a very similar roll. In my experience, it's better to have a PM that is part-time and focused than other.
This isn't perfect, of course. Sometimes we do have to play multiple roles that can (and do) result in a conflict of interest. Try, try, try to keep them separate. Fight the urge to just write code.