A Simple Approach to Modular Design

When I tried to learn object-oriented design, I read the classics. At least I tried to read the classics. It didn't go that well. It wasn't until I began practising test-driven development that I began to truly understand the principles of object-oriented design, including how to use them effectively to drive down the cost of adding features. [Read more]

Acceptance Test Driven Development (ATDD) with Robot Framework

Executable requirements neatly combine two important XP practices: user stories and acceptance testing. They enhance communication, ease following the number of running tested features during an iteration, and work as regression tests in future iterations. This workshop gives an introduction to this important process and also shows how it is used in developing a realistic system. Participants can also join the fun and get real hands-on experience. Learnings from this tutorial are thus applicable when using other acceptance testing tools such as Cucumber, FitNesse, TextTest, or Concordion. [Read more]

Agile Management: Leadership on an Agile environment

For a long time, Agile literature have been focused on development practices, teamwork, processes and tools.  On this half-day tutorial (240 mins), attendees will learn: What Agile means to a Corporate Culture and the old-style management, What to expect from a self-organized Agile Team and how Command & Control kills Agile, How to manage complex systems ? or not, The Managers role on motivation, development and alignment, The Managers role on at the portfolio level: planning, measuring and executing on an Agile Environment. [Read more]

Agile Management: Leadership on an Agile environment

For a long time, Agile literature have been focused on development practices, teamwork, processes and tools. On an Agile environment, the manager's role changes from the Command & Control system to a Servant Leadership & Role Model paradigm whose main responsibilities include impediments removal, constraints and goals definition, and, most important of all, corporate culture definition and improvement. The Agile Manager also has a leading role on change management and should act as a sponsor and a catalyst on an Agile Implementation project. [Read more]

Agile Software Development with Distributed Teams

On the one hand there are meanwhile not many projects left that are made at home without outsourcing, off- or nearshoring. Thus, global software development seems to be a fact in state-of-the-art software development. On the other hand more and more projects discover the success factor of agile software development not only since the Standish Group is recommending this approach. However, there are still a lot of people who believe agile software development is for small and collocated teams only. [Read more]

Agile testing and critical systems

It is a widely shared impression that the agile community and the critical system community live in completely different worlds. Actually, the critical system people normally develops according to standards like IEC 61508, MIL 882 or ED 109, they emphasizes well defined development processes, they often have contractually specified requirements, and detailed documentation of all activities is very important. This approach is radically different from the usual agile development approach. [Read more]

Agile Testing Journey - From Specification to Done

Effective testing should be an integrated part of agile development. Various agile testing practices, such as ATDD, TDD, and exploratory testing, have been introduced. In practice it's not clear how to combine these effectively. Agile testing requires various skills and has to be done in parallel with development. Right balance between information, cost and feedback time is needed to achieve this. In this workshop we explore the testing activities required to get the feature done. [Read more]

Brutal Refactoring

There is a lot of tacit knowledge in the industry about refactoring, but there are also some very hard cases.  Some code is so inscrutable that it defies most attempts to make it understandable.  Developers are tempted to throw it away and start over again, but as always, they are stymied by the fact that they don?t really understand what they want to replace.  In this tutorial, Michael Feathers will present a number of aggressive refactorings that can be used to move nearly intractable code up to the next level of maintainability. [Read more]

Dealing with usability in an agile domain

The integration of usability engineering and agile software development practices is an emerging challenge. Both the agile and the HCI community have recognized both the need and the difficulties to incorporate efficient usability practices in this domain. XP 2011 workshop is aimed to keep on being a forum for discussing approximations for the intersection of agility and usability. Participation would be open to all XP2011 attendees. [Read more]

Extreme Startup

In this workshop we aim to simulate product teams building software and delivering it into a market. You can continue to refine and upgrade your software throughout the session, releasing new versions and testing their performance in the market. Once your software is live it will begin to accrue points, as simulated users use the software and score it against how well it fits their needs. [Read more]

How complex is software development?

This session will open the doors to complexity science, using the Cynefin framework, and give you a way of making sense of problems and how they can be approached. Email: john.mcfadyen@jime.co.uk; Web: http://www.jime.co.uk ; Twitter: @johnmcfadyen; [Read more]

How to Sabotage the Lego City Scrum Game

Ever met a dysfunctional team mate' Then you know what we're talking about. While coaching agile teams in different organisations we met a lot of people effectively sabotaging our agile transitions. Most of them didn't mean to, they just behaved in a way that was dysfunctional in the team context. At the same time we started to think about what we could do about it and how to reduce this behaviour in our teams. We searched for the different causes and guess what: We found some. [Read more]

