A big, important project has launched -- and abruptly crashed to the ground. The horrible spaghetti code is beyond debugging. There are no unit tests, and every change requires a meeting with, like, 40 people.
Oh, if only we'd had a team of 10 "rock star" developers working on this project instead! It would have been done in half the time with twice the features and five-nines availabilty.
[ Also on InfoWorld: 10 practices of highly ineffective software developers and 7 programming myths -- busted. | Find out how versed you are in programming languages with our "Hello, World" programming languages quiz. | Learn how to work smarter, not harder with InfoWorld's roundup of all the tips and trends programmers need to know in the Developers' Survival Guide. Download the PDF today! | Stay up on the latest app dev news with InfoWorld's Developer World newsletter. ]
On the other hand, maybe not. A team of senior developers will often produce a complex design and no code, thanks to the reasons listed below.
Truth no. 1: You can't afford all senior developers
Many managers have an unrealistic understanding of the labor market for software developers. Just get 10 extremely senior developers to work on an application, and presto, success! These same managers also generally believe they can hire senior developers for less than the market demands; for example, $100,000 isn't enough for your senior-most position in most areas of the country. Best case, you'll get one or two senior developers and eight or nine liars.
Truth no. 2: People do their best work when their head is barely above water
When you have a senior developer typewriting JSP pages (read: ASP, PHP, whatever), that person won't actually perform as good a job as a more junior-level developer who hasn't slogged through it 100 times before. A senior developer, even one with good intentions, will phone it in after the first few weeks because he or she is inescapably bored. A junior developer assigned to the same job will work a lot harder.
Truth no. 3: Too many senior developers spoil the code
If I were working alongside a bunch of other senior developers on a simple project like the one mentioned above, out of boredom we would come up with a way not to use JSP pages at all. Instead, we'd engineer the most powerful and flexible templating system that was not JSP ever designed.
There would be extensive discussions and architecture meetings. A pretty basic B2B website would become one of the most complex architectures ever created. Why? Because we can. We're smart. We can keep up. We'd definitely do an entirely functional programming design because this is our chance to show our friends it can be done.
Ultimately, we'd run overtime and request "interns or something" because a few "little things" and "bug hunting" still need to be done. After a time, a handful of bright interns would end up doing most of the actual work on the project, while us senior developers exercised our whiteboard brilliance.
Sound far-fetched? I saw it happen on a multi-million-dollar corporate website project that lasted over a year. Not long before, I had led a more complex B2B portal project with a small team of four more junior people -- and delivered in about three months. No one ever compared the ROI between the two projects.