INFO 636 Software Engineering Process I Prof. Glenn Booker Week 10 – Process Definition INFO636 Week 10 www.ischool.drexel.edu.
Download ReportTranscript 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