Process Presentation Kin Wan Li, Ashley Zoch, Mevesh Gopee, Damian Ridgwell, Edwin Lusala,
Key achievements Completed 8 User Stories UI, Processing, Database & Testing Setup a development environment with automation Builds, testing, web deployment, metrics Practiced Pair Programming & Refactoring Agile Development Practices Continuous integration, task tracking, wiki documentation Weekly client presentation, demonstration & review
Week 3 Vision Statement & Initial Analysis Pain Points, User Goals, Solution Overview Established project repository Task Backlog, Wiki documentation Convention for allocating tasks Added in Google Code, allocated as a group
Week 4 & 5 User Stories, Analysis & Modelling Domain Model User Stories Domain Vocabulary UI Mock-ups Architecture
Week 6 & 7 Learning the Technologies Database Spike HTML / CSS / JavaScript Spike Wiki Spike SVN Spike
Week 8 Project Start-up Iteration Setup source repository Setup Build Environment ANT, Coding Standards JUNIT 2 User Stories UI, Processing and Database
Week 8
Week 9 Pair Programming Iteration PMD & Metrics 4 User Stories UI, Processing and Database Resolved DB Schema Issues
Week 10 Refactoring Iteration 2 New User Stories 4 Re-factored User Stories EMMA Coverage Metrics JSP & EMMA Spikes
What We Learned Technologies Building, testing, development, database, UI Practices User Stories, evolving requirements Modelling Lightweight useful documentation Iterations, Backlogs, Pair Programming, Refactoring
Agile Practices Self Management Allocating tasks as a group, ownership of tasks Communication Frequent client interaction Face to face team sessions, backlog for tracking Pair Programming & Refactoring Test Driven Development Iterations, delivering working code
What Worked? Tasks Google Code Backlog, self management Spikes Rapid understanding of technology / practices Pair Programming Working together increased productivity Re-factoring Improved the quality of our code base
What Worked? (continued) Automation Building, test database scripts Source Control Sharing of code, history of changes Meetings Brief sessions before & after client meetings Conventions Set UI, coding conventions early and used them
What Didn’t Work? Working in isolation We worked better together in the same location We didn’t benefit from shared code Automated Unit Testing Needed more effort to get it working right Paper based documentation / photos Hard to maintain when they are not on the wall Online tools were a good quick alternative
Agile Methodology
Recommended Practices Frequent client communication / demonstrations Prioritising User Stories for iterations Google Code Issue / Task Backlog Burn Down Chart Weekly Metrics (codebase and work effort) Stage Environment
Recommended Practices (cont) Online Tools for documentation Wiki, Mock-ups, Diagrams Development Office with whiteboards Source Control / Project Repository Automation (Build, Test, Metrics, Deployment) Test Driven Dev, Refactoring & Pair Programming Toolbox Meetings, Team Communication Knowledge Building through Spikes
Questions? Thank you for your time.