Conference Tutorials

The Agile PMP: Teaching an Old Dog New Tricks

How to shift from traditional Project Management to Agile Project Management

9:00 AM - 4:00 PM

Mike Cottmeyer

While moving from traditional project management to agile project management will certainly involve learning new tools and new techniques, success will hinge largely on how well we adopt new ways of thinking about project control. Building on the principles of PMI and the Project Management Body of Knowledge (PMBOK) we will explore how a PMP can adapt their knowledge and experience to become an effective agile project manager.

Topics will include:

  • Why traditional project management breaks down on software projects
  • Predictive process control vs. empirical process control
  • Focusing on outcomes not process steps
  • Managing commitments and accountability
  • Planning to accommodate change
  • Project control using value focused metrics
  • Mapping agile into PMI Process
  • Groups and Knowledge Areas

Biography:

Agile Project Coach, Process Mentor, PMP Certified Project Manager, Certified ScrumMaster

Skilled at enterprise portfolio management, program management, and project managment. Able to leverage traditional and adaptive project management methodologies to establish high performing project cultures. I deliver results through team building, accountability, and creating environments that empower individuals to deliver.

Co-developed an industry first Agile Project Leadership qualification in partnership with the DSDM consortium (UK) and GoAgile (Denmark). Certified at APL foundation, practitioner, and examiner.

Board member and current Treasurer of APLN, founder of APLN Atlanta, member of the Agile Alliance, member of PMI, member of PMI Atlanta, and a member of the PMI-ISSIG.

Honorary member of the DSDM Consortium.

Testers: Crossing the Chasm, A Tutorial for Transitioning Teams

9:00 AM - 12:00 PM

Lisa Crispin

Duration: 1/2 Day

Agile development may have "crossed the chasm", but when teams transition to agile, testers often get left on the other side. Developers learn TDD, CI, refactoring, and how to pair. Project managers go to ScrumMaster certification. What do testers get? Too often, they're left to fend for themselves, and the transition to agile looks as forbidding to them as the Grand Canyon. They're looking for answers to questions like these:

  • How does testing "keep up" with two-week iterations?
  • I'm a QA manager, what is my role on the new agile team?
  • Where does user acceptance testing fit now?
  • What about those audit requirements?
  • Am I supposed to go talk to the customers now? Or do they have to write tests themselves?
  • Is there a mule who can carry me down this treacherous path?

This tutorial will help testers and their managers across the chasm to agile, and help them integrate successfully with the agile development team to produce the best possible software.

Our audience includes QA/Test managers and testers who are struggling to integrate themselves and their teams into agile development projects; Project Managers and Customers who want to know how to interact with the test team in an agile project; Developers or development managers who have been "saddled" with a team of testers, who may or may not have expected technical skills.

Process/Mechanics

The tutorial will use hands-on exercises, examples and lecture/discussion to help testers understand their role working on mainstream agile projects. Participants will learn how to transfer their existing skills to an agile environment, and how to collaborate with developers and other team members to succeed with testing and get all stories "done". The session will be tailored as much as possible to the needs of the actual attendees by means of polling them at the start and adjusting the content and focus accordingly. Participants will also learn from each others' experiences through discussions.

Background

I often hear from a lot of different people about the problems their testers had, or the problems they had with their testers. "Our testers all quit", "We keep inviting the testers to pair, but they refuse". Often, testers get no training or support. This tutorial hopes to address that.

Some material in this tutorial has been used in other related tutorials, but those have all received good evaluations!

Biography

Lisa Crispin and Janet Gregory are co-writing a book on Agile Testing: The Tester Role on an Agile Project, to be published by Addision-Wesley in 2009. Please see www.agiletester.ca for more.

Lisa Crispin is the co-author, with Tip House, of Testing Extreme Programming (Addison-Wesley, 2002). She is currently a tester on an Agile team at ePlan Services, Inc. in Denver, using Scrum and XP to develop web-based financial applications. She has worked on agile teams since 2000. She has more than 10 years experience in the testing and quality assurance area. She has presented tutorials and workshops on agile testing at software development and testing conferences in the U.S. and Europe. She contributes articles related to agile testing to publications such as IEEE Software, Better Software Magazine, Methods and Tools and Novatica. For more about Lisa's work, please see her website, http://lisa.crispin.home.att.net

Unit Test Patterns

xUnit Test Patterns and Smells; Improving Test Code and Testability Through Refactoring.

9:00 AM - 12:00 PM

Gerard Meszaros, Independent Consultant

Automated unit testing is the agile software development equivalent of 'in-process inspection' in Lean Production systems; it is used to prevent defects from being introduced as software is developed. xUnit is the generic name given to the family of tools/frameworks used by developers when developing automated unit tests. The community has now had enough experience with using xUnit to start cataloging "best practices" and "not so best practices" as patterns and smells. This tutorial introduces a number of these "test smells", describes their root causes, and suggests possible solutions expressed in the form of patterns.

Benefits:

