Our Approach

Success of our process is based on well-defined milestones that signal transition from research to production phases of a project. Earlier phases focus on functionality, while later concentrate on achieving product qualities (robustness, performance, commercial presentation)

Inception Phase

Inception phase defines product ideas and requirements (Requirement specifications).

The goals are:

Determine the scope of the software, what is and what is not intended to be in the products. Define primary usage scenarios.
Capture formal requirements and acceptance criteria.
Demonstrate at least one candidate architecture.
Estimate cost and schedule for the project.
Estimate potential risks and reasons for changes.

Project team composition
Our management team focuses on planning, with collaboration from other teams to ensure that the plan includes all perspectives.

Design and Elaboration Phase

Design and elaboration phase produces design, architecture and functional prototype.

Design and implementation plans are set down with:

  • Design specification
  • User interface specification
  • Test plan, and outline of test cases
  • Functional prototype that illustrates the most important usage cases, and proves technical feasibility of the architecture
  • Project schedule

Project team composition
This is an architecture-focused stage. It is supported by software development and software QA as necessary to achieve stable architecture.

Construction and Implementation

The team rapidly constructs initial version of the system early in the development process. This early integration allows:

  • Refine driving requirements
  • Stabilize basic architecture
  • Address high-risk areas Subsequently development proceeds as an iterative process adding features, performance and stability.

Iterative development process. Each design element, and along with its documentation is 'elaborated' through analysis, design, and implementation. It allows more details to be added in successive iterations, along with enhancements, and refinements.
The key is that this approach allows to incremental releases of individual modules to be continuously integrated into the integrated system.
It improves reliability, flexibility, and makes the system extremely tolerant to requirements changes during implementation.

Object-Orientation and Component lead to:

  • Greater reuse of developed objects and commercial 3rd party component libraries
  • Increased programmer's productivity
  • Better readability of code and documentation
  • Improved software quality
  • Flexibility that allows low-cost changes in design and functionality
  • Shorter development cycles

Project team composition
As most of the activity occurs in software development and QA teams, this step sees the most balanced team.

Beta Testing and Completion Phase

Beta-testing usually includes several iterations of pilot-releases. It provides important feedback from end-users, and assures that acceptance criteria are met.

We help supporting users in the initial product use and react to user feedback.

We develop or assist in development of user documentation and training materials.

Technology transfer is an important part of completion phase, and includes archiving of the project, both for our on-site storage and our offsite, secure storage, as well as for the client. Archiving is done on CD, and includes:

  • Source code
  • Assets and resources
  • Listing of tools used, including versions and verification that registered copies of the tools were used
  • Complete project documentation
  • Email between ALG and the client, and between members of the project team
  • Description of the product
  • Automated test scripts and results
  • Manual test logs

After making the first copy of the archive, we test the code again to make sure the product can actually build on a clean development platform from just the source that is on the CD, based on the instructions provided.

Project team composition
This stage is the most customer-focused, as usage feedback drives release deployment.