Lefkowitz: Open Development Lifecycle, Quintillian Rhetoric, Juggling

By Timothy M. O'Brien
July 23, 2008
r0ml.jpg

Robert Lefkowitz (r0ml) discussed software development methodologies at Tuesday night's OSCON session. He began by observing that while there are numerous software development methodologies, none of them capture the open source "ethos". While many organizations are trying to adopt None of them model the structure of open source participation. r0ml, "Perhaps there should be an open source development methodology."

Surveying the Current Software Development Methodologies

He proceeded to catalog three current approaches to software development focusing on the stages of development and implementation. Microsoft Solutions Framework :

1. Envision
2. Plan
3. Build
4. Stabilize
5. Deploy

Then he moved on to the stages in the Rational Unified Process which differ in name but cover the same stages in the software development lifecycle:

1. Inception
2. Elaboration
3. Construction
4. Transition

Agile's software development lifecycle shares a similarly staged approach (with the exception of "Death"):

1. Exploration
2. Planning
3. Implementation
4. Productionizing
5. Maintenance
6. Death

Enter Quintillian's Institutes of Oratory (80 AD) and a Juggling Compendium

Quintillain.png

r0ml then compared these methodologies to a two thousand year old work: Quintillian in 80 AD put out a series of works called the Institutes of Oratory. Which include the five stages of argument (rhetoric):

1. Inventio - Getting the facts
2. Dispositio - Arranging facts
3. Locutio - Choosing the exact words
4. Memoria - Fix in Memory
5. Pronuntiatio - Presentation

r0ml noted a striking congruence between Quintilian's model of Rhetoric and the Microsoft Solutions Framework, Rational Unified Process, and the Agile Methodology. Noting that each of these three methdologies seem to be derivatives of Quintillian's timeless wisdom. Taking advantage of 2000 years of thought, he opts to use Quintillian's stages as the basis for a new Open Source Software Development "Methodology".

Melding Quintillian with Christopher Alexander's Timeless Way of Building "things are given character not by the actual geometry of the place, not by the structure, but by the events that happen therein".... Quickly moving on to The Compendium of Juggling he noted that there are two views of juggling, typical notation keeps track of where the balls want to go, and you give explicit instructuions where and when to throw each ball. The other approach is to react to situations as they arise, explaining that the fundamental problem facing a juggler is that at any point in time a juggler has a ball in each hand, and a ball headed for a hand. This, more causal methodology then becomes not "throw when you can, but throw when you must". Or, as r0ml puts is, "focus on the exception".

The Lefkowitz Methodology

Using Quintillian's stages of development, Lefkowitz proposed a new cycle, a new series of stages that accurately model open source development. This new open source methdology begins at "Memoria", contrary to corporate development, the software doesn't start at an inception phase, it begins when it is commited to version control. This Memoria phase is followed by the Pronuntiatio stage during which an open source project's artifacts are distributed to the public. Pronuntiatio is followed by Inventio which is driven by users filing bug reports and submitting patches. Inventio is followed by Dispositio during which patches and bugs are "triaged" by the project. Dispositio is then followed by Locutio, choosing the exact "words" for a software release, which then feeds back into Memoria, the act of committing a release version to a version control system.

ExceptionalSoftware.png

Important differences between the Lefkowitz methodology and existing, more-corporate focused metholodogies.

0. The methodology starts when you commit a version a release, when you commit to version control.
1. You run the software, none of the other methodologies including using the software as a part of the process.
2. Audience is important, pronouncitio, inventio, and to a lesser extent dispositio happen in parallel in a large community of users and developers.
3. There are no requirements, you just have bug reports and patch submits. r0ml, "Why do we have requirements, we have requirements because we want to agree up front what we want to do. This is a mistake, the reason you do this is because you are afraid you are going to make a mistake" "The idea of requirements is to synchronize everything up front." In r0ml's model, this "global lock" is moved to integration, everybody can go off and do what they want to do and "we'll decide later if we want to integrate it".

Oh, and did I mention that everyone was laughing throughout the entire presentation? While much of the presentation was a joke, it pointed to a working model of open source participation.

Then Damian Conway Created a Singularity

Then Damian Conway talked about Quatum Relativity, Relativity, and Rod Logic in Perl, and I lost track of time. Read chromatic's account of Damian's talk, I'm not 100% sure, but I think the weight of Damin's presentation created a singularity, I don't remember much between 10 PM and this morning due to the positronic radiation.


You might also be interested in:


Popular Topics

Archives

Or, visit our complete archives.

Recommended for You

Got a Question?