What happens when I apply Maslow’s hierarchy of needs to software?
- Breathing: There is a user for this software.
- Sex: It compiles. Software that does not compile has no future.
- Morality: It adds value. Software that does not add value does not survive.
- Security of body: The software is under version control.
- Security of health: There are no compiler or static analysis warnings.
- Security of resources: There are limited signs of broken windows. Tests, if any, run successfully. Commented out code is minimal.
- Friendship: The software meets the needs and expectations of the users
- Family: Developers enjoy working on the software
- Achievement: Developers are proud of the software
- Confidence: tests and quality assurance mean making changes is a low risk proposition.
- Respect of others: Future developers needs are considered
- Respect by others: Users and stakeholders trust in the software to meet their needs.
- Morality: The code is “Good”.
- Acceptance of facts: The software has executable Acceptance Tests to define it’s requirements.
- Lack of prejudice: The problem domain is perfectly expressed in the source
- Creativity, Spontaneity: It is easy and cheap to experiment with the code.
This may be a flawed extension of a flawed model, but the central point is that before the basic physiological and safety needs of the software are meet it is really difficult to focus on the higher motivations of software development. This might also provide some clues as to where to start cleaning house on legacy renovation project.