|
Software engineering is sometimes considered a technical discipline. However, this is only partially true; truly effective software development projects require careful attention to, and balancing of human factors, and economical considerations as well. We summarize these three disciplines with the keywords technology, people and value:

I. Technology
Software development is clearly a technology intensive discipline; both inside our products, and during product development, we apply a lot of technology, which is rapidly changing all time. The technology dimension includes the models, languages and design techniques that are used in software development.
Software engineering requires us to consider how to use technology–with care–to build better and cheaper products, and how technology can support software development activities.
II. People
The people dimension addresses how people learn, create, build models, manage complexity, make mistakes, and work together while constructing software systems.
This dimension considers what are suitable processes, methods, notations, tools and languages to support people in the software development activities.
III. Value
Value, costs and economics are unavoidable factors to consider in any professional activity. Note that these may also include ethical, personal and cultural components. Software engineering must consider the costs and benefits involved in developing a product; this applies to both the products, and the process, by which the product is constructed, maintained and evolved.
Costs are the eternal trade-off factor that we must take into account; it impacts the choice of technology, processes and product features. In the end, we need to consider the expected benefits in terms of (long-term) profits and the associated costs.
|