This category contains 43 posts

Always build for real people’s real problems

I’ve been having fun this week watching some conference talks about my current favourite language, Elm, at Elm Europe 2017. And I enjoyed seeing an important idea discussed—important not just for coding, but for product and project development generally. The lesson is: solve the actual problems experienced by actual people. Don’t generalise—at least not without … Continue reading

Discovering the Elm language

Are you looking for a better front-end coding experience? I’ve just spent several weeks completing my first project with the Elm language. This is my experience. (Spoiler alert: It’s pretty positive.) Background I’m a hobbyist coder. I work with software developers as my day job and envy their skill and dedication; I can sit down … Continue reading

Keeping up to date aggressively

A software developer friend of mine has good advice, which he repeats solemnly: “You have to keep up to date aggressively .” I agree. He is specifically talking about software libraries and platforms. If you don’t keep up to date with minor releases that come out then the changes you need to make for the … Continue reading

Static typing as mistake-proofing

I’ve always been a fan of statically typed programming languages for my own work, simply because it makes my life easier. My mother always told me “the compiler is your friend” and I like the fact that lots of stupid mistakes I make get caught before the machine will even think about running my code. … Continue reading

Legacy systems hide business knowledge

There is more to a legacy system than meets the eye. When we think about legacy systems we typically think about the old technology it’s built with, and how painful it is to maintain that. On second blush we think about the cost of maintaining it, and perhaps worry about the cost of replacing it. … Continue reading

Choosing a technology because it’s popular

In the ideal world a technology will be selected on its own merits alone. But we don’t live in an ideal world, and every technology has to work in a specific situation. So sometimes choosing a technology because lots of other people did, too, isn’t such a bad idea. Some time ago I worked with … Continue reading

Automation ensures quality beyond tech

Last week I wrote how automated systems build (e.g. Puppet, Chef and Ansible) improves quality as well as speed. By coincidence, this week I’ve been involved a great demonstration of the same idea, but applied to wider business. We’re moving house. As a consequence there are an awful lot of organisations that need to be … Continue reading

Automation improves systems quality

Here’s another example of improving both speed and quality. A while back I talked about how productivity tools improve software quality. The same is true of automation and productivity tools at the system level, as a recent experience reminded me, and as anyone in the devops movement will attest to. I was speaking to a … Continue reading

From Year of Code to digital literacy

The Year of Code is good, but digital literacy is more fundamental, more valuable, and more embracing. Once upon a time our schools in the UK taught our children how to use word processors, spreadsheets and PowerPoint. This is now regarded as an embarrassing low in our recent educational history. In effect, we taught our … Continue reading

Do you really know your toolbox?

How much do we really understand the tools and techniques at our disposal? The other day I found myself explaining to someone that a particular project sponsor didn’t understand Agile, but that they would readily see the value of delivering value incrementally. Since the project in question didn’t involve software development, I had to stop … Continue reading