agile

Conference Presentations

Enabling Agile Testing through Continuous Integration

Continuous integration is one of the key processes that support an agile software development and testing environment. Sean Stolberg describes how a traditional software tester-transitioning to an agile development environment-put a continuous integration infrastructure in place. In doing so, he helped improve development practices and made possible his team’s transition to agile testing. Sean discusses his team’s initial motivations for adopting agile development practices and dives into the nuts-and-bolts implementation details. He shares their post-assessment of the implementation using Martin Fowler's “Practices of Continuous Integration” and concludes with a retrospective on implementing and promoting continuous integration within the context of agile testing. Find out how continuous integration can help improve your testing results and the quality of the software your team delivers.

Sean Stolberg, Pacific Northwest National Laboratory
Avoid Failure with Acceptance Test-Driven Development

One of the major challenges confronting traditional testers in agile environments is that requirements are incrementally defined rather than specified at the start. Testers must adapt to this new reality to survive and excel in agile development. C.V. Narayanan explains the Acceptance Test-Driven Development (ATDD) process that helps testers tackle this challenge. He describes how to create acceptance test checkpoints, develop regression tests for these checkpoints, and identify ways to mitigate risks with ATDD. Learn to map acceptance test cases against requirements in an incremental fashion and validate releases against acceptance checkpoints. See how to handle risks such as requirements churn and requirements that overflow into the next iteration. Using ATDD as the basis, learn new collaboration techniques that help unite testing and development toward the common goal of delivering high-quality systems.

C.V. Narayanan, Sonata Software Ltd.
Implementing Agile Testing

Once the company decides to move to an agile development methodology, questions invariably arise: How should we implement this methodology? What are the expected benefits and pitfalls? How does testing fit into this new approach? Join Robert Reff as he describes real world experiences that helped his test team move from the design-code-test approach to a test-driven, agile development philosophy. Robert offers concrete advice on how to integrate testing, what testing activities to include or drop, and what to expect from both automation and exploratory testing. He describes possible practices, focus, and pitfalls, rather than the all-or-nothing approach often recommend by well-meaning experts.

Robert Reff, Thomas Reuters
Performance Testing Throughout the Life Cycle

Even though it is easy to say that you should continuously test your application for performance during development, how do you really do it? What are the processes for testing performance early and often? What kinds of problems will you find at the different stages? Chris Patterson shares the tools and techniques he recently used during the development of a highly concurrent and highly scalable server that is shipping soon. Chris explores how developers and testers used common tools and frameworks to accelerate the start of performance testing during product development. Explore the challenges they faced while testing a version 1 product, including defining appropriate performance and scale goals, simulating concurrent user access patterns, and generating a real world data set. Learn from his team's mistakes and their successes as Chris shares both the good and the bad of the process and results.

Chris Patterson, Microsoft
Agile Testing: Uncertainty, Risk, and How It All Works

Teams that succeed with agile methods reliably deliver releasable software at frequent intervals and at a sustainable pace. At the same time, they can readily adapt to the changing needs and requirements of the business. Unfortunately, not all teams are successful in their attempt to transition to agile and, instead, end up with a "frAgile" process. The difference between an agile and a frAgile process is usually in the degree to which the organization embraces the disciplined engineering practices that support agility. Teams that succeed are often the ones adopting specific practices: acceptance test-driven development, automated regression testing, continuous integration, and more. Why do these practices make such a big difference? Elisabeth Hendrickson details essential agile testing practices and explains how they mitigate common project risks related to uncertainty, ambiguity, assumptions, dependencies, and capacity.

Elisabeth Hendrickson, Quality Tree Software, Inc.
Agile Architecture: Patterns and Technology

Despite our wishing it were so, software architecture is not static throughout a project, especially within an agile development environment. Agile architecture is defined by our willingness and ability to embrace and accommodate architectural changes that emerge during the project. Agile architecture issues are both temporal-when to make architectural decisions-and structural, demanding that the architect and architecture remain flexible and able to accommodate change. Kirk Knoernschild examines these two aspects of agile architecture, exploring the concepts of architecture throughout the agile lifecycle and describing the activities agile architects perform. Join with Kirk to discuss architecture modularity issues, and how to deconstruct large systems to increase flexibility, reusability, maintainability, extensibility, and testability.

Kirk Knoernschild, Burton Group
Iteration Management: Unclogging Your Development Process

Within the agile development lifecycle, the role of "iteration manager" is crucial for maintaining the rhythm and flow of the project. From leading the stand-ups, reviewing plans and estimates, communicating the status of the iteration to the customer, and escalating roadblocks to executive management, the iteration manager focuses on and supports the team's daily efforts. Tiffany Lentz and Petra Skapa describe the role of iteration manager and compare it to other roles, including ScrumMaster, technical manager, project manager, and product manager. Tiffany and Petra describe the key activities and skills required to be an effective iteration manager from the beginning of the iteration to its end, including the characteristics of a good IM, the best methods for acquiring necessary skills, how to apply them, and the risks your project incurs if no one takes on this role.

Tiffany Lentz, ThoughtWorks
Agile Development Practices 2009: The Agile PMP: Teaching an Old Dog New Tricks

Agile methods emphasize trust, empowerment, and collaboration-moving us away from command and control project management to harness the passion, creativity, and enthusiasm of the team. In established organizations, success with agile practices hinges on how well traditional project managers adopt new ways of thinking about project structure and control. Building on the principles of the Project Management Body of Knowledge (PMBOK®), Mike Cottmeyer explores how PMPs experienced in traditional development can adapt their styles and practices to become effective agile project leaders. Mike tackles the hidden assumptions behind the PMBOK® and explores agile approaches for managing time, cost, and scope. Taking an in-depth look at PMI processes and knowledge areas, he also explores ways you can adapt them to agile projects.

Michael Cottmeyer, VersionOne, Inc.
Storyotypes: The Patterns Within the Stories

Have you noticed that similar stories appear over and over again as you develop a system? According to Dan Rawsthorne, stories-those small chunks of work that make up your backlog and provide demonstrable value to the project-can be categorized by purpose as: Production, Analysis, Cleanup, Infrastructure/Environment, Business Support, or Other. Within each of these categories are different "storyotypes"-patterns that define the commonalities among the stories themselves. Dan defines and describes some of the most prevalent storyotypes, explains why they are useful, and demonstrates the concept with examples. These examples include "Alternate Path" and "Clean-Up Interface" for the production category, "Talk to Stakeholders" and "Exploratory Testing" for the analysis category, among others.

Dan Rawsthorne, Danube Technologies, Inc.
Sixteen Essential Patterns of Mature Agile Teams

Many teams have a relatively easy time adopting the tactical aspects of the agile methodologies. Usually a few classes, some tool introduction, and a bit of practice can lead you toward a somewhat efficient and effective adoption. However, such teams quite often are simply going through the motions-neither maximizing their agile performance nor delivering as much value as they could. Borrowing from his experiences and lean software development methods, Bob Galen explores essential patterns-the "thinking models" of mature agile teams-including large-scale emergent architecture, relentless refactoring, quality on all fronts, pervasive product owners, lean work queues, stretching above and beyond, providing total transparency, saying "no", and many more.

Robert Galen, Software Testing Consultant

Pages

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.