We have adopted a three phase development cycle. The three phases are:
- Alpha Phase; refactoring and Development.
- Beta Phase; Testing, Documenting and Fine Tuning.
- Stable Phase; Stabilization, Public Information, etc.
These three phases are also known as the Opening, Mid-Game and End Game among project managers. As you can see each phase has a different main focus, focus in the Alpha phase is on Development but shifts to Documentation and Testing for the Beta phase and finally to Public Information in the Stable phase.
The Alpha phase of the development cycle is when we decide on what the goals are for the next release. This is by far the most important part of the process and is done in complete consultation with the community through the submission of public White Papers. The acceptance of papers sets the functional requirements for all the goals in the release.
This is a time for fixing more complex issues that have arisen from the previous version, for implementing new features and functionality, and for dropping parts of the code that have been previously earmarked for removal, or deemed to be no longer necessary.
During this time the development trunk will be in a state of flux and break from time to time. Several Alpha releases may be made to allow the user and third-party developer community to comment on the progress of the work in terms of the goals set.
By working closely with third party developers as we transition from the Alpha to the Beta phase we hope to be able to provide all necessary information and support to ensure that their extensions are compatible with future versions of Joomla!
The Beta phase of development indicates a major milestone in the development cycle. At this phase we move from pure development towards testing and documentation. From a development standpoint, focus shifts from implementation to stabilization. At this point community input is extremely important and we increase our outwards communication towards third party developers. Together we analyze and solve breakages, improve performance and finetune the API where necessary.
This stage of the process signifies several things: We are now framework feature complete. Documentation effort on the API begins. Third party backwards compatibility testing on the framework begins. Core extension refactoring and user interface changes begins.
During the stable phase we release one or more release candidates. At this phase code base is considered stable and secure and any final bugs are taken care of as they come to our attention. It is during this phase of the development cycle that the software is packaged and released. Most attention goes into promotion and public information.