This category contains 46 posts

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

Software architecture as a product

A while back I mentioned that a system’s architecture could be considered a product in its own right. In this post I want to explain that a bit more. Products are typically regarded as packaged, user-facing things. But according to Rimonov’s tower of activity the defining feature of a product should be that it’s a … Continue reading

The challenge of decommissioning software

When we think about decommissioning software the technology component might be the easiest part; removing its influence from people’s lives may be much more challenging. We’re used to the on-going cost of software. Once it’s released it needs to be maintained, because it sits in an environment which most likely evolves, and so the software … Continue reading

Eating your own (API) dogfood

Oddly, this came up twice yesterday, in discussion with different people in different organisations, which is surely a sign that it needs to be made more public: there is genuine business value in having an API, and in using it to build your own applications. An API is valuable in its own right because it … Continue reading

Platform APIs: What’s next?

Earlier this year at a Costa Coffee in Waterloo Station I was speaking to a CEO who was just trying to get his startup idea off the ground, and he was telling me that it was absolutely vital that his service had an API to enable it to act as a platform. What was remarkable … Continue reading

The dreaded recruitment portal

I don’t know anyone with a direct interest in recruitment who likes recruitment portals. As a hiring manager I dislike them, and I don’t know any other hiring managers who like them. As a candidate I dislike them because I feel I’m being treated as number, not a human being, and I’ve always felt it’s … Continue reading

Premature technologification

I’m often surprised how enthusiastic non-technical people are for technology, and how circumspect technical people are. A while back I was speaking to someone from a corporate IT function who was asked to purchase an online workflow tool for the company’s marketing team. It was to help them track assets for marketing material as it … Continue reading

Less technology is better technology

In the Guardian development team we continually talk about the naturally increasing complexity of our codebase — there are always new features to add, so it always gets more complex. On the hardware side, a couple of articles recently ([1], [2]) have pointed out the ubiquity of smartphones, and how a business’s IT function might … Continue reading

Technology decisions are social decisions

A couple of things happened recently bringing home something that I’ve found increasingly important: technology decisions are social. Social decisions in software architecture The other day in conversation about team structures the Guardian’s lead software architect, Mat Wall, mentioned that architecture is social. This is a good, and often disregarded, observation. In that context he … Continue reading