the personal software process alan kelon oliveira de moraes [email protected] may 15, 2006 - recife
TRANSCRIPT
To do an effective job, you need to...
● Plan your work● Do your work according to this plan● Strive to produce the highest quality products
Personal Software Process (PSP)● It is a disciplined way of writing software which
can lead to dramatic improvements in– the quality of the software you write
– your productivity
– the quality of your plans and estimates.● Following a discipline like this can lead to greater
self-knowledge, a valuable thing in itself
Personal Software Process (PSP)● It shows how to apply advanced engineering
methods to their daily tasks● Provides detailed estimating and planning methods● Shows how to track sw engineers' performance
against these plans● Explains how defined process can guide their work● Will lead you away from random hacking and
towards professional software engineering
Keywords
● Responsible● Repeatable● Informed● Rational● Aware● Mature
PSP is not...
● a Silver Bullet solution● a radically different approach to development
PSP is
● a framework that allows detailed planning and tracking of project status
● a vehicle to collect “in process” metrics to provide insight and opportunities to improvement
● a way to protect development steps needed to “build in” quality
Benefits
● PSP has the potential to increase your effectiveness as a programmer dramatically
● The data you collect and the conclusions you infer from them can empower you in negotiations with your boss
● Deeper benefits are possible too. Any self-knowledge has the potential to lead to personal growth
Best practices
● Task breakdown (detailed planning)● Time alloted to Design● Size estimation methods● Time alloted to Review/Inspection● Time tracking● Defect tracking● Metric analysis● Coding standards
What does PSP provide?
● Measurements– Size
– Time
– Defects
Time estimating error
Defect Level Improvement
Productivity Results
PSP processes
PSP Process Flow
Time management
● You will likely spend your time this week much the way you spent time last week
● To make realistic plans, you have to track way you spend time
● To check the accuracy of your time estimates and plans, you must document them and latter compare them with what you actually do
Time management
● To make more accurate plans, determine where your previous plans where in error and what you could have done better
● To manage your time, plan your time and them follow the plan
Tracking time
● Categorize your major activities● Record the time spent on each major activity● Record time in a standard way● Keep the time data in a convenient place● Hint:
– When you occasionally forget to record the start time, stop time, or interrupt duration, make an estimate as soon as you remember
Period planning
● A period plan concerns the way you plan to spend time during the period (day, week, month)
● The weekly Activity Summary
Product planning
● The product planning is based on an activity, like developing a program or writing a report
● The Job Number Log
Program size
Managing your time
● Decide how you want to spend your time● Make a time budget● Track the way you spend time against this budget● Decide what changes to make to bring your
actions into agreement with the budget● Prioritize your time
Managing commitments
● A true commitment requires an explicit agreement between two or more parties on:– what will be done
– the criteria for determining that it is done
– who will do it
– when it will be done
– the compensation or other consideration to be given in return
– and who will provide this compensation or consideration
Managing commitments
● Analyze the job before agreeing to the commitment
● Support the commitment with a plan● Document the agreement● If unable to meet the commitment, promptly tell
the other part and try to minimize the impact on the that person
Managing commitments
● The consequences of not managing commitments– work required exceeds time available
– Failure to meet commitments
– Misplaced priorities
– Poor quality of work
– Loss of trust
– Loss of respect for your judgment
Managing schedules
● Make a project schedule● Checkpoints● Track project plan