89
1 Software Process Improvement

1 Software Process Improvement. 2 Introduction Instructors Course Where are we? What would we learn from this course?

Embed Size (px)

Citation preview

1

Software Process Improvement

2

Introduction

• Instructors

• Course

• Where are we?

• What would we learn from this course?

3

Instructors(1):

Teaching team: Jie Yang and James Chen

My contact information

+ Phone: 020-33105143+ Email: [email protected]

4

Instructors(2):

Graduated from Beijing University of Chemical Eng&Tech;

Took graduate study at Rutgers in US, majoring in Biophysics;

Worked for some known international companies, e.g.Bell CommunicationsAT&TLucentJohnson&JohnsonPanasonic

Involved in various testing, customer support, ISO/CMM relatedActivities.

5

Course(1):

+ Textbook in hand;

+ 12 weeks, 4 hours/week;

+ 20 chapters with some changes in ordering;

+ Focus on CMM;

6

Course(2):

+ Class attending rate and class discussions (10%)

+ Testing (Q/A, case analysis, definitions) (30%)

+ Final exam (60%)

7

Course(3):

Testing coverage is focused on the following:

+ Class discussions

+ Figures

+ Tables

+ Summaries

+ Case studies

8

Where are we? (Are we on the same boat) (1)?

What phases are there in a software development lifecycle?

PlanningCodingTestingMaintain/support

9

Where are we? (Are we on the same boat)(2)?

As a software developer or a tester, what do we needto possess in order to be a person with a good discipline?

Plan what to be doneDo what have been plannedTrack what have been doneSummarize/improve

10

What would we learn from this course?

Three big parts:

+ What is a software process?

+ Why do we need to improve a software process?

+ How do we improve a software process?

11

Everyone will be a CEO of his own process.

12

Process thinking

• Process thinking• Process discipline• Effective process environment• Process maturity• Business benefits of software process

improvement (SPI)

13

Process thinking(1):

There is a process everywhere.

14

Process thinking(2):

Task-based thinking or process-oriented thinking?

+ case 1: ‘Just enjoy every detail during a journey regardless of results’

+ case 2: ‘All roads leads to Rome’

15

Process thinking(3):

What is a process?

+ Oxford dictionary: ‘a course of action or proceeding, esp. a series of stages in manufactures or some other operation’

+ Webster’s dictionary: ‘a system of operations in producing something…a series of actions, changes or functions that achieve an end result’

16

Process thinking(4):

What is a software process?

+ IEEE (Institute of Electric and Electronic Engineering)

‘a sequence of steps performed for a given purpose, for example, the software development process’

---to be continued

17

Process thinking(5):

software process (continued)

+ SEI (Software Engineering Institute)

‘the set of activities, methods, and practices used in the production and evolution of software’

18

Process thinking(6):

What comprises a software process?

+ definition: documental specification

+ knowledge: drive activities

+ results: from activities

19

Process thinking(7):

If there is no process documentation in an organization?

+ may be possible for a person or a small team with a good discipline.

+ more dependence on individuals: different understanding of the process rules and details.

+ new comers could easily mess up: they may impose their own way of performing process activities.

20

Process thinking(8):

Will a process be complete with missing any aspect?

e.g. the process of going to TianHe by driving a car

+ case 1: no destination

+ case 2: no complete definition shown as above

+ case 3: don’t have a workable car

+ case 4: don’t know how to drive

21

Process thinking(9):

Another example of a process focus is my first IT job interview story.

……

‘If someone is very clear about what he is doing, he can do other things well, too’

22

Process thinking(10):

In US, bosses pay more attention on process itself.

23

Process thinking(11):

Advantages of a process focus:

+ Alignment of the group activities towards the common goals

+ Providing the basis for objective measurement of individuals’ performance

+ Enhancing consistency and repeatability of the process results and group performance

24

Process thinking(12):

A process focus (continued):

