Software design

This category contains 31 posts

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

Technical bankruptcy

Lukas Oberhuber, CTO of Simply Business, has surfaced a term I think a lot of people will find hugely useful, and which really should be used more widely: technical bankruptcy. He introduces it in a presentation seen on Skills Matter, but also elsewhere. And it’s used to solve a very important problem: How to explain … 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

Past and future problems of solutionizing

Most tech people I know agree that solutionizing is a bad thing. This is when the non-technical “customer” (a project manager, a product owner) tries to specify the technical solution for the development team. They may sketch out the architecture, specify how files need to be parsed, or (in extreme cases) detail extensions to the … Continue reading

Have you designed for delivery?

Your software may be designed to work. But is it designed to be delivered? That may sound like an odd question (“Why wouldn’t it be?”) but I’ve been involved in plenty of projects where the delivery process (release, operationalisation, etc) is long and laboured. The reason is in the design. We can design for may … 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

You can criticise if you’ve been there

If you’ve got a bit of development experience it’s easy to criticise the technology efforts of others. If you’ve got more than a bit of development experience then it’s harder. In short: criticise if you’ve been there; be careful if you haven’t. I was reminded of this a while back when I saw a retweet … Continue reading

A small lesson in Scala

For fun, I’ve been working through the recent Coursera course on functional programming with Scala, run by Martin Odersky, Scala’s creator. It’s been a good ride, but towards the end I started having a new feeling — a real sense of wonder — and I want to share that. This shows a bit of the … Continue reading

Your architecture impacts your business strategy

On and off over the last few weeks I’ve been thinking about Elaine Wherry’s painful story of hiring developers. But the thing that triggers the whole tale is worth drawing out further: Our homegrown JavaScript framework edged us over competitors but maintaining our technical advantage meant carefully crafting a lean, delta-force Web team. Though I … Continue reading

Technical debt is healthy

Technical debt is not necessarily a bad thing. In fact, having it at all is a healthy sign. Some may think otherwise, as suggested by this tweet from Benjamin Mitchell, which was tracking the discussion at Agile on the Beach last week: Making technical debt visible might help, but how does it address the causes … Continue reading