Introduction to Behaviour Driven Development

In this tutorial we look at the original reasons behind the creation of BDD, bringing the focus back to the language and conversations which lie at its heart. We look at how BDD's patterns can be applied at multiple scales , from the initial project vision all the way to the code, to deliberately discover and address ignorance in every aspect of software development, producing reliable, maintainable software that matters.  [Read more]

Making feedback work in your teams

One of the key values of XP is Feedback. While teams and software development organisations focus on systemic issues and technical improvements for their Agile journey, the importance of sharing feedback amongst each other somehow falls by the wayside. [Read more]

Refactoring in the 4th Dimension

Physicists tell us that there are at least four dimensions that are important to us.  We typically only think of the three spatial dimensions: length, width, and depth, but time is a dimension as well. In this workshop, we will mine the change histories of several open source projects and use them to identify patterns that unfold in time within codebases. Participants in this workshop should bring a laptop with Java development tools installed and Ruby 1.8. [Read more]

Retrospectives in action

A This tutorial offers something for everyone to learn how to use retrospectives to foster a culture of continuous improvement. People new to agile methods will learn what retrospectives are, why they are so important and some of the key elements to how to make them successful. [Read more]

Self-Organizing Agile Teams: Beyond the Buzzword

Self-organizing Agile teams are a hallmark of Agile software development. This tutorial brings together a unique blend of research and practice as Rashina and Esther take you beyond the buzzword and explain how software development teams become self-organizing. Based on an original, industry-based PhD research and practical experience of mentoring numerous Agile teams, this tutorial provides an overview of self-organizing teams from multiple perspectives. [Read more]

Silo Busting

In this tutorial, we explore the causes of organizational silos, their impacts, and the strategies that you can employ to help mitigate their impact on your teams and within your organization. Contact details: Tom Perry: tperry@cybersource.com and Lourdes Vidueira: lvidueira@cybersource.com [Read more]

Teaching and Learning TDD in the Coding Dojo

Emily Bache will facilitate a tutorial where you will experience Test Driven Development in the safe environment of a Coding Dojo. Take the chance to improve your skills and practice agile coding techniques with other programmers. We'll spend the last part of the session discussing experiences using the Coding Dojo to teach TDD and agile programming in general. [Read more]

The Fit of Software Development in the Larger Organization

This tutorial will address three critical issues in software development today: 1. Building the Right Thing ' How does the software development organization fit into the overall company and provide the capabilities that are most critical to the company's success' 2. Leadership A Product Manager is an outward facing role, while a Product Owner is an inward-facing role; can one person manage both roles? 3. Design Thinking Dealing with complexity is the essence of software development; how does design thinking help manage complex environments? [Read more]

Thursday's keynote

Keynote speaker: Brian Marick

It's widely agreed that Agile has 'crossed the chasm' to mainstream acceptance. Along the way, some of the more interesting bits have fallen off. This talk will be the latest in a multi-year effort to recover those bits, rehabilitate them, make them stranger, and encourage you to put them to work.  [Read more]

Value-Based Software Traceability

The VALSOT workshop's main objectives are: 1) to create a forum to discuss current approaches on software value-based traceability, 2) to state a research agenda based on the above topics, highly oriented to support industrial contexts. [Read more]

Wednesday's Keynote

Keynote speaker: Esther Derby
 This year marks 10 years since the signing of the Agile Manifesto.  In those 10 years, we've seen notable successes.  We've also seen XP-B, Scrum-but, Fragile, and just plain #FAIL.  Organizations have adopted agile methods to solve all manner of problems. But no method can solve problems unless management also changes. And that's a matter of changing minds, mindsets, and what matters to managers.  [Read more]

What's in your coaching backpack?

The nature of coaching often means agile coaches work alone, so how do you get better as a coach? You work with peers to discover different coaching methods and techniques. Come along to this workshop where we will explore techniques with other agile coaches. [Read more]

You Get What You Measure

In this presentation we will show that what we measure can cause sub-optimal behavior-by beginning the session with a paper-and-scissors snowflake manufacturing game. After comparing the results, and seeing in fact that we get what we measure, we'll move on to a discussion about software measurement. We will start by talking about why we measure and the fallacy of the "measure everything" mindset. Then we'll discuss the popular metrics used today and the pitfalls of using them. We will explain the powerful concept of challenging existing norms and empowering team members to define their own standard work. Finally, we'll close with a discussion on how to avoid the lean/agile treadmill by keeping things new and exciting.  http://dhondtsayitsagile.blogspot.com [Read more]