Software development teams use the word “customer” a lot. But there are different kinds of customers. Being aware which kind of customer you are talking about can help you to deliver better results.
My view is that there are different kinds of customers, with different product needs. A first kind are the customers that use the product that you develop. For instance, if you are developing telephone communication systems, that would be you and me, when we are calling each other with our (mobile) phone. They are often called end-users, since they are the persons that in the actually use the product. Their focus is often on the functionality of the product: Will it solve their problem, will it be easy to use? Depending on the kind of product, they also look at thing like quality, design and reliability.
A second kind of customers are the ones that are buying your product (read: paying money for it). Sometimes these are the same customers, e.g. if you develop software that can be used on a PC then often the person buying it is the one using it. But for many products, these are different customers. Back to the example of the telephony communication systems, for those systems the telephony operators are the ones that buy your product. Their focus will be on the services that they can provide to their customers (the end-user that I mentioned earlier), and the amount of money that they can gain with it (their business model). They will focus upon the total cost of ownership (TCO), which not only includes buying the product, but also maintaining and supporting it. For a project, the term “orderer” or “product owner” is sometimes used, to clarify that this is the person who will be paying the development and maintenance of the product, and will have to make sure that the customers will be buying the product to return the invested development costs.
Many software development methods state that it is important to have a customer representative available for a software team. This representative can define and clarify the requirements, and validate if the product will be good enough to ship to the customers. One of the first questions I always ask such a representative is which customers he or she represents: The ones using the product, or the ones buying it? To me it is important that both kinds are represented, even if that implies that there will be more then on customer representative. In such a case I want the customer representatives to communicate with each other frequently, to agree upon the product requirements.
I also find it very important for a development team to understand the different kinds of customers, and be aware on what they expect from the product. I remember a team that was developing a new product, and they were defining all kinds of functions that an end-user would want to do with the product. It would take them months before they would have all functionality ready, and the cost of testing everything would be huge. But the orderer of the product wanted to have a first product on the market within a month, to gain market share and prevent that his customers would buy products from a competitor. To tackle this, the team had a meeting where they prioritized the functionality to come up with a first version that the end-users would want to have. They also developed some initial marketing documentation, supporting the orderer to convince his customers that they we able to make money with the product, even though it only had limited functionality. The product was developed, released and sold.
For a development team it is important that you know the needs of both kinds of customers; the ones using your product and the ones who will buy it. You will need to satisfy both, to be successful!