We have all heard the stereotypes: Computer guys are hard to deal with. They speak another language, they have no patience for those who cannot understand as quickly as they can, and they have little ability to effectively communicate what is wrong with the way someone is using the computer or software.
Unfortunately, (or fortunately, however you choose to look at it), most of the time we computer folk do not create software for our own kind. We create software for everyone else. This cultural clash can result in a disconnect between the development team and the people for whom the software is built: the customer.
To be better able to meet our customer’s needs, we need to understand who they are and what makes them do things the way they do. It is not up to us to decide how a customer should do something. It is up to us to design and develop software that enables our customers to get their jobs done more efficiently.
“But really,” you ask, “sometimes the customer wants to do something that makes no sense.” It is human nature to prefer to do things in a way that is familiar to you. You have probably never thought about most of your actions in an analytical way. Imagine if you were tasked to explain to someone what it means to be an American (or any other nationality). You don’t normally think about it. You just are. It is in your nature to make assumptions about these unwritten behaviors and project those onto another person or group. Someone from a different culture examining your lifestyle could likely fill volumes, whereas you could probably only fill pages. Similarly, customers may not know why they do things a certain way. We tend to project our ways of doing things onto them and their processes.
Cultures differ across countries, counties, cities, across departments in large corporations, and even teams (think about the .NET team vs. the java team). When observing someone else’s culture, it is natural to describe only the differences and to do this in mostly negative terms. “They don’t do this . . . ” or “They don’t understand why it is better to do it my way. . . .” In reality, your way is probably not better. It is true that there might be a better way, and it is important to help the customer see that. However, before judging and condemning the situation, take some time to understand the customers’ culture and why they perform certain tasks the way they do.
So, how does all this lead to better-quality software? No matter who you are or what position you hold on a team, understanding of your customer’s culture can help you produce better software. From user interaction to development to testing, knowing the fundamental and cultural reasons why a customer would prefer one thing over another can help you deliver a software solution that better meets customer needs. It will also help develop better working relationships with our customers as they begin to feel that we really understand them and their processes. The more they trust us, the more they will open up to us and be willing to work with us. When we realize that building software is not simply about gathering and implementing technical requirements, we can grow into the role of a trusted partner faster and with less conflicts and cultural clashes.
Many of the ideas presented only touch on the expanding science of “Cultural Intelligence.” Take some time to understand and assess your own skills in working within another culture. More information can be found here: Jayson Christianson is a senior quality assurance engineer for the Church.