INFO 636 Software Engineering Process I Prof. Glenn Booker Week 10 – Process Definition INFO636 Week 10 www.ischool.drexel.edu.

Download Report

Transcript INFO 636 Software Engineering Process I Prof. Glenn Booker Week 10 – Process Definition INFO636 Week 10 www.ischool.drexel.edu.

INFO 636 Software Engineering Process I Prof. Glenn Booker

Week 10 – Process Definition INFO636 Week 10 1 www.ischool.drexel.edu

Defining Processes

• We’ve mostly assumed that processes for developing software have been provided (such as the scripts) • Now focus a little more on the creation of processes, or the refinement of existing processes to meet new circumstances INFO636 Week 10 2 www.ischool.drexel.edu

Process versus Procedure

• Terminology note; a process is assumed to be a larger set of activities, and hence more complex than a procedure – A procedure is defined to the detailed step-by-step instructions level – A process is defined in terms of the major activities needed, some process steps may be defined in procedures INFO636 Week 10 3 www.ischool.drexel.edu

Process Familiarity

• To be able to define a process, you either need to be familiar with its activities, or have someone readily available who is • Processes not only define what is needed to meet the goal of the process, but also to meet larger management objectives (plan, track, measure, etc.) INFO636 Week 10 4 www.ischool.drexel.edu

Process Objectives

• Processes, in keeping with process maturity goals, should be –

Defined

in writing somewhere –

Repeatable

– able to be performed consistently over and over –

Measurable

– so we can assess key aspects of the process and improve on them INFO636 Week 10 5 www.ischool.drexel.edu

Process Elements

• Processes need – A script or description of the major steps involved in performing the process – Forms, where appropriate, to help ensure consistent data gathering – Standards to help guide common decisions (like the defect and review standards) – Ability to improve (like the PIP form) INFO636 Week 10 6 www.ischool.drexel.edu

Process Formats

• Many ways have been developed to document processes – Here is one I used frequently • Processes need to be as simple as possible – people won’t read complex documents if they can avoid them – The technique cited here is

information mapping

, by Horn INFO636 Week 10 7 www.ischool.drexel.edu

Information Mapping

• Information mapping follows some basic principles – Chunking – group actions into manageable chunks of activity – Relevance – only cite relevant activities, and put similar things together – Labeling – Label each chunk – name it INFO636 Week 10 8 www.ischool.drexel.edu

Information Mapping

– Consistency – make sure to use consistent terminology, names for each chunk, organizational references, and formatting – Graphics – use graphics where possible to help show what you mean – Detail – use an appropriate level of detail for your audience – Hierarchy – group chunks by topic, and label each topic INFO636 Week 10 9 www.ischool.drexel.edu

Process Definition

• (This is a departure from the text) • Process definition typically starts with assessing the

inputs

needed to start the process, and determining the process should produce

outputs

the • Then work out the

steps

needed to get from the inputs to the outputs – Are there processing

options

to consider?

INFO636 Week 10 10 www.ischool.drexel.edu

Process Definition

• Look for the

trigger

, or event that tells when the process should start • Look for

products

from the process – What stuff should someone see or use to perform this process?

• Look for

connections

to other processes – What comes before or after this process?

INFO636 Week 10 11 www.ischool.drexel.edu

Process Definition

• Look for things to

measure

Any

process can measure how often it’s performed, & how long it takes to perform – Is there a size, quantity, or quality of the stuff produced by the process?

• Look for

review

and

approval

process steps in the – Who verifies the process’ outputs?

INFO636 Week 10 12 www.ischool.drexel.edu

Process Definition

• Ask

who

performs each step of the process – the answers may be insightful • For complex process steps, you can

cite detailed procedures

(scripts) for performing steps within the process • Look for the

policy

or organization

mission

that authorizes the process to occur INFO636 Week 10 13 www.ischool.drexel.edu

Personal Process

• The previous four slides can be used for any kind of process definition • Here, Humphrey uses a process improvement-based process to define personal processes – Determine your needs and their priorities – Define process goals, objectives, and quality criteria INFO636 Week 10 14 www.ischool.drexel.edu

Personal Process

