The SEI Approach

  • Published on
    21-Oct-2014

  • View
    731

  • Download
    1

Embed Size (px)

DESCRIPTION

 

Transcript

<p>Report of the ED 0208</p> <p>The SEI Approach</p> <p>Modelos de Procesos y Metodologas de Ingeniera de software</p> <p>Mayo de 2013</p> <p>Universidad de CaldasFacultad de IngenierasMaestra en Ingeniera Computacional</p> <p>Welcome!</p> <p>ContentPersonal Software Process (PSP)</p> <p>Team Software Process (TSP)</p> <p>PSP &amp; TSP &amp; CMMI</p> <p>Sources Ron S. Kenett &amp; Emanuel R. Baker. Process Improvement and CMMI forSystems and Software. 2010 Taylor and Francis Group, LLC. ISBN 978-1-4200-6051-5</p> <p> James McHale and Daniel S. Wall. Mapping TSP to CMMI. TECHNICALREPORT CMU/SEI-2004-TR-014 ESC-TR-2004-014. April 2005. Available inhttp://www.sei.cmu.edu/reports/04tr014.pdf</p> <p>Hayes, W. and Over, J.W., The Personal Software ProcessSM (PSPSM): AnEmpirical Study of the Impact of PSP on Individual Engineers, (CMU/SEI-97-TR-001), Pittsburgh, PA: Software Engineering Institute, Carnegie MellonUniversity, December 1997.</p> <p>Mukesh Jain. Delivering Successful Projects with TSPSM and Six Sigma APractical Guide to Implementing Team Software Process. AuerbachPublications, 2009. ISBN 978-1-4200-6143-7</p> <p>National Interest around CMMI, </p> <p>PSP/TSP </p> <p> SENA</p> <p> MINTIChttp://programa.gobiernoenlinea.gov.co/convocatoria_TSP_PSP.shtml</p> <p> Goverment PSP, TSP, CMMI</p> <p> National Industry Scrum</p> <p>Why?</p> <p>Relations between CMMI-TSP-PSP</p> <p>The CMMI constellations address issues related to howorganizations develop or acquire systems and services</p> <p>The Team Software Process (TSP) and the PersonalSoftware Process (PSP) address issues regardingdevelopment at the next lower levels of organizations: TSPat the team level and PSP at the personal level.</p> <p>Although one may look at the organization of models as a top-down architecture, in reality, the TSP extends and builds uponthe concepts contained in the PSP.</p> <p>These techniques provide detailed guidance for how toimplement individual- and team-based processes toquantitatively manage and improve software development</p> <p>Relations between CMMI-TSP-PSP</p> <p>Source: http://www.gonet.us/index.asp?action=home.interior&amp;SectId=1295&amp;CatId=1539&amp;ArtId=656</p> <p>CMM/CMMI - fororganizational </p> <p>capability</p> <p>TSP - for quality products on cost </p> <p>and schedule</p> <p>PSP - forindividual skill and discipline</p> <p>Adapted From Three Dimensions of Process Improvement, Watts Humphrey, CROSSTALK, February 1998</p> <p>Relations between CMMI-TSP-PSP</p> <p>Source: www.enel.ucalgary.ca/People/Smith/2011webs/encm511_11/11_Lectures/11_November/ExtraTalk_4Nov2011_PSP.ppt</p> <p>Personal Software Process</p> <p>(From Watts Humphrey):</p> <p>Engineers are understandably skeptical aboutchanges to their work habits; although they may bewilling to make a few minor changes, they willgenerally stick fairly closely to what has worked forthem in the past until they are convinced a newmethod will be more effective. This, however, is achicken-and-egg problem: engineers only believe newmethods work after they use them and see the results,but they will not use the methods until they believe theywork</p> <p>Personal Software Process</p> <p>(From Hayes and Over):</p> <p>The PSP course incorporates what has been calleda self-convincing learning strategy that usesdata from the engineers own performance toimprove learning and motivate use. The courseintroduces the PSP practices in steps corresponding toseven PSP process levels. Each level builds on thecapabilities developed and historical data gathered inthe previous level.</p> <p>TEAM Power The initial TSP objective is to convince management</p> <p>to let your team be self directed.</p> <p> A self-directed team</p> <p> sets its own goals</p> <p> establishes its own roles</p> <p> decides on its own development strategy</p> <p> defines its own processes</p> <p> develops its own plans</p> <p> measures, manages, and controls its own work</p> <p> Self-directed teams do the best work.</p> <p> The PSP provides the knowledge and skill thatdevelopers need to work on TSP teams</p> <p>TEAM Power</p> <p> Management will agree to your managing your ownwork as long as they believe that you are doing asuperior job.</p> <p> To convince them of this, you must</p> <p> maintain precise and accurate plans</p> <p> measure and track your work</p> <p> regularly show management that you are doingsuperior work</p> <p> The PSP shows you how to do this</p> <p>PSP Principles (I)</p> <p> The quality of a software system is determined bythe quality of its worst components.</p> <p> The quality of a software component is governed bythe individual who developed it.</p> <p> The quality of a software component isgoverned by the quality of the process used todevelop it.</p> <p> The key to quality is the individual developers skill,commitment, and personal process discipline.</p> <p>PSP Principles (II)</p> <p> As a software professional, you are responsible foryour personal process.</p> <p> You should measure, track, and analyze your work.</p> <p> You should learn from your performance variations.</p> <p> You should incorporate lessons learned into yourpersonal practices.</p> <p>What Does a PSP Provide? (I) A stable, mature PSP allows you to</p> <p> estimate and plan your work</p> <p> meet your commitments</p> <p> resist unreasonable commitment pressures</p> <p> You will also understand your current performancebe better equipped to improve your capability</p> <p>The PSP provides:</p> <p> a proven basis for developing and using anindustrial-strength personal process</p> <p> a discipline that shows you how to improve yourpersonal process</p> <p> the data to continually improve the productivity,quality, and predictability of your work</p> <p>What Does a PSP Provide? (II) </p> <p>What Does a PSP Provide? (III)</p> <p> The PSP process is designed for individual use.</p> <p> It is based on scaled-down industrial softwarepractice.</p> <p> The PSP course demonstrates the value of using adefined and measured process.</p> <p> It helps you and your organization meet theincreasing demands for high quality and timelysoftware.</p> <p>How to learn PSP?In a SEI PSP Official course, Engineers learn to use thePSP by writing ten programs, one or two at each of theseven levels, and preparing five written reports.</p> <p>Engineers may use any design method or programminglanguage in which they are fluent. The programs aretypically around one hundred lines of code (LOC) andrequire a few hours on average to complete.</p> <p>While writing the programs, engineers gather process datathat are summarized and analyzed during a postmortemphase. With such a short feedback loop, engineers canquickly see the effect of PSP on their own performance.They convince themselves that the PSP can help them toimprove their performance; therefore, they are motivated tobegin using the PSP after the course</p> <p>Learning the PSP The PSP methods are organized into seven process</p> <p>versions and address different aspects of how PSP isapplied.</p> <p> The process versions are labeled PSP0, PSP0.1, PSP1,PSP1.1, PSP2, PSP2.1, and PSP3.</p> <p> Each process version contains a similar set of scripts,logs, forms, and standards.</p> <p> You write one or more module-sized programs at eachstep.</p> <p> You gather and analyze data on your work.</p> <p> You use the results to improve your personalperformance</p> <p>Learning the PSP</p> <p>source:SEI officialtraining slides</p> <p>The PSP Process</p> <p>Learning the PSP</p> <p> PSP0: You establish a measured performancebaseline.</p> <p> PSP1: You make size, resource, and scheduleplans.</p> <p> PSP2: You practice defect and yieldmanagement</p> <p> PSP3: You scale efficiently PSP to real lifeprojects</p> <p>PSP 0 (I)PSP0 and PSP0.1 formulate a baseline understanding ofPSP, focusing on developing and understanding the needfor establishing an initial base of historical size, time, anddefect data.</p> <p>These process versions address issues such asunderstanding the current process in use, the need forbasic measures, the importance of measures of size(which relate to productivity), etc.</p> <p>In PSP training courses, in learning this aspect of PSP,students develop small programs, using their ownmethods but following a rigorous process. They arerequired to estimate, plan, perform, measure, compareactuals to estimates, and conduct a post-mortem whenfinished.</p> <p>PSP 0 (II) The objective for PSP0 is to demonstrate the use ofa defined process in writing small programs</p> <p> Incorporate basic measurements in the softwaredevelopment process require minimal changes toyour personal practices.</p> <p>The PSP is not the process for writing software.</p> <p>The PSP is a process for learning about process.</p> <p>Its the process equivalent of a code sample</p> <p>examine your PSP data</p> <p>review your experience and PIPs (ProcessImprovement Proposals)</p> <p>tailor the PSP to meet your needs</p> <p>PSP 0 (III)Planning produces a plan for developing theprogram defined by the requirements.</p> <p>Design produces a design specification for theprogram defined by the requirements.</p> <p>Coding transforms the design specification intoprogramming language statements</p> <p>Compile translates the programming languagestatements into executable code.</p> <p>Test verifies that the executable code satisfies therequirements.</p> <p>Postmortem summarizes and analyzes the projectdata.</p> <p>Process ScriptsProcess scripts guide you through the process.</p> <p>You should</p> <p>check the entry criteria before starting a phase</p> <p>record the phase start time</p> <p>perform the phase steps and instructions</p> <p>record defects as they are found and corrected</p> <p>check the exit criteria before ending a phase</p> <p>record the phase end time</p> <p>go to the next phase</p> <p>Force yourself to use this paradigm until it becomesa habit.</p> <p>PSP0 Measures and FormsPSP0 measures</p> <p>Time track time in phase</p> <p>Defects record defects as they are found andfixed</p> <p>PSP0 has four forms</p> <p>PSP0 Project Plan Summary summarizesplanned and actual time and defects by phase</p> <p>PSP0 Time Recording Log used to record time</p> <p>PSP0 Defect Recording Log used to recorddefects</p> <p>PSP0 Defect Type Standard used to definestandard defect types</p> <p>PSP0In using PSP0, your principal objective is to learnto gather and report accurate and complete dataon your work.</p> <p>Gather and record data on your process as you work,not afterwards. If you forget, promptly make your bestguess.</p> <p> Be precise and accurate.</p> <p> Track time in minutes.</p> <p> Count every defect.</p> <p>You will be using your own data to manage yourprocess; gather data that is worthy of your trust.</p> <p>PSP 0.1 (I) Your principal objective is to measure and estimatethe size of the programs that you produce so that youcan effectively plan and manage your work</p> <p> The objectives of PSP0.1 are to help you tomeasure the size of the programs that youproduce, perform size accounting for theprograms that you produce make accurate andprecise size measurements</p> <p>There are two new process elements.</p> <p>process improvement proposal (PIP) form</p> <p>size counting and coding standards</p> <p>PSP 0.1 (II) The additions to the PSP0.1 process scripts include newsteps for</p> <p>estimating and reporting software size</p> <p>distributing development time over planned project phases</p> <p>using a size counting and coding standard</p> <p>recording process problems and improvement ideas</p> <p> To improve your process, you will need to capture processproblems and propose improvements for future reference.</p> <p> You will need to know</p> <p>any problems you have encountered in using the process</p> <p>any suggestions you have for process improvements</p> <p>your observations and findings from doing the assignments</p> <p>PSP 0.1 and coding standards Coding and size counting standards are needed towrite the PSP programs.</p> <p> These standards are tailored to your language andneeds designed to make size counting easier</p> <p> The coding standard defines quality-oriented exitcriteria for the code phase.</p> <p>PSP 0.1 size measurementsIn the PSP, software size measures are used to</p> <p>relate the amount of product produced with effortexpended to project total effort</p> <p>calculate productivity</p> <p>normalize defects</p> <p>project the total defects</p> <p>Software size is measured in LOC.</p> <p>To accurately relate size to effort, the different types ofLOC in your program are counted separately</p> <p>Your principal objective is to measure and estimatethe size of the programs that you produce so that youcan effectively plan and manage your work.</p> <p>PSP and measurementsThe basic PSP data are</p> <p>program size</p> <p>time spent by phase</p> <p>defects found and injected by phase</p> <p>Both actual and estimated data are gathered onevery item.</p> <p>Measures derived from these data</p> <p>support planning</p> <p>characterize process quality.</p> <p>PSP and size measurementsThe goals of the PSP size measures are to</p> <p>Define a consistent size measure</p> <p>Establish a basis for normalizing time and defectdata</p> <p>Help make better size estimates</p> <p>Some of the questions these data can help to answerare</p> <p>What size program did I plan to develop?</p> <p>How good was my size estimate?</p> <p>What was the completed size of the finishedprogram?</p> <p>PSP and time measurementsThe goals of the PSP time measures are to</p> <p>Determine how much time you spend in each PSPphase</p> <p>Help you to make better time estimates</p> <p>Typical questions these data can help answer are</p> <p>How much time did I spend by PSP phase?</p> <p>How much time did I plan to spend by PSPphase?</p> <p>PSP and defect measurementsThe goals of the PSP defect measures are to</p> <p>provide a historical baseline of defect data</p> <p>understand the numbers and types of defectsinjected</p> <p>understand the relative costs of removing defectsin each PSP phase</p> <p>Some questions these data can help answer are</p> <p>How many defects did I make in each phase?</p> <p>How many defects did I remove in each phase?</p> <p>How much time did it take to find and fix eachdefect?</p> <p>Size Versus Development EffortThe principal requirement: If the size measure is notdirectly related to development cost, it is not worth using.</p> <p>There are many possible measures.</p> <p>database elements</p> <p>lines of code (LOC)</p> <p>function points</p> <p>pages, screens, scripts, reports</p> <p>Pages are often an acceptable measure for documentdevelopment.</p> <p>LOC is usually a good measure for developing sourceprograms like Pascal and C++.</p> <p>Other possible measures are function points, screens,modules, database elements, and maintenance fixes.</p> <p>PSP 1 and PSP 1.1 PSP1 and PSP1.1 focus on personal projectmanagement techniques, introducing size andeffort estimating, schedule planning, andschedule tracking methods.</p> <p> The objective of PSP1 is to establish an orderly andrepeatable procedure for developing software sizeestimates.</p> <p>The Project Planning Framework</p> <p>EstimatingThe advantages of using defined estimating methodsare that you</p> <p>have known practices that you can improve</p> <p>have a framework for gathering estimating data</p> <p>can consistently use historical data to producebalanced estimates</p> <p>Estimating with PROBE (I) The PSP uses the PROBE method to estimate and</p> <p>plan projects.</p> <p> PROBE stands for PROxy Based Estimating.</p> <p> PROBE uses proxies to estimate program size anddevelopment time.</p> <p> A good proxy will help you to make accurateestimates.</p> <p> The size measure should be sensitive to language,design, and development practice.</p> <p>Estimating with PROBE (II) A good proxy should correlate cl...</p>