🖌️⚙️ Innovate Like Da Vinci: Blending Art and Science in Software Development
Tags: webdev, productivity, programming, beginners
Published: 2023-12-12 14:42:38

We live in a bit of a crazy world nowadays! In the world of software, it's not just about fast-paced delivery and iterating quickly. There's often a disconnect between the buzzwords and the actual substance, and CEOs sometimes preach concepts that make little practical sense. It's a chaotic landscape, especially if you're deeply invested in building something meaningful, like an app, a platform, or an API set.

## Focus Misplaced?
In this fast-paced environment, the focus in software development often skews towards hype and technical challenges. Developers might prioritize fast feature delivery, scaling, and security, sometimes unnecessarily (as [Kitze](https://kitze.io/) discusses [here](https://kitze.io/talks/not-facebook)). But what about the end-user experience? After delivering a feature, the cycle just continues without much reflection.

We often stick to a predefined roadmap, which typically gets delayed. And though functionality should be a priority, in the rush, it's easy to overlook enhancing the user experience. Even quick wins, which are low-effort improvements, are often ignored.

But what's more important? A technically perfect (whatever that meant) piece of software, or one that users can easily navigate and find value in, even if it's not perfect? For more insights on balancing these aspects, [Eric Ries's "The Lean Startup"](https://theleanstartup.com/) is an excellent resource to get you started.

![The Lean Startup - Eric Reis](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/14p2xm9zc7y54fevbnhx.png)

## The Renaissance Genius
Let's go back about 600 years to Milan, where Leonardo da Vinci was tasked with organizing a feast. Known as the "Kitchen Nightmare," this story is a lesson in balancing innovation with practicality.

![Leonardo da Vinci](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jqmxakxx9y03ow7iqu5d.png)

Leonardo implemented conveyor belts, artistic dish carving, a large oven, and an early sprinkler system. However, these innovations backfired due to a lack of consideration for the practicalities of the kitchen staff's workflow and the dining experience of the guests. To understand more about the psychology behind good and bad design, Don Norman's ["The Design of Everyday Things"](https://jnd.org/the_design_of_everyday_things/) offers invaluable insights.

## Contemporary Case Studies
Let's cover a couple of case studies, all of which resulted from putting user experience in the minds of people designing and building the software behind it.

**Slack’s User-Centric Development**: Slack’s approach to integrating user feedback into their product development cycle showcases how focusing on usability and user experience can drive business growth and user satisfaction. For a deep dive into this kind of process, Jake Knapp’s ["Sprint"](https://www.thesprintbook.com/) is highly recommended.

**Airbnb’s Design Overhaul**: Airbnb’s rebranding and website redesign, which focused heavily on improving the user interface, enhanced the overall user experience, leading to increased user engagement and business growth. Ed Catmull’s ["Creativity, Inc."](https://www.amazon.com/Creativity-Inc-Overcoming-Unseen-Inspiration/dp/0812993012) provides more on fostering creativity and innovation in teams.

**Spotify’s Personalized Experience**: Spotify’s use of data analytics and machine learning to create personalized playlists like "Discover Weekly" enhances user satisfaction and engagement, illustrating the power of user-centric innovation. Nir Eyal's ["Hooked"](https://www.nirandfar.com/hooked/) explores how to build products that create customer habits.

## Moral of the Story
Returning to 2023 (almost 2024), the lesson from da Vinci's time still applies. It's not about deploying untested features or neglecting user education. It’s about enhancing processes for the end-users – your customers. Even if you fail occasionally, like Leonardo did, the effort to improve user experience is crucial.

## Let's Wrap It Up
Functionality is vital, but don’t overlook the user experience. Think about how you can improve it continuously. Quick wins matter, especially when resources are limited. Be the alpha-tester of what you create, always considering the user’s perspective.

In my work with [Cerbos](https://cerbos.dev), I apply the lessons learned from Da Vinci to tackle authorization challenges. Our approach is to create solutions where functionality seamlessly integrates with developer experience. Constantly iterating and viewing the tools through the users' lens, helps ensure that our access control solutions are robust and dev-friendly.

That's my take on the topic, what'd be yours?

<a href="https://github.com/cerbos/cerbos" class="ltag_cta ltag_cta--branded" role="button">Support Cerbos with a GitHub  ⭐</a>