T3 – Tool For Monitoring Agile Development Valerie Trapa & Santhpur Rao July 2006 © 2005 Avaya...
-
Upload
geraldine-walton -
Category
Documents
-
view
219 -
download
0
Transcript of T3 – Tool For Monitoring Agile Development Valerie Trapa & Santhpur Rao July 2006 © 2005 Avaya...
T3 – Tool For Monitoring Agile Development
T3 – Tool For Monitoring Agile Development
Valerie Trapa & Santhpur Rao
July 2006
© 2005 Avaya Inc. All rights reserved.
2© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
Introductions
Valerie Trapa is a developer and architect with the Technology Strategy & Development group at Avaya Communications and a Distinguished Member of the Technical Staff. She is a Sun Certified Enterprise Architect (SCEA) and Java Developer (SCJP). Valerie has over 20 years of software development experience with organizations that include Fortune 100 and start-up companies, NASA, and the FAA. She lives in Boulder, Colorado where she enjoys road biking challenges.
S.N. Rao a software developer with the Technology Strategy & Development group at Avaya Communications. He has over 10 years of software development experience with various organizations doing design and development in various fields like Image Processing, Operation Support Systems, Telecommunications and Medical electronics. He lives in Louisville, Colorado and spends his free time listening to music from old Bollywood movies.
Valerie and Rao have several software patents pending for distributed architectures and licensing.
3© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
Overview
• Motivation
• What is T3
• Agile & T3
• T3 Report
• How to Use T3
• Development History
• Architecture
• T3 Reports & Stories - Sample Projects
• Downloading T3
• Lessons Learned
• Benefits
• References
• Question & Answer
4© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
Goals & Motivation
• Cronos project & data visualization techniques- Identifying critical path
• Provide view of project status- Continuous, real-time approach- Up to date & realistic - Metrics based - Flexible units of measurement (time, function points, story points, etc.)
• Communicate status easily - Complete overview of components & dependencies - Identify bottlenecks - Quantify impacts of content trade-offs
• Build in quality through unit testing - Encourage test driven development - Reflect in planning and scheduling
• Encourage Agile development- Leverage existing tools & practices: JUnit, ANT
5© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
What is T3 ?
• Light-weight extension of JUnit- Projects using JUnit can easily leverage- Integrated with ANT build tool- Open source, free & extensible
• Associates unit tests with stories - Handles interdependencies – allows stories to be related.
• Provides simple reports - Wide audience: developers, PMs, users, customer - Percent complete metrics overall & by story - Automates & standardizes status reporting - Enables comparison of relative implementation times
6© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
“Agilefall”
Agile + Waterfall = Agilefall
• Requirements- Traditional specification- Defines inter-group contracts- Supports geographically distributed teams- Baseline
• Design/Build/Test - Early design, then fill in the gaps - Frequent customer & user interaction with change anticipated - Snapshot UAT/iterations/early functionality are reviewed by testers, customers, users - A release has multiple iterations **T3 helps monitor iteration and release progress ** - Allows enough time to incorporate feedback if desired. ** T3 helps analyze impacts ** - Controlled updates
• Release - Final SV Testing - Final UAT Testing - Deployment/GA
7© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
Agile Manifesto
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
• Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.”
Kent Beck James Grenning Robert C. Martin
Mike Beedle Jim Highsmith Steve Mellor
Arie van Bennekum Andrew Hunt Ken Schwaber
Alistair Cockburn Ron Jeffries Jeff Sutherland
Ward Cunningham Jon Kern Dave Thomas
Martin Fowler Brian Marick
8© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
Principles Behind the Agile ManifestoWe follow these principles: “• Our highest priority is to satisfy the customer through early and continuous delivery
of valuable software. • Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. • Deliver working software frequently, from a couple of weeks to a couple of months, with a
preference to the shorter timescale. • Business people and developers must work together daily throughout the project. • Build projects around motivated individuals. Give them the environment and support they
need, and trust them to get the job done. • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. • Working software is the primary measure of progress. • Agile processes promote sustainable development. • The sponsors, developers, and users should be able to maintain a constant pace indefinitely. • Continuous attention to technical excellence and good design enhances agility. • Simplicity--the art of maximizing the amount of work not done--is essential. • The best architectures, requirements, and designs emerge from self-organizing teams. • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
9© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
T3 Report – Cronos Prototype Snapshot #1
10© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
T3 Report – Cronos PrototypeSnapshot #1 Summary
11© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
T3 Report – Cronos Prototype Snapshot #1 Stories
12© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
T3 Report – Cronos Prototype Snapshot #1 Details
13© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
Mechanics
• Constructing T3 Test – Method 1
/* Construct a standard JUnit test. */ TestCase sampleJunitTest = new SampleJunitTestCase("sample test case");
/* Construct a T3 test. */ T3Test t3Test = new T3Test(sampleJunitTest,stories, developers, estimatePerTest, status);
/* Run the T3 test. */ T3TestRunner.run(t3Test);
See on-line tutorial for details http://home.comcast.net/~software-without-borders
14© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
Mechanics (Continued)
• Constructing T3 Test – Method 2
/* Construct a standard JUnit Test */public class SampleT3TestCase extends TestCase { public SampleT3TestCase(String name) { …public static Test suite(){ TestSuite suite = new TestSuite(); String[] allStories = new String[]{"A Story", "Another Story"}; String[] developers = new String[]{"Valerie", "Rao"};float estimate = 6F;
/* Construct a T3 test & add it to the suite */suite.addTest(new T3Test(new SampleT3TestCase("group A description"){
public void runTest() throws Exception{ testSuccessfulAssertion(); testError(); } },allStories, developers, estimate, T3Test.STATUS_IN_PROGRESS)); …/* Run the T3 tests */ T3TestRunner.run(suite());
15© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
Development History
• Visualization – T3 Reports- Started with JUnit report, ANT junit-noframes.xsl- Data segmentation- Format
• Content – T3 Tests - Extended JUnit TestCase - Attributes: developer, status, estimates in nebulous units of time, story - Processes -estimation, refactoring, associating stories with tests - Iterations – What worked & what didn't - Dropped schedule tracking, priority
• Integration - JUnit, extended TestRunner - ANT, junitreport task
• Cronos Prototype
16© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
T3Test UML
17© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
T3 TestRunner UML
18© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
T3 ResultPrinter UML
19© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
Flow Diagram
T3TEST
RUNNER
JUnit Framework
T3TestInstances
T3/Junit XML results
XML Printer
Result Printer
XSL Transformation
Apache Ant
T3 Report
. . F. E
20© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
T3 Report – Cronos Prototype Snapshot # 2
21© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
T3 Report – Cronos Prototype Summary Comparison
Snapshot 2 Summary
Snapshot 1 Summary
22© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
T3 Report – Cronos Prototype Story Comparison
Snapshot 2 Stories
Snapshot 1 Stories
23© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
T3 Report – Cronos Prototype Details Snapshot #2
24© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
T3 Report – Cronos Prototype Details Snapshot #1
25© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
Associating Stories with Tests - Cronos
• Decompose Stories into Tasks
Task Story - Monthly usage report summary
Story – Monthly usage report filtered by user segment story
Parse Log X X
Store log info in db X X
Get monthly log info from db X
Get filtered monthly log info from db
X
Store user preferences in db X
Generate report summary X
Generate filtered report X
User input monthly report screen X
User input filtered report screen X
Display monthly report X
Display filtered report X
26© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
How to Get T3 - Downloads & Source
• External Link- home.comcast.net/~software-without-borders
27© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
Lessons Learned
• Review policy - Approval required for open source projects
• Package & preparation- Compatibility testing with multiple JDKs, and frameworks (ANT, JUnit)-Tutorials
• In Progress- Gather more feedback as usage increases
28© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
Future Directions
• IDE plug-ins • GUI test runner
• Web launch
• Other?
29© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
Top 10 Reasons to Try T3
10. Short Ramp-up Time <10 minutes for JUnit developers
9. Leverages Existing Tools and Practices, e.g., JUnit, ANT
8. Provides Realistic Project Status
7. Promotes Teamwork
6. Provides Traceability
5. Aligns Expectations
4. Identifies Bottlenecks
3. Promotes Test Driven Development
2. Free & Open Source
1. Fun!
30© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
References
• T3 Tutorial, Download, & Resources-home.comcast.net/~software-without-borders
• T3 Overview and Application- T3 – Tool for Monitoring Agile Development, V.Trapa & S.Rao, IEEE Agile Conference Proceedings, 2006.
• JUnit-www.junit.org
• Agile -www.agile.org-User Stories Applied For Agile Software Development, M. Cohn, 2004.-Agile Software Development, Principles, Patterns, and Practices, Robert C. Martin, 2002
31© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
Question & Answer
32© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
Backup
33© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only.
Tutorial
How to Deploy T3