HOME
REGISTRATION
Conference Schedule
Student Volunteers
TRACKS
APM & Testing
Tutorials
Workshops/P2P
Research Papers
Experience Reports
Educators Symposium
Open Space
Intro to Agile
Executive Summit
Invited Talks
Vendor Presentions
CONFERENCE SPONSORS
EVENT ORGANIZERS
DENVER INFO
PRESS RELEASE
SUBMISSION FORMATTING DETAILS
INFORMATION FOR PRESENTERS
PAST CONFERENCES
ADC 2004
XPAU 2004

Conference Wiki

Conference Presented By:


Subscribe to RSS Feed
(version 0.9)

Website Hosted By:

Tutorials
Monday PM July 25, 2005

Agile Project Management
Reliable Innovation
Monday July 25, 2005 1:30-5:00pm    
TU1  
Jim Highsmith: Cutter Consortium     Jim Highsmith
Bio: Jim Highsmith is Sr. VP Agile Project Management Practice at Cutter Consortium. He is the author of Agile Project Management: Creating Innovative Products, Addison Wesley 2004; Adaptive Software Development: A Collaborative Approach to Managing Complex Systems, Dorset House 2000, and, Agile Software Development Ecosystems, Addison Wesley 2002. Jim is a recognized leader in the agile project management and software development movement. He has published dozens of articles including "The Agile Manifesto," co-authored with Martin Fowler, in the August 2001 issue of Software Development). He is coauthor of both the Agile Manifesto and the Declaration of InterDependence. Jim has worked with organizations worldwide to help them adapt to the accelerated pace of development in increasingly complex, uncertain environments.
Abstract: Symyx boasts that their process enables scientists to discover new materials at 100 times the speed and 1% of the cost of traditional research. Drug companies rapidly generate millions of compounds and then test them using ultra-speedy mass spectrometers. Alias Sketchbook Pro a graphics software package was completely planned and developed in two-week iterations. From materials to drugs to software, companies are relentlessly driving the cost of change out of their product development processes in order foster innovation. These projects are the realm of Agile Project Management (APM) which operates under a philosophy of Envision and Explore rather than Plan and Do.
APM focuses on quick starts, iterative exploration, delivering customer value, low-cost change, frequent feedback, and intense collaboration. APM excels on projects in which: new, risky technologies are incorporated; requirements are volatile and evolve; time-to-market is critical; and high quality must be maintained.
APM includes core agile principles, a project management framework, and specific practices. The framework phases are:
Envision - determining the product vision and project scope;
Speculate - developing a feature-based release, milestone, and iteration plan;
Explore - delivering tested features;
Adapt - reviewing the delivered results and adapting;
Close - concluding the project.
This APM presentation will also include a section on Enterprise Agile-getting across to executives what they can expect from agile projects and to agile developers and project managers how they can present agile in an "executive" friendly perspective. Sign up for this tutorial and explore the ideas and practices of APM.

Expressing Business Rules
Monday July 25, 2005 1:30-5:00pm
TU2  
Rick Mugridge, University of Auckland     Rick Mugridge
Bio: Rick Mugridge is the author, with Ward Cunningham, of "Fit for Developing Software", Prentice-Hall, June 2005. He developed the "FitLibrary" as he explored ways of expressing business rules well under change. He has been teaching, coaching, consulting and researching into agile software development for some years. He runs his own company, Rimu Research, and is an associate professor at the University of Auckland.
Abstract: Learn how to express business rules as Customer tests, with a focus on expressing the business domain with clarity and brevity.
Writing Customer tests is usually complicated by several factors: The business domain needs to be understood, and usually needs to be clarified. Tests need to evolve to help this understanding evolve. Emphasis is often placed too early on the testing aspects, rather than on expressing the business domain as clearly as possible. The tests often make premature commitments to details of the application being developed, or are not written until those details are known.
This tutorial will give you experience in expressing business rules well as Customer tests (storytests) through small group exercises. We'll see that such storytests evolve as the whole team's understanding of the business needs and the system evolve, creating a ubiquitous language for discussing the domain.

Agile User Experience Design
Monday July 25, 2005 1:30-5:00pm
TU3  
Jeff Patton, ThoughtWorks Inc     Jeff Patton
Bio: Jeff Patton has designed and developed software for the past 10 years on a wide variety of projects from on-line aircraft parts ordering to rules-based pricing engines. Since working on an XP team in 2000, Jeff has been heavily involved in agile methods. In particular Jeff has focused on the application of user centered design techniques on agile projects resulting leaner more collaborative forms of traditional UCD practices. Jeff has found that adding UCD thinking to agile approaches of incremental development and story card writing not only makes those tasks easier but results in much higher quality software. Some of his recent writing on the subject can be found at www.abstractics.com/papers and in Alistair Cockburn's Crystal Clear. Jeff's currently a proud employee of ThoughtWorks and an active board member of the Agile Alliance.
Abstract: User Experience is the blanket term that incorporates user centered design, interaction design, user interface design, and usability. As Agile Development processes gain popularity, the need to include User Experience practitioners becomes more urgent. Many companies employ people in these roles and want advice on incorporating them into their Agile processes. In contrast, many Agile projects not incorporating UE approaches suffer from delivery of products that, though on-time and of high technical quality, poorly address user needs.
In this tutorial you'll learn the basics of the Agile Development and User Experience lifecycles and how User Experience work can function cohesively within Agile Development. You'll learn that UE refers to much more than user interface design and, in fact, encompasses a number of techniques that give guidance on project scoping and user interface validation. Through participation you'll learn lightweight collaborative variations of UE techniques such as user role modeling, task modeling, and user interface prototyping. Using these models and UI prototypes you'll write user stories that incrementally release your product design.

In Retrospect: Mining the Wisdom of Agile Projects
Monday July 25, 2005 1:30-5:00pm
TU4  
Esther Derby - esther derby associates, inc.
Diana Larsen - FutureWorks Consulting, LLC
    Diana Larsen
