The Prime Directives

The three Prime Directives for Open Source Software Engineering are:

1. The system successfully accomplishes a useful task.

The system does not have to include every bell and whistle to accomplish a useful task. Indeed, the art of incremental development is to determine the smallest useful increment of functionality and implement that first.

In most cases, careful thought, ample customer interaction, and efficient design and implementation can lead to a first customer release with a single useful function within weeks after project inception.

A system developer cannot verify that the system achieves PD#1. Only an external end-user can.

2. An external user can successfully install and use the system.

The system must include sufficient user-level documentation to support download, installation, and use of the system without significant interaction with a system developer.

We will explore standards for packaging and user interfaces that support, but do not guarantee, Prime Directive #2.

A system developer cannot verify that the system achieves PD#2. Only an external installer can.

3. An external developer can successfully understand and enhance the system.

The system must include developer-level documentation providing insights into the design and development of the system that enable an external developer to understand and enhance it.

We will explore standards for code formatting, design documentation, and development status that support, but do not guarantee, Prime Directive #3.

A system developer cannot verify that the system achieves PD#3. Only an external developer can.