Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Most software applications are not used by their own developers; they are intended to be used by the developer's customers, clients, and end-users. This implies that someone in your development organization had better spend a lot of time communicating with users so that their requirements can be correctly understood. In the calculator example from the first commandment, a developer may be perfectly happy with the four basic arithmetic functions while the user would like a square root function or a memory function. What the developer thinks is a complete set of requirements isn't necessarily so.
Moving from a trivial to a real world example, an enterprise-wide IT application may have many types of users, each with their own business requirements. Take a payroll system for example. One type of user is the employee, whose requirements include getting paid the correct amount in a timely fashion. A second type of user is a manager, who wants to be able to administer salary increases and track budgets. A third type of user might be the HR administrator, who wants to compare salary ranges across an entire organization. Each user type will have unique requirements.