Sure, lets start with the big question first. Software Development – why? Why write about it? Why do it for a living? Why do we need software developers?
True to my nature as a software developer, I’ll divide and conquer. One question at a time please. And true to my nature as a code monkey, I’ll start with the easy bit.
So, easy question first. Why write about software development?
As I was walking home along the Clyde one evening, thinking vaguely about what I’ve done at University and at work I realised something a little worrying:
I’ve forgotten more than you’ll ever know.
That’s not intended as an insult to you of course. You may well be a very knowledgeable person. But your knowledge is nought compared to my towering forgetfulness. I realised that I’d completely forgotten how a red-black tree works or what it’s for. I’ve forgotten how a birthday attack works against vulnerable cryptographic algorithms. I’ve forgotten the UML notation for… pretty much anything.
You could say who cares? I don’t need to know any of this in my day to day job and I certainly don’t need to know it in real life outside work. And hey, there’s always Wikipeida! On the other hand, I’m doing some kinda interesting stuff these days. It’s taken me a long time to figure out (say) how to nicely unit test Spring configured Hibernate DAOs. Fun as it was learning, I don’t really want to do it again.
Second, I’d generally like to get my thoughts in order on one or two matters. I have opinions on the best way to create software. On subjects like working environments, management styles, code conventions and how to actually make money out of what we create, I have opinions. But it would maybe help me to write them down and get them straight or I end up saying at my next interview
What’s my opinion on code quality? Um, I like it.
So basically, I just want to write down a few ideas. I may well ask for comments later if I’m feeling argumentative. But to those of you who know me, if you want to disagree with me at all, I’d always rather a natter over a pint of good ale than a flame war in cold cyberspace.