Bio: Diana Larsen Identified as a standard-setting consultant by clients, an exceptional facilitator by colleagues, and the "best boss ever" by former employees, Diana Larsen is a senior consultant with FutureWorks Consulting. Diana partners with leaders of software development projects to strengthen their ability to support and sustain change initiatives, improve project performance, and retain organizational learning. A specialist in the human side of software development, Diana focuses on software team development, facilitation for project chartering and retrospectives.
Abstract: "Experience is not what happens to a man; it is what a man does with what happens to him." A. Huxley. The same is true for software teams. Too often, we don't do much - if anything - to squeeze learning out of experience. Retrospectives are a way to take "what happens" during a software development project and use it to build understanding and capability. This team learning process is an integral part of every Agile method. Retrospectives happen at the end of an iteration, release, and project. This interactive session will teach ScrumMasters, XP Coaches and other Agile team members the nuts and bolts of facilitating effective retrospectives.

Tutorials
Tuesday AM July 26, 2005
The Release Planning Game
Tuesday July 26, 2005 9:00am-12:30
TU5  
Chet Hendrickson
AgileSoftwareDevelopment.org

Ron Jeffries
AgileSoftwareDevelopment.org
Bio: Ron Jeffries has been developing software longer than most people have been alive. He holds advanced degrees in mathematics and computer science, both earned before negative integers had been invented. His teams have built operating systems, compilers, relational database systems, and a large range of applications. Ron's software products have produced revenue of over half a billion dollars, and he wonders why he didn't get any of it.
For a "Somewhat More Serious" bio you may visit: http://www.xprogramming.com/xpmag/bio.htm

Ron Jeffries
Bio: Chet Hendrickson was at Extreme Programming's ground zero, the Chrysler Comprehensive Compensation (C3) system. As a developer on the pre-XP C3, Chet saw how poor communication, inadequate testing, and an overly complex design can doom a development effort. He helped make the decision to throw away 14 months of work and begin again under the guidance of Kent Beck, Martin Fowler, and Ron Jeffries. Chet, along with Jim Haungs and Rich Garzaniti, in a talk at OOPSLA'97 , was the first to report on the 'Chrysler Methodology'. The 'Chrysler Methodology' as the term Extreme Programming had not yet been coined.

Chet is an independent consultant, helping software teams improve the software development process by the application of XP's core values of simplicity, communication, feedback, and courage.

Chet Hendrickson is an author of Extreme Programming Installed. The book, the second in the Extreme Programming series, consists of a connected collection of essays, presented in the order the practices would actually be implemented during a project.

He can be contacted at chet@hendricksonxp.com.

Chet Hendrickson








Abstract: This course will use the release planning game to explore various project planning strategies. The game is played in small groups of approximately four players. Both programmers and customers may play, in any combination.
In each cycle of the game, the players plan and "implement" a product. Each time through, they learn some new lessons enabling them to plan and implement better next time. Scoring is based upon each team's total return on investment.

Agile Product Owner and Customer Boot Camp  
Tuesday July 26, 2005 9:00am-12:30
TU6    
Paul Hodgetts, Agile Logic      
Abstract: Requirements management has always been identified as a key element of any successful development process, and in agile processes, a solid pipeline of well-conceived requirements is no less crucial. In agile processes, requirements management is performed by a role typically called the Product Owner or Customer, through mechanisms such as the Product Backlog, Stories and Release Plans. While an increasing body of writings is forming around these topics, many agile processes focus primarily on development, making practical guidance and training in advanced agile requirements management practices much harder to find.
In this intensive, hands-on tutorial, you will gain direct experience with a wide range of agile requirements management practices drawn from Scrum, Extreme Programming, DSDM and more. Through a series of progressive exercises simulating an actual project lifecycle, tutorial participants will have the opportunity to learn and evaluate agile strategies and practices to introduce and apply to their projects. This is a participation-based tutorial, so prepare yourself to be actively engaged in real world project scenarios, including:
  • Aligning agile projects with business objectives and initiatives.
  • Setting project goals using agile chartering and business cases.
  • Techniques for handling multi-stakeholder constituencies.
  • Capturing product requirements using agile use cases.
  • Practices for creating effective backlog items, stories and release plans.
  • Evaluating product progress using the feedback mechanisms of agile processes.
  • Managing a product portfolio using agile earned value approaches.

Test Driven Development for Embedded Systems  
Tuesday July 26, 2005 9:00am-12:30
TU7  
Nancy Van Schooenderwoert, Agile Rules
David Kramer, Agile Rules
Ron Morsicato, Agile Rules
     
Abstract: TDD frameworks for OO languages are available, but that leaves many embedded developers out because they're working in C or assembler. In this workshop, participants will develop a small application using Test Driven Development techniques. They will start with an existing code framework written in C. The application will be expanded in-class on a Linux host system using Open Source tools and a commercially available ARM embedded development board. You'll learn from software engineers who have used these techniques to deliver real projects on time. The format will be a single hardware setup, with code visible on a projector. One pair of attendees at a time will develop and test code while the others watch and discuss what is happening.

The 59-Minute Scrum : Bringing Scrum Alive!
Tuesday July 26, 2005 9:00am-12:30
TU8  
Jean Tabaka, Rally Software Development
Boris Gloger, Gloger Consulting
    Jean Tabaka
Bio: Jean Tabaka, jean.tabaka@rallydev.com, an Agile Coach with Rally Software, specializes in creating collaborative agile software teams. She brings 25 years of experience in software development to the agile plate in a variety of organizational contexts. Her work has spanned industries and continents, advising companies in how to create high-performance teams. A Certfied Scrum Master, she holds a Masters in Computer Science from Johns Hopkins University and is currently authoring a book on software project collaboration.
Abstract: Scrum relies heavily on practices around time boxing, collaboration, product owner, product backlog, demo, and review. But how do we help teams new to Scrum quickly grasp these concepts? We created "The 59-minute Scrum" in 2004 in order to help participants really experience how these Scrum practices feel. Since then it has been delivered successfully over 20 times world-wide by a variety of Scrum trainers and has even become part of the Certified Scrum Master training. Because we've received so many inquiries about the simulation, we are offering this tutorial that describes the simulation, its purpose, its logistics, its materials, and its facilitation. We will then lead the group in a running of the simulation and then a detailed debrief on the overall experience. Participants will receive a full packet of materials for delivering the simulation.

