Реклама

How We Create Software

Generally speaking, the process of software development consists of several stages.

Task Analysis

Basically, analysis is always the starting stage of any project. We investigate the task that the future application is supposed to solve. The person that performs this work is called an analyst. His main task is to understand what the customer needs and translate this into a language understandable for the rest of the team, and primarily for the architect.

Architecture Development (Engineering)

The architect designs the application’s internal architecture according to customer requirements defined during the analysis. The outcome of his work is an exact task for the programmers that participate in the project.

Programming

One or, more often, several programmers create the required software within the developed architecture, keeping in mind the results of the task analysis.

Testing

This includes checking the operation of the new application and detecting errors for the programmers to correct. People that do this kind of work are called testers.

Implementation

This assumes turning the piece of software into something actually used by the customer. This is a very important and difficult stage. Usually people remember about it only when it’s already too late. If the application is not implemented, the whole project has basically failed.

Why is it all just “generally speaking”? Because if we look closer, we will get a slightly different picture. Or, rather, a completely different one. In real life, all stages are closely connected and can’t be fulfilled in a consequent order.

The engineering stage detects weaknesses of the analysis, and so some further more detailed analysis must be performed. During the programming stage it might become clear that some changes need to be introduced into the architecture. And when it comes to implementation… the developers find out a lot of new things about the task, which means that some further modifications will be required.

Basically, for software development, just as for any project, feedback is essential for success. There must be a prompt reaction to any change in the situation. The earlier the reaction, the fewer problems you will be faced with.

The traditional bureaucratic approach to software development usually just ignores all discrepancies detected at the next stage. As a result of this, we get a heavy, inefficient and expensive piece of software.

See also: