previous lecture
play

Previous Lecture Software Tools INF 111 / CSE 121: Methods & - PDF document

Previous Lecture Software Tools INF 111 / CSE 121: Methods & Notations Software Tools and Methods Process Modeling The Agile Process Model Started on XP Lecture Notes for Fall Quarter, 2007 Michele Rousseau Lecture Notes


  1. Previous Lecture � Software Tools INF 111 / CSE 121: � Methods & Notations Software Tools and Methods � Process Modeling � The Agile Process Model � Started on XP Lecture Notes for Fall Quarter, 2007 Michele Rousseau Lecture Notes Set 3 2 Lecture Notes 3 Today’s Lecture Extreme Programming (XP) � Continue with XP � Invented by Kent Beck in 1996 � Testing ● “Seat of the pants” fix to Chrysler project � No Silver Bullet ● To fix problems caused by long development cycles of traditional process models � Beck Published in 1999 “Extreme Programming Explained: Embrace Change” “E t P i E l i d E b Ch ” ● Current hot topic in S/W Process ● Loved and Hated ● Tries to associate s/w process with eXtreme sports � Idea: Take a good programming practice and push it to the extreme ● Eg. Testing ● Testing is good so… do it all the time Lecture Notes 3 3 Lecture Notes 3 4 Premise of XP 6 Phases Of Development � The Four Values � Exploration � Planning � Iterations to Release � Productionizing � Maintenance Communication Simplicity Feedback � Death Courage Hmmm.. But aren’t these standard “Best Practices”? What’s new here? Lecture Notes 3 5 Lecture Notes 3 6 1

  2. Exploration Phase Planning Phase � Prioritize Stories ● First Small release agreement � Customers ● Story Cards – 1 feature per card � Effort Estimate for each story ◘ Customer wish list for first release � Developers ● Schedule Agreement ● Get familiar with ◘ Usually < 2 months Usually < 2 months ◘ Tools ◘ Technology ◘ Practices � Takes a few days … to be used ● Architecture possibilities explored – Prototype ● Tailor process to the project � A few weeks to months ● How familiar is tech to programmers 7 8 Lecture Notes 3 Lecture Notes 3 Iterations to Release Phase Productionizing Phase � End testing before release � Several Iterations before 1 st Release � New changes may be found � # of Iterations determined in planning phase ● Decide whether to include in current release ● Documented for later implementation � Each iteration takes 1-4 wks to implement � Maintenance Phase � Maintenance Phase � Select stories wisely � Iterations shortened ● these enforce system architecture for the entire system ● Customer chooses stories for each iteration � Functional tests created by Customer ● Run at the end of each iteration At the end of last iteration � Production Lecture Notes 3 9 Lecture Notes 3 10 Maintenance and Death Phases XP Lifecycle Model � Maintenance ● May need more people ◘ Maintain current production ◘ Produce new Iterations ◘ Change team structure ● Development slows � Death Phase Either… ● All stories complete & quality is satisfactory ● Not delivering expected outcomes ● Too expensive to continue Lecture Notes 3 11 Lecture Notes 3 12 2

  3. Programmer Practices 14 Key Practices of XP Simple Design � Simple Design Programmer Test-driven development ● Simple solutions � no complex or extra code Practices Refactoring ● Do the simplest thing that will get you thru milestone Pair programming ● Eliminate duplication in the design Continuous integration ● Don't over engineer, solve problems only when they Collective code ownership occur Coding standards Just Rules � Test-driven development ● Unit test implemented before code and are run Planning Game Management continuously (White Box Testing) Small releases Practices ◘ Write a simple, automated test before coding 40-hour week ● Customers write functional tests (Black box testing) Open Workspace Communication Simplicity Feedback On-site customer Customer Practices Courage 13 Metaphor 14 Lecture Notes 3 Programmer Practices (2) Programmer Practices (3) � Refactoring � Collective Ownership ● Improving code without changing features ● Any developer can change any code any time � A change to the system that leaves its behavior ● But, “ you break it, you fix it ” unchanged, but enhances some nonfunctional quality-simplicity, flexibility, understandability, performance. � Coding Standards ● Automated tests catch any errors that are introduced ● Everyone codes to the same style standards � Pair Programming � 2 people + 1 computer ● Corollary to “collective code ownership” C ll “ ll i d hi ” ● “No one can recognize who wrote what” ● One codes, one thinks about the design and catches errors � Just Rules � Continuous Integration ● Team defined – can change ● Many times / day ◘ all must agree & impact assessed ● All tests must pass for changes to be accepted Communication Simplicity Feedback Communication Simplicity Feedback Courage Courage Lecture Notes 3 15 Lecture Notes 3 16 Pair Programming Management Practices Programming is not just “typing”, this is why pair � Planning Game programming does not reduce productivity (Fowler) ● Dev estimates effort ● Cust decides what they want and when Benefits: � Small Short Releases < 2-3 months ● All design decisions involve at least two brains. ● Then less ● At least two people are familiar with every part of the system. f th t � 40-hour work week 40 h k k ● No 2 overtime wks in a row ● There is less chance of both people neglecting tests or other tasks. � Open Workspace ● Changing pairs spreads knowledge throughout ● 1 Large Room � Small Cubicles the team. ● Pair Programmers in the Center ● Code is always being reviewed by at least one Communication Simplicity Feedback person. Courage Lecture Notes 3 17 Lecture Notes 3 18 3

  4. Customer Practices User Story / User Card � On-site customer ● Need customer/user around to answer questions ● Builds a bond, working relationship � Metaphors ● “Shared Story” guides development ● Describes how system should work Communication Simplicity Feedback http://www.scissor.com/resources/teamroom/ Courage 19 20 Lecture Notes 3 Lecture Notes 3 The XP Team Room XP Concepts � XP is a set of key practices that suggest a software development process. � Key concept: Embrace change . ● Rather than avoid changes, try to reduce the cost of making changes. � Key concept: Defer costs . ● Rather than face every problem up front, try to start with a small subset and incrementally plan and carry out improvements. Lecture Notes 3 21 Lecture Notes 3 22 XP Proponents Responses to Criticisms XP Proponents Resp. to Criticisms (2) � Just a fancy form of build-and-fix . � Doesn’t work for geographically distributed teams. ● False. ● False. ● XP is actually a disciplined software process. ● Technology is both the cause and the solution ● Has the some of the same challenges and adoption ● Planning tools, Skype, IM, revision control problems as traditional phased processes. � User stories are no substitute for requirements. � Doesn’t work for large systems. ● True. ● False ● False. ● User stories work, because they depend on the other practices U t i k b th d d th th ti ● Chrysler Comprehensive Compensation system was a such as On-site Customer large system ● Other XP users include Google and John Deere � Doesn’t work with safety-critical software . ● False. � Doesn’t work for large teams. ● Same challenges apply here as with phased processes ● False. ● Can add checks and balances, documentation, and formal ● Large teams are normally broken up into sub-projects design as needed ● Same can be applied to large teams using XP Lecture Notes 3 23 Lecture Notes 3 24 4

  5. Productivity Gains XP Proponents Resp. to Criticisms (3) � Doesn’t produce documentation. ● Maybe. XP only produces as much documentation as is � For a Web Dev Project needed, when it is needed (simplicity). ● 66% increase in new lines of code � It is wasteful, because you’re doing constantly p produced doing re-design. doing re design. ● False. ● 302% inc in new methods developed ● Planning everything up front is wasteful, because things are ● 283% inc in # of new classes implemented going to change anyways. � Not suitable for all projects ● True. ● User functionality is simple, algorithms hard ● Example: scientific applications Maruer & Martel 2002b 25 26 Lecture Notes 3 Lecture Notes 3 Cons More Reading if you are interested � Corp Culture must support XP ● Any resistance can lead to failure � Agile ● Abrahamsson, P, et al. (2002). Agile � Best for teams < 20 software development methods: Review and analysis. VTT Publications 478. y ● http://www.vtt.fi/inf/pdf/publications/2002/P � Best if teams are collocated 478.pdf ● On the same floor � XP ● Beck, K. (1999). Extreme programming � Technology that does not support “graceful change” � may not be explained: Embrace change. Reading Mass., Addison-Wesley suitable Lecture Notes 3 27 Lecture Notes 3 28 Moving on.. Take a break! � Stretch, Relax � No Silver Bullet � Get some water, Use the restroom � Testing � Get to know your classmates… � Etc….. When we return… � No Silver Bullet � Testing Lecture Notes 3 29 Lecture Notes 3 30 5

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend