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.