Development quality assurance

Serious customer estimates the contractor not only by the development costs, but also looks at the guarantees of quality, reliability, and usability of the software product for business, as well as on the guarantees of delivery terms. Violations of delivery terms, architectural drawbacks of the software, difficulty of updating the application – these problems may cause business loss of the customer’s company. Good software development flow must avoid these drawbacks.

So, which instruments for the quality assurance can we propose?

Usage of the project management software

We use project management and bug tracking tool “Redmine”, which allows project manager to set the tasks and control their implementation, and allows client to observe the project flow.

We use version control system “GIT” for team development and to control versions of the application code.

Realistic project time schedule

The time schedule helps to trace the delays from planned terms, select the critical works, and shows how the project is being developed.

Usage of reliable architecture patterns

We pay much attention to the architecture of the project. Architecture errors may cause the highest loss in the future, and the architecture design is done by the most qualified developers in the company. The result of the architecture design is the project specifications in the form of interface descriptions, database diagrams, UML component models, and links to multiply used modules and libraries.

For typical tasks, we use reliable and common architecture templates, such as Model-View-Controller. These templates does not only simplify the development, they also help to estimate the project budget more thoroughly (for example, by calculating the number of models).

The implementation of non-typical tasks may be a separate project stage, where we develop test applications (prototypes) showing the possibility of the task implementation. This stage must be done as soon as possible due to high risk of negative result.

Accurate design of databases and interfaces

The more thoroughly and accurately databases and interfaces are described, the better is the interaction of the developers implementing the modules. Also, during the database and interface design, we can lay the possibility of further development of the project.

Development using Agile and RUP

The application development is divided into small (up to 1 hour) subtasks. Implementation of these subtasks improves the motivation of the developers and shows the overall progress in the development. Weekly meetings may find and fix difficulties as soon as possible.

Targeting on the working application

Working application on early stages of development is a real work result of the designers and developers. This application may be used to demonstrate the success of the project to the interested people. Therefore, we prepare the time schedule in such way that the working application appears on early stages of the development.

Observation of the workflow

The working application may be used for the observation of the project development flow. When a web application is developed, online development on a test server may be done, and the customer can see the application at any time.

Planning of milestones

We place the concrete milestones (for example, “all interfaces are described”) in the project time schedule. These milestones are used by client and project manager to control the project flow and diagnose the delays from the schedule.

Control of the allied works

If the project includes third-party works, we are planning the project time schedule in such a way that third-party works are not critical and their delay does not hinder the whole development process. We are trying to control the status of third-party works and notify the client on the risks of delays of these works.

Accurate testing of the application and its components

According to the RUP methodology, the testing is done during the whole development stage. We make the automatic unit-tests of complicated functions and algorithms, and develop the test applications to check the work of interfaces.

At final development stages, manual tests are performed, all results of the tests are documented in the bug tracking system for further bugfixes.

Delivery of project specifications

The project specifications may contain user manual, administrator manual, deployment and setup manual, tutorial materials, and other specifications simplifying the product support by the client.

To avoid document version conflicts, every document has the version. All documents are reviewed by the concerned people.

Warranty and technical support

After the project comes into operation, Headwind Solutions provides a warranty period (as a rule, 1 year) of free bugfix. Also, we can provide the technical support in the form of analysis of problems and recommendations how to avoid these problems.