2 X 1 = 0.5

Posted by & filed under , , .

The “equation” in the title has go doubt puzzled you as it is nonsense 🙂 I couldn’t agree better, though there are a lot of people that don’t see that! Intrigued to hear that? What if I was to tell you that the above formula should be read “if you double the number of developers on a project, you will half the delivery time”? Now does it make sense?

I’m sure you would have heard 100’s of mid level managers stating similar facts in various meetings to justify their extra hires – typically contractors, brought onboard “for the sole purpose and duration of this project”. In other words “I promise we won’t pay them after the project is finished”. Now that last bit quite often is true – except that what happens is that the project doesn’t get delivered on time, deadlines are moved, contracts are renewed for these guys quite a few times and the company ends up with a high contracting bill to pay and the project not finished – or delivered way too late to make a profit on it.

And it all comes down to the superficial (that’s just a nice word for “fucking stupid”) understanding (or not in this case) of the development process from these small time managers. A lot of times this is coupled with the lack of spine from them to state upfront the situation: the project won’t be delivered on time! To an experienced superior, this is crucial information — it’s not good news but it allows them to re-adapt their strategy and reflect that in communications with clients (let’s face it, in most cases the bad news are the ones you want to hear first — and react to!) It’s not ideal, like I said, but it allows them to manage customers’ expectations. However, I am yet to see a small time manager standing their ground and admitting upfront project won’t be on time. Hanging onto their “manager” title tooth and nail, and seeing (due to their lack of understanding and experience no doubt) admitting to a delay a sign of weakness from them in front of their superiors, our manager will do what every egg head in the business always does: report that the project will be on time, double their headcount by hiring contractors and expect based on the above formula project to be delivered twice as fast. What happens next though is that the existing team members have now to spend extra time each day in bringing these contractors up to speed with the design and coding of the project, then code review these huta’ code, this effectively more than halving their capacity to do actual work. Come 3-4 months down the line and the project is nowhere near finished, people are frustrated (both the developers and the other sides of the business) and our idiotic manager has to come up with an explanation. Do you think he would have got the message by now though? Nope! He’s likely to blame it on the quality of hires, on every slight change in the requirements, the weather and number of babies born with ginger hair that month!

As a result it’s just as likely that the existing contractors will be fired and a new fresh set of contractors would be brought on board — and the above iteration starts all over again. With the same result! Chances are in fact that after a couple of iterations involving contractors, our manager can probably now justify hiring “permanent workforce” and the problem starts all over again — but about 1 year later! By which point I’m venturing to guess that the project is no longer such a priority for the business (if it is, how the fuck did that business manage to function for 1 year without such a crucial project???) so any further delays are probably not that problematic. As such, quite likely the new approach is to do things “properly” — so out comes a whole set of UML diagrams, meetings, phonecalls, conference calls and so on, all meant to deliver the best-of-breed in terms of software design for this project. Fuck it, why not, since we’re doing this the right way, let’s hire some “proper” architects, some user experience designers, throw in a full fucking Q&A team to the point where you count now 10’s of people working on this! This is probably becoming unmanageable — so to reduce our costs why not look at outsourcing? Half the size of the team and hire 3 times more than what you’ve fired in your offshore office. Hire project managers to keep track of what each team is doing and programme managers to keep track of project managers. Get another level of management in between you and the programme managers as you don’t need that granularity — and before you know it, you managed to raised your seniority in the company — woohoo! There was some project to be completed somewhere but I’m sure your sub-managers will sort it out…

Sounds a bit far fetched — doesn’t it? … or does it? Seriously, look again at this formula above and think realistically how many times did you not see it being applied? And if this happened in a company large enough, I bet you some of the above actually did happen as well? How many narrow minds did you not hear judging the development process strictly by the numbers?

And more worryingly — how many of those did actually get promoted? Or at least got their budget for more hires?

Well next time you hear that again bring up this absurd formula — it might be that a simple mathematical representation of this idiotic idea might get them to realise they’re talking bollocks!