1

I'm working on a typical internal web/database app for a large corporation. By typical, I mean, a project that was projected to be 4 months and $300,000 looks like its going to be 9 months and $1,000,000.

IMHO, one reason for gross over-run is the ratio of functional people to developers, 3.5 to 2 (PM, BA, QA, and a scrum master that comes to every meeting.) About 250k of 600k has been billed by developers but at least half of that is developers sitting in meetings with functional people trying build consensus with functionaly people who are not very analytically inclined.

Many hours are also spent with the BA meeting with customers and getting buy-in for an overly complicated system that focus more on the edge cases than the core functionality. Given enough time these people will redesign the wheel as a square for fear that a round wheel might role away!

One issue here is that the BA, QA, and PM aren't geeks and the users are staff level, mostly non-technical people. For each hour of meetings and talk and consesus building, I have to spend two hours conviencing them that they are trying to build all the flaws of a paper system into a digital system and that the power of a digital system is that 90% of the controls established by the paper system aren't necessary.

The long and short of it is that I feel like I could write a version of the system with 90% fuctionality in 2 months if they would just leave me alone. Granted, it might be the wrong system but given another month or two, I'm confident that I could get it right.

So I am wondering, "what is your opinion of the optimal functional hours to developer hours on a project?" Also, "Is there any published guidance on this"

Thanks for your thoughts, Dan

flag

6 Answers

2

1 hour of project management per 5 hours of development. 1 hour of account management/portfolio management/executive producer per 7 hours of development.

This was determined through over a decade of data on web projects and numerous shops.

link|flag
1 
Hey, That's exactly the kinda answer I was looking for. Can you point me to the source of those metrics? Gartner Group? – danieleli2 Feb 22 at 19:53
Internal research and analysis on clients for more than 10 years. – Mark Phillips Feb 23 at 23:09
3

Don't think there is a definite answer for this but I've seen this staffing management issuer over and over in IT Projects.

IMHO there is no optimal balance, you're looking the wrong way. The problem is not finding a balance of people with different profiles - it's a communication problem between both profiles and a role definition of who does what the pitfall of wrong people doing the wrong scope, like:

  1. Business Analysts doing Software design
  2. Programmers making business decisions

A RAM - Responsibility Assignment Matrix is a useful tool to track down and communicate responsibilities to the team.

On a more personal note I tend to agree that the Business Analyst function is currently overrated and that we should have a lot more programmers than BA's and the programmer team lead (Software Architect, whatever) should be in every meeting to validate the feasibility of the requirements prior to any commitment with the customer.

link|flag
looks like you were drafting your response while I was drafting mine. We are pretty close, except I disagree on you comment about BAs. Developers' and Architects' jobs are focused on technology and there's no reason to expect them to be able to know what users want or why - although they often think they do. That's why a good BA is essential, who can properly describe what a system is supposed to do without intruding on the developers territory of how. – PJM Feb 21 at 18:04
I didn't say it is not essential, I agree that it is! I just state it's overrated and that will fill the appropriate part when it passes from fashion to a mature practice. – tozevv Feb 21 at 18:59
tozevv - I agree 100%. A good BA is a myth. They don't exist in the enterprise. This is why Agile practices attempt to move the developer and customer closer together. Ideally, the dev can talk to the customer, hack something out, show it the customer, and iterate. Sticking a non-techy BA in middle only muddles communication. But making a dev do it without adding devs to the team cuts down dev time A frequent issue with BA's is they focus too much on edge cases. Give enough time with a customer a BA will design the wheel as a square for fear that it will role away if it is round. – danieleli2 Feb 22 at 10:04
There's a couple of references to agile practices here, but the question shows that the team is not cross functional, it polarized between the analysis/management roles and the development roles. Maybe the problem isn't the ratio between development and functional, its trying to move toward agile methods without everyone understanding how their roles will change. – PJM Feb 22 at 16:30
2

