Who is the programmer today?
If we ask somebody in the street “Who is the programmer?”, what does he or she answer? I believe something like “A person who sits behind the computer and creates program code” or “A person who programs actually! What a stupid question?”. Not everyone exactly understand that successful software development requires many different activities besides code construction. The approach that includes all such activities is called Software Engineering. Let’s see the important stages, that all together form software engineering.
1) Requirements.When a project starts, we have to elicit requirements for it, thoroughly handle them and create the document that is known as Software Requirements Specification. Requirement specialists start collecting requirements in the very beginning of the project and update them until the projects is ended to keep them relevant and correct mistakes that occurred during the implementation. Software Requirements Specification is a result of this process. The document contains information obtained from users, technical standards, and business rules and other.
2) Design. The other important activity is design. It includes overall planning of the project, building models and prototypes. Software Engineering standards distinguish two separate activities within the design stage: software architectural design and software detailed design. The first one is planning of the whole system, when the second one is more thorough planning of its components.
3) Construction. The next activity is actually code construction. Most people consider this thing as programming. Engineers create program code using different programming languages and software construction tools that dramatically improve the speed of the process.
4) Testing. When the code is created software engineers must test them. Testing is an activity of product quality assessment and improvement. This stage is often performed by a separate team of testers. It also can be outsourced, because external testers can check the quality impartially.
5) Maintenance. Even when all implementation activities are completed, the work on the project is not. The maintenance stage starts then. It is necessary to provide cost-effective support to software. However, even now we are talking about only post-delivery stage, which includes such things as software modifications and user trainings. However, there is another one known as pre-delivery maintenance, which includes planning of actions for post-delivery stage.
Now I think that even if you are not closely connected to programming, you know the main activities it includes, and I am sure that you realize that the programmer must do much more than only code construction.