Affiliation:
1. National Research University Higher School of Economics, Russia
Abstract
Software development is critically dependent on a number of factors. These factors include techno-logical and anthropic-oriented ones. Software production is a multiple party process; it includes customer and developer parties. Due to different expectations and goals of each side, the human factors become mission-critical. Misconceptions in the expectations of each side may lead to misbalanced production; the product that the developers produce may significantly differ from what the customers expect. This misbalanced vision of the software product may result in a software de-livery crisis. To manage this crisis, the authors recommend using software engineering methods. Software engineering is a discipline which emerged from the so-called “software crisis” in the 1960s: it combines technical and anthropic-oriented “soft” skills. To conquer the crisis, this chapter discusses general architecture patterns for software and hardware systems; it provides instances of particular industries, such as oil and gas and nuclear power production.