+ a disciplined process => a common process followed in ordered and consistent patterns

25

Process thinking(13):

no process focus => ‘fire fighting’

26

Process thinking(14):

Focus vs none focus (Table1.2 at p10):

There are mainly five aspects of impact (i.e, central role of the process).

1) process discipline2) organization: roles, responsibilities3) management: procedures, measurements4) skills & training5) tools & technology

27

Process thinking(15):

Based on the previous analysis, what are the main logical steps to build a factory?

+ defining the process goals: what products are to be produced?

+ form an organization: know how to manufacture the defined products.

---to be continued

28

Process thinking(16):

to build a factory (continued)

+ defining management procedures: roles, procedures

+ identifying skills: needed to perform tasks

+ identifying infrastructure, machinery and tools: technology to be used

29

Process thinking(17):

Central role of the process focus is once again better expressed in Fig1.2 at p12.

+ organization: roles/responsibilities to enable/support the process

+ management: procedures/practices to monitor/support the process

+ skills: enable effective performance

+ technology: infrastructure to automate and enable efficient performance

30

Process thinking(18):

In general, why do we need a process focus?

--- to increase the process productivity and effectiveness in support of the overall business goals

31

Process thinking(19):

Summary: process thinking is a natural way of thinking. p13-15

+ what is a process?+ what is a process thinking?+ what are the 3 aspects of a process?+ why do we need a process focus?+ what is the central role of a process focus?

32

Process discipline(1):

What is a discipline?

+ Oxford dictionary: a discipline is ‘the system of rules used to maintain control or order over a group of people’

33

Process discipline(2):

A disciplined process is a mature process.

+ that is defined, trained, enforced and followed

+ continuously improving (VERY IMPORTANT!)

34

Process discipline(3):

Why is a disciplined process needed for everyone, teams, and groups?

+ Diverse levels of knowledge

+ Wide variation of maturity

+ Different interpretation to common purpose

35

Process discipline(4):

We need process discipline at different levels. Missing any won’t do.

+ Person

+ Project: team and group

+ Organization (or department)

+ Company

36

Process discipline(5):

A process discipline should not cause the following effects. Or, it should get improved.

+ creating unnecessary bureaucracy

+ hurting creativity

37

Process discipline(6):

There was a report on the benefits of SPI (Software Process Improvement):

• $490-2004 invested per software engineer per year

• annual increase by 9-67% in productivity

• annual reduction by 15-23% in cycle time

• annual reduction by 10-94% in field error rate

• ROI (return on investment) from 4:1 to 8.8:1

--- to be continued

38

Process discipline(7):

Benefits of SPI (continued):

+ increase team capability

+ vital in critical situations

+ positive impact on product quality (Fig2.3 on p26)

+ positive impact on scheduling (Fig2.4 on p27)

39

Process discipline(8):

Some comparisons of immature process and mature process are listed in Table2.1 on p28.

Some key feature comparisons about software process are listed in Table2.2 on p29.

40

Process discipline(9):

Five landmarks for an effective organization:

1) Central role of the process: should be the basis for organization, management, skills and technology.

2) The process has three components: the document, the training, and the mechanisms to ensure the process is followed.

---to be continued

41

Process discipline(10):

Five landmarks (continued)

3) The process is more than a list of activities: should include goals, activities, abilities, commitment, measurement, and verification.

---to be continued

42

Process discipline(11):

Five landmarks (continued)

4) End-to-end coverage: the process definition should cover the process activities across all functions and roles.

---to be continued

43

Process discipline(12):

Five landmarks (continued)

5) One process could be divided into three major process classes in software project:

• management processes• software engineering (lifecycle) processes• support processes (lifecycle support)

44

Process discipline(13)

Checklist of a disciplined process:

+ Is the process documented? And is everyone aware of it?+ Is the processed trained and practiced?+ Is the process enforced? Are there mechanisms and procedures to enforce the process?+ Does the process help or hinder people’s activities? Are there mechanisms to track the process performance?+ Do managers manage their teams through measuring their process conformance and process performance?

