Software Engineering Process I Process Definition - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

Software Engineering Process I Process Definition

Description:

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 ... – PowerPoint PPT presentation

Number of Views:48
Avg rating:3.0/5.0
Slides: 32
Provided by: users3
Category:

less

Transcript and Presenter's Notes

Title: Software Engineering Process I Process Definition


1
Software Engineering Process IProcess Definition
  • INFO 636
  • Glenn Booker

2
Defining Processes
  • Weve 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

3
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

4
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.)

5
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

6
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)

7
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 wont read complex documents if they can
    avoid them
  • The technique cited here is information mapping,
    by Horn

8
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

9
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

10
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 outputs the process should
    produce
  • Then work out the steps needed to get from the
    inputs to the outputs
  • Are there processing options to consider?

11
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?

12
Process Definition
  • Look for things to measure
  • Any process can measure how often its 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 steps in the
    process
  • Who verifies the process outputs?

13
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

14
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

15
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

16
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?

17
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

18
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

19
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)

20
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

21
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 part of the organizational
    culture to do so), you can pick and choose which
    parts of this youll take with you

22
Personal Commitment
  • Like any other change to the way you behave,
    applying the PSP requires commitment to stick
    with it
  • Obviously it doesnt help much to use it for two
    months and then quit

23
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

24
Sharing the PSP
  • (This set of slides sounds like proselytizing,
    doesnt it?)
  • Its easiest to use the PSP if youre 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!)

25
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 whats
    really happening in your work
  • Most software engineers think themselves above
    average its sobering if youre not

26
Competence
  • William Hayes of TI defined four stages of
    competence in doing something, which the PSP
    follows
  • Stage 1 is unconscious incompetence, when you
    dont know youre doing poorly
  • Stage 2 is conscious incompetence, when you do
    know youre doing poorly

27
Competence
  • Stage 3 is conscious competence, when you are
    aware of doing reasonably well
  • Stage 4 is unconscious competence, when youre
    doing well, and no longer have to think about it
  • Thats where we want to be when we no longer
    have to focus on doing well

28
PSP Benefits
  • Dont 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

29
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

30
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

31
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
Write a Comment
User Comments (0)
About PowerShow.com