How To Maximize The Value of Software Assets
Tuesday July 26, 2005 9:00am-12:30
TU9  
Luke Hohmann, Enthiosys     Luke Hohmann
Bio: Luke is the founder of Enthiosys. He is the author of "Journey of the Software Professional: The Sociology of Computer Programming", and "Beyond Software Architecture: Creating and Sustaining Winning Solutions", as well as numerous articles on software development. An internationally-recognized software product expert, Luke leverages over twenty years of experience in leading all aspects of successful software product development groups, including engineering and development, product management, professional services, business development, sales support, and customer care. Key industries include transportation and logistics, intellectual property, financial services, software security/anti-piracy, and software process. Luke is an inventor or co-inventor of more than ten pending or issued patents, and is uniquely capable of bridging the gap between business and technology. He is skilled at multi-platform, multi-disciplinary, multi-team iterative/incremental enterprise-class systems development practices that produce reliable customer deliverables. He is a "hands-on leader" who works with the team to create breakthrough product architectures. Luke's proficiency at recognizing revenue and cost drivers lead to significant top-line revenue growth and bottom-line profits. His creativity in structuring mutually-beneficial business relationships produces lasting results. Luke serves on the technical advisory board for Rally Software Development Corporation. As a faculty member of the University of California, Santa Cruz Extension, Luke is also a regularly-invited speaker and panelist at major industry conferences on topics ranging from software development processes to strategic product management. Prior to founding Enthiosys, Luke was VP of U.S. Business Development for Aladdin Knowledge Systems (NASDAQ: ALDN, formerly Preview Systems); the VP of Engineering and Product Development at Aurigin Systems, Inc.; Education Technical Director at ObjectSpace, Inc.; and VP of Systems Engineering for EDS Fleet Services.
Abstract: Simplistic approaches to technical product management lead product managers to believe that business decisions such as pricing or business models can be made independently of underlying technologies. Similarly, simplistic approaches to product engineering lead technical leaders to believe that technical decisions, such as the choice of implementation technology or performance, can be made independently of contextual business issues. Mature approaches to maximizing software related product and service profits recognize that business and technology issues are inter-twined in a complex system.
This dynamic is even more complex in the context of agile project management, where value propositions are fluid and release dates negotiatiable.
This tutorial introduces participants to the Enthiosys Profit Engine Framework, which is the first framework that helps business and technical leaders sort through the core issues required for maximizing profit in software related product and service offerings.
Upon completing this tutorial participants will understand the following models and how they can be applied to maximize profits:
- Customer Value Model: Identifies and Captures Value
- Business Model: The Way You Make Money
- Pricing Model: How Much Money You Make
- Customer ROI Model: Quantifies Customer Value
- Licensing Model: Terms and Conditions of Use
- Enforcement Model: Protection of Rights
- Profit Engine: Causes More Money Making - or more Profitable -- Events
 
Tutorials
Tuesday PM July 26, 2005
Management Issues for Lean Software Development: Management Imperatives for the Successful Implementation of Lean Software
Tuesday July 26, 2005 1:30-5:00pm
TU10  
Mary Poppendieck, Poppendieck.LLC     Mary Poppendieck
Bio: MARY POPPENDIECK, is a seasoned leader in both operations and new product development with more than 25 years' of IT experience. She has led teams implementing lean solutions ranging from enterprise supply chain management to digital media, and built one of 3M's first Just-in-Time lean production systems. Mary is currently the President of Poppendieck LLC and located in Minnesota. Her book Lean S oftware Development: An Agile Toolkit, which brings lean principles to software development, won the Software Development Productivity Award in 2004.
Abstract: Many attempts to implement agile software development practices end in failure. Why? Because these practices change the way the entire organization must relate to the software development process. When they are implemented without participation from the rest of the organization, the chance of success is greatly decreased. Lean software development requires deep and evolving customer understanding, strategic prioritization of development activities, a development pipeline that is balanced against development capacity, and leadership that provides both technical guidance and domain expertise.

Agile Testing for "Traditional" Testers and
Agile Team Members
Tuesday July 26, 2005 1:30-5:00pm
TU11  
Anko Tijman, Ordina, The Netherlands
Lisa Crispin, Fast401k, USA
   
Bio: Anko Tijman has 8 years experience in professional software testing. He is a traditionally trained tester, having a ISEB and (Dutch) TMap certificate. He teaches software testing courses regularly and has recently developed a courses on agile testing. He was speaker at Eurostar 2003 on this topic. In Apr 2005 his article on agile testing was published in the Software Test and Performance Magazine. Since 2001 he has been an active member of the Dutch eXtreme Programming community.
Anko Tijman
Bio: Lisa Crispin has been a tester on agile teams which develop web-based applications since 2000. Previous to that, she has long experience testing and programming on more traditional teams. You can often find Lisa at agile- and testing-related conferences, user group meetings and seminars in the U.S. and Europe, helping people discover good ways for agile teams to do testing, and for testers to add value to agile teams. She co-authored Testing Extreme Programming (Addison-Wesley, 2002) with Tip House. She contributes articles related to agile testing to magazines and newsletters such as Better Software, Methods and Tools, Agile Times and Novatica. Find out more about Lisa's work (and see pictures of her miniature donkey friends) at http://lisa.crispin.home.att.net.
Lisa Crispin





Abstract: This tutorial is about the things you need to know about testing in agile projects. It will discuss the inside project position a tester takes, and the skills, techniques and attitude he needs to do that at a professional level. The session is aimed at "both sides of the fence"; that is for agile developers and customers who want to work on their testing skills, as well for traditional testers who want to work at their agile skills. Traditional testers will learn about the "mindset" that helps them be effective in an agile project. Other agile team members will learn to think like a tester, that is: problem creating instead of problem solving. One way to describe a tester is "someone who habitually questions accepted beliefs". No matter what your background, this tutorial will teach you testing techniques that provide your team with rapid feedback.

