Time is the precious commodity that drives software development, and lack of time is the biggest problem that software developers face. The more effectively and efficiently we can use our time, the better off we and our customers are.
Building software is a communication activity: communication from customers to developers, communication among developers, reading and writing code, and using the developing application to communicate back to the customer. All of these things take time, and any one of them may take much more time than actually creating the software. Reducing the amount of time required for any of these major communication activities reduces the overall development cycle.
Customers want a product that works in the shortest possible time. Anything that we can do to shorten the time from assignment to delivery increases our value to customers.
Change is the one certain aspect of every development project. We will adopt strategies, processes, and tools that make it easy for our software development to adapt to these constant changing requirements.
Any time spent on repairing software is time that cannot be spent developing new software or mastering new techniques and tools. We will adopt strategies, processes, and tools that increase the reliability of all of the software that we build.
Adaptability to change and reliability are the most important factors in maintenance. Reducing the work involved in maintenance frees up major resources to spend on project development.