From the way you describe the problem, what you refer to as "functional" and "development", I'm interpreting as requirements analysis and implementation. My answer to the question is that the ratio depends on the system - a complex set of requirements may take longer/more people to define properly, after which a small team of developers could implement it quickly. On the other hand, the requirements may be obvious but take a long time to implement.

From the PM's point of view, how can this situation be managed? The PM doesn't necessarily need experience in this type of project to make a call about complexity. It's enough that PM has the ability to recognize that the BA and the users are not zeroing in on the system requirements and that the developers are getting frustrated. When that happens the PM has to facilitate communication so that decisions get made and stuck to and meetings don't deteriorate into hand waving discussions about all the different ways the system can be approached.

In my opinion, the right BA in this situation is critical. This person has to be tri-lingual (user-speak, developereze, and PM-talk - and btw, because of the way BA's develop in the industry, it could be argued that the right BA does not in fact exist. see Making software...).The users' requirements have to be described in a way that both developers and QA understand what the system is supposed to do.

To address your question, I think you've got some redundancy in the PM and the scrum master. My interpretation of agile environments is that the scrum master performs or coordinates collaboration on the PM duties.

link|flag
1

I think the optimal ratio is:

  • 50% development work on functionality
  • 50% other work (which could be called auxiliary), including:
    • 20-25% QA
    • 8% BA
    • 7% design
    • 5% devs fixing problems
    • 5% PM
    • 5% other (sysadmin, documentation, training, deployment)

Many will find these percentages slanted too heavily towards development, and of course they depend on the nature of the project and the client. But my company has used them as rule of thumb for many years, and it has worked out more or less correctly

link|flag
1

Sounds to me like the problem is the lack of any semblance of a project life-cycle. Why are the developers sitting around listening to the BAs and the customer debate functionality?

On the other hand, if this project has a SCRUM master, why aren't they following SCRUM?

Debating the ratio of hours is kinda silly when that doesn't seem to be the problem.

And by the way ... "development" is just another function ...

link|flag
0

I think this question has nothing to do with project management. If you are having problems with communication management then that can be discussed here.

Hope others agree with me.

link|flag
I'm confused. Communication management doesn't fall under the responsibility of a Project Manager? Who is in charge of communication on a project? I believe the follow is a PM question. "What is the optimal functional hours to developer hours on a project?" If the PM doesn't make that decision, who does. I happily grant that the question is not a broad PM question, but I do think it is under the PM domain. – danieleli2 Feb 21 at 1:04
It is under PM domain only from the point from where solution design/architect's team of the company is happy with the quote provided by functinal and development teams. Because this ratio varies largely with the scope and type of project and it upto the solution design team to decide. What I am trying to point out in my earlier response is if the question is related to communication management if can definitely discuss in this forum. – Ram Feb 21 at 17:36
That's fair. Here a couple thoughts. 1. The solution architect, in my experience, is seldom consulted on for this type of feedback. Furthermore, I asked this question on stackoverflow.com as well, and they closed it saying it wasn't a programming question! It seems that no one really considers this question in their domain. (Actually, it seems no one really considers this question period, which is why I asked it.) The default staffing pattern at my employeer is to ask for the minimum number of developers (often times at less than 100% allocation) and then add a PM, BA, and QA persons. – danieleli2 Feb 22 at 9:28
2. Communication management - I'm attempting to address exactly this issue, albeit it unconventionally, by changing the composition of team. Consider that the programmers have to communicate with everyone on the team in great detail, the BA, PM, and QA, and other programmers. Take a small team of one of each type of role plus one dev. 10% of the developers time is spent communicating with each member. Take another 10% for admin and 20% for supporting exisiting apps and your down to 40% of the devs time. Now, add one BA and you get 30%. Instead add a dev and you get 30% x 2. (see below.) – danieleli2 Feb 22 at 9:40
The numbers above are a little exagerated to make my point but I hope they help clarify what I'm getting at. thanks again for your consideration. – danieleli2 Feb 22 at 9:41

Your Answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.