The golden rules of software (part 2 of 3)

Making good software isn’t hard. But in the race to generate more revenue, businesses sometimes lose sight of what’s important. In fact, sticking to a few basic rules can help you grow your bottom line.

In this three-part series, I explain how the golden rules of software development will help you create software people love so your business thrives. I already covered the hardest rule (Know Your User) in part one. Here in part two, we’ll explore the importance of creating a seamless experience, both in terms of consistency and functionality.‍

Rule №2: Provide consistency

Businesses don’t have one digital presence anymore — they have many. They interact with customers over email, social media, their websites and live chat, just to name a few.

But too often, it feels like the left hand isn’t communicating with the right. Your bank emails to say you’re preapproved for a new credit card based on your spending level. But when you click the link, you’re asked for your name, address and social — information you’ve given your bank countless times. Instead of the site pulling up the data from some central location, you have to enter it all again. You’re the customer, but you feel like you’re doing the work.

Or you call your internet company, provide your details and describe your problem to the automated system. After 20 minutes of being put on hold, you finally talk to a representative — only to have them ask you again for your account number and the nature of your problem. If you’re unlucky enough to get passed to another service tier, you go through the process yet again, Groundhog Day-style.

Why can’t your service provider pass a few pieces of data from department to department? The answer is depressingly simple. You feel like you’re dealing with six different organizations because you basically are. Large enterprises are organized into silos that don’t talk to each other, and as a result, they can’t act with a single voice.

Under the hood, each of these customer touchpoints relies on different systems that are run out of separate organizations with their own P&Ls, tech teams and management. From their customers’ point of view, however, it’s just one company that can’t get its act together.

Delivering a consistent customer experience across channels (an omnichannel approach) isn’t easy, which is why so many organizations fail at it.

Businesses need to start by establishing common visualization (such as branding and icons) and interaction standards (such as the order in which information is presented) across touchpoints. At the same time, customer choices must remain appropriate for the specific channel (for example, using the “hamburger” version of menu options in a mobile context, or common phrases in an automated voice system or a chatbot).

The trickier part is creating logic for those inevitable scenarios when there are multiple data sources serving up conflicting information. Maybe you signed up for your checking account with one email address, but set up your mortgage loan with the same bank using a different email address. Great omnichannel companies manage this by creating business rules to coordinate data, resolving duplicate information and optimizing business resources.

Providing seamless experiences is harder than it looks. But customers don’t care how hard it is. Your competitors are just a click away, so they’re not inclined to cut you any slack. The only solution is to do what it takes to give them the same service in every channel, on every device.‍

Rule №3: Make it work

It should go without saying, but software has to, you know, function. In this era of moving fast and breaking things, this basic principle sometimes gets overlooked.

Last year, Chipotle celebrated National Avocado Day with a coupon code to add free guacamole to any order. The fast-casual Mexican food chain apparently didn’t anticipate the demand from avocado-crazed Americans, who swamped Chipotle’s web servers, making it impossible to redeem the offer and forcing Chipotle to extend the promotion and issue an apology committing “to making our digital options bigger and better in the future.”

Embarrassing, for sure. Luckily, these are the sorts of problems software engineers love to tackle since there are usually clear right answers.

Before you launch a new product or feature, consider this basic checklist:

Next Up: Designing software that is both secure and delightful

Easy-to-use software is essential. However, even the most user-centric and high-performing product is worthless if it exposes customer or corporate data or its design doesn’t engage users. I cover these issues in the next and final article in this series.

Originally published at




100% US-based Agile developers, designers and strategists who create great software for enterprises and tech companies.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Docker Introduction: Hands-on With Docker — Part 2

PlutosNetwork To show our full confidence over the long-term development of #PlutosNetwork, today…

Ball allow indeed space.

[LeetCode]#195. Tenth Line

Can We Move Beyond Our Focus on Female Coders?

What makes an agile team, agile; and a waterfall team, not?

How to Install Vim on Any Operating System

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store


100% US-based Agile developers, designers and strategists who create great software for enterprises and tech companies.

More from Medium

About following the Hype

Source: Vlad Mihalcea (Java Champion):

Working with a stack you don’t know

Oracle’s Unsustainable Business Practice

What makes the best software developers in the world?