Why Your Software Isn’t as Great as You Think (And How to Fix It)

Let’s cut to the chase. You’ve spent months crafting this new feature. The code is clean, the interface is slick, and you’re convinced it’s going to disrupt the industry. But when you launch, users treat it like a pop-up ad on a dial-up connection. What happened?

According to Jeff Bezos, customers are eternally dissatisfied and that opens doors to innovating on their behalf.

Before Amazon, I remember leading a development team where we built this state-of-the-art scheduling tool. We were so focused on outdoing our competitors—adding more features, integrating the latest tech—that we forgot to ask our users what they actually needed. The result? A bloated product that nobody wanted to use.

Customer vs. Competitor Obsession

In the tech industry, it’s tempting to fixate on what your competitors are doing. They’ve implemented a new AI algorithm? We need a better one. They’ve launched a mobile app? Ours has to have more features.

But here’s a radical idea: instead of obsessing over your competitors, why not obsess over your customers?

Amazon excels at this. Trust me, I would know because I worked with them for 10+ years. They’re not trying to mimic or outdo other retailers. They’re laser-focused on providing the best possible experience for their customers. They’re constantly asking, “What does the customer want?” rather than “What are our competitors doing?”

Who Is Your Real Customer?

This might sound basic, but it’s crucial: who is your customer? For software engineers and managers, your customers could be end-users navigating your application, other developers using your APIs, or businesses relying on your platform to operate smoothly.

Understanding who you’re building for is the first step. If you don’t know who your customer is, how can you possibly meet their needs?

Work Backwards from the Customer

Before writing a single line of code, start with the customer’s needs. At Amazon, they don’t begin projects without a Press Release and FAQ (PRFAQ) written from the customer’s perspective. It’s like writing the end-user documentation before the product exists.

This approach forces you to think about the problem you’re solving, how it benefits the customer, and what the user experience should be—all before getting lost in the technical details.

Trust Is Everything

In software, trust is earned through reliability, transparency, and delivering on promises. If your application crashes frequently or your updates introduce more bugs than features, users will lose faith in your product.

Amazon maintains trust by being transparent and customer-centric. For example, they allow honest customer reviews on product pages, even if they’re negative. This openness builds credibility and keeps customers coming back.

Invent on Behalf of the Customer

Customers may not always know what they want until they see it. They didn’t ask for one-click shopping or cloud computing services, but now they can’t imagine life without them.

As engineers and managers, we should strive to anticipate our customers’ needs. This means being willing to innovate and take risks to create solutions that genuinely make their lives easier.

Long-Term Thinking: Beyond the Next Release

In a world obsessed with rapid development cycles and quarterly results, it’s easy to lose sight of the bigger picture. Amazon thinks in terms of years, not weeks. That successful feature launched today was likely planned out three years ago.

Adopting a long-term orientation means investing in scalable architectures, maintainable codebases, and technologies that will serve your customers well into the future.

Looking Around Corners

Anticipating what’s next in technology and customer needs isn’t about having a crystal ball. It’s about staying curious, keeping an eye on industry trends, and listening to your customers’ feedback.

Developing this foresight is a discipline. It requires you to be proactive rather than reactive, to explore possibilities before they become mainstream, and to be ready to pivot when necessary.

It’s Not Easy, But It’s Worth It

Putting the customer first is challenging. It may mean discarding pet projects, rethinking your approach, or admitting that your initial idea wasn’t the best solution.

But consider the alternative: building products that don’t resonate with users, wasting resources on features no one uses, and ultimately losing market share to someone who got it right.

So, What’s the Next Step?

Stop fixating on your competitors’ feature sets and start engaging with your customers. Gather feedback, conduct user testing, and immerse yourself in their experience.

Remember, there are many paths to success in software development. You can chase trends, mimic competitors, or cut corners to ship faster. But if you want to build something meaningful and lasting, customer obsession isn’t just a strategy—it’s a necessity.

So go ahead, be obsessed with your customers. They might not send you thank-you emails, but they’ll keep using your products. And in today’s age and world of flickering attention span, that’s the biggest compliment you can get. Or, survey. And we all know how fun surveys are. More on that awkwardness later.

Don’t forget to signup for my newsletter below to stay in touch. Why? Because, I have an assembly line of posts like this that will culminate in a polished giveaway — just as a token of appreciation for your time and most importantly to help advance your career. You, my reader, are the reason we exist.

Don’t forget to signup for LeaderHub weekly Office Hours if you want to know more about Engineering Leadership at AWS.

You can also book a FREE 30-minute consultation to ask any question you may have about a career at Amazon, Meta, or Google.

Previous
Previous

What Software Development Managers at Amazon Really Do

Next
Next

Why some First-Time Managers Fail (And How You Can Succeed)