Design for complex systems

Imagining a new kind of design software

It’s been about 4 years now since I last sat down to “design” something. In that time I have been an R&D Team Lead (“we need new products; here’s a team of engineers, go work out what product to build”) and then a Product Manager (“we’ve just invested in acquiring a product and we need you to manage that”).

Two themes tie my experience in these two roles together. The first is my exposure to a different type of software; software without a GUI. The other theme is a near-total lack of designers involved with those projects [1].

These two themes, I believe, are related. The software I’m talking about does have a human interface, but it’s through the command-line (CLI) and – in the case of the application protocol interface (API) – through code.

So who was designing this software? The software engineers. Who’s ultimately designing the experience of using the product? The engineers. It’s been 4 years and I’m still not at the point where I can easily convince a product designer to come and help us with the experience design of our product.

And that’s a huge frustration because I know they can help us with all manner of design challenges. Even just facilitating the engineering team in their design process would be a start, but the subject matter is ‘too alien’.

What I think product designers are failing to recognise is that they face the same issue that saw the end of the “web designer” in the early 2000’s. Their work will become commoditised. Need graphic design for the web? Canva. Need a basic and good enough interaction design? Material.

There are no more challenges to designing GUI. I think this is the reason behind the emergence of the “UX researcher” role; ‘Well, I don’t understand your technology, but hey, let me show you how to understand your customers’. Don’t get me wrong, this is useful, but just the start of the need.

I also think UX Designer, in rebranding as “Product Designers” knew this too. They – and I include my past self in this – talk about wanting to do “strategic” work without understanding the Product Management role. They talk about wanting “a seat at the table” without understanding how a business operates.

It’s painful to watch software engineers work on design problems. Not because they’re bad, but because a person with a genuine understanding of good design principles has skills they can contribute to make the product better. I want designers to get back to the intentional design of product experiences.

Over the past 4 years I’ve been searching for a solution to this problem. Artificial Intelligence and Machine Learning, for example, are both seriously complex areas in which to find yourself as a designer. Whether we like it or not, AI and ML are sneaking into the product experience. These are complex products, so maybe designers in those areas have some insight?

Google’s a pretty heavy creator and user of these technologies, but even its 300+ strong team of people behind Material can only really offer you insight that amounts to ‘when it comes to AI, best just try to show the user what it’s doing’.

Now that I’m totally convinced no one can help designers work on designing the experience of interacting with complex or non-GUI products, it’s left me very few options. I could try and work out how to teach the engineering team how to design good product experiences, or, OR, maybe there’s another option.

What I really want to do is to find some way of showing designers that it’s just not that hard to design for these products. I also want them to realise that if they don’t get involved now, then it’s going to be too late; we’ll end up with products that unintentionally do bad things and designers will be left still designing whatever the equivalent of sky-scraper banners is today.

But it’s clearly difficult.

Ryan Singer is a seasoned, deep-thinking designer at Basecamp, and I think he’s picked up on this problem too. Ryan recently released a book called “Shape Up” which explains the method of design that Basecamp employs to design new features without starting GUI-first.

Their product has become more complex (note the difference between complex and complicated) and now he struggles to represent the design of a new feature since it’s often the combination of multiple systems. And that, he says, is hard to represent [2].

What Ryan imagines is a “CAD tool for shaping”[3]. He says this is “not for simple projects. For hard projects” and laments there being “no fast malleable medium to capture and aggregate functions into wholes”.

What I think Ryan is talking about here is a way to comprehend and design for complex systems.

I want to create that design tool because I think he’s right. More than that, I really want designers to be comfortable designing product experiences for increasingly complex products - ideally starting with my CLI-based product.


© Jonathan Roberts 2020
I occasionally update articles to fix typos, improve readability or modify content when new information is available to me. View revisions for this article.