45

Process discipline(14):

Summary (p33-34):

• A mature process results in disciplined behavior, hence less rework, better product quality and improved project control.

• Process discipline should not stifle creativity. Project managers and software engineers should be supporters of process discipline.

• A mature software process should be defined, trained, followed, enforced, and continuously improving. (---to be continued)

46

Process discipline(15):

Summary (continued):

+ What is a discipline?

+ What is a disciplined process?

+ Why do we need a process discipline?

+ What are the five landmarks of an effective organization?

+ What is the checklist for a disciplined process?

47

Effective process environment(1):

In previous talks, we have gained the following:

+ Three components

+ Central role

+ Five landmarks

Anything else will cause us concern?

48

Effective process environment(2):

+ Lack of process ownership:

The process won’t be monitored, enforced and updated to improve.

+ Possible divergence of the process from its business goals

49

Effective process environment(3):

Beyond the previous discussed 5 landmarks, some detailed characteristics and conditions for an effective process are listed in Table3.1 on p39

50

Effective process environment(4):

The organizational roles should cover the following:

+ Process ownership: Software Engineering Process Group(SEPG) owns the process

+ Process training: Table3.2 at p42

+ Measurements of process results: Table3.3 at p43

---to be continued

51

Effective process environment(5):

The organizational roles (continued)

+ Feedback from process users/others:

• Question forms

• Automatic collection from monitoring and measurement

• Regulations & Standards

---to be continued

52

Effective process environment(6):

The organizational roles (continued)

+ Process inspection/enforcement

• Internal audits (random and regular)

• Standards certification audits (ISO, CMM, etc)

53

Effective process environment(7):

Assuming that the business methods, practices, and procedures have already been defined. Those who defined them left the company.

Does this cause any concern?

More examples…

54

Effective process environment(8):

What is a process culture? It is a combination of the following two (we need both!):

+ a process corporate culture: driven by vision and strategic direction from the top management

+ a process infrastructure: provides operational support for the process activities and management

55

Effective process environment(9):

Some descriptions of a process culture are listed in

Table3.4 on p47

56

Effective process environment(10):

Summary (p48-49):

Please read and review.

57

Process maturity(1):

Just like an adult comparing with a child, a process has a certain degree of maturity. (Table1.3 on p11)

58

Process maturity(2):

Watts Humphrey and SEI (Software Engineering Institute)

‘to treat the entire software task as a process that can be controlled, measured, and improved’

59

Process maturity(3):

Process improvement cycle has six steps:

+ understand the current status (from assessment)

+ develop a vision of the desired process

+ establish a list of actions in order of priority

+ produce the improvement plan

+ commit the resources to execute

+ restart the cycle (continuously improving)

60

Process maturity(4):

An organization can be called ‘process focused’ only after the three following levels have all been ‘process focused’:

• Corporate and organizational level

• Project and team management level

• Personal level

61

Process maturity(5):

+ ‘Internalization’ when process focus is at personal level:

Following the process becomes ‘natural’ way of performing the task ‘painlessly’

+ ‘Institutionalization’ when process focus is at the level of teams and organization:

Everyone follows the common processes and the process discipline is enforced.

62

Process maturity(6):

Three major SW process maturity movements:

1) US Department of Defense (DoD) sponsored SEI where Watts Humphrey was a director of SW Process Program. = CMM

2) ISO = ISO series

---to be continued

63

Process maturity(7):

SW process maturity movements (continued)

3) UK Ministry of Defense (MoD) sponsored work on SW quality standards and SPI, which helped

= SPICE project sponsored by ISO

= ISO/IEC 15540

64

Process maturity(8):

Please memorize the following:

CMM Capability Maturity Model

SPICE SPI and Capability dEtermination

ISO International Standards Organization