Most experienced practitioners of Test-Driven Development will tell you that you should expect to have as much test code and production code. "Yikes! Won't that double my cost of producing working software?" You ask? The answer, as always is "It depends!" Test code is not all created equal. There is Single Glace Readable test code and there are Obscure Tests. There are Independent Tests and there are Interacting Tests and Test Run Wars. There are Robust Tests and there are Fragile Tests. In each case, the former are easy to write and maintain while the latter increases the cost of ownership of the automated test suite considerably. This tutorial provides the participants with a vocabulary of smells and patterns with which to talk about the quality of their test code and a set of reusable test code design patterns that can be used to eliminate the smells.

Audience:

Unit Test Patterns and Smells will be of most interest to developers, development leads, coaches and architects who want to learn how to write automated unit tests in a more cost-effective way whether they are working in a Test-Last or Test-Driven Development environment. While some exposure and prior usage of one of the members of the xUnit family of test automation frameworks (e.g. JUnit, NUnit, PyUnit, CppUnit, etc.) is beneficial, even people new to automated testing using xUnit will get benefits. It is not, however, an introduction to the use of xUnit in general or any one member of the family in particular.

Process or format:

The tutorial is presentation based frequently punctuated with short (5 minute) hands-on exercises that help the participants "experience" the smells and patterns. The material is presented as a sequence of mini case studies. Each case study starts with a sample of test code or test results and we discuss the "test smells" present in the tests and their impact on achieving our goal of repeatable, robust, fully-automated tests. Then we dig into the root causes of the smell(s) and present a set of alternative patterns that can be used to address them.

Exercises will be done in small groups. Ideally, the room layout will allow participants to be able to form into groups of 3-4 to discuss the smells, causes and patterns in each exercise. Classroom format is acceptable as long as alternating rows can turn around to work with the people behind them.

Presentation materials can be downloaded from tutorialslides.xunitpatterns.com

Biography:

Gerard Meszaros is an independent consultant specializing is agile development methods. Gerard started his career in software development at Nortel's R&D subsidiary in 1981 as a software developer and later development manager, project manager and software architect. He built his first unit testing framework in 1996 and ran his first eXtreme Programming project in early 2000. He is an expert in agile methodologies, test automation patterns, refactoring of software and tests, and design for testability. Gerard has applied automated unit and acceptance testing on projects ranging from full-on eXtreme Programming to traditional waterfall development. His book XUnit Test Patterns; Refactoring Test Code was published by Addison Wesley in May 2007 as part of the Martin Fowler Signature series and recently won a Jolt Productivity Award in the Best Technical Book category.

Automated Testing Clinic with Fitness.net

1:00 PM - 5:00 PM

Mike Stockdale

Automated acceptance testing is a key agile practice. This clinic provides some hands-on experience with the FitNesse.NET automated testing environment. I will provide an overview of automated functional testing and the FitNesse.NET environment. I will guide participants, working in small groups, to develop test and production code for a bowling scoring system.

Participants should be experienced developers with an interest in automated functional testing. Exposure to FitNesse is helpful but not necessary. Participants should bring a laptop with a C# IDE. A setup CD for FitNesse.NET will be provided. (Testers and developers without C# experience have also found the session helpful, by pairing with other participants.)

Process:

The session will be about 1/3 lecture and discussion and 2/3 hands-on development.

The topics covered will include:

  • Testing as a core agile practise: Motivation for automated testing and test-first. Quality, early validation, safety net, productivity, objective measurement of progress, collaboration and communication.
  • The TDD and STDD Cycles: Red-green-refactor and describe-demonstrate-develop. Unit tests vs story tests vs coverage tests vs exploratory tests. Code right and right code.
  • Introduction to test styles: Declarative vs procedural. Specifying behavior. Given-When-Then.
  • The FitNesse.NET environment: The wiki, the test and suite pages, the test runners, fixture code and the system under test.
  • Fixture Roadmap: A brief overview of some common fixtures and what they do.
  • FitNesse.NET Set-up: Participants will set up FitNesse.NET on their laptops. We'll provide the software on CD.
  • Hands-on: The remainder of the session will work through a set of exercises using the classic bowling game domain, with a few additional features. For each exercise, we will describe the requirement and discuss some FitNesse features that we can use to develop story tests. Participants will form working groups (pairs or whatever they wish) and work on the exercise. Presenter will circulate to provide advice to groups that are stuck. We will conclude each exercise by showing a possible solution.

Exercises will be:

  • Calculate game score, using Column
  • Calculate game score, using Do
  • Simple scorecard, using Row and Array
  • Validate rolls, handling exceptions

Biography:

Mike is the founder and principal software developer of Syterra Software (http://www.syterra.com). His focus is object-oriented development, automated testing and performance tuning of enterprise application software.

He wrote his first code in Fortran, on punched cards. Not too agile back then. He was introduced to agile by Gerard Meszaros in 2001. He started using Fit for automated testing in 2003. In 2005, he wrote the .NET implementation of Rick Mugridge’s FitLibrary and is now the lead developer for FitNesse.NET (http://sourceforge.net/projects/fitnessedotnet).