My dirty little secret: code in the raw
27 February 2011 Leave a comment
This is a unashamed geek post.
I was asked this week why I gave up being a programmer and moved into software quality and project management.
At the time I thought it was because I was ambitious and wanted to move my career forward.
I had also been convinced that my productivity as a programmer wasn’t great: my proportion of rework / bug fix time was low but my time to first submission to QA was longer than average (I now understand that might be the less costly way round but then all the programmers were racing to get things over the wall) and I looked slow.
Then there were the day-to-day irritations of what a code shop had become:
- I was a little too interested in clean code and spending time on elegant structured solutions when quick and dirty would have been acceptable
- I was getting irritated with the messy code the code generators and tools produced
- I wanted the source code to be laid out so programmers could read it to maintain it but was told it didn’t matter because the tools would do that for you. It would be the same once compiled anyway because the structured layout was stripped away
- I didn’t like that the world was becoming enamoured with non-procedural data management (things like SQL), which was actually less efficient and required bigger machines than the business really needed
- I thought programmers had stopped caring about efficient use of machine resources and compatibility – machines were getting bigger all the time and the marketing teams told the buyers of software they would just have to upgrade in a throw away fashion marketplace
- the web meant there were new tools that allowed people to call themselves programmers because they dragged and dropped icons rather than because they understood sequence, iteration and selection; that lack of understanding was getting odd data results and software was not tested adequately
- the web meant that the focus on the presentation layer meant that data management, error handling and security had little attention and less funding. Good looking, badly structured and buggy software products were being lauded.
In saying these things, I was running against the tide. If you can’t stand the heat you get out of the kitchen. So I went across the hall and got an office.
With hindsight I realised that I was not a lone coder who wanted to produce clean code and who struggled with the mess the tools made. There are two underground movements in software development NoSQL (not only SQL) and NoVS (not only Visual Studio) who have also recognised this craftsman’s desire to do a good job extends to programming too. They are bucking the domination of the tools they have been presented with.
Like free-climbers, it is a light touch, awareness of the terraine and a tidy approach that means craftsman programmers reach seemingly impossible solutions with meaningful, easy to maintain and readable code. In an age when artisan bread is valued over mass-produced bakery products, there are some who share my dirty little secret: code cut in the raw can be the most efficient and elegant solution. There will be a place for the low skill mass-produced code from patterns but I salute those who are proud of their programming craft and have the skill to write code by hand.
I’m not going back to coding – management can be fun too – but I now feel able to stand proud and say, “I am Carol and I got my hands dirty to cut code by hand”