Categories
Software Architect

Your Customer is Not Your Customer

Book: 97 Things Every Software Architect Should Know
Publisher: O’Reilly Media
Author: Richard Monson-Haefel
97 Things Every Software Architect Should Know – 82/97

'Coz sharing is caring

As you work in requirements meetings to design software, pretend that your customer is not your customer. It turns out that this is a very easy thing to do, because it is true.

Your customer is not your customer. Your customer‘s customer is your customer. If your customer’s customer wins, your customer wins. Which means you win.

If you’re writing an ecommerce application, take care of the things that you know people who will shop at that site will need. They’ll need transport security. They’ll need encryption of stored data. Your customer may not mention these requirements. If you know that your customer is leaving out things your customer’s customer will need, address them, and communicate why.

If your customer willingly and knowingly doesn’t care about certain important things that your customer’s customer cares about—as happens from time to time—consider stepping away from the project. Just because Sally Customer doesn’t want to pay for SSL every year and wants to store credit cards in plain text because it costs less to build, it’s not okay to just agree. You’re killing your customer’s customer when you agree to work you know is a bad idea.

Requirements gathering meetings are not implementation meetings. Forbid the customer‘s use of implementation-specific terms unless it’s an absolute, or well-understood problem. Allow your customer to express only the Platonic ideal, his concept and goals, rather than dictating a solution or even using technical terms.

So how do you maintain such discipline in these meetings, which can be deceptively difficult? Remember to care for your customer‘s customer. Remember that while your customer is writing your check, you must be clear that you need to honor best practices, so that you can make what the customer really needs, not just what they say they need. Of course, this takes lots of discussion, and clarity as to exactly what you‘re doing and why.

Perhaps, as with so many things in life, this is best clarified by a poem. In 1649, Richard Lovelace wrote “To Lucasta, on Going to the Wars”. It ends with the line: “I could not love thee, dear, so much, / Loved I not honor more.”

We cannot love our customers so much, love we not their customers more.

'Coz sharing is caring

By Swatantra Kumar

Swatantra is an Open Source evangelist, a technologist and researcher. Professionally, he does software development, software architecture, server administration and project management. When he's not writing software, he enjoys building web entities and servers, reading about and working with new technologies, and trying to get his friends to make the move to open source software. He's written, co-written and published many articles in international journals, on various domains/topics including Open Source, Networks, Computer Organization, Mobile Technologies, and Business Intelligence. He made a proposal for an information management system at University level during graduation days.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.