Pleasing Your Customer Kenneth M Anderson University of Colorado Boulder CSCI 5828 Lecture 3 01 20 2009 University of Colorado 2009 1 Goals Review material from Chapter 1 of Pilone Miles Concepts include Ultimate goal of software development Hint title of chapter gives it away Importance of Iteration Initial steps in planning a development activity 2 Pleasing Your Customer If your customer is unhappy you re unhappy The ultimate goal of software development is solving your customer s problem by delivering what is needed on time on budget This is NOT easy Important Need to have a clear idea of who your customer is Why 3 Who is the customer The person or persons playing the role of the customer can vary across development contexts In chapter 1 we have a situation in which we are being hired by Tom a small business owner to create a website Tom is clearly the customer he is providing requirements and paying for the work But when the website is deployed who becomes the customer Tom s customers 4 Customer User HCI and CSCW research shows that systems live or die by how happy the end users are with the system Tom s customers in this case are the end users However in this initial sequence of development we only have Tom and we have to go by what he says In the future Tom will be hearing from his customers about the utility and usability of our website and he will convey that feedback to us What s the difference between utility and usability 5 Other Customers You Often for only small scale software CTOs Acquiring enterprise level systems for an organization Who are the end users in this situation New Application Development be it desktop web mobile For version one development team How can you avoid this Who are the end users 6 Chapter Example I Tom s Trails Website for existing small business Find Trails Buy hiking boots and other related items Learn from Tom s experience FAQs monthly column etc Needs website created in three months time for upcoming industry trade show Two questions How much will it cost How long will it take 7 Chapter Example II Big Bang Approach to Software Development The developer that Tom hires takes his initial ideas disappears for a month and codes like crazy displays final product to Tom What happens 8 Chapter Example III The developer delivered software that did not meet Tom s expectations And if the customer is unhappy Reasons Did not fully understand Tom s requirements Tom s view of what he wanted can shift over time Did not check in with Tom during development So any unclear requirements were resolved by developer making arbitrary decisions 9 Not Guesswork 10 Not Guesswork Software is NOT Guesswork 10 Not Guesswork Software is NOT Guesswork 11 Not Guesswork 11 Software is NOT Guesswork You need to keep the customer in the loop to make sure you re on the right path even when you re SURE you know what the customer wants why Great Software Delivers What is needed On Time On Budget 12 Great Software Delivers What is needed requirements On Time On Budget 12 Great Software Delivers What is needed requirements On Time project planning project management On Budget 12 So how to get there 13 The developer in the example did not apply basic project planning management techniques did not make use of iteration did not acquire feedback did not clarify requirements with the user The developer made use of a life cycle barely worth the name called CODE FIX actually just code and now needs to do a LOT of fixing Iteration is important because requirements CHANGE The Trainwreck Start The Goal 14 With iteration a project can make course corrections as requirements change so that what s delivered matches what s needed Start The Goal 15 Iteration I 16 An iteration produces working software when you complete an iteration you have something to show the customer Iterations should be relatively short with respect where short is defined by the estimated length of the project they can be anywhere from two weeks to six weeks Our book picks 20 days because that is roughly what you get if you start with a calendar month and subtract out the weekends Iteration II 17 Iterations are fractal They decompose nicely into smaller iterations A 20 day iteration can be split into two internal 10 day iterations A work day can be split into roughly three 2 hour iterations Here the customer is yourself what can I get done in two hours did the result match my expectations should I show this to my coworker for feedback etc Iterations promote continuous building and testing Otherwise you are not delivering working software Iteration III 18 Each iteration is a mini life cycle A typical life cycle consists of these major activities Requirements Design Code Test Deploy High level ideas come in and working software comes out Iterations decompose this high level process such that all of the major steps are performed for each iteration By doing this you increase your chances of producing high quality software that solves your customer s problem Iteration IV Indeed the MIT Sloan Management Review published an analysis of software development practices in 2001 Strong correlation between quality of software system and the early delivery of a partially functioning system the less functional the initial delivery the higher the quality of the final delivery Strong correlation between final quality of software system and frequent deliveries of increasing functionality the more frequent the deliveries the higher the final quality These results suggest that iterations need to be short 19 Iterations Help You Plan Iterations can help you plan ahead to achieve success Input List of features with estimates and priority Customer supplies list and priority Book recommends priority scheme based on multiples of 10 Developer supplies estimates we ll see how in lecture 5 Output List of proposed iterations with features assigned Highest priority features are tackled first Features assigned have estimates less than iteration length 20 Can you do it 21 Having an iteration plan lets you keep track of whether the project is feasible Days of Work Left Days left before deadline Can you do it You want this number to be NEGATIVE 15 30 15 i e fifteen days ahead of schedule Iterations Help You Respond to Change 22 And things will change The book shows Tom introducing a new request near the end of the second iteration that leads to three new features each with their own estimates and priorities With an iteration plan you can rejigger the
View Full Document
Unlocking...