I often think of product designers and managers as architects. This is the closest metaphor that I found when I talk to people not in the field. They are the ones responsible for the plans and designs. They are responsible for the usability and viability of the product. Product designers build an experience to match the user needs with the business goal. Product managers oversee the “construction” of the product and create requirement documents. They do a lot. But when it comes the time to build, it's developers are the ones who take the lead.

Developers are the ones responsible for the feasibility and scalability of the product. They build the product, design technical specifications, and set up interconnecting systems.

There’s something beautiful about being able to get your hands dirty. It gives you a different appreciation and fulfilment. Comparing it to throwing project plans over the board and "hoping" for the desired outcome. I am being cheeky, but you understand the gist. There is a certain level of unknown at the handover process.

A person painting a brick wall Description automatically generated with medium confidence

For classical construction jobs, architects often can't be involved and knowledgeable in building . This is true for several dimensions. Building a house requires costly material. Doing it alone is impractical and a long process. An inexperienced person would take a long time to build a serviceable house. You can't practice building a house. And a skyscraper? That's impossible.

Now for modern tech products? For modern tech products the opposite is true.

The cost of material is zero. You need a computer and an internet connection. You can build something on your own and it wouldn’t take years. You can learn with free resources and have infinite attempts at your disposal. And more surprisingly. You can build “skyscrapers”. Open-source tooling get you most of the way there.

In the ever-changing tech world, product designers and managers should also be able to do some of the building themselves. They should “lay bricks” and be able to code and build the products they design.

You don't need to become an expert. Start as a novice and gain a holistic understanding of the building process. Product designers and managers who learn to code gain a better understanding of how things work. This can give them a greater appreciation for the work developers do. Not to question, prod, or double-check, but to be a better partner. When product designers and managers understand development better, they can communicate more effectively. They have a better idea of what is feasible and are more sympathetic. Learning to code gives a different appreciation for the craft. Plus, they can iterate on their designs faster.

Learning to code and build comes with challenges. It takes time and dedication to learn the skills. But the rewards are worth it. You'll become a better partner in building and spot opportunities in tech. It's a win-win!

Product designers and managers should learn to code. The cost is low and the rewards are high. They can save their company time and money. Plus, they'll understand and appreciate the development process better.

Architects would be more effective if they have experience in masonry. Digital architects should lay bricks.