Understanding Customers and Their Needs

Learn what it means to focus on customers.

End-users or customers?

First of all, let us agree on the terminology that I will use in this chapter and throughout the course.

In my vision, end-users are customers; therefore, I use these words interchangeably. This group of people has the interest to utilize software products that you produce because it solves their needs. Customers can be direct (your clients), indirect (your client pays you to develop software for their consumers), external or internal to your organization. A customer may pay you a salary to build software, or they may compensate you for using a finished product that you provide. Irrespective of payment scheme and business relationships, it is crucial that you remember this distinction; customers are end-users of the application. If somebody pays you to build an app, that does not make them customers unless they are also the program’s end-users. While this separation helps you understand the techniques described below, it also allows us to delineate between essential and unimportant aspects of software development.

Sure, your clients are essential to you if they pay for your services even if they do not use the final product. But this fact is irrelevant from software development standpoints, such as quality, scalability, maintainability, and product viability, which are the focus of this course.

Again, this course will refer to end-users as customers and try to meet their needs irrespective of who pays for software development. On the other hand, satisfying the expectations of paying clients is a different problem, and not necessarily related to engineering practices as such but more to contract negotiation and business relationships. Understandably, these concerns fall outside of this course’s scope.

Get hands-on with 1200+ tech skills courses.