This site aims to apply engineering principles to software development and evaluate the feasibility and/or efficacy of techniques currently in the industry. Whilst I seriously salute the code warriors who have got the industry to where it is today, I also cringe at seeing tangents being taken down completely incongruous paths which often make no sense, but yet are justified by some organisations under the mistaken cloak of 'Agile development' or some other incorrect interpretation or fad.
This blog came about because I have been programming for about a quarter of a century and come to see a number of different things in my time. You often see the same classic mistakes and old rope reappearing time and time again. Some of those have been worthy of further investigation and some others should be buried before they take hold. So I blog my take on it and encourage feedback.
For my liking, too many people in the industry are just plain 'code hacks'. They churn out a lot of code in very short periods of time, which are all too often often ill thought out, badly designed (if designed at all), can't be extended too easily, perform badly under load, can't scale and most seem to do so under the premise that this is what the business needs immediately. Jump now, worry about the jagged rocks later... I take the view that the rocks look really really hard and an eternity dead is a long time, so are we actually sure?
Anecdotally, from my experience here in the UK, about 85% of people calling themselves developers have fallen into this category and I have always had to spend quite alot of time clearing up mess. A message to those within that category that can't or won't want to follow the 'engineers path', due to lack of decent fundamentals, insurmountable philosophical differences or resistance to change, then this site will bring you nothing. Just don't hope to sit across from me at any interview I conduct :o)
I don't intend to introduce particular technology in this blog, outside those snippets that illustrate the application of certain concepts or bring into the arena an interesting feature. There are many many other sites for that.
I tend to work with a notepad by my side. It is quicker to draw UML diagrams, throw equations together and analyse things by doing this, but I prefer a whiteboard to think with. So you may see scans/photos of certain notes after I write them or muse about a topic.
Hence, compared to other sites, you may see a lot of mathematical thinking in here. Maybe disproportionately so. So (I expect this will invoke some kick-back) it will take a special, quite niche, calibre of developer to pick up the concepts and run with it. Note, I said mathematical thinking, not necessarily 'doing' maths. It is just a point about how I do analysis.
In any case, I hope that those to whom this appeals to enjoy the blog. To those it doesn't, please feel free to entertain yourselves with the toys in the plastic box in the waiting room whilst the adults work.
Main image
I sketch once in a while (usually about once a year when I get very bored and have nothing to do). If you look very carefully into the magnifying glass, you should see a snipped from a drawing I did in 2010 (shown here below). During any time in between jobs, or more likely on holiday, I have to fill my time with something, so I start with a line and see where it takes me. It gives away too much about the state of the inside of my noggin I suspect :-)
...and yes, my medium of choice is a famous brand of ballpoint pen. No expensive artists materials for me! I am not in the artistic 'big leagues' frankly, so I don't usually make much of a show of it. If people ask, they get to see, but otherwise, it stays in the sketch book.
A sketch from 2010