Are you as good as Dean, Stuart, Jeremy or better than Dan and Peter-Paul?Saturday, November 18th, 2006 at 7:29 am
You want me to say what now?
I get knocked down, but I get up again
I am a firm believer that all people are fallible and that we first and foremost learn more from initially failing than by immediately succeeding. The latter makes us content, the former makes us uneasy and drives us to change something in order to remedy the situation. I can honestly say that as a developer I matured and got better through people criticizing my work and backing their criticism up with the right facts. Of course I got annoyed and being an outspoken person I fired back until I embarrassingly realized that the person was right. It is a process we all go through â€“ a kind of pecking order you can also find in jail (or so I heard).
Apples and Pears
The whole â€œare you the best or is that guy better or this person worseâ€? is as ridiculous as it could possibly be to me. Working as a web developer â€“ be you designer, information architect, middleware developer, frontend developer or whatever else is out there – means one thing: you work in one of the most hostile working environments out there. There are no fixed rules and the only thing you can say about targets is that they are constantly moving.
This, and the fact that the development environment you work in defines what you need to focus on at this point in time makes it impossible to compare us. It is also extremely problematic to guess how good someone really is when you only get to know one thing they have done.
Silent stars also shine
I got to know a lot of people who never talked about what they did and find solutions that a lot of the superstars of scripting and web development look at with dinner plate sized eyes. This could also mean specialization â€“ some people showed me things that only work in MSIE, but make an amazing amount of sense.
It gets problematic when the focus shifts away from what we achieve to who we are or even more to the point how we sell ourselves. It is easy to throw away conventions and proven concepts and appear as the out-of-the-box thinker and innovator. It is as easy to be the grumpy old school developer who cannot be bothered with all this newfangled stuff kids these days come up with.
So what makes a good developer?
Now to make this a bit more interesting here are my personal criteria to define what makes good web developer (or actually any colleague or competitor):
- Being interested in what you do â€“ personally. If it constantly annoys you that your script takes more lines than really necessary or needs a hack then you are someone who can deliver great stuff.
- Being focused on the goal and how what you develop can help other people
- Being open for criticism and searching for feedback â€“ one pair of eyes is almost never enough.
- Recognizing the needs and interests of people around you â€“ a lot of people are shy by nature but can work wonders. Encouraging them can result in stunning products.
- Being able to explain the same concept for different audiences in different levels of complexity. A lot of good products are built by explaining people only the parts they need to know rather than offering insight into the whole works.
- Not trusting the short term hack but adding the extra step to be able to remove this duct-tape contraption in the future and replace it with a good solid screw.
- Listening and learning â€“ both to the suggestions and to the needs of people. There is nothing better than a solution that totally hits the mark and fixes a long term problem. A lot of times you find this solution by approaching the problem from a different angle, or by talking to someone who approaches it with a different goal in mind.
- Being the good lazy type â€“ if you find a solution not to have to do something tedious or annoying ever again you did well.
- Working with and for a team. If what you develop is documented and it is possible for other people to use your stuff or tweak it to their needs without breaking it youâ€™ve created something good. If youâ€™ve created the most optimised, complex and clever solution that only you understand people can worship you but not really work with you.
- Being quick in understanding concepts, needs and the frame you have to work in. This can mean sacrificing some of your ideals, but make life easier for a whole team. And once things are easier for a group, things get delivered faster and you have extra time to optimise in a second step.
- Being pragmatic about what needs to be done and using the right tool for the job. If there is a technology that was invented to fulfil a certain task it is a good idea to use it for this one. It might be a bad idea to make this technology to try solve problems it never was meant to solve â€“ no matter how sexy this might be as a challenge and how cool you look when you do it.
- Being reliable â€“ if you say yes I donâ€™t want to worry if you meant it and if you cannot do something for me or you donâ€™t want to I appreciate a â€œnoâ€? the same.
- Being happy with what you do â€“ if you do overtime without realizing it and you feel no regrets about it then I am happy for you, too.
Am I all of these things? Are people I look up to all of them? I donâ€™t know, but I surely see the signs in them and try to be it myself, and I really think this is much more important than comparing each other in terms of what we are. The interesting bit is who we can become and what we can be a part of.