Contents xvii
3.4.3
Other
Software Process Models . . . . . . . . . . . . . . . . . . . . . . . . 100
3.5 Agile and Lean Development Processes and Methodologies . . . . . . . 102
3.5.1 The Agile Manifesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.5.2 Scrum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.5.3 Common Agile Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3.5.4 Planning and Tracking Work in Agile Development . . . . . . . 109
3.5.5 Extreme Programming (XP) . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.5.6 Lean Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.5.7 Other Common Agile and Lean Methodologies . . . . . . . . . . . 115
3.5.8 Processes for Open Source Software Development . . . . . . . . 117
3.5.9 Scaling Agile Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
3.5.10 Scaled Agile Framework (SAFe
R
) . . . . . . . . . . . . . . . . . . . . . 121
3.6 Hybrid Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
3.7 (Capability) Maturity Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.8 IT Service Management and Operations . . . . . . . . . . . . . . . . . . . . . . . . 126
3.8.1 The IT Infrastructure Library (ITIL) . . . . . . . . . . . . . . . . . . . . 127
3.8.2 Other Models for IT Service Management and Operations . . 127
3.9 Integrating Software Development and Software Operations . . . . . . . 128
3.10 Software Processes and Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 130
3.11 Safety, Security and Privacy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
3.11.1 Basic Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
3.11.2 Safety Standards and Software Processes . . . . . . . . . . . . . . . . 135
3.11.3 Security Standards and Software Processes . . . . . . . . . . . . . . . 137
3.11.4 Privacy Standards and Software Processes . . . . . . . . . . . . . . . 140
3.11.5 Safety, Security and Privacy in the Development Life Cycle. 142
3.12 Application-Specific Life Cycle Models . . . . . . . . . . . . . . . . . . . . . . . . 144
3.12.1 Life Cycle Models for the Development of Cyber-Physical
Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
3.12.2 Life Cycle Models for Customisation, Configuration and
Integration Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
3.12.3 Life Cycle Models for Artificial Intelligence Systems . . . . . . 146
3.12.4 Life Cycle Models for Big Data Projects . . . . . . . . . . . . . . . . . 146
3.13 Estimating the Dissemination of Software Life Cycle Models . . . . . . 147
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
4 Governance and Management of Software Processes . . . . . . . . . . . . . . . 159
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
4.2 Process Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
4.2.1 Process Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
4.2.2 Selecting a Process Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
4.2.3 Process Asset Management and Control . . . . . . . . . . . . . . . . . 165
4.3 Process Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
4.3.1 Basic Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168