Understanding use cases

In implementing any software, it is invaluable for a programmer to have a good understanding of the use cases for the software.

For this, having good communication with the customer is a good way to start. Also, the communication needs to be documented well.

Given a clear set of requirements, the programmer can go ahead and implement the software in a way which matches the needs of the customer.