Requirements for an IT system come in several shapes and sizes. Even if you manage to get requirements that are clear, concise, comprehensive, unambiguous and agreed, they could still be badly behaved. I will try to warn you of some of the perils that requirements can cause. Well-behaved requirements Before I get onto badly behaved … Continue reading Not all requirements are created equal
Auctions and adverts
I'm slowly making my way through the back episodes of the podcast Linear Digressions. Normally it's about machine learning, but there are a couple of episodes (one big episode chopped into two) about auctions. As in, how do eBay and Google make money (not the same way) and which is better? There is some interesting … Continue reading Auctions and adverts
Guest Blog: Are you a bad interface between colleagues and your code?
Paul Boag, UX and digital strategy guru has kindly taken another post by me. It's called Are you a bad interface between colleagues and your code? The previous post of mine that he's published is about modularising code.
K-means clustering and Voronoi maps
Introduction This article came out of one of those realisations that two things I already knew were linked or even the same thing, like Clark Kent and Superman or regular expressions and finite state machines. It’s not a new realisation – a minimal amount of Googling showed that the link is in the first paragraph … Continue reading K-means clustering and Voronoi maps
Programmers should play nicely with others
Introduction There is a stereotype of a certain kind of programmer. It’s of a young white able-bodied man, alone in his room, creating the future through the force of his intellect. This creation leads to widespread change and a gazillion dollars for him. While it can be amazing to create things in code, and there … Continue reading Programmers should play nicely with others
Programmers, mental models and decisions
Introduction I listen to the podcast Art of Manliness - its title is possibly misleading, as it's quite a mix of philosophy, practical skills, self improvement, lives of interesting people and so on. The episode I listened to most recently was about mental models, from Shane Parrish who is the person behind Farnam Street. I … Continue reading Programmers, mental models and decisions
Automating the deployment of SSIS packages
Introduction This post describes how I have automated the deployment of SSIS packages to different environments (test, staging, production etc.) There are definitely other ways of doing it, and some of these are possibly better - I think that this is the oldest-school way possible. I will describe our context which I hope will explain … Continue reading Automating the deployment of SSIS packages
The emotional rollercoaster of automation projects
Yes, it's another amazing piece of artwork, showing my amazing artistic skill and drawing tools. If you missed my previous effort, have a look at a previous post on statistics - although I think that the previous post's artistic style is influenced by Wait, But Why, and this one is more influenced by xkcd. I've … Continue reading The emotional rollercoaster of automation projects
An introduction to Octopus Deploy
Introduction This article aims to answer two questions: What is Octopus Deploy? Why should I use it? It won't go into the details of how to configure it, all the alternatives to Octopus Deploy and so on. What is Octopus Deploy? Octopus Deploy (which I will call just Octopus from now on) is a tool … Continue reading An introduction to Octopus Deploy
Writing documentation can be in your own interests
Introduction Some people take the agile manifesto's ... We ... value ... working software over comprehensive documentation the wrong way. They think it means We don't value documentation This is: a) not the same as what the agile manifesto says; b) wrong, even if you act purely from self-interest. There are at least two selfish … Continue reading Writing documentation can be in your own interests