Conference Presentations

Agile and the Seven Deadly Sins of Project Management

Agile approaches to software development promise many advantages: shorter schedules, more productive teams, products that better meet customer expectations, higher quality, and more. In this talk, Mike will explain how agile teams achieve these goals by avoiding the seven deadly sins of project management. Covered will be sins such as gluttony, sloth, lust, opaqueness, and more. Giving in to one of these temptations can result in a failed or cancelled project. Along the way you'll be introduced to key aspects of agile development and hear stories of agile success and failure.

Mike Cohn, Mountain Goat Software
Perils and Pitfalls of the New Agile Tester

If your background is testing on traditional projects, you are used to receiving something called "requirements" to develop test cases--and sometime later receiving an operational system to test. In an agile project, you are expected to continually test changing code based on requirements that are being uncovered in almost real time. Many perils and pitfalls await testers new to agile development. For example, as a tester new to agile, you might think, "I'll test the latest 'stories' on Tuesday when I get my next build." And you would be WRONG! Waiting for a new build will almost always put you at least one iteration behind the developers and in a schedule hole from which you cannot recover. To avoid this trap, you must start testing as soon as the developer has completed a feature story, even before coding begins.

Janet Gregory, DragonFire Inc.
Agile Testing: Traditional Testing Meets Agile Development

Agile development methodologies are taking center stage in many software organizations today. Testing in a highly iterative environment adds great opportunities for success but it also brings challenges. Dietmar Strasser explains how to successfully transform testing from a traditional process to a highly iterative approach that aligns testing efforts around requirements while fostering communication and collaboration among all team members in a distributed development environment. Dietmar describes how to move to an iterative, SCRUM-based development approach and, at the same time, align testing activities around it while dealing with an ever-evolving set of processes and technologies. Lessons learned, tips, and tricks will be shared based on Borland’s experiences moving to an iterative approach.

Dietmar Strasser, Borland Software
The Ten Principles of an Agile Tester

On an agile team, everyone is a tester-anyone can and often does take on testing tasks. If that’s true, then what is special about being an agile tester? If I'm a tester on an agile team, what does that really mean? Do agile testers need different skill sets than testers on traditional teams? What guides agile testers in their daily activities? An agile tester embraces change, collaborates well with both technical and business people, and understands the concept of using tests to document requirements and help drive development. Agile testers have good technical skills, know how to collaborate with others to automate tests, and are experienced exploratory testers. How do they get that way? Skills are important, but mindset and attitude count even more.

Lisa Crispin, ePlan Services, Inc.
Transforming Your Test Culture: One Step at a Time

Whether we develop software-based systems to create invoices, solve difficult physics problems, diagnose heart disease, or launch rockets, we've learned that nothing stays the same very long and software defects are inevitable. However, one thing has remained constant—the role and value of testing has been misunderstood by many in senior management. A Lockheed Martin Fellow since 2005, Tom Wissink describes steps undertaken at Lockheed Martin to change this culture of misunderstanding into a culture of appreciation, satisfaction, and excitement. Tom's experience has convinced him that this change is not just theoretical but both possible and rewarding. In a few organizations, both large and small, this has resulted in dramatic changes including greater tester satisfaction, increased company profits, and improved software quality often delivered on time and within budget.

Thomas Wissink, LM IS&S
Executable Documentation

Why is so much project documentation outdated and worthless? Simply put, the real value is in the final product; so, that’s where the money goes. Wouldn't it be nice if your documentation actually reflected the functionality in the system? One way to do this is to create executable documentation, also known as executable specifications. Join David Hussman for this class if you are struggling with ambiguous requirements, lack of collaboration with users, or a lack of communication among developers, business stakeholders, and testers. Although David uses open source Fit as a vehicle for demonstrating executable documentation, the class will teach you how to develop the information you need to make any similar tool serve up meaningful requirements that have two states--red (dead) or green (alive). Starting down the path to executable documentation is a great way to remove waste and more quickly produce better software.

David Hussman, DevJam
Scrum: Roadmap for Implementation (Part 2)

With quite a few successful agile implementations under his belt, Hubert Smits guides you through the steps for implementing Scrum in an organization. Scrum implementation grows from a single team working on a pilot project, to multiple development programs running in parallel-all with Scrum as the underlying methodology. Hubert explains how to train and motivate your pilot teams and replace your project requirements documents with a backlog. He outlines the roles of architect, business analyst, and tester in a Scrum-led project. Learn what happens when multiple teams have to work together and how dependencies between teams are discovered and managed. Find out how change management becomes an integral part of the project and discover new management tools that you can use in an agile project.

Hubert Smits, Rally Software Development
Organizational Patterns: The Foundations of Agile

Organizational patterns describe the inner-workings of organizational structures. These patterns are the foundation for agile competence and take you far beyond basic out-of-the box methods to provide deeper insights into agile. Both Scrum and XP have their roots in these patterns, focusing on project management and developer practices respectively. Jim (Cope) Coplien explains the other 75% of the good stuff--the things that Scrum, XP, and other methodologies gloss over. Cope presents the “Top 10” organizational patterns-those that correlate most strongly to organizational success. Do you capitalize on DOMAIN EXPERTISE IN ROLES? How about ARCHITECT ALSO IMPLEMENTS, or the important role of the manager as FIREWALL to distance the developers from "those who want to help?" What important concepts are you missing in your agile practices?

James Coplien, Nordija A/S
Climbing the Decision Tree: Reaching High Quality Team Decisions

When teams "go agile," members of the whole team take on greater responsibility for thinking and deciding as a unit. Though individual team members may know how to make great individual decisions, few people bring the skills or perspective needed to make high quality decisions as a group. Teams need to plan for all elements of high quality team decisions, balancing technical quality, commitment to implementation, efficiency, and opportunities for team development. Rather than relying solely on a consensus model, an effective team will have a repertoire of decision-making methods and select the best approach for their decisions before they face each choice point. Diana Larsen introduces a decision tree model for teams and covers the what, who, when, where, why, and how of team decision-making.

Diana Larsen, FutureWorks Consulting
API Design for Testability

Many who try to unit test their applications-whether using agile or traditional methods-quickly find that doing a thorough job can be difficult if the code was not designed with testability in mind. Roy Osherove describes dependency injection methods for designing APIs so that they are easier to test. He explains how design patterns can help and how to implement applications with interface-based programming. Roy shares his insight on what "evolving a design" really means in the context of test-driven development. For those who are living with legacy code, he discusses special techniques for managing and implementing unit testing. In addition, Roy discusses the build life cycle and how continuous integration fits into the mix.

Roy Osherove, Team Agile

Pages

AgileConnection is a TechWell community.

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