In the initial phase of the project, the purpose and overall functionality of the application is defined. The duration varies, as some clients has a well defined specification already. Others need to discuss possibilities and options before deciding what to implement.
The proposal is a comprehensive document which contains all the necessary details to implement the application. Everything from interfaces to graphical design is covered. Different options can be included in the proposal, each defined by functionality, price and duration.
The project plan breaks down all the part of the implementation to tasks. When the client is involved in the project (clearing access to existing system for example), these tasks will appear in project plan as well. The project plan is available on-line to the client.
Alpha code is for development only, i.e. the client never runs this code.
Code documentation is written as an integral part of the code, following very specific rules. This makes the documentation very useful for the programmer. The strict documentation syntax makes it possible to automatically generate the complete documentation for the system. This includes object hierarchies, methods etc. The documentation is generated on a daily basis and is available on-line to the client.
All code versions are stored in a repository. This makes it possible to develop several code branches simultaneously, roll back to previous releases and examine individual file revisions as well as much more.
Beta code is the current release candidate. Beta code is never modified. It is as fixed as release code.
Beta testing is the process of testing all functionality in the application. This is usually done by non-programmers, following a scheme.
Bug found by either during the beta-test or in production are registered in the bug registration system, Bugzilla. This provides an overview of bug history as well as all details about every bug. The bug system can be accessed on-line by the client.
After the beta code passes test, it is ready for release. The client decides when the code release takes place.