Jazz - A Software Development MethodologyWhat
Jazz is a software development methodology for the ongoing creation and improvisation around several small apps distributed on open Internet platforms (the "cloud").Why
Contemporary tools, languages, and distribution platforms of the 21st century make it feasible for software to be created, delivered, and performed similarly to Jazz music of the 20th century.
Software, like music, may be consumed repeatedly throughout the day by audiences.
Software has become ubiquitous and essential to people's everyday lives.
Audiences increasingly are demanding to know more about the personalities and teams behind their favorite software applications.What (Apps)
Jazz combos seek to build a repertoire of several small apps, as opposed to developing and supporting one large app. Jazz is most suitable for Developers distributing applications through online stores (such as the Apple App Store, Google Marketplace, or Salesforce AppExchange).
The repertoire should consist of at least 10 apps.
Not all apps are for commercial distribution (such as contributions to open source frameworks and proof of concept apps used for marketing purposes).
Only 1 in 10 apps within the repertoire will achieve any significant amount of notoriety or market adoption.Who (The Combo)
Apps are initially composed by a single person, which are then rehearsed and performed by combos of up to 5-7 people. Apps are occasionally composed by 2 collaborators.
Apps are consumed by audiences (customers).Where (Spaces)
Jazz is composed, rehearsed, and performed in 3 distinct "spaces".
Composition and practice are done in solitude (home, coffee shop, the beach) but always connected (anywhere with Internet access)
Rehearsals are done with a group about once per week in public meeting places
Performances are ongoing. They occur both virtually and physically. All audience interactions are performances (this includes app store listings, webinars, support, and customizations)When
Jazz is not a 9 to 5 job. However, ongoing performances are typically supported by someone during working hours.
Jazz Developers dedicate at least 3 days per week to uninterrupted work (composition and improvisation) and at least 1 day for group rehearsals (meetings) and audience interactions (support and review of customer feedback).
Compositions may take 1 day or 1 year to write. It should take no more than 2 years to accumulate a repertoire of 10 apps.
Team members are often given "the floor" during performances to lead and improvise within a composition. Improvisations are short creative cycles within the overall structure of a composition.How
Each member of a Jazz combo owns and maintains their own instruments (tools) that best support their function within the combo.
Academic mastery of instrument and language are assumed before confidence in composition and improvisation can be achieved.
Jazz combos are unified in language presented to audiences, but individually use languages specific to their instrument or function.
Jazz encourages the sharing, remixing, and reuse of ideas through use of creative commons
All individuals are given public recognition for their contribution to an app.
Performers may practice up to 10 hours for a 1 hour performance (10:1 ratio of effort, unit tests behind released products).
The best performances are achieved through mastery of instrument, confidence in skills, and relaxation of mind.
The result is more important than the means. Don't over think the process to achieving a good performance.
Improvisations often rely on audience feedback to determine the path of a performance.
The Jazz combo may dynamically adjust composition structure during a performance through subtle communication to support an improvisation that may lead to new discoveries or increased levels of audience feedback and participation.