Good developers with years of experience will tell you that the success of a project depends on getting the right people together. Tell the team where to aim and they will work out a way to hit the target, irrespective of methodology, tools or technologies.
As Brooks states in his Mythical Man Month, there is a factor of 10 between the best and worst developers.
With that in mind, and with a wry smile, we distinguish between the Good, the Bad and the downright Ugly in the world of software developers.
The Good
Good developers will constantly be asking themselves ‘Do I really need to build this? Is there a quicker and cheaper way? Does this really help the business?’ They’ll build the simplest thing that does the job and provides value.
If they see something that presents a risk they will flag it to their manager who can then clear it out the way.
If they aren’t going to deliver on time then they’ll send a very early warning signal. But most of the time they will deliver on time.
The Bad
Bad developers won’t ask questions, but instead extend functionality by totally over engineering the solution, spending the clients money on something they didn’t even ask for.
They’ll spend hours on trying to get complex solutions to work (because they started it that way) rather than settling for something plain and simple that does the job.
They will be “99% complete” for the duration of the task, then tell you that they meant code complete and haven’t actually tested whether it works yet.
They occasionally deliver on time but spend most of their time being ‘nearly there’.
The Ugly
Ugly developers will mindlessly copy and paste from some other code, creating duplication, introducing bugs and delivering something that doesn’t do what was asked, and doesn’t even work.
They’ll also announce five minutes before the deadline that they need another day when in fact they need another week.
They wouldn’t see a project risk if it came up and slapped them in the face.
They never deliver anything on time.