– Assess your current process maturity – Assess your desired or target process – Establish a strategy to get from current to desired process – Define your initial processes – Validate (test) your initial process – Keep improving your process INFO636 Week 10 15 www.ischool.drexel.edu

Process Phases

• When ready to define your process, the steps outlined earlier are typically used – Define purpose of the process – Define who performs the process – Establish entry criteria – Define the process tasks – Define exit criteria – when are you done?

– What is the next phase?

INFO636 Week 10 16 www.ischool.drexel.edu

Process Definition Concerns

• A key to establishing a good set of processes is to use the right level of detail consistently – Too much detail wastes time – Too little detail allows the correct process to become forgotten • Often start simply and add details where needed INFO636 Week 10 17 www.ischool.drexel.edu

Process Evolution

• Processes should be allowed to evolve over time • Expect that you will tweak them periodically to make them work better, refine measurements, etc.

– The initial process should pretty well match what you were originally doing – The target process is the “final” objective INFO636 Week 10 18 www.ischool.drexel.edu

Process Development Process

• You can even define a process for developing processes – Often helpful for a process improvement team (SEPG) to follow such a process • Like any other process, measure the time spent on developing and refining processes, and your productivity in creating them (e.g. pages/hour) INFO636 Week 10 19 www.ischool.drexel.edu

Process Development Process

• For a large organization starting from scratch (no processes), you can use an estimation form like on page 465 – Like the infamous C39/N39, it uses proxies to estimate the time needed – Based on historic data, you can keep refining the proxies INFO636 Week 10 20 www.ischool.drexel.edu

Using the PSP

• Since this is a

personal

process, you ultimately get to choose how to use it • While rare to find anyone who uses the full process (unless it’s part of the organizational culture to do so), you can pick and choose which parts of this you’ll take with you INFO636 Week 10 21 www.ischool.drexel.edu

Personal Commitment

• Like any other change to the way you behave, applying the PSP requires commitment to stick with it – Obviously it doesn’t help much to use it for two months and then quit INFO636 Week 10 22 www.ischool.drexel.edu

How PSP Helps

• Specific ways the PSP can help include – Help you make better plans of your activities – Help you stick to your plan under pressure – Give you a sound basis for your estimates INFO636 Week 10 23 www.ischool.drexel.edu

Sharing the PSP

• (This set of slides sounds like proselytizing, doesn’t it?) • It’s easiest to use the PSP if you’re in an organization which supports commitment to it – Doing the PSP solo can be done, but it requires lots of discipline (see title of text!) INFO636 Week 10 24 www.ischool.drexel.edu

Cost of the PSP

• The costs of using the PSP include – The time to use it – The cost of maintaining discipline – Potential risk to your ego when you see what’s really happening in your work • Most software engineers think themselves above average; it’s sobering if you’re not INFO636 Week 10 25 www.ischool.drexel.edu

Competence

• William Hayes of TI defined four stages of competence in doing something, which the PSP follows – Stage 1 is unconscious incompetence, when you don’t know you’re doing poorly – Stage 2 is conscious incompetence, when you do know you’re doing poorly INFO636 Week 10 26 www.ischool.drexel.edu

Competence

– Stage 3 is conscious competence, when you are aware of doing reasonably well – Stage 4 is unconscious competence, when you’re doing well, and no longer have to think about it • That’s where we want to be; when we no longer have to focus on doing well INFO636 Week 10 27 www.ischool.drexel.edu

PSP Benefits

• Don’t forget there are benefits to using the PSP – Insight into how you work – Tons of ideas for improving your work – Having a structure for improving yourself professionally – Achieving control over your work INFO636 Week 10 28 www.ischool.drexel.edu

PSP Benefits

– Sense of accomplishment from planning and doing something – Improves your ability to contribute to a team (because you know yourself well) – Confidence in a job well done INFO636 Week 10 29 www.ischool.drexel.edu

PSP Coaching

• Coaching or mentoring is ill-developed in software engineering, but the PSP could form the foundation for it – Helping push each other to excellence is a good thing INFO636 Week 10 30 www.ischool.drexel.edu

The Future

• By following a good process, we can – Understand our strengths and weaknesses, – Learn from our history, and – Form a strong foundation from which to try new things INFO636 Week 10 31 www.ischool.drexel.edu