Advanced Feature Estimation and Project Planning
Tuesday July 26, 2005 1:30-5:00pm
TU12  
Chet Hendrickson
AgileSoftwareDevelopment.org

Ron Jeffries
AgileSoftwareDevelopment.org
Bio: Chet Hendrickson was at Extreme Programming's ground zero, the Chrysler Comprehensive Compensation (C3) system. As a developer on the pre-XP C3, Chet saw how poor communication, inadequate testing, and an overly complex design can doom a development effort. He helped make the decision to throw away 14 months of work and begin again under the guidance of Kent Beck, Martin Fowler, and Ron Jeffries. Chet, along with Jim Haungs and Rich Garzaniti, in a talk at OOPSLA'97 , was the first to report on the 'Chrysler Methodology'. The 'Chrysler Methodology' as the term Extreme Programming had not yet been coined.

Chet is an independent consultant, helping software teams improve the software development process by the application of XP's core values of simplicity, communication, feedback, and courage.

Chet Hendrickson is an author of Extreme Programming Installed. The book, the second in the Extreme Programming series, consists of a connected collection of essays, presented in the order the practices would actually be implemented during a project.

He can be contacted at chet@hendricksonxp.com.

Chet Hendrickson





Bio: Ron Jeffries has been developing software longer than most people have been alive. He holds advanced degrees in mathematics and computer science, both earned before negative integers had been invented. His teams have built operating systems, compilers, relational database systems, and a large range of applications. Ron's software products have produced revenue of over half a billion dollars, and he wonders why he didn't get any of it.
For a "Somewhat More Serious" bio you may visit: http://www.xprogramming.com/xpmag/bio.htm

Ron Jeffries
Abstract: Agile projects use feature estimation and project planning to deliver software on time. This course will take the participants through the skills needed to estimate and plan project at three levels:
1) estimating each feature and creating a plan to deliver all the features
2) steering the project to deliver the most value by a specified date
3) explore and refine proposed features so you can fill all needs by a specified date
The tutorial uses realistic exercises, interspersed with insightful instructor-led discussion.
The tutorial is appropriate for customers, coaches, and development team members who will be taking part in and leading Feature Estimation and Project Planning.

Agile Software Development in the Large  
Tuesday July 26, 2005 1:30-5:00pm
TU13  
Jutta Eckstein, IT communication      
Abstract: A lot of people still believe that agile software development is for small teams only. However, the agile value system and the principles behind as stated in the agile manifesto don't say anything about team or project size. Furthermore the projects I'm working on are typicallylarge and mission-critical. Therefore, several years ago I took the challenge and tried agile software development in the large. Meanwhile I made the similar experience on many large projects: Also large teams can benefit from a value system that is beneficial for small teams. In this tutorial I want to show how to scale agile processes to teams of 200. In fact, the same techniques are also relevant to teams of ten or more developers, especially within large organizations.
Topics include:
- the agile value system as used in large teams
- the impact of a switch to agile processes
- the agile coordination of several subteams
- the way project size and team size influence the underlying architecture

Skills for the Agile Designer
Tuesday July 26, 2005 1:30-5:00pm
TU14  
Rebecca Wirfs-Brock, Wirfs-Brock Associates     Rebecca Wirfs-Brock
Bio: Rebecca is president of Wirfs-Brock Associates, an object technology company specializing in the transfer of object analysis and design expertise through mentoring, consulting and training. Rebecca is the inventor of Responsibility-Driven Design, and is the lead author of two books: Object Design: Roles, Responsibilities, and Collaborations (2003), and Designing Object-Oriented Software (1990). Rebecca has been involved with object technology since its infancy. Among her widely-used inventions are use case conversations and object role stereotypes. From development on the Tektronix implementation of Smalltalk in the early 1980's, through years of development and training experience, she is recognized as one of the most innovative and influential practitioners of object-oriented design.
Abstract: Agile designers see the essence of a design problem, shape reasonable solutions, and easily communicate their design to others. And when things don't exactly go according to plan, they react, readjust their thinking, and try again. To pull this off, agile designers need to be skillful problem solvers and good communicators (and no, that doesn't mean just writing clean code or producing barely enough UML). This tutorial introduces several new and perhaps some old and familiar techniques and language for seeing and articulating design problems, shaping solutions, and explaining designs. We'll touch on strategies for finding and characterizing objects and their behavior, designing application control centers, adapting patterns into your design, and making collaborations more reliable. Recognizing and adapting to different design rhythms is another key to agility. By sorting design problems into the core, the revealing, and the rest, you can treat each appropriately, rather than giving them uniform treatment. Even so, problems crop up that cannot be anticipated-wicked problems that can't be solved by sheer effort alone. They require a blend of skills: creative problem solving, negotiation, the ability to craft-try-rethink-and-propose solutions that combine simpler ideas or possibly take a leap in a totally new direction. This tutorial gives agile designers some language to describe and characterize their design problems and solutions.

Tutorials
Wednesday AM July 26, 2005
Release and Iteration Planning for Agile Projects
Wednesday July 27, 2005 9:00am-12:30
TU15  
Mike Cohn, Mountain Goat Software     Mike Cohn
Bio: Mike Cohn is the founder of Mountain Goat Software, a process and project management consultancy and training firm. Mike specializes in helping companies adopt and improve their use of agile processes and techniques in order to build extremely high performance development organizations. He is the author of User Stories Applied for Agile Software Development and Agile Estimating and Planning, as well as books on Java and C++ programming. With more than 20 years of experience, Mike has previously been a technology executive in companies of various sizes, from startup to Fortune 40. He has also written articles for Better Software, Cutter IT Journal, IEEE Computer, Software Test and Quality Engineering, Agile Times, and the C++ Users' Journal. Mike is a frequent speaker at industry conferences, is a founding member of the AgileAlliance, and serves on its board of directors. He is a Certified ScrumMaster and a member of the IEEE Computer Society and the ACM.He can be reached at mike@mountaingoatsoftware.com
Abstract: Planning is important even for projects using agile processes such as XP, Scrum, or Feature-Driven Development. Unfortunately, we've all seen so many worthless plans that we'd like to throw planning out altogether. The good news is that it is possible to create a project plan that looks forward six to nine months that can be accurate and useful. In this tutorial we will look at why traditional plans fail but why planning is still necessary even on agile projects. You will leave with a solid understanding of and experience at agile release planning and iteration planning. We will look at various approaches to estimating including unit-less points and ideal time. The tutorial will describe four techniques for deriving estimates as well as when and how to re-estimate. We will look at techniques to create a plan that dramatically improves the project's chances of on-time completion. Also discussed will be using velocity to track progress against the plan.

