Effektiver Tool-Einsatz für Scrum-Projekte im Java-Umfeld Agile Softwareentwicklung Werte, Prinzipien, Methoden und Prozesse 13. OBJEKTspektrum Information Days 29. April 2010, München Gerhard Müller, Dr. Martin Wagner TNG Technology Consulting GmbH, http://www.tngtech.com
What we expect from you Expected Knowledge Knowledge of Scrum principles Basic knowledge of agile development General enterprise software development know how TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 2
There is a clearly defined process with few artefacts Scrum Flow: Artifacts & Meetings Estimation Meetings Source: http://www.infoq.com/minibooks/scrum-checklists (free registration required), modified TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 3
It is one of our views. Background Our experience demonstrated here is a concrete example, other ways may also work Worked for startup and mid-size (650 employees) company 2 week iterations Disclaimer: TNG is an Atlassian Partner (because we love their products) So there is lot of 'Jira' and 'Confluence' TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 4
Hardware Ingredients One Room Digital Camera DIN A6 File Cards Development Server Planning Poker Cards (Huge) Task Board TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 5
Software Ingredients Wiki Confluence Issue Tracker Jira Version Control Software Subversion Mind Mapping Software Freemind Artifact Management Software Artifactory TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 6
What do we do tomorrow? Product Backlog Freemind, http://freemind.sourceforge.net/ Mind map containing coarse planning for future sprints Upcoming user stories, containing Detailed explanations Acceptance tests Jira, http://www.atlassian.com/software/jira/ Technical Product Backlog bugs, improvements, ideas Business Support, Production Issues Technical debt ( works for now, but has to be revised ) TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 7
What do we do tomorrow? Product Backlog TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 8
What can we achieve? Sprint Planning 1 Freemind Online Planning Poker Team Commitment Result: Mindmap containing selected product backlog Stored in Confluence Who: Whole team plus Product Owner, about 1-2h TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 9
One step at a time Sprint Planning 2 Discussion of detailed design Every team member knows design Breakdown of tasks follows naturally Cardboard: two colors User Story blue, Task white Specific JIRA issue type User Story, tasks modeled as JIRA sub-issues Result: Colorful task board Who: whole team, about 2-3h TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 10
What can we achieve exactly? Selected Product Backlog in Jira TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 11
Done means DONE Definition of Done (DoD) thinking grid Picture source: http://www.scrumalliance.org/articles/106-definition-of-done-a-reference TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 12
Defining Definition of Done Done should be different for each team TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 13
Round and round again Testing (focus on Java) It s all about feedback loops! Test Framework: TestNG (categories!) Test Types/Categories: unit (Mockito), integration, performance, ui, e2e (client/server) for staged builds UI Tests: Selenium RC Java Script Tests via Selenium Some source code aspects (platform dependency, package dependencies, ): AspectJ (included in maven build) TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 14
Open Source provides great tools Testing Technology Stack (focus on Java) Spring 3.0 Dependency Injection is a must TestNG Categorize your tests Mockito best Mocking framework around DbMaintain incremental database updates Fitnesse automating acceptance tests in a Wiki Selenium also browser UIs can be tested TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 15
Refactoring Databases made easy Handling Database Schema Changes Think of modification of DB schemas as versions May be implemented by a meta table in the database Use DbMaintain to execute incremental database updates Integrate DB database update into version control and continuous integration Make sure software and database schema versions match, e.g. by checking this at application startup Book: Refactoring Databases TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 16
Daily business Daily Scrum Tasks are moved on card board States: Open, In Progress, In Review, Done Quick overview Jira issues are changed accordingly Starting a user story specify person responsible for story Limit size of queues if discipline is needed (e.g. too many open reviews) TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 17
Everyone is a manager Working with Tasks Tasks on Task Board Tasks in Jira Tasks in Eclipse - Mylyn TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 18
And the DJ is Hudson Build & Test Server: Hudson Hudson, http://hudson-ci.org/ Continuous Integration Nightly Build External Integration 1-Click Release Job TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 19
Big Hudson is watching you Automated Reporting via Hudson Cobertura (test coverage), FindBugs (static code analysis) and others are part of nightly build E-Mails for broken builds Anyone breaking the build has to get cookies for the team TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 20
Source Code Quality matters http://sonar.codehaus.org/ Identify hot spots and trends TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 21
Big Jira is watching you, too Tracing Code Changes Subversion: Commits must have valid Jira Issue Number Jira commit acceptance plugin Hudson shows all changes since last build Including Jira issue numbers (ensure via commit acceptance plugin) Especially important for release builds Jira lists all changes associated with a particular issue Jira subversion plugin Quelle: TNG TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 22
Round and round... Automated Builds Independent of individual team members Release process automated as well Specific Hudson jobs (includes tagging of source code) Great way to ensure frequent potentially shippable product increments without additional effort Enterprise Maven Repository Well-defined place for release artifacts Tool: Artifactory Quelle: TNG TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 23
Agile Dilbert style Source: http://www.dilbert.com TNG Technology Consulting GmbH, Effektiver Tool-Einsatz
Reviews help Workflow demands explicit Review Explicit Peer Review, Definition of Done as checklist Jira links to source code and documentation Task/Story finished? Tests sufficient? Coding style? Documentation? Development process defined within tools (e.g. Jira) No more misleading long Word documents Instead: executable process specification, linking of information Quelle: TNG TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 25
Just enough paperwork Documentation Emergent documentation with implicit updates and verification during review process, update notifications Clean code and JavaDoc for source code Confluence (Enterprise Wiki) for the rest Development: Domain model, deployment, architecture, branching, team, guides Install Guide, Admin Guide, User Guide Separate Spaces in Confluence http://www.atlassian.com/software/confluence/ TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 26
What have we done? Sprint Review Version from stage repository Created by release build Deployed on test system Who: Whole team plus Product Owner and currently relevant stakeholders Result: Happy stakeholders, often some new product ideas 1h, not much preparation (no PowerPoint!) TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 27
What can we improve? Retrospective Team plus Product Owner if invited About 1-2 h (longer if necessary, albeit time boxed) NOT in the team room go outside, special meeting room, beer garden Gadget-free environment Design experiments changing team process Only some doable changes Evaluate at next retrospective TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 28
Only the team knows what s possible. Estimation Meetings Weekly, strictly time boxed Usually short (30min) Input for Product Owner How large are new user stories? Are user stories specified well enough? Which clarifications are necessary? Input for Team What will we do during the next Sprints? Which technical knowledge do we have to build? Quelle: TNG TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 29
Scrum knowledge Helpful Books Succeeding with Agile Software Development Using Scrum (Mike Cohn), ISBN978-0-321-57936-2 Scrum. Produkte zuverlässig und schnell entwickeln (Boris Gloger), ISBN 978-3446419131 Scrum and XP from the Trenches (Henrik Kniberg), ISBN 978-1430322641, Free PDF: http://www.infoq.com/minibooks/scrum-xp-from-the-trenches The Art of Agile Development (James Shore, Shane Warden), ISBN 0-596-52767-5 Continuous Integration: Improving Software Quality and Reducing Risk (Paul Duvall, Steve Matyas, Andrew Glover), ISBN 978-0321336385 Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin), ISBN 978-0132350884 Implementing Lean Software Development (Mary and Tom Poppendieck), ISBN 978-0321437389, http://www.poppendieck.com/ilsd.htm xunit Test Patterns: Refactoring Test Code (Gerard Meszaros), ISBN 978-0131495050 TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 30
Speaker Contact Data TNG Technology Consulting GmbH TNG Technology Consulting GmbH Betastr. 13a Betastr. 13a 85774 Unterföhring 85774 Unterföhring Tel. +49 (0)89 2158 9960 Tel. +49 (0)89 2158 9960 Fax +49 (0)89 2158 9969 Fax +49 (0)89 2158 9969 Gerhard Müller Mobil +49 (0)179 1338 060 Dr. Martin Wagner Mobil +49 (0)176 2394 7429 Diplom-Informatiker (Univ.) Partner gerhard.mueller@tngtech.com Dipl.-Inf. Principal Consultant martin.wagner@tngtech.com TNG Technology Consulting GmbH, Effektiver Tool-Einsatz 31