Peter Miller (software engineer)

Peter Miller (16 October 1960 – 27 July 2014) was an Australian software developer who wrote Recursive Make Considered Harmful and created Aegis and cook. He also proposed a set of "laws" for modern software engineering and architecture in the early 1990s:

Miller's laws are:


 * 1) The number of interactions within a development team is O(n!) without controlled access to the baseline. If the development team does have controlled access to the baseline, interactions can be reduced to near O(n), where n is the number of developers and/or files in the source tree, whichever is larger.
 * 2) The baseline MUST always be in working order.
 * 3) The software build/construction process can be reduced to a directed, acyclical graph (DAG).
 * 4) It is necessary to build a rigid framework of selected components (aka the top level aegis design).
 * 5) The framework should not do any real work, and should instead delegate everything to external components. The external components should be as interchangeable as possible.
 * 6) The framework should use the Strategy pattern for most complex tasks.