Scripting Web Tests
Wednesday July 27, 2005 9:00am-12:30
TU16  
Bret Pettichord - Thoughtworks
Paul Rogers - Wireless Matrix
    Paul Rogers
Bio: Paul Rogers is a senior quality assurance analyst located in Calgary Canada. He has worked in test automation using a variety of tools, languages and techniques on Windows Applications, various web based systems and embedded devices. He is a lead developer on the Watir project. Contact Paul at paul.rogers@shaw.ca
Abstract: This workshop is a hands-on introduction to automated testing using Ruby, Watir and a web-based application, all of which are open-source. It presumes no prior knowledge with these tools. It allows key issues related to automated acceptance testing to be raised in a natural environment

Collaboration Works!
Facilitation Skills for Agile Teams
Wednesday July 27, 2005 9:00am-12:30
TU17  
Ellen Gottesdiener, EBG Consulting, Inc.     Ellen Gottesdiener
Bio: Ellen Gottesdiener has extensive experience as a professional workshop facilitator with particular focus on positively and productively engaging software development and business experts in defining and achieving shared goals. Ellen's experiences as an agile requirements facilitator are articulated in her book, Requirements by Collaboration: Workshops for Defining Needs (Addison-Wesley, 2002). Her newest book is Software Requirements Memory Jogger: A Pocket Guide to Developing and Managing of Requirements for Technical and Business Teams will be available this fall. Ellen's industry career includes being a developer, analyst, trainer, project manager and process leader. She is a seminar presenter, conference speaker and Advisor for the Software Development Conferences and the stickyminds.com web site. She has authored numerous papers on software requirements, methods and modeling. You can contact her at: ellen@ebgconsulting.com or visit her website http://www.ebgconsulting.com for articles, news and information.
Abstract: Collaboration happens when all members of a group or team share a common purpose, mutual trust and use agreed-upon approaches for their work. A well-tuned team operates like a jazz ensemble-multiple voices playing inventively, generously and skillfully while sharing a single theme. This doesn't just happen. Teams don't just form and jell automatically. How, then, can you encourage real collaboration?
Facilitation skills are crucial for agile teams, which must experience healthy team dynamics in order to continually learn and adapt. In mature teams, effective facilitation skills can emerge spontaneously and become shared amongst team member. How is this accomplished? What specific techniques can you use to promote collaboration?
This experience-based tutorial will share a set of effective facilitation skills and collaboration patterns that will help you and your team to truly collaborate better. You will be provided with a rich set of handouts containing specific techniques you can use to promote real team collaboration. In this tutorial, be prepared to enjoy recognizing, celebrating and appreciating collaboration-because collaboration works!

Test-Driven J2EE
Wednesday July 27, 2005 9:00am-12:30
TU18  
J. B. Rainsberger, Diaspar Software Services     J. B. Rainsberger
Bio: J. B. Rainsberger is the founder of Diaspar Software Services. Joe is a programmer, trainer, consultant, speaker and author. His works focuses on improving the lives of programmers, not only by addressing technical skills, but also helping programmers discover the joy of a true collaborative working style.
Abstract: J2EE applications are complicated, and we're generally pretty bad at testing the various parts of them effectively. We tend to rely on end-to-end tests that are slow, cumbersome and brittle. True, a 4-hour test suite is better than a 3-week manual testing cycle, but we can do so much better. This tutorial shows attendees how to add a feature to a J2EE application, entirely in the test-driven style. It highlights test execution speed differences, as well as the impact of test-driving on design.

The Whole Enchilada:
Effectively Blending Management, Planning & Technical Practices.
Wednesday July 27, 2005 9:00am-12:30
TU19  
Joshua Kerievsky, Industrial Logic, Inc.     Joshua Kerievsky
Bio: Joshua Kerievsky is the founder of Industrial Logic, a company that specializes in Extreme Programming. After a decade of programming at a Wall Street bank, he founded Industrial Logic in 1995 to help companies practice successful software development. Kerievsky has programmed and coached on small, large, and distributed XP projects since XP's emergence. He recently pioneered Industrial XP, an application of XP tailored for large organizations. Kerievsky has written XP articles in Extreme Programming Examined and Extreme Programming Perspectives and has recently authored the 2005 Jolt Productivity award winning book, Refactoring to Patterns.
Abstract: While many agile processes excel at management, planning or technical practices, most don't deliver a complete solution: a process that specifies how an entire enterprise can become truly agile. Partial solutions often fail to include key parties in agile transitions. For example, if product management fails to go agile, you won't deliver valuable software early, if legal fails to go agile, you won't get expedient feedback on your iterations, if you HR rewards cowboy coders, you won't see a lot of teamwork. In other words, the most agile software development team won't provide genuine value if agility has not penetrated the entire enterprise. This interactive tutorial is based on dozens of agile transitions. You'll learn how Readiness Assessments prepare the ground for success, how Chartering helps define key parties and interactions within a Project Community, how Storytest-Driven Development aligns, defines and verifies the work of customers and developers, and how Evolutionary Design and Delivery helps yield faster ROI. Participants in this tutorial can expect to come away with ample ideas for how to use these practices to aid them in successfully blending agile management, planning and technical practices to create a truly agile enterprise.

