890 likes | 914 Views
Software Process Improvement. Introduction. Instructors Course Where are we? What would we learn from this course?. Instructors(1): Teaching team: Jie Yang and James Chen My contact information + Phone: 020-33105143 + Email: jychen2001@hotmail.com. Instructors(2):
E N D
Introduction • Instructors • Course • Where are we? • What would we learn from this course?
Instructors(1): Teaching team: Jie Yang and James Chen My contact information + Phone: 020-33105143 + Email: jychen2001@hotmail.com
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 Communications AT&T Lucent Johnson&Johnson Panasonic Involved in various testing, customer support, ISO/CMM related Activities.
Course(1): + Textbook in hand; + 12 weeks, 4 hours/week; + 20 chapters with some changes in ordering; + Focus on CMM;
Course(2): + Class attending rate and class discussions (10%) + Testing (Q/A, case analysis, definitions) (30%) + Final exam (60%)
Course(3): Testing coverage is focused on the following: + Class discussions + Figures + Tables + Summaries + Case studies
Where are we? (Are we on the same boat) (1)? What phases are there in a software development lifecycle? Planning Coding Testing Maintain/support
Where are we? (Are we on the same boat)(2)? As a software developer or a tester, what do we need to possess in order to be a person with a good discipline? Plan what to be done Do what have been planned Track what have been done Summarize/improve
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?
Process thinking • Process thinking • Process discipline • Effective process environment • Process maturity • Business benefits of software process improvement (SPI)
Process thinking(1): There is a process everywhere.
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’
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’
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
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’
Process thinking(6): What comprises a software process? + definition: documental specification + knowledge: drive activities + results: from activities
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.
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
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’
Process thinking(10): In US, bosses pay more attention on process itself.
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
Process thinking(12): A process focus (continued): + a disciplined process => a common process followed in ordered and consistent patterns
Process thinking(13): no process focus => ‘fire fighting’
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 discipline 2) organization: roles, responsibilities 3) management: procedures, measurements 4) skills & training 5) tools & technology
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
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
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
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
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?
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’
Process discipline(2): A disciplined process is a mature process. + that is defined, trained, enforced and followed + continuously improving (VERY IMPORTANT!)
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
Process discipline(4): We need process discipline at different levels. Missing any won’t do. + Person + Project: team and group + Organization (or department) + Company
Process discipline(5): A process discipline should not cause the following effects. Or, it should get improved. + creating unnecessary bureaucracy + hurting creativity
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
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)
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.
Process discipline(9): • Five landmarks for an effective organization: • 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
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
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
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)
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?
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)
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?
Effective process environment(1): In previous talks, we have gained the following: + Three components + Central role + Five landmarks Anything else will cause us concern?
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
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
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