eXtreme Programming: Test-First Copyright Rick Mugridge UoA Rick Mugridge Department of Computer Science University of Auckland
eXtreme Programming: Test-First Copyright Rick Mugridge Software Engineering New Engineering degree introduced for year degree First 60 students now in second year High entry level requirements Compete with medicine Emphasis on practical aspects of software development Much more so than Computer Science Projects each year 4 th year project with industry
eXtreme Programming: Test-First Copyright Rick Mugridge SOFTENG 251 Introduction to OO programming in Java Inheritance & aggregation Types & Values; Polymorphism OO programming Case studies: JUnit & AWT Iterative development Test-First Programming Unit testing with JUnit Refactoring Testing
eXtreme Programming: Test-First Copyright Rick Mugridge SOFTENG 206 Year 2 project paper Last third on eXtreme Programming In teams of 6 or 7 Customer is one of teachers Project to build a wiki-like system using Java servlets, for use in course 3 iterations, each of 2 weeks. Bigger change for iteration 3 Planning Game with whole class Stories influenced by suggestions from students
eXtreme Programming: Test-First Copyright Rick Mugridge Stories: Iteration 3 Story 12: login There is a front page that allows the user to login (name and password). The first page presented after logging in is the page named "Home". Story 13: reorganize to remove directories All displayed pages are text with bold, italic and headings. There may be links to other pages. If a link to a topic doesn't exist, the topic is created when the user clicks on the link. At the bottom of each page are buttons and text boxes for edit, search, rename, copy, delete, create new.
eXtreme Programming: Test-First Copyright Rick Mugridge Iteration 3 Story 14: authentication system If the admin person logs in then instead a page with names and passwords is displayed. This page can be edited as usual. Story 15: previous versions Whenever a page is edited, the previous version is saved. A button "previous" is added to the bottom of each page, to give access to the previous version(s). Previous versions cannot be changed. Story 16: List of all topics At the bottom of each page is a link "List" which gives a list of all topics. Previous versions are not listed.
eXtreme Programming: Test-First Copyright Rick Mugridge Findings Students took to pair programming well They were inclined to invent/guess detailed requirements, instead of asking the customer They needed help in seeing how to use unit tests Integration problems for some teams due to last- minute collection of lots of code Strongly motivated Rewarding for us too..
eXtreme Programming: Test-First Copyright Rick Mugridge Future Planning to have an XP project at 3 rd year too Longer project would be better Aim to have several days solid on the project, rather than 1/7th of effort over a longer period More active customer and coach involvement to answer questions, help and give feedback Teams can differ in their velocity Fixed time available Maybe swap team members for last iteration? I want to introduce XP ideas right from the beginning of SE Social skills! Skills before knowing technology