8 Fundamental Principles That Guide the Software Process
A Personal Summary of Roger S. Pressman's Core Tenets
8 Fundamental Principles That Guide the Software Process
A software process provides the conceptual framework from which a complete plan for software development can be established. Software Engineering: A Practitioner’s Approach by Roger S. Pressman is a “must” for anyone in the computer industry. In my summary of his 8 fundamental principles of the software process, I interpret what has caught my attention the most. This is a completely personal summary that I approach from the point of view of my work. These principles apply to the structure and, by extension, to any software process.
Principles |
---|
Agility |
Focus on Quality |
Adaptation |
Team Effectiveness |
Communication and Coordination |
Change Management |
Risk Assessment |
Generation of Valuable Products |
Agility
Whatever process model is chosen (prescriptive or agile), it is the agile principles that should govern the approach. The technical approach must be kept as simple as possible, products should be as concise as possible, and decisions should be made locally whenever possible.
Focus on Quality
At each stage, the focus must be on quality. The exit condition for every task, activity, and process should be focused on the quality of the product generated.
Adaptation
The process is not a dogma, and it is necessary to adapt the approach to the constraints imposed by the problem, the people, or the project itself.
Team Effectiveness
The software engineering process and practice are important, but the goal is the people. To achieve effectiveness, it is essential to foster trust among team members and mutual respect.
Communication and Coordination
Many times, projects fail because important information is not communicated or because project members do not coordinate their efforts to create a successful final product.
Change Management
The approach can be formal or informal, but mechanisms must be established to manage the way in which changes are requested, evaluated, approved, and implemented.
Risk Assessment
Many things can go wrong when developing a software project. It is essential to establish contingency plans.
Generation of Valuable Products
Only products that generate value for other activities, actions, or tasks in the process should be generated. We must be aware that every product that is developed will pass into the hands of someone else. For this reason, we must ensure that the product presents the necessary information without ambiguities or omissions.
Part 4 of Roger S. Pressman’s book focuses on aspects of project and process management, and analyzes in detail several aspects of each of these principles.