Does better equipment make for better developers?
I recently listened to a heated discussion about better equipment making for better developers. In fact the discussion was about dual monitors and whether a developer good do a good job if he or she didn’t have a good monitor.
Well my take on the subject is that is doesn’t matter at all!
Come again I hear you saying, doesn’t it?
No it doesn’t! Good tools will make a craftsman more productive but will not make him a better craftsman in my opinion. If you never learnt how to lay bricks even the best bricks and mortal aren’t going to help you build a solid house. And yes I am comparing a software developer to a craftsman because in my opinion the tools that make for a real software engineer just aren’t generally available yet. Most software is still developed by people who will judge is a certain algorithm is good en fast enough and that judgment can only come from experience. The tools to check if the specs and the implementation are really correct aren’t really there yet. Of course experience only comes with practice and that is the hallmark of a trade.
But back to the dual monitor issue. Will giving dual monitors to an average Mort make him any better? No it won’t! It might make him more productive, something also very valuable and useful, but not better. Of course I am all for productivity so by all means give Mort, or anyone other developer for that matter, a second monitor just don’t expect his programs to become any better. You are going to end up with the same, possibly crappy, software only slightly faster.
Okay so is there no relation between the equipment and the quality of the code?
Well actually there is but it is at other end of the scale. Give any developer, how ever skilled and experienced, real crappy and slow hardware and the result will suffer. If your edit, compile, test and debug cycle takes to long you won’t get into the flow and that is a prerequisite for anyone to be productive. Now an un experienced developer might never reach a state of flow but an experienced developer will. While in a state of flow someone can become very productive and usually also produces very good code. But if the development cycle takes to long its impossible to get into a state of flow. Now with the average modern computer a developer and Visual Studio 2005 there is no reason not to be able go get into the flow. But if you give you are forced to use really old crappy hardware or so little memory that Visual Studio and for example SQL Server keep swapping out thing change. In a case like that you are likely to become distracted by the long waits and as a result will not reach a state of flow and become very productive.
So conclusion: Better hardware doesn’t make for better developers but does help them become more productive. Bad hardware is enough to kill of any productivity in even the best developer.