Introducing agile practices
to your team or organization
Wednesday July 27, 2005 9:00am-12:30
TU20  
Linda Rising
Independent consultant

Mary Lynn Manns
University of North Carolina
at Asheville
Bio: Mary Lynn Manns is a professor in the Department of Management & Accountancy at the University of North Carolina, Asheville. She has over 20 years teaching experience in both academia, industry, and at conferences. Her doctoral work focused on the introduction of patterns into organizations. She is the co-author of the book Fearless Change: Patterns for Introducing New Ideas.



Mary Lynn
Manns
Bio: Linda Rising has a Ph.D. from Arizona State University in the area of object-based design metrics. Her background includes university teaching experience as well as work in industry in the areas of telecommunications, avionics, and strategic weapons systems. She has been working with object technologies since 1983. She is the editor of A Patterns Handbook, The Pattern Almanac 2000, and Design Patterns in Communication Systems. She has global experience presenting workshops and tutorials on the topic of introducing new ideas into organizations. She has over 20 years of academic teaching experience and over 15 years of industrial training experience. Her latest book, Fearless Change: Patterns for Introducing New Ideas, written with Mary Lynn Manns, appeared last year.
Linda Rising

Abstract: Those who attend conferences or read articles see new ideas they want to take back to their organizations, but then struggle to make it happen. This struggle has become especially apparent of late as enthusiastic agile development proponents want to encourage their teams to apply these new approaches. The intent of this tutorial is to provide successful change management strategies to help these agile proponents.

Hands-on Teaching Agile Programming  
Wednesday July 27, 2005 9:00am-12:30
TU21  
Orit Hazzan
Israel Institute of Technology

Yael Dubinsky
Israel Institute of Technology
     
Bio: Orit Hazzan is a faculty member of the Department of Education in Technology and Science at the Technion-Israel Institute of Technology, where she received her PhD in mathematics education. Her current research, conducted both in industry and academia, focuses on computer science education in general and human, that is cognitive and social , aspects of software engineering in particular. Last May she published her book Human Aspects of Software Engineering, co-authored with Jim Tomayko.



Orit Hazzan
Bio: Yael Dubinsky is an adjunct lecturer at the Computer Science Department at the Technion, Israel. Yael served as a CTO for 10 years and is a consultant in the areas of software project management and computerization working with the Israeli army and industry. Since 2002, Yael is involved in research of the implementation of software development methods in the academia and industry, specializing in the agile methodology, Extreme Programming.
Yael Dubinsky

Abstract: As a software team leader, how many times did you ask yourself: How shall I convey the magnificent ideas of the agile approach to my team? As a university professor, how many times did you try to introduce a new teaching approach to your institution? This tutorial aims at helping you achieving these goals, specifically, introducing new ideas related to software development into your organization, whether it is an academic institution or a software house. This tutorial is based on our rich experience in teaching agile methods and practices in different settings in the industry, the army and the academia, as well as our vast experience in guiding the implementation them in such organizations. We focus on hands-on teaching and learning agile practices to enable our participants to run these processes by themselves. The tutorial consists of three parts: the teaching of agile practices in the industry, the teaching of agile practices in the academia and the guidance of reflective processes.
 
Tutorials
Thursday AM July 28, 2005
A Project Manager's Survival Guide
to Going Agile
Thursday July 28, 2005 9:00am-12:30
TU22  
Michele Sliger - Author
Alicia Yanik- Author
    Michele Sliger
Bio: Michele Sliger has worked in software development for almost 15 years. Currently, Sliger works as a customer advisor for Rally Software Development, where she trains software development teams in agile methodologies. Previously, Sliger has served as a project manager at Qwest Communications, a consultant for Fortune 500 companies, and was a founding member of the engineering teams at two biotech start-ups. She is a certified Project Management Professional (PMP) and a Certified Scrum Master (CSM).
Abstract: When software development project teams move to Agile methodologies, they often leave project managers behind. Traditionally trained project managers are confused as to what their new roles and responsibilities should be in an environment that no longer needs them to make stand-alone decisions. This tutorial focuses on re-defining the job of project manager, and the new duties of the program management office. Special emphasis is placed on the shift to servant leadership, with its focus on facilitation and collaboration. Attendees should leave not only with a better understanding of what changes they need to make professionally, but also with clear guidance as to how to make these changes and achieve their goals.

Storytest-Driven Development  
Thursday July 28, 2005 9:00am-12:30
TU23  
Max Baumann, Industrial Logic, Inc.
Gil Broza
     
Abstract: Falling behind on writing your acceptance tests? This is a common problem. Either you don't have the right people to produce acceptance tests and/or you just never seem to have enough time to implement them. The result is a backlog of work and not enough coverage for the features in your system. The solution to this problem is called Storytest-Driven Development (SDD). This practice advocates that you define storytests (automated acceptance criteria) for stories prior to implementing them. Writing the storytest first aids both developers and customers in aligning their efforts. Storytests are textual descriptions of a test that are easy to read, modify and execute. Subject matter experts, analysts, testers and programmers produce these tests collaboratively. Storytests may be automated using a variety of technologies, such as FIT, Ward Cunngingham's excellent Framework for Integrated Test. A key benefit of this practice is the design simplicity that flows out of starting all work with a failing storytest. This class will introduce you to the practice of SDD. We'll explore example code and discuss real-world applications of this practice, then we'll apply Storytest Driven Development, using FIT for Java and .Net(C#). We'll also discuss strategies for writing Storytests on 'hard to test applications'.
This tutorial will involve hands-on SDD in pairs, so please bring a laptop if you have one.

Software Metrics for Agile Projects  
Thursday July 28, 2005 9:00am-12:30
TU24  
Julias Shaw
Jeff Patton
    Jeff Patton
Bio: Jeff Patton has designed and developed software for the past 10 years on a wide variety of projects from on-line aircraft parts ordering to rules-based pricing engines. Since working on an XP team in 2000, Jeff has been heavily involved in agile methods. In particular Jeff has focused on the application of user centered design techniques on agile projects resulting leaner more collaborative forms of traditional UCD practices. Jeff has found that adding UCD thinking to agile approaches of incremental development and story card writing not only makes those tasks easier but results in much higher quality software. Some of his recent writing on the subject can be found at www.abstractics.com/papers and in Alistair Cockburn's Crystal Clear. Jeff's currently a proud employee of ThoughtWorks and an active board member of the Agile Alliance.
Abstract: Metrics are often associated with bureaucratic and prescriptive processes. This tutorial will teach how to gather and analyze key metrics in a manner that fits well with agile processes. Attendees will learn how to use these metrics to help identify and rank risk hotspots in large and/or unfamiliar code bases. The audience will apply these techniques to several large open source projects. While the techniques taught are applicable to many technologies, the tools taught and projects analyzed will be based on Java.

Refactoring: keeping software malleable  
Thursday July 28, 2005 9:00am-12:30
TU25  
Duncan Pierce, Amarinda Consulting      
Abstract: Most software gets new requirements over time. The accumulated changes often stress the original design in unanticipated ways. When this happens, the software gets more and more difficult to work with: development tasks get harder, progress slows and bugs appear ever more quickly. Have you worked on a system like this?
Sometimes it becomes so difficult to add new functionality or prevent bugs creeping in that it seems easier to give up and rewrite the system from scratch. This can be avoided by refactoring.
Refactoring breathes new life into software by changing the way it is written without changing what it does, keeping it malleable and ready to accept change. Refactoring allows you to remould code with the design it should have, rather than the design it ended up with. Done right, it works in small, easy steps, and doesn't require a big up-front investment. This tutorial introduces and explains refactoring in a hands-on way. We'll help you learn to spot "smells" in the code and design, and we'll show you what you can do about them. The tutorial is based on a simple problem from a real system, and at the end we'll tell you what really happened!

Tutorials
Thursday PM July 28, 2005
Meeting the Agile Leadership Challenge
Thursday July 28, 2005 1:30-5:00pm
TU27  
Diana Larsen, FutureWorks Consulting
Pollyanna Pixton, Evolutionary Systems
    Diana Larsen
Bio: Diana Larsen Identified as a standard-setting consultant by clients, an exceptional facilitator by colleagues, and the "best boss ever" by former employees, Diana Larsen is a senior consultant with FutureWorks Consulting. Diana partners with leaders of software development projects to strengthen their ability to support and sustain change initiatives, improve project performance, and retain organizational learning. A specialist in the human side of software development, Diana focuses on software team development, facilitation for project chartering and retrospectives.
Abstract: Many leaders facing the challenge of adapting to their role on agile projects find methods from the field of organizational development methods especially useful. This tutorial covers how several of the most successful of these methods work and how each assists the agile process. Strategies to implement these tools will be discussed and practiced.

How to integrate a Test/QA Team
into an Agile Development Environment
Thursday July 28, 2005 1:30-5:00pm
TU28  
Janet Gregory, DragonFire Inc.     Janet Gregory
Abstract: When we think agile testing, we generally think embedded tester working closely with the development and customer team helping to identify acceptance tests, sometimes coding, sometimes using a tool such as FIT. However, there are cases where a test team needs to have some independence. This tutorial will demonstrate how your test / QA team can work closely with the development team yet maintain their individuality. Large systems require full system regression testing, deployment testing, load testing, etc., in an environment that is similar to a customer's site. Multiple versions of a product require testing and support. When people think about agile projects, they usually think about small projects that a single tester or two can work with the developers and complete all the testing needed.

How does Incremental Design Really Work?
Thursday July 28, 2005 1:30-5:00pm
TU29  
Jeff Nielsen, Digital Focus      
Bio: Jeff Nielsen is Chief Scientist of Digital Focus, where he coordinates the dissemination and adoption of agile methodologies by both internal and client development teams. Jeff has over 18 years of commercial software development experience--the last five of these using Extreme Programming and its cousins. Jeff spearheaded the first large-scale XP project at Digital Focus: a real-time web-based auction system that continues to process billions of dollars of trades annually. Since then, he has coached a variety of agile teams for clients including America Online, McKesson, and Fannie Mae.
Abstract: Agile Methodologies push teams and individuals to alter the balance between up-front and incremental design. Being able to evolve the design and architecture of a system as the code is written is an essential skill in agile software development, yet many programmers still struggle to understand how this works in practice.
This tutorial will teach you the skills necessary to be successful with incremental design. You will learn how to do "just enough" design at each step of the process. You will appreciate how working in small increments with immediate feedback from the code improves your ability to design robust, well-factored, maintainable software.
The bulk of the time will be devoted to an extended example. Participants will practice the technique of incremental design on a medium-sized, real-world business problem for which the solution is not obvious. Through an interactive demo, you will observe and experience how the simplest and best design emerges--even with no explicit up-front work. Finally, the philosophy and practical application of incremental design to large systems will be discussed. Just how little up-front design can we be successful with, both economically and technically? Seeing is believing--come and learn how to add this valuable skill to your developer's toolbox.

Stop super-sizing your release plans!
Helping product owners switch
to regular, bite-sized iterations.
 
Thursday July 28, 2005 1:30-5:00pm
TU30  
Ryan Martens, Rally Software Development
Luke Hohmann, Enthiosys
     
Abstract: Product owners - the analysts, product managers and project leads responsible for defining the system requirements and business priorities - increasingly force their development teams into super-sizing their release plans. More features coupled with less priorities and less time lead to "over eating" when it comes to defining the goals for software releases. The result is software that too-often arrives late, over budget and misses customer expectations.
As Agile development teams gain success, the team's bottleneck moves up the food chain to product owners. To support rapid and iterative progress, development teams are demanding that product owners switch from traditional approaches of super-sizing long release cycles to a continuous flow of independent, negotiable and small, bite-sized morsels.
In this session, Ryan Martens and Luke Hohmann will describe and show product owners how to think in terms of small, evenly spaced meals. They will introduce Agile principles, processes, tools and organizational structures that enable product owners to support their Agile development team's need for continuous, just-in-time elaboration of requirements and acceptance tests. Through his own consulting experiences, and leading teams at U S WEST, Avitek and later BEA Systems, Martens has developed proven steps that transform the requirements management process into a collaborative effort that helps drive the success of the entire Agile practice internally and for customers as well.
Luke Hohmann, will work with Martens to help teams understand how to work creatively through the common answer, "it can't be done!" The duo will coordinate and facilitate one of Enthiosys' 12-ways exercises called "Pruning the Product Tree" to help teams creatively break the log jam associated with super-sized requirements management.
Participants will learn:
* How to package and prioritize features to accelerate development. (An exercise on design continuums and how to drive quickly to acceptance tests will help attendees gain skills in feeding Agile development teams.)
* How to use the rapid iteration and release process of Agile development to help break large requirements into smaller more easily implemented designs and solutions. (Enthiosys' Pruning the Product Tree exercise will provide attendees with one technique to help find creative solutions to super-sized requirement jams.)

Evolutionary Database Development
Thursday July 28, 2005 1:30-5:00pm
TU31  
Pramod Sadalage, Thoughtworks     Pramod Sadalage
Bio: Pramod works as a Data Architect and Lead DBA at ThoughtWorks, Inc, a leading custom e-business application and platform development firm. He works on large J2EE/.NET custom dev applications, which use XP, an agile methodology that has not been sufficiently discussed in the context of databases. While on these projects, he pioneered the practices and processes of Agility in the database. Pramod endeavours to write and speak about these concepts and practices in order to make it easy for everyone to use agile practices in regard to use of databases on an agile project. Pramod has written and presented about database administration on Agile projects, the adoption of agile processes with regard to databases, and agile practices impact upon database administration.
email : psadalag@thoughtworks.net
Abstract: Evolving the database at the speed of application development is thought to be very hard. This tutorial will show, when the team is doing Evolutionary Database Development, rapid database changes are easy to make. The common belief that database design cannot be carried out using agile methodologies such as XP, coupled with the inbuilt 'conservatism' of DBAs, often leads application developers to try to 'cut out' the DBA or reduce their interactions with the database team.
Participants will be shown how the design, development and implementation of an application database could be made agile starting with making the DBA a true member of the team. Pramod will explain, in detail, how processes and tools can be used to make the database more manageable and open to refactoring, both in development and production environments. The workshop will focus on practical techniques that have been proven to achieve this on small and large-scale projects, techniques that can be taken and applied to your projects, including:
*How the database could be structured to provide each team member with control of their own data space (similar to individual application instances).
*How ANT/MAVEN build scripts can be used to make setup and tear down of databases a trivial task.
*How to adopt a system where changes to the database can take place easily.
*How to handle the change management process.
*How migrating to production can be made easy with sequenced script files thus making the process of managing and releasing easy.
Using these techniques your development team can be far more confident about adapting the application during development, knowing that changes and alterations will be properly documented, the changes and modifications are scripted and repeatable, and each change is backed-up by a suite of automated tests that ensures the application builds and that the application and database are consistent after each build. This level of confidence is then sustained right through to production by leveraging the repeatability of the changes and modifications.
Pramod will show why the DBA will be far happier to evolve the data model during the development process in step with the agile approach used to build the rest of the application. How the DBA can be a true member of the team and make the agile team more productive
Recent Presentations and Publications:
XPAU, Aug 2002, Aug 2004
Evolutionary Database Design (with Martin Fowler), Dec 2002.
SD West, March 2002, March 2003
XP Day Benelux Nov 2004

Working Effectively with Legacy Code  
Thursday July 28, 2005 1:30-5:00pm
TU32  
Michael Feathers - ObjectMentor      
Abstract: Test Driven Development and Refactoring are powerful tools in the XP/Agile arsenal. With them you can add new code to systems and make existing code more maintainable. However, refactoring code without having tests in place can be hazardous. This tutorial presents a collection of dependency breaking and test writing techniques that can be used to get existing code safely under test for refactoring. These techniques can be used in conjunction with Test Driven Development to breathe new life into large existing code bases.

Is Your Organization Ready
for Agile and Scrum?
Thursday July 28, 2005 1:30-5:00pm
TU33  
Bob Schatz - Solstice Software, Inc.
Ken Schwaber - Scrum Alliance
    Bob Schatz
Bio: Since April 2005, Bob Schatz has been the VP and Chief Development Officer for Solstice Software. Bob is responsible for leading the software development of all Solstice products. Prior to this, Bob Schatz served as VP of Development for Primavera Systems, Inc. where he was responsible for leading the team that develops Primavera's software solutions for Enterprise Project, Resource, and Portfolio Management. Before joining Primavera, Bob spent seven years at Liquent, Inc., managing the development of publishing software targeted for the pharmaceutical market, and 12 years at GE Aerospace/Lockheed Martin, where he held various management positions for large-scale development projects for US government agencies and the Department of Defense. He holds a bachelor's degree in Computer Science from Temple University and is currently pursuing a Masters degree in Organizational Dynamics from the University of Pennsylvania.
Bob is a leader in successfully implementing agile development techniques, such as Scrum and XP, and driving culture changes in organizations. He and his team have been featured in a number of industry articles. Bob often speaks at industry events talking about the benefits and challenges of bringing agile techniques into an organization.
Abstract: Agile software development sounds really good. Higher productivity, better return on investment, quicker delivery of software, motivated and energetic developers are all appealing. Are you willing and able to do what is required to get these benefits? Some people think all you have to do is read books, take courses, and then implement Agile. But the work is much deeper and harder and has many aspects of organizational change management. This tutorial will help you understand how to implement Agile enterprise-wide and whether your organization has the aptitude for it.

IMPORTANT DATES
Agile 2006 is being scheduled for July 23-28, 2006, at the Hyatt downtown Minneapolis.
Mark your calendars!
The Conference Wiki is up and running!