Apache Airavata roadmap will always be evolving. The development process is very agile with continous interaction and feedback from the community. The following figure illustrates Airavata's iterative and incremental development.
The development process is to emphasise:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
The above development philosophy is based on:
Agile Manifesto Copyright 2001: Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas.
6-Week Release Cycle
Apache Airavata follows a 6-week release cycle.
Prioritization - 2 weeks: During the first two weeks of a release cycles, feature requests are disucssed on mailing lists and entered in JIRA.
- To keep focus on quality then quantity, only one or two major features created as epics or stories are identified.
- Smaller tasks and imrovements needed are identified.
- Any existing JIRA's intended to be featured are targegd for the upcoming release version.
- This the period for the community to respond and make specific requests if they have a burning feature they would like to see prioritized in the next release.
- At the end of the 2 week period, the features are freezed.
- The upcoming release notes are advertised with only exception of bug fixes to be added later.
Design & Development Hack-a-Thon - 2 weeks: The development happens continoulsy but this phase if for focused release goal. More importantly the design and development happens in parallel with 2 week prioritization phase, making it 4 weeks.
- Brainstorm the major features added as epic's and stories and break them down into smaller tasks.
- Active development period.
- Address any deferred issues from previous releases
- Pay attention to bug fixes reported from previous releases
- Code freeze for new additions and except for bugs identified in testing and release phase.
- Defer any un-finished issues to next release
Testing & Documentation - 1 week: This phase will focus on extensive unit level and integration testing with iterative Release Candidates.
- The RC testing among other random testings will need to ensure all advertised release features/bug fixes are properly tested through.
- Improve over all documentation along with creating release specific documentation.
Release - 1 week:
- Continue to fix issues identified in RC testing.
- When an RC is stable, call a release vote.
- Wrap up the release.
- After couple of RC's, the trunk is opened for new development.
Test Driven Development
Providing input to roadmap
Airavata Community comprises of project management committee/committers, contributors and user community. The community inputs new features, improvements as epics, which are essentially use cases that need to be further analyzed. The epics or larger use cases are further broken into manageable stories. Based on developer interests and active community requests, the stories are prioritized and tagged to an upcoming release. The release manager initiates a list of features and bug fixes and community responds by highlighting pending JIRA's to be addressed in the release. Once the release is planned, the design, development and release cycle spins through the next iteration.
For detailed apache airavata feature list, please see the release notes for individual releases.
Please communicate your feedback, and requirements through the mailing lists and JIRA.