STAGE 1: Settling application business logic
Our experts are involved in the process. At this stage we appoint a person responsible for customer communications. Here we perform technical evaluation by the following criteria (no code is being written yet):
- Possible ways of implementation (technologies, tools, etc.);
- Possible technical risks;
- Preliminary design.
After this stage, a decision is made together with the client whether we start the project or not. Also, the technologies have been chosen by the time.
STAGE 2: Elaborating technical specification
At this stage we work the project through. We separate it into individual blocks. We determine the jobs that are to be done. We conduct more detailed technical evaluations (which may include writing the code) that allow for taking specific technical decisions in advance.
The technical specification is composed in terms that are comprehensible for the customer. It is then APPROVED by the customer. The specification includes the evaluation of deadlines and the approximate dates of milestones.
STAGE 3: Development
At this stage all engineering and development takes place all way down to producing a working version and submitting it for testing. That mean the development process: implementation, debugging, graphical and technical design, compilation and field trials. Project management is done in two week spans, and we can provide reports on the progress. Normally, once in a month we do our best to provide visuals that illustrate the results (demo versions, demo videos of working versions, screenshots, descriptions).
Each month we provide a full report on the jobs done. It includes the list of jobs, time spent, developers (if required by the contract terms) and the results. This report is the referral document for invoicing.
What should we do if the requirements have changed during the development process?!
Nothing special happens. We just accept the new requirements and develop according to them. The client just should be aware that this changes the initially agreed deadlines and costs. These can be monitored through the data that we provide.
The end of the stage is normally marked by the release of a product's beta version (fully functional but still full of bugs). Here we get the approval of the beta version and the descriptions for it. After that we move on to the next stage.
STAGE 4: Testing
Testing is conducted in compliance with the documents prepared by the developers and a description approved by the customer. QA engineers compose a testing plan (it's available to the customer for revising), manually test the product and do automated testing (if agreed with the customer) where necessary. Also, at this point we do comprehensive security scanning. Testing results are submitted to the developers who then do bug fixing and improvements. This part of the project is managed via a bug tracker.
As the stage's output we have a product that is ready for release. So, we move on to deployment.
STAGE 5: Deployment
Here, we are as full-service as in the earlier stages. We design the production infrastructure and the staging infrastructure (if required). When necessary, we order the hardware and configure servers, balancers, other networking devices, security, etc. After that the deployment follows.
Normally, deployment takes 1-2 days, and the client is informed on all important events in the process. During deployment a dedicated person who is available 24/7 is assigned to the customer.
After product deployment, we can pick it up for technically driven monitoring supervised by engineers working 24/7/365. The monitoring service traces product's functioning indicators. If those surpass the admissible values, the monitoring engineers notify the engineering services that measures need to be taken. For resolution of critical issues, the engineering services are available 24/7. Also, security scanning and monitoring is a part of the maintenance process.