Why your developer sucks
1. He/She has a ‘God’ Complex
Web Development by its very nature is a creative field. It’s a field were the developer invests themselves. The Developer looks at a problem and solves it the best way they know how. If anybody dares question how the problem was solved, it is considered as a personal attack on the developer skills. I see this in myself every day. When somebody fails at completing a task with the software, the natural response for a developer is “god you are the most retarded person I know”. But of cause this is not true. Donald Norman in his Book “The Design Of Everyday things” says “If an error is possible, somebody will find a way to make it” (Not a word for word quote, Great book by the way). And it’s not because they are stupid, it’s because your application allows for that error/failure to occur. Design for errors. Developers should never test their own software.
2. He/She worships his/her Code
This one is closely tied to the number one above. Your developer loves his/her code, therefore it is the best code it can be, it will never need re-factoring, if anybody writes it different they are stupid. This sort of attachment leads to low quality work and developers that don’t grow. Be wary of developers that think they write the best code in the world.
3. 70% coding, 30% planning
Most developers get a problem and the first thing they do is start coding. Adding and removing stuff as they go along. Creating new functions as they go along. But the truth is if they took more time in planning, their development time is decreased dramatically. And the quality and structure of their work is improved. So aim for a 70% planning, 30% coding. **This is just my personal opinion.
4. Bad time estimates
Your developer will usually go over their time estimates; the trick is never believe a developer’s time estimate :D, cause we lie. And we don’t lie to you, we lie to ourselves. And we believe it. The lie to you is just a by-product. We over estimate our skills and we live in a purple fluffy world with Smurfs and Teletubbies where everything goes according to plan and there are not unexpected errors or events. Giving time estimates is a skill on its own and a developer does not have that skill as i had to learn it might make them unhappy with their job. Again planning goes a long way. Also be wary of the ‘project managers from hell’ pressurising your developers unnecessarily to score some points with you.
5. No desire to learn new things
A developer should always be growing, improving, finding new/better ways of doing the same stuff he’s been doing for years. And there is nothing worse than a developer who cannot learn new things by themselves. Team work is fine and all, but a developer that cannot learn by themselves is going to cost you time and money and frustrate your development team. I happen to think when it comes to learning a new system, discovering things on your own is the best way to learn, breaking things and fixing them and finding out why they broke, etc. I have my own little list on What a Web Developer should know.
6. You give him unclear instructions
Never tell a web developer “Go build me a rocket please”, you will get a flying saucer. Be specific with what you want. It is best to get a trained business analyst if you cannot do this yourself, someone who will understand the requirements of the users and the desired behaviour and outcomes of the system. So yes your developer sucks because you think you speak ‘developer’ but are you are just human…or are you dancer 😀
7. Being a perfectionist(Thanks James)
I had missed this one but thanks to @jamiebarow for pointing this out. “I am a perfectionist”, Yes it was cute he/she said it in his/her interview. Its great to have great attention to detail, but too much attention to details can cripple a project. Some developers write and re-factor at the same time(I feel an infinite loop coming on). Which sorta takes us back to number 2 above. Code worshipping is blasphemy.
8. He/She has no idea WTF he/she’s doing
Sometimes you just get stuck with a developer that has no idea what they are doing, just good old fashioned ‘stupid’ for lack of a better word. I’m kidding nobody is stupid, but some developers should have been mechanics. Just saying. :P. James says not knowing is fine as long you are willing to learn. True story.
Although this sounds like it’s meant for your boss, Its really meant for you. Stop sucking at your job. Be approachable, be sincere, be wrong, be willing to help others get better. Understand you are not perfect and quite possibly might suck. As long as you are willing to learn and driven. I’m still working on some of these things myself. Will keep you posted. I wrote another article on How to become a web developer. Take a look and let me know. Enjoy.