How to make better software developers out of less-than-average ones?
First, some background information: I’m a software project manager; I’m in no way the best that’s out there. Most important (or so I believe) is that I am just as good as my team is. I’ve been at it for the last 3 years. I’ve worked with a large number of people, both skilled and unskilled.
However, my question is regarding the other 90%. Specifically, I want to know what ways are there to make developers more responsible regarding their work. At this point, i see that my question relates to these types of developer:
1. some, literally, don’t take their work serious enough and don’t invest the proper amount of attention into their tasks; These guys are the ones who’s minds slowly drift away from their work, usually finding themselves unable to explain the delays when we’re nearing the deadline.
2. some, are simple minded, investing way too much time in a dead-end solution, without even considering that there are usually “more than one ways to skin a cat”
3. some are just the oposite, they take a vast number of solutions into consideration, most of the times disregarding a good solution simply because they were unable to make it work the first time they tried it.
Although I’ve met with other situations, It’s usually these 3 types of problems that I’m confronted with. What is worse still, most of the times, some people never actually bother to let me know that they are stuck. I usually have to ask them myself if i want to find out what are they doing.
I don’t consider myself a bad person. Most of the times i try to appreciate even the smallest amount of determination shown by anyone. Even if a guy is late – due to the above – I’m always trying to see past this and get a better look at the reasons. Most of the time (with the exception of the guys at #1) i find that the guy has invested a good ammount of time and work into it, only to fall short of the end-result.
However, I’m often wondering, is there not a better way? Is there anything that I could do so they get their bearings right the next time when they do something? When I started out as a developer, a very good friend of mine recommended me a book “Pragmatic Programmer” that trully enlightened me and i honestly believe that if it were not for that book, I would still be one of the types above. I would gladly buy this book for each one of the guys, but I’m pretty sure that they would never have the determination of going through it. So I’m wondering, what can be done about them? Are there any courses for them to take? Something to drill into their minds so that they start acting like true developers instead of monkey-coders?
This question is in the General Section. Responses must be helpful and on-topic.