|
A Time to Learn
|
|
|
|
Session SummariesKeynoteMary Poppendieck will talk about a topic relevant to the Agile community. Lean Development Tutorial *
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. Introduction to XPThis session provides an introduction to eXtreme Programming, XP. A full overview of XP values and practises with examples of how they are applied. Using a real user story from a current development project, Sean Hanly will give the "Story of a Story" - from initial user story presentation, estimation, scheduling, delivery of acceptance tests, and implementation through "Test Driven Development". Management Perspective on Agile Development
A session giving an overview of strengths and weaknesses of XP and Agile development practises from a management viewpoint. XP for Embedded SoftwareWe'll look at the ways that embedded development is different from other kinds of software development, what that means for toolchains, and for Test Driven Development. A range of embedded systems experience from mobile phone applications to scientific instruments provides the backdrop for examples we will give. The intended audience is software developers who anticipate doing embedded work in future, as well as those now engaged in embedded development. The focus will be on how embedded work is different and what benefits XP brings to it. Customer RoleXP is often described from the Developer perspective. This session talks about the role of the on-site customer in XP and how to go about writing user stories, making clear how they are different from Use Cases and traditional requirements documents. MetricsSteering by Numbers - Do metrics make any sense on an agile project? Are there any metrics that make steering an agile project easier? Can you really manage what you do not measure? Continuous Integration with Cruise ControlCruiseControl.NET is an automated integration server designed to handle the integration needs of .NET projects. In this presentation we describe how CC.NET helps teams practice continuous integration. We present the project's latest enhancements, and demonstrate how to set up a CC.NET server and various CC.NET tools, such as CCTray and CCWeb. XP GameThe XP Game is a playful way to familiarize the players with some of the more difficult concepts of the XP Planning Game, like velocity, story estimation, yesterday’s weather and the cycle of life. Anyone can participate. The goal is to make development and business people work together, they both play both roles. It’s especially useful when a company starts adopting XP. PanelAn opportunity to ask questions of a panel of XP and Agile experts. Coaching Techniques
The role of ‘Team Coach’ is new to software development, and more and more companies are appointing coaches to work with their teams. But what is a coach, and what are the skills that a good coach needs? Acceptance Test Driven Development
It is important for a team to know when work is complete. It is no good if the development team thinks a story is done only to later find that in the customer's eyes, it's 'not quite what I had in mind'. We, as team, need a clear picture of what is required and know when we are done. SCRUM + XPScrum, one of the agile processes, has been used to develop systems and products since 1995 on thousands of projects in hundreds of organizations. Scrum implements in several days and delivers increments of functionality within thirty days. Scrum wraps existing engineering practices. This session compares Scrum and XP contrasting their strenghs.One of the interesting things about both XP and Scrum is that they're both explicit about the areas that the other process is vague in. Although the processes complement each other quite well, there is still quite a bit of fine-tuning that needs to be done to get them to mesh, and not mess, with each other. Enablement Patterns
Agile enablement is the process of changing a traditional business to work in an agile way. By this we mean doing less up front planning in exchange for regular feedback and tracking of status. This allows an enterprise to adapt better to changing requirements and environment. KeynoteMartin Fowler will talk about a topic relevant to the Agile community. Test Driven Development
Test Driven Development (TDD) is a way of writing code that produces clean, concise and well tested code. It is different than the way most people are taught to develop code, and takes some getting used to. This tutorial gives participants a hands-on introduction to TDD in which they can get a flavour of how it works. XUnit/Mock and sample code will be provided for the exercises in two languages: Java and Python. Participants can use whatever language they want but no sample code or infrastructure support can be given for other languages. An Introduction to EnterpriseXP: Removing the Resistors to XPOne of the great resistors to the introduction of Agile methods, particularly XP, in many organisations, is that it can be perceived as just addressing the needs of the developers and ignoring the project management and governance aspects. However, if Agile developments are introduced within a proven management and application development framework totally focussed on the business priorities and benefit realisation, these resistors to change can be overcome. EnterpriseXP blends the proven benefits of DSDM's project management Framework and business focus with XP's efficiency and high quality development practices. This presentation will demonstrate how EnterpriseXP provides the rigour and control for management without the bureaucratic elements, which would inhibit the benefits of XP. Developing an Acceptance Testing Framework
When introduced to the concept of automated acceptance testing, especially driving development from this perspective, most people get it straight away. However, this enthusiasm tends to be short-lived and is followed by questions such as yeah, "but it would take us months to create such a framework", "but our legacy FOO system is untestable", [add more questions here]. Acceptance Tests vs Unit TestsThis session examines the difference from a developer's perspective between Acceptance Tests and Unit Tests. RetrospectivesThis tutorial will present techniques for facilitating project and heartbeat 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. Tracer Bullets
"There are two ways to fire a machine gun in the dark. You can find out exactly where your target is (range, elevation, azimuth) and the environmental conditions (temperature, humidity, air pressure, wind), determine the specification of the cartridges and bullets and the actual gun you are firing. You can use tables to calculate the exact bearing and elevation of the barrel and then, if the environment doesn't change, your bullets should land close to their target. Or you could use tracer bullets. Tracer bullets are loaded at intervals in the ammo belt alongside regular ammunition. When they're fired their phosphorus ignites and leaves a pyrotechnic trail from the gun to whatever they hit." -- quoted from The Pragmatic Programmer Responsibility Driven Design
Developed by Rebecca Wirfs-Brock, et al., Responsibility Driven Design (RDD) is a software development method that, like XP, has its origins in the Smalltalk community. MockObjects
Mock objects are usually regarded as a programming technique that merely supports existing methods of unit testing. But this does not exploit the full potential of mock objects. Fundamentally, mock objects enable an iterative, top-down development process that drives the creation of well designed object-oriented software. Please note the organisers reserve the right to make changes to the programme and speakers, or to cancel sessions if enrolment criteria are not met or when conditions beyond our control prevail. |