The context in which we build software

15 Sep 2020

I grew up in a what I now know people to consider a really small town. There wasn’t a lot, but even in that small town we had 2-3 lawyers. And to make a point about technology and how we develop software I want to paint you a picture of these German small-town lawyers with a very broad brush.

They often have their office in their own house, a little sign in front of it says so. Sometimes it’s a separate room, sometimes the downstairs apartment. They help the local Mittelstand companies with their contracts, or they’re specialised in traffic law and can help you when you had a car crash. They know possibly everyone in the notary’s office on a first-name basis, use their telephone as the primary means of communication and their suits aren’t tailor-made. There’s a fax number on the business card, since this is Germany.

If you leave this town, drive for 45 minutes and then take a plane for another 45 minutes and 7 hours you end up in New York City, where they also have lawyers. Let me dip my broad brush into some cheap paint I got from movies and TV shows and paint you one of these New York lawyers from one of New York’s big law firms: big office in a skyscraper, expensive suit, expensive apartment, large corporations as clients, lots of money being paid every hour, hundreds of colleagues that worry about all the things a lawyer shouldn’t need to worry about so they can concentrate on high-level decisions.

I’m fully aware that these paintings are not masterpieces. But try to imagine: my small-town lawyer takes the car and the plane and ended up in New York in an office with his New York equivalent — what would they talk about? Probably how different things are. You have how many cases a month? That’s your client? Okay, wow. No, my wife does the bookkeeping, no, it’s absolutely fine. Repeat that: how long have you been working on this single case?

Two more paintings: a portrait of our small-town doctor and one of the head of neurology in Singapore’s General Hospital. Another pair: small-town architect and one of those architects that designs the new conference center in a large city, or its opera house, or a whole district.

Each pair shows the same profession — lawyer, doctor, architect — but there’s not much in the daily lives of the portrayed they have in common. In fact, a day in the life of a small-town lawyer looks probably nothing like the typical day a big law firm lawyer in New York has.

And that is 100% fine, because their goals and problems are different.

If I were to paint you two pictures of software developers, one of a developer working for a big tech company in Silicon Valley and one working for the IT department of a 200 year old publishing house in Germany with 150 employees, they would also look completely different, because here too, the goals and problems are completely different.

But you know what these two software developers do? They go online and they write about their day-to-day and what they’re doing. And they don’t mention their needs and wants and what their goals and problems are and how they’re highly specific to their environment and how that does and should shape their work. They wouldn’t even mention that they only have three colleagues and that they only work on a single software project that’s critical to the survival of the company. Not a single word would they write about the fact that they work in a research team in a research department that has, effectively, no deadlines. And no paying customers.

Yet their equivalent on the other side of the world would read it and say: “we need to do what they’re doing! It’s working for them! Let’s use the technology they are using. The programming language, the database, the deployment system — if they are using it, why shouldn’t we?”