Personal Design and Development Software Process PD2SP “The unexamined life is not worth living.” Plato Cynics’ Guide to Personnel Management • Those who work get to keep their jobs. • Raises become effective when you do. • It’s better for you to tell them than for them to find out. How do you meet expectations and still have a life? What It Means to be Effective • As software professionals you must know your own performance. • You should measure, track, and analyze your work. • You should learn from your performance variations. • You should incorporate these lessons in your personal practices. Introduction • Measure and analyze your personal design and development software process (PD2SP). • Use process data to improve your personal performance. • Understand variation in your work patterns. • Plan and estimate software development tasks. What Metrics Do You Need? • Time: – Class, Prep for class, Recording time, Design time, Planning Time, Programming, Debugging. – Provide both planned and actual times. • Code: Quality and Quantity. • Results: Demonstrated Correct, Complete Code. Cost of 2 PD DP • The time required to learn and use it. • The emotional cost of maintaining the needed discipline. • The potential risk to your ego. Benefits of 2 PD DP • The insight you gain into your talents and abilities. • The stimulation of an almost unlimited stream of ideas. • The framework provides for personal improvement. • The degree of control you gain over your time and work. • The feeling of pride and accomplishment. • An improved basis for effective teamwork. • The conviction to do the job the way you know you should. By the end of the semester: • You will understand some methods are effective for you. • You will do better work. • You will have long-term improvement goals. 2 PD SP Principles • The quality of a software system is governed by the quality of its worst components. • The quality of a software component is governed by the individual who developed it. • You are governed by your – knowledge – discipline – commitment What do you know about your software development skills? • Can you – Design, estimate, and plan your work? – Meet your commitments? – Resist unreasonable commitment pressures? • Do you – Understand your ability? – Have an improvement plan? 2 A PD SP Also Provides • A basis for developing and practicing industrial-strength personal disciplines. • A discipline that shows you how to improve your personal process. • The data to continually improve the productivity, quality, and predictability of your work. What is a 2 PD SP? • A personal process for developing software • defined steps • forms • standards • A measurement and analyses framework to help you characterize your process • A defined procedure to help you to improve your performance SEI Capability Maturity Matrix • Broadly agreed-upon definition of how a software organization matures and improves. • Based on manufacturing process improvement and “best practices” from software engineering • Some dramatic successes. Each key process area has five common features: • Goals to be achieved; • Ability to perform; • Activities performed; • Measurement and analysis; • Verification 2 PD SP Overview 2 PD SP Overview • Since this is so late in your education, can’t do it all in one course. • Focus on how to make your more efficient in time • We’ll just do the first step. 2 PD SP0 Identify your current software development process including: – Planning - Produce a plan to do the work. – Development - The actual software development. – Postmortem - Comparison of actual performance with your plan. The measurements will be • Based on your current process. • Measure where you spend the bulk of your time. We will use minutes as the base granularity for data to be meaningful. • Defect Recording. A defect recording log is used to hold data on each defect found and corrected. Don’t Panic You will NOT be graded on how long it takes or how many defects you find 2 ThePD SP0 Summary • Your original estimate of the LOC you expect to develop. • The actual LOC you developed. • Your original estimate of the time required for each phase. • The actual time required for each phase. • The total number and the percent of defects injected in each phase. • The total number and the percent of defects removed in each phase Task Planning • Task planning involves estimating the development time and completion data for each project task. • It also provides a basis for tracking schedule progress. Process • Time and Schedule Management • Requirements Management • Design and Work Breakdown Structure • Development • Reporting • Earned Value Estimation Time and Schedule Management • Enter initial project data in the project plan summary (PDSP0). • Complete Initial Time Schedule Template (SPT). • Begin Time Recording (TRT). Requirements Planning • Complete the Requirements Work Template (RWT) in the Excel workbook. – Constraints are logical statements – Criteria are performance statements Design and Work Breakdown • Use developed requirements document. • Complete a Work Breakdown Structure • Estimate the required development time. • Complete the task plan (WBS). Reporting • Complete the project plan summary with actual time, defect, and size data. • Complete the PIP (PD2SP0). • Coding Standard • Size measurement • Process improvement Proposal Rules of the Game • Please keep accurate track of time. • YOU WILL NOT BE GRADED ON YOUR TIME OR QUALITY from this report!! Quality measurement comes from testing • Keep your programs simple. You will learn as much from small programs as from large ones. • Keep your reports and standards simple and short. • Do not hesitate to copy or build on the PD2SP materials. Rules of the Game II • Do it right the first time. If you are not sure, find out. • Software is not a solo business so you do not have to work alone. • You must, however, produce your own estimates, designs, and code. • You may have others review your work and you may change it as a result. You should note this help in your process report, include the review time you and your associates spend, and log the defects found. Grading • Your process report must be: – complete – legible – in the specified order • Your process data must be: – accurate – precise – self-consistent The 2 PD SP0 Process • A simple defined personal process • Use your current design and development methods. • Gather data on your work: • time spent by phase • defects found in compile and test Prepare a summary report. • A project plan summary form • A process script • A time recording log • A defect reporting log • A defect type standard More Process • Planning - estimate development time • Development - develop the product using your current methods • Postmortem - complete the project plan summary, with the time spent and defects found and injected in each phase. • Design - design the program, using your current design methods The End of the Beginning Defect type standard • Date defect was found. • Defect number. • Defect type (documentation, syntax, assignment, interface, etc.). • Phase where defect was injected. • Phase where defect was removed. • Time it took to fix the defect. • If injected while fixing another defect, that defect’s number. The defect types 1. Documentation 2. Syntax 3. Assignment 4. Interface 5. Checking 6. Data 7. Function 8. Environment