You know, I’ve been in the developer game for quite a while now. I’ve spent countless hours diving into the tech world, watching videos on how to build stuff, comparing different architectures, you name it. But you know what really shifted my perspective? It was this one video, a real game-changer. It’s called “Steve Jobs Insult Response,” and you can find it right there on YouTube, at this link:
This video, my friend, opened my eyes to something bigger than just technical skills when it comes to building tech products. It made me realize that there’s a whole other dimension that’s equally, if not more, important. Trust me, it’s the first thing you should know as a developer.

Start with the customer experience and work backwards to the technology, you can’t start with the technology and try to figure out where you’re gonna try to sell it.
Alright, let me break it down for you. So, I’ve had the chance to work in a bunch of tech companies, and let me tell you, they can be categorized into two types: customer-centric and technology-centric. Now, the customer-centric ones, they’re all about delivering that sweet, sweet customer value. They don’t waste time over-engineering stuff. They’d rather make use of existing open-source libraries and third-party solutions that are already doing a bang-up job. As they grow, they smartly hire folks to refactor their product, giving them more control and stability while keeping that value flowing.
On the other side, the technology-centric ones. These folks, they’re all about perfecting their application architecture and going all-in on over-engineering. They’re constantly thinking about the future — how to extend, scale, and have total dominion over their codebase. The thing is, all that time and resources they pour into it? It ends up delivering less customer value and increasing the chances of failure. Yeah, I know, seems a bit counterproductive, right?
You see, the beauty of the LaserWriter’s success lies in the fact that it didn’t rely on customers having a deep understanding of the printer’s technology. Apple knew that what truly mattered was the value it could bring to their lives. Imagine this: that very first printout, a magical moment when potential customers held it in their hands. It was a tangible representation of the LaserWriter’s incredible capabilities. They didn’t need to grasp the inner workings of the machine; they just needed to witness the sheer brilliance and benefits it offered. Let me tell you, my friend, the impact was profound. People were left in complete awe, eagerly embracing this newfound technology that promised to transform their lives.

You know, I have to admit, I used to fall into the trap of being overly critical of those apps that had flashy UIs but lacked a solid backend and messy codebase. I would scoff at their lack of optimization. But boy, was I mistaken! It turns out, those applications actually brought significant value and fulfilled the customers’ needs. They bought time and saved money for the project to grow, and eventually, they could transform that seemingly “ugly” thing into something stable and robust. It’s a lesson I’ve learned the hard way — sometimes, it’s all about delivering what the customers want, even if it means prioritizing aesthetics over technical perfection in the initial stages.
“Keep it simple, stupid!”
is a design principle noted by the U.S. Navy in 1960, which is the word to live by.
While technical brilliance and complex code may seem appealing, they should never overshadow the ultimate goal of delivering customer value. Our exploration of customer-centric development versus technology-centric approaches has revealed the transformative power of prioritizing the customer’s needs and experiences.
The cons — Always need to keep thing balance
So, you know, when we’re all gung-ho about being customer-centric, there’s this little snag we sometimes stumble upon. It’s like getting so wrapped up in giving customers the best experience that we sort of forget about the nuts and bolts, the technical stuff. They call it “technical debt,” and it’s a bit like borrowing from tomorrow to pay for today. While keeping customers happy is a must, we can’t just sweep the technical side under the rug. It’s about striking a balance, my friend. Making sure we’re not just serving up immediate wins but also building a solid foundation for the long haul. So yeah, being customer-centric is awesome, but we gotta keep our tech game not in a bad state too. I already wrote a blog about it, you can check it here https://medium.com/@whoz_/the-untold-clean-code-clean-app-9cc2e1772644
You have to be brave!
It takes courage to acknowledge that your technical skills may not be on par with those of other technically-centric developers. But here’s the thing: by embracing a customer-centric mindset, you stand to gain so much more. While technical brilliance is undoubtedly valuable, it’s not the sole measure of success.
*
By focusing on delivering exceptional customer value, you open doors to opportunities that transcend technical expertise. You gain a deeper understanding of the customer’s needs, their pain points, and their desires. This empathy-driven approach allows you to create solutions that truly resonate with your audience, elevating their experience and building lasting relationships.
So, be brave and recognize that your value extends far beyond technical prowess. Embrace the power of customer-centricity, and you’ll discover a world of possibilities waiting for you. It’s not about being the most technically skilled developer; it’s about being the one who brings true value and makes a lasting impact.