Software Development Maturity Models and Quality Assurance
Capability Maturity Model (CMM)
Objective of CMM
Determine the maturity level of the development process to establish a process quality indicator.
Maturity Levels in CMM
- Initial
- Repeatable
- Defined
- Managed
- Optimized
CMM Definition
The Capability Maturity Model (CMM), developed by the Software Engineering Institute (SEI), helps organizations assess their software development and maintenance capabilities based on continuous improvement.
SPICE
SPICE is an international standard for simulating analog electronic circuits, including resistors, capacitors, diodes, and transistors. It focuses on integrated circuits.
ISO (International Organization for Standardization)
ISO standardizes product and safety standards for companies and organizations worldwide, excluding electrical and electronic industries.
Characteristics of the Initial CMM Level
Organizations at this level lack a stable software development environment. Performance and success depend on individual abilities. Plans, estimates, and quality are unpredictable.
Repeatable CMM Level
Organizations establish policies for managing software projects and procedures to implement them. Processes are controlled by a project management system based on past experiences.
Defined CMM Level
The process is standardized and consistent, applying a known successful software process across the organization.
Managed CMM Level
Detailed process and quality measures are implemented. Product and process are understood and controlled.
Optimized CMM Level
At level 5, strengths and weaknesses are known and addressed.
Software Quality Assurance (SQA)
SQA determines if user needs are met adequately.
SQA Definition
Systematic actions ensure software processes and products meet requirements, standards, and procedures.
SQA Problem Solving
- Increases project success chances
- Defines parameters for measuring software quality
- Checks for correct standard application
- Defines a software development life cycle monitoring plan
Software Life Cycle
The software lifecycle describes software development from beginning to end. It defines phases to validate application development, ensuring software meets implementation requirements and verifying development procedures for appropriateness.
Personnel Management
Personnel management organizes and treats individuals at work to enable them to realize their abilities.
Group Leader Functions
- Setting direction
- Guiding the team
- Motivating and inspiring
Project Leader Skills
- Encouraging people
- Communication
- Problem-solving
Project Leader Responsibility
Ensure quality work within budget and time for customer satisfaction.
Personnel Manager Skills
Leadership, motivation, communication, team leadership, negotiation, and remuneration management.
Responsibility
Bearing the consequences of our actions.
Tuckman’s Stages of Team Development
- Forming
- Storming
- Norming
- Performing
Role Organization
The structure coordinating all project efforts towards a common goal.
Organizing Team: Advantages and Disadvantages
Advantage: Reduced stress by sharing difficult tasks.
Disadvantage: Premature decision-making.
Underlying Organizations
Teams coordinated to implement quality, productivity, and services.