IEC International Electrotechnical Commission

65

Process maturity(9):

CMM (Capability Maturity Model):

+ History of CMM development: Fig4.3 on p60

+ Staged model: Fig4.3 on p60

66

Process maturity(10):

67

Process maturity(11):

ISO (International Standards Organization) series: ISO 9000 is a general standard.

+ ISO 9001 Quality Systems

+ ISO 9000-3 Guidelines for the Development, Supply, and Maintenance of Software

+ ISO 9004-2 Quality Management and Quality System Elements

---to be continued

68

Process maturity(12):

ISO series (continued)

ISO 9000-3 divides the quality system into lifecycle activities and supporting activities:

• Quality system – lifecycle activities

• Quality system – supporting activities (not phase dependent)

---to be continued

69

Process maturity(13):

Quality system – lifecycle activities (continued)

- Contract review

- Purchaser’s requirements specification

- Development planning

- Quality planning

- Design and implementation

- Testing and validation

- Acceptance

- Replication, delivery and installation

- Maintenance

70

Process maturity(14):

Quality system – supporting activities (continued)

- Configuration management

- Document control

- Quality records

- Measurement

- Rules, practices and conventions

- Tools and techniques

- Purchasing

- Included software product

- Training

71

Process maturity(15):

ISO/IEC 15504 (International Standards Organization, Inter

national Electrotechnical Commission):

+ a software process assessment

+ individual process attributes are rated by trained assessors

+ they are evaluated against achievement scale using indicators of performance and capability

+ the resulted process profile, e.g. capability profile, will be used to initiate PI and/or compare competing software suppliers

72

Process maturity(16):

BOOTSTRAP:

+ Based on CMM

+ included guidelines of ISO 9000 series

73

Process maturity(17):

Other process-related initiatives:

+ A lot of them are variants of CMM.

+ Most of them are single purpose centralized.

e.g. acquisition, outsourcing, …

74

Process maturity(18):

Summary p62-63

+ What is a software process maturity?

+ What are the typical steps adopted in PI?

+ What are the three levels needed to be process focused for a company to be effective?

+ What are the popular models for SPI?

+ How many stages are there in CMM model? And what are they?

75

Business benefits of software process improvement (1):

As a company, what is our number one requirement?

76

Business benefits of software process improvement (2)

1) To meet Customer Satisfaction

2) Profitability

3) Business success

77

Business benefits of software process improvement (3):

+ Improved product quality:

fewer errors, fewer returned products=>improved CS

+ Shorter time to market:

less error, less or no rework

+ More productivity:

Inspection at early phases=>fewer errors, less rework

78

Business benefits of software process improvement (4):

Case study (class reading & discussion):

+ Europe cases on p394-398

+ US cases on p401-406

79

Business benefits of software process improvement (5):

Lessons or experience learned in implementing SPI:

+ SPI activities are designed to meet business needs

+ Focus on those areas expected to deliver the best results

+ Show managers the good examples of SPI in cost-benefit justification

+ Benefits may not materialize in a short term

+ Take an incremental approach to avoid unnecessary risks

+ Sell the idea to the whole organization

80

Business benefits of software process improvement (6):

Summary407-408:

+ Benefits are evident

+ Both qualitative and quantitative

+ People are the most important:

- culture, leadership, HR

- non-technical factors impact most on performance.

81

A framework for SPI

• A framework for SPI

• Software process infrastructure

• Process improvement roadmaps

• Fundamentals of software process assessment

• SPI action plan

82

83

84

Making SPI happen

• Launching SPI

• Implementing and institutionalizing SPI

• Measuring the benefits of SPI

85

86

Current models and standards for software process improvement

• The Capability Maturity Model (CMM)

• CMM-based assessment

• ISO/IEC 15504

• BOOTSTRAP

• Others

87

88

Future of SPI

• Role of international standards

• Process discipline for SW industrialization

• Next

• Acknowledgement

89