|
Tutorials are a great way for attendees of introductory or intermediate experience levels to learn from the experts. We ventured into topics of interest with a well-known guide to navigate the trail. Offerings included: techniques for software design, requirements, programming, prototyping, testing, UI design, team handling and project steering. In addition, tutorials on specific agile methods and important tools to implement them such as configuration management, distance communication and project coordination were featured.
Scheduled Tutorial Sessions
* Invited speaker
Tutorial Abstracts
| T1 |
Review of Agile Approaches
Jim Highsmith, Cutter Consortium |
|
In our Information Age, competitive advantage comes from speed and flexibility. With shortened product development cycles and rapidly changing business initiatives, the formula for success has been articulated by Tom DeMarco: “Agility: 1, everything else: 0.” Agile Software Development redefines how software will be delivered in our 21st century economy.
There has been a rapidly rising interest in these new approaches to software development such as Extreme Programming, Scrum, Adaptive Software Development, Feature-Driven Development, and Dynamic Systems Development Methodology. Furthermore, scores of organizations have developed their own “lighter” approach to building software.
This tutorial is based on the material in Jim Highsmith’s book, Agile Software Development Ecosystems. He is the developer of one of the Agile Methodologies (Adaptive Software Development), a coauthor of the Manifesto for Agile Software Development, and founding member of the AgileAlliance. The workshop addresses key questions: What are Agile Methodologies? What problem domains to Agile Methodologies address? What are the common principles and practices of the various Agile Methodologies? What are the similarities and differences between the various Agile Methodologies?
|
| T2 |
Agile Software Development: Principles, Patterns, and Practices
Robert C. Martin, Object Mentor, Inc. |
|
For the first four decades of software development we did not had a good definition of our craft. If you asked a software developer what he did, he'd have to say something vague like "I write code." Sometimes developers created something good, but could't repeat the process. They could do good things sometimes but didn't know how they did it. Quality was more an accident than a design. In the last decade this has changed significantly.
We have identified enough principles, patterns, and practices to provide our craft with a solid definition. This definition gives us something we may not have had before -- pride in workmanship. For though we may have been able to take pride in some of our projects before, we weren't often able to take pride in the “way” those projects were build. Now, we can take pride in ”how” we build software, not just in the software we build.
|
| T15 |
From Agile Modeling To Agile Data
Scott Ambler, Ronin International, Inc. |
|
In this interactive tutorial we will discuss two agile methodologies --Agile Modeling (AM) and the Agile Data (AD) method. AM is a chaordic, practices-based methodology which describes how to effectively model and document software based systems. Modeling and documentation does not have to be dysfunctional! The AD method encompasses philosophies and techniques which enable data professionals to become active and productive members of an agile software development team. Modern software development is evolutionary (iterative and incremental) in nature, therefore data professionals need to adopt techniques such as database refactoring, evolutionary performance tuning, Agile Model Driven Development (AMDD), and Test-Driven Development (TDD). We'll also discuss implementation issues -- mapping objects to RDBs, referential integrity, security access control, transaction control -- that include but go beyond the domain of data. The AD method also addresses enterprise issues, enterprise architecture and enterprise/data administration, that are critical to your success. Even enterprise groups can to take an agile approach to development. |
| T5 |
An Agile UP
Craig Larman, Valtech |
|
The Unified Process (UP) is popularand with good reason, as it includes skillful practices such as iterative development, and early attention to risks. However, many organizations are adopting it in an unskilled manner, superimposing “waterfall” or “heavyweight” values onto it that need not apply. Applied well, the UP encourages an agile approach, and so you will learn the essential useful UP practices, the keys to its successful introduction in an organization, and how to apply the UP in an adaptive and agile spirit. And, how to screw it up. Further, many XP and Scrum practices are either part of the UP, or specializations of more general UP guidelines. What are these, and which may be adopted consistent with a UP project? Nevertheless, this tutorial motivates the need for more than just XP or Scrum on many projects. You will learn why a combination of primarily the UP with other agile process practices is an excellent approach. |
| T6 |
Inside Feature Driven Development
Jeff De Luca, Nebulon Pty. Ltd. |
|
Feature Driven Development (FDD) is a proven-in-practice process for producing software applications. Rather than being "all new," Feature Driven Development is a blend of known best practices and techniques, with only those things that really matter abstracted out and described in its simple process descriptions. Only five processes of one to two pages each - and they tell you what to do. This tutorial teaches you the thinking and practices behind FDD and the five FDD processes in detail - explaining the how and the why for each of them. You will learn how to apply the most relevant practices from Feature Driven Development and how to avoid common mistakes. You will learn why practices are included in FDD and why other practices are not. You will learn about the project as a system versus the software system being constructed. You will learn what a client-valued feature is and how to express a project as a categorized list of client-valued features. You will learn how the first three FDD processes form a project startup phase and how useful a risk reduction strategy that is for you and your clients, plus learn about important predictive metrics from the startup phase to help you size and cost the subsequent construction phase. You will learn how feature teams are dynamically formed, changing the traditional hierarchic project structures. You will learn about feature milestones and how they solve that worldwide problem word for developers - “finished.” Plus you will learn how the milestones are used for amazingly accurate tracking and reporting that is meaningful to clients and keeps your project team better focused as everything is expressed in the language of the domain rather than the technologies in use. You will learn how in the construction phase, features are bundled into workpackages and collectively moved through the design and build processes. You will learn about scope or feature creep and how to manage it, plus where the accountability for estimating really lies. The tutorial also teaches, for the first time publicly, FDD workflow which comprises the key “how to” lessons for the FDD construction phase processes Design By Feature and Build By Feature. Learn how there are multiple levels of delegation and self-organization happening within the FDD construction phase, but all within planned assembly. You will learn how and why FDD can scale to very large projects and, finally, throughout the tutorial you will learn key lessons from over 20 years experience in the industry. Bring your questions, stories of what's worked and what hasn't. Interact with and learn from an experienced project manager and the developer of Feature Driven Development. |
| T8 |
XP/Agile Organizational Change - Tools for Successful Adoption
Diana Larsen, FutureWorks Consulting, LLC & Joshua Kerievsky, Industrial Logic, Inc. |
|
Yes, XP and other Agile methods are awesome, but what about your colleagues and managers who staunchly resist them? Have you retreated to practicing only a few XP/Agile practices because you haven’t been able to overcome organizational resistance? Do you feel you are not important enough in your organization to help make extreme changes? Helping organizations, teams and individuals adopt an XP/Agile process is a whole lot easier when you’ve learned the tools of organizational change. In this tutorial, you’ll learn from folks who’ve made extreme changes happen across entire organizations with the help of tools like: change readiness assessments, project charters, test-driven management, retrospectives and more. This tutorial is hands-on and chock full of real-world stories. Join us and learn to practice your own change magic. |
| T9 |
Understanding Users and User Tasks
Larry Constantine, Constantine & Lockwood, Ltd. & Lucy Lockwood, Constantine & Lockwood, Ltd. |
|
Usability is increasingly recognized as important for the success of software and Web-based applications, but developers often lack the time and techniques needed for effective user interface design. Extreme programming and other agile methods have proved their ability to deliver quality software quickly, but have offered little in the areas of software usability and user interface design. This tutorial introduces core techniques of a proven approach that complements agile development methods. In agile usage-centered design, the focus is on quickly developing a clear understanding of users and user tasks through minimal models that provide maximum payoff. Using hands-on application to a simplified case study, the tutorial will show how ordinary index cards can efficiently model the roles users play in relation to a system and the tasks they need to perform within those roles. The use of card-based user and task models to inform and organize planning and design will be illustrated. |
| T10 |
Collaboration 4 Agile Projects
Janet E. Danforth, Facilitator4hire, Inc |
|
Human interactions are the way we get work done and are the way decisions are made. In Agile projects, we place interactions over documentation and collaboration over contracts. So, meetings for any decision points in an Agile project need to be lean, focused, and productive. Agile teams with outstanding collaboration skills hold the true key to making their projects work. This fast-paced tutorial demystifies the “art” of collaboration with common-sense skills and processes to use again and again in every Agile interaction. In this tutorial, participants will: understand the role of collaboration and consensus in Agile Projects, learn key techniques and processes to use in Agile collaborations and practice these collaboration techniques.
This tutorial is mapped to the International Association of Facilitators’ schema for effective meeting management. The instructors teach with a high-energy and highly interactive style, maximizing the learner’s experience through the application of sound adult learning techniques. Templates and agenda guides will be provided as “take-aways.”
|
| T11 |
The Lean Development Toolkit
Mary Poppendieck, Poppendieck.LLC & Tom Poppendieck, Poppendieck.LLC |
|
The Lean Software Development tutorial, identifies seven fundamental “lean” principles, adapts them for the world of software development, and shows how they can serve as the foundation for agile development approaches that work. Along the way, you will discover 22 “thinking tools” that can help you customize the right agile practices for any environment.
Better, cheaper, faster software development. You can have all threeif you adopt the same “lean” principles that have already revolutionized manufacturing, logistics and product development.
- Iterating towards excellence: software development as an exercise in discovery
- Managing uncertainty: “decide as late as possible” by building change into the system
- Compressing the value stream: rapid development, feedback, and improvement
- Empowering teams and individuals without compromising coordination
- Software with integrity: promoting coherence, usability, fitness, maintainability, and adaptability
- How to “see the whole”even when your developers are scattered across multiple locations and contractors
Simply put, Lean Software Development helps you refocus development on value, flow, and peopleso you can achieve breakthrough quality, savings, speed, and business alignment. For an outline of the tutorial, go to: http://www.leantoolkit.com/leantutorial.htm
|
| T12 |
Customer Testing with FIT: a Hands-On Introduction
Ward Cunningham, Cunningham & Cunningham, Inc. |
|
This tutorial will introduce the Framework for Integrated Test (fit) and demonstrate its use in Test-Driven Development (TDD) as practiced in Extreme Programming and other agile development methods. Projects use fit-style tests as much to guide programming as to test the correctness of the result. Test-driven designs are more easily "refactored" making it the only programming method that expects programs to get "cleaner" over time.
Short lectures will explain just enough of Extreme Programming to establish the context for test-driven design. These will be followed by live demonstrations and laboratory exercises. The labs will use simple Java, but the emphasis is on familiarity with the frameworks, tools and techniques, not programming. If you are unfamiliar with Java you will learn enough just by watching so as to be able to complete some of the exercises and received all of the benefits of the class.
Bring a laptop, or join someone who has, to do hands-on exercises. Bring a wireless networking card to participate in additional "online" activities. Install java at home to save time in class. Google "sun java download" to find a version for your computer.
|
| T3 |
Introduction to Scrum
Ken Schwaber, Independent Consultant |
|
This tutorial will create an experience of Scrum in a project setting, showing how to plan and manage products and projects using incremental, iterative development based in the agile processes. Specifically, this tutorial will provide:
- An understanding of empirical processes, emergence, self-organization, and adaptation;
- A detailed understanding of Scrum principles, flow, roles, artifacts, and operation;
- A detailed case study of Scrum being used to solve a competitive problem for a large financial institution;
- A detailed description of the role and responsibilities of the product owner, ScrumMaster, and development team;
- A description of how to use Scrum to develop software for mission critical and life critical systems;
- An approach to using Scrum for fixed price/fixed date contracts;
- An understanding of how Scrum addresses CMM level 2 and 3 requirements;
- An understanding of how to quickly implement agile software development so projects start producing product increments;
- An understanding of implementation alternatives and their benefits for Scrum;
- An understanding of how Scrum solves predictability and productivity issues for projects and products;
- An understanding of the overlap between Scrum and Extreme Programming and how to use Scrum to wrap Extreme Programming to provide project and organizational scalability and control; and,
- An understanding of Scrum as a methodology and toolset that can be used to Plan, Customize, and Manage any type of project.
|
| T14 |
Patterns for Agile Software Configuration Management
Steve Berczuk, Independent Consultant |
|
Software Configuration Management (SCM) is sometimes thought of as a heavy weight discipline that contributes to the rigidity, rather than agility, of the development team. This perception comes out of viewing circumstances where SCM practices were inappropriate to the project. In many cases, proper use of SCM practices can add a level of reproducibility and accountability to the development effort that can enable agility. The tutorial gives a brief overview of the basics of Software Configuration Management, and describes how to use SCM effectively in an Agile environment by describing key SCM Practices that are needed to have a stable, yet agile development environment. This includes practices relating to versioning, workspaces, testing, build, and branching. The tutorial is taught from the perspective of SCM as a part of the daily development cycle. We use a pattern language as a mechanism for describing how the practices fit together, but an understanding of patterns and pattern languages in not essential to understanding the material. Some background on the patterns is available at: www.scmpatterns.com. |
| T16 |
Project Retrospectives in Agile Development
Mary Lynn Manns, University of North Carolina at Asheville & Linda Rising, Independent Consultant |
|
The Principles Behind the Agile Manifesto state that, “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.” How can we do that? This tutorial will present techniques for facilitating project retrospectives that allow teams to discover what they’re doing well so that their successful practices can be repeated and what they’re not doing as well so that they can discuss how to improve. Retrospectives are not “finger pointing” sessions, but rather a fun and highly effective series of activities in which teams can reflect on the past in order to become more effective in the future. Participants will be introduced to the retrospective process, learn various techniques for leading retrospectives, hear the experiences of the tutorial leaders who have led retrospectives in various kinds of projects, and will get the opportunity to participate in a retrospective simulation.
www.lindarising.org
|
| T17 |
The Crystal Methods, or How to Make a Methodology Fit
Alistair Cockburn, Humans and Technology |
|
Crystal is a family of highly tolerant, lightweight methodologies and a framework for tuning them to your specific situation. Here, methodology means nothing more (or less) than the conventions the team agrees to use. Level of detail and formality, documents and reviews, office seating and timing of parties can be part of those conventions. Projects vary in size, criticality and priorities, and so should your methodology. The strengths and weaknesses of the organization, the specific people, even the office layout affects how the team best works, and therefore should influence the methodology.
A Crystal methodology aspires to be the least constrictive and yet effective methodology for any particular project team. This tutorial describes the principles and techniques for shaping a methodology to the project-team combination, introduces the colors in the Crystal family, compares different examples of the Crystal family to each other relative to the principles, and shows the differences between Crystal Clear and XP. Expect to learn the methodology tuning principles, and experience how easy and fruitful a methodology-tuning session can be.
|
| T18 |
How to be a Coach
Ron Jeffries, Object Mentor, Inc. & William C. Wake, Independent Consultant |
|
It’s difficult to start a new process, but a coach can make this easier. A coach is part developer and part manager: a coach can help a team stay on process and can help the team learn. A coach brings in some outside perspective to help a team see itself more clearly. We’ll use a combination of lectures, games, and exercises to explore and practice skills that coaches (and team members!) can use. The goal of this tutorial is to give participants: a deeper look at the coach’s role, tools to help communicate better, practice with charts, retrospectives, and other feedback tools and practice diagnosing team problems. |
| T20 |
Testing Agile/Agile Testing: What Testers Do for Agile Teams, What Agile Practices Do for Testers
Lisa Crispin, KBToys.com |
|
There are a plethora of agile processes being practiced: Extreme Programming, SCRUM, Crystal, FDD, DSDM, and others. It’s not always clear how a tester fits in to these new software development methods. Even if your organization isn’t using agile methods to develop software, you can benefit from using an agile approach to testing. For the tutorial we’ll use XP as an example, but the lessons learned apply to other agile processes. We’ll go through an iteration of an XP project step by step and show what goals to reach for, which activities to engage in, and some helpful techniques for testers to use. The exercises are built around an XP project to develop a simple web-based tracking application. We’ll examine the techniques we use and see how they could apply in a non-agile setting. |
 |
 |
Tutorial Selection Committee
- James Newkirk, Nascent Software, Inc. (Chair)
- Jens Coldewey, Coldewey Consulting
- Brian Button, Agile Solutions Group
- Andy Slocum, Thoughtworks, Inc.
- Mike Two, Thoughtworks, Inc.
|