I stole this title, Engineers Should Not Design Streets from a Strong Towns article. I thought I would give another perspective.
I am a software engineer (also commonly called a programmer.) Building software involves many different roles. Different companies have different roles and different names for roles, but a typical set up for me involves software engineers, product managers, and UX designers. Each role has their own strengths and their own skin-in-the-game. The product managers identifies the needs of the user and dictates what we should build. The UX designers determine the look-and-feel of the product - the layout, different screens, wording, images, branding, etc. The software engineers do the actual implementation - they solve the technical problems needed to build the product. This is usually not a one way flow of command - the engineers get involved early and influence the product based on technical feasibility, or the UX designers can find that a particular feature does not resonate when shown to a user research panel. We work as a team and each person has their role to play.
When it comes to performance reviews, each role is rated differently; product managers have skin-in-the-game to make products that users actually want to use, UX designers are rated based on how well they were able to design something that was both elegant and resonated with users, and software engineers are rated based on the execution and technical difficulties they overcame. A product can be an absolute flop with users, but there might have been many difficult technical challenges that were overcame by the engineers to build it, that the product manager receives a bad performance review while the engineers gets promoted, or vice versa if the product was a success but trivial to build.
Now we understand that each role has their own strengths (a jack of all trades is a master of none) and also their own value system. Everyone wants the product to be successful, but the top priority for the UX designer is likely to build beautiful things, and for the software engineer it is likely to solve technical problems.
In the software world (most commonly in the video game world), when you let software engineers design the visuals, we call it "programmer art". Often, programmer art refers to the placeholder graphics that come before the artists are able to produce the nice graphics of the end product.
Sometimes, programmer art is all you have when you are just a team of engineers.
The article This Is What Happens When You Let Developers Create UI describes what happens when you generalize this to anything user interface related, and not just video games.
There is a big difference the quality of the end product, even though in both, you still need software engineers to actually build the product. You do not let software engineers design the user interface.
How does this relate to cities and streets?
Too often, we let engineers design our city streets. This applies to traffic control methods slapped onto century old streets, as well as new streets we build today. Engineers often prioritize the movement of cars.
Even when the engineer is trying not to or cannot prioritize motor traffic, they are not architects, landscapers, or artists. Their design skills are limited (I am saying this as a software engineer myself who could not design a pretty user interface to save my life) and they are going to struggle to go outside of their toolbox of sidewalks, curbs, asphalt, crosswalks, stop signs, etc. Maybe we can vary the material a little bit, but unlike an artist, an engineer is going to struggle to think of how to make a beautiful street outside of this toolbox.
Compare the above streets to the wide variety of streets we found around the world (and even in the United States). These are streets you can tell were designed first by builders, designers, locals, architects, etc. even though engineers are involved in the actual implementation.
It is easy from an aerial view to tell the parts of a city that were designed by an engineer and the parts that were not. For example, here is Zurich;
There is such a stark contrast between the streets in the parts of the city that were not designed by engineers...
...and the streets in the modern, planned parts of Zurich;
There is an obvious difference between streets designed by engineers, as they almost exclusively are in modern cities, and streets designed by architects or locals. This does not put engineers out of jobs; they are important for the implementation, the same way the software engineer is needed to build the software. The engineer still needs to worry about drainage, the placement and capacity of utilities, the structural stability of the street, figuring out the logistics of trash pickup, deliveries, etc. - all of the important stuff to bring the vision to life. But, engineers are crappy designers.
Engineers are also important for designing roads - connectors between A to B.
But, roads are not streets. Streets are the living room of the community, or as Strong Towns puts it, a platform for building wealth.
By allowing engineers to lay out our cities and design our streets, what we have done is created the "programmer art" version of cities.
When our cities could be so much better.
There are plenty of people able to design beautiful places today. They are hired by the entertainment industry - film, video games, theatre, and theme parks.
If we can dream it, we can build it. Places like this exist today.
Engineers play an important role in figuring out how to make it a reality. But, please, do not let engineers design our streets.
Our cities do not need more programmer art.