Title: Airavata Roadmap Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 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. ![Airavata Agile Development](/images/agile-development.png "Airavata Agile 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 Apache Airavata follows [Test Driven Development][tdd] development process. Details on the process followed and example test cases are listed in Airavata TDD [wiki page][tdd-wiki]. ## 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][downloads]. Please communicate your feedback, and requirements through the mailing lists and JIRA. [downloads]: /about/downloads.html [tdd]: http://en.wikipedia.org/wiki/Test-driven_development [tdd-wiki]: https://cwiki.apache.org/confluence/display/AIRAVATA/Tests+in+Airavata