Peter Miller (16 October 1960 – 27 July 2014) was an Australian software developer who wrote Recursive Make Considered Harmful[1][2] 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:
- 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.
- The baseline MUST always be in working order.
- The software build/construction process can be reduced to a directed, acyclical graph (DAG).
- It is necessary to build a rigid framework of selected components (aka the top level aegis design).
- 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.
- The framework should use the Strategy pattern for most complex tasks.
References
edit- ^ Graham-Cumming, John (15 July 2005). "Recursive make Reloaded". Linux Magazine. Archived from the original on 15 July 2007. Retrieved 13 April 2018.
{{cite news}}
: CS1 maint: unfit URL (link) - ^ "Google Scholar".
External links
edit- Debian Project mourns the loss of Peter Miller
- Archive of Miller's website including software, books, and papers
- Maintenance repository of Miller's Aegis on GitHub
- Maintenance repository of Miller's Cook tool on GitHub
- Home page of Miller's Aegis software configuration management tool on SourceForge