Technical Edge-Development Praxis

The world of technology keeps changing, and the world of practice keeps advancing. On this stage, we’ll explore them both. In the mornings, we’ll have sessions on cutting edge technology, languages, and platforms. However, these sessions will not be about technology for technology’s sake. We’ll focus on the challenges which lie ahead and and we’ll also focus on emerging technology with the potential to enhance team effectiveness. In the afternoons, we’ll focus on the continuum of practice. Test-Driven Development, Behavior-Driven Development, Refactoring, Continuous Integration, all of these practices are part of day to day work in Agile Development. At Agile 2010, this year, we’ll delve deeply into those practices, but we’ll also have sessions which explore new practices and reflect on how practices interrelate, things which make good practice contextual, and tools which help teams decide how to approach practice in their ever changing environments.

Sessions

Evolutionary development for the web with ASP.NET MVC and TDD

This 3-hour course will teach you how to approach web development from an agile perspective. You will learn techniques for rapidly developing small, incremental vertical features in an application in order to deliver maximum value in a minimum amount of time. You will learn to start with the high level specifications for feature completeness, expressed in an automated acceptance test, and then implementing the logical functionality with Test-Driven Development. The course will be taught using Visual Web Developer 2010, ASP.NET MVC 2, xUnit.net, and SpecFlow.

   
Presenter(s): Brad Wilson
Day and Time: Monday, 09 August 2010, 09:00 - 12:30   Add to Calendar
Location: Asia 1
Level: Practicing

Extreme Fishbowl 2010

Two pairs of programmers, the latest high-tech tools, large screen monitors, and a customer with a vision. Put it all together and you have ... Extreme Fishbowl 2010! Eight years after the original event, the fishbowl is back—bigger and better than ever. The customer wants clean code that works, the developers want to exhibit their programming skills (while not getting fired), and the audience wants a good time while they eat. Come see how much can get done in 40 minutes of intense, focused agile development. Join us as a participant or spectator in "the fishbowl." Each day during the lunch block, participants line up to await their turn in the fishbowl—a highly-visible, high-pressure development situation with everything on the line (including their reputations). Wait for others to be "fired" until your turn rolls around. Then get seated quickly with your pair and await the ride of your life. You contribute code and tests to the ever-growing program, under the eagle eye of the demanding and occasionally capricious customer. Feedback is omnipresent, with all of the action shown on two big screens and a running play-by-play commentary from the host. As analysts dissect your every move, the audience watches in anticipation. One misstep—one too many red bars when you needed green—and it could be your last!

   
Presenter(s): J. B. Rainsberger , Jeff Nielsen
Day and Time: Monday, 09 August 2010, 12:45 - 13:30   Add to Calendar
Location: Southern Hemisphere IV
Level: Practicing

Behaviour Driven Development with Cucumber

[Cucumber](http://cukes.info/) is all the rage these days, but many teams struggle to understand how and when to use it. It is designed to be an Acceptance Testing tool in the context of Behaviour Driven Development (BDD), but that explanation tends to bring up even more questions. Aslak Hellesøy, the author of Cucumber will help you to understand how to use Cucumber effectively. Attendees will learn BDD fundamentals and will develop a small application using Cucumber. They can choose between Java, Ruby and .NET.

   
Presenter(s): Aslak Hellesøy
Day and Time: Monday, 09 August 2010, 13:30 - 17:00   Add to Calendar
Location: A-2
Level: Practicing

Clojure, up-front and personal: The Orbit Kata.

In this three-hour session you will learn Clojure by following along with Uncle Bob, step by step, and test-case by test-case, as you build a simple Swing/Clojure orbital simulator app. Along the way you'll learn the value of Functional Programming, how (and why!) to design applications that use it, and why Clojure is the next important language that you should master. This session will be extremely challenging! Plan on requiring an hour or so of down-time to allow your neuronal excitation to exponentially decay to safe levels.

   
Presenter(s): Robert Martin
Day and Time: Monday, 09 August 2010, 13:30 - 17:00   Add to Calendar
Location: Southern Hemisphere IV/V
Level: Introductory

Software Craftsmanship Practices

How does one become a Master Craftsman? Practice, practice, practice. In this workshop we will get our hands dirty exploring some of the more common techniques for practicing the software craft. We will perform code katas, working on sense of code smell, do some randori, and more. Bring your laptop and prepare for a mental workout. You will learn exercises that you can use to train yourself at home and teach your colleagues.

   
Presenter(s): Micah Martin
Day and Time: Monday, 09 August 2010, 13:30 - 17:00   Add to Calendar
Location: A-4
Level: Practicing

Walk and Code - Non-exercise Activity Thermogenesis

Life as a programmer is primarily sedentary. Most of the day, a programmer sits in front of a computer moving little more than fingers. Dr. Jame Levine of the Mayo Clinic has been doing some fascinating research on the health benefits of non-exercise activity. He has pioneered the concept of active workstations to promote an overall healthier life for people with typically sedentary jobs. I have taken his advice to heart and built a walking treadmill desk that I use everyday as I write code. I will present Dr. Levine's research and report on my first 6 months on the treadmill desk.

   
Presenter(s): Doug Bradbury
Day and Time: Tuesday, 10 August 2010, 11:00 - 11:30   Add to Calendar
Location: Asia 1
Level: Introductory
Presentation: Download Slides

Programmer Self-Education: My Year Studying Programming Language Fundamentals

After attending Michael Feathers's talk at SCNA 2009 titled "Self-Education and the Craftsman," Kevin Taylor made a commitment to himself to read the revered, and despised, MIT textbook, "Structure and Interpretation of Computer Programs" (SICP). Over the next year, he spent hours each week working through challenging programming exercises in Lisp. In this talk, Kevin shares some of the programming fundamentals he discovered, or rediscovered. Kevin also shares his insights on the importance of self-education (knowledge + practice) for software craftsmen and their journey toward mastery.

   
Presenter(s): Kevin Taylor
Day and Time: Tuesday, 10 August 2010, 11:30 - 12:00   Add to Calendar
Location: Asia 1
Level: Practicing

Beyond TDD with Functional Programming

Test Driven Development is one cornerstone of eXtreme Programming and its advantages are well-known: it guides developers, builds confidence in the system and provides secure scaffolding to support change. Functional languages are getting more and more attention and some of their characteristics may be useful in increasing software quality. This session introduces model-based testing techniques using QuickCheck and FitNesse as tools and Haskell as a language to drive development of some Java code.

   
Presenter(s): Arnaud Bailly , Christophe Thibaut
Day and Time: Tuesday, 10 August 2010, 13:30 - 15:00   Add to Calendar
Location: Asia 1
Level: Expert

The Butterfly Effect – How the little things you do affect you later

The butterfly effect is a phrase from chaos theory that describes how a dynamic system can be very sensitive to changes in the initial conditions. As the story goes, a butterfly flaps its wings in Maine and causes a hurricane in India that floods millions from their homes. Software systems, and in particular the systems we call "teams" and "processes" are very similar and are also subject to the same kind of unexpected outcomes. How do changes to processes, rules, guidelines and gates impact the work the team does? How does it impact the thing they produce?

   
Presenter(s): Peter Provost
Day and Time: Tuesday, 10 August 2010, 15:30 - 17:00   Add to Calendar
Location: Asia 1
Level: Practicing

Code Retreat

Code retreats are happening all around the world. What are they? Software craftsmen from all over get together somewhere in the world on a Saturday and do several iterations of pair programming and test-driving Conway’s Game of Life. More information on the general idea and future events can be found at: http://coderetreat.ning.com/events. For this session, we will only have time for a single iteration, but that should be enough to give you the code retreat fever (and if you catch it, we'll continue in open space afterward). Please bring your laptop and dev environment of choice.

   
Presenter(s): Rob Park
Day and Time: Wednesday, 11 August 2010, 09:00 - 10:30   Add to Calendar
Location: Asia 1
Level: Practicing
Presentation: Download Slides

Developer's Guide to Feedback Driven Development

A new approach for building software has emerged from the world of startups. Steeped with agile and lean principles, these ideas are being championed by Eric Ries, Steve Blank, Dave McClure and others. Feedback Driven Development, as I am calling it, is one facet of these ideas. As the name implies, we use the interaction of users and their activity to determine if our software is delivering value. This talk will cover what it is, how you use it in the development cycle, explore several implementations and discuss the realities of integration.

   
Presenter(s): Marty Haught
Day and Time: Wednesday, 11 August 2010, 11:00 - 12:00   Add to Calendar
Location: Asia 1
Level: Practicing

Extreme Fishbowl 2010

Two pairs of programmers, the latest high-tech tools, large screen monitors, and a customer with a vision. Put it all together and you have ... Extreme Fishbowl 2010! Eight years after the original event, the fishbowl is back—bigger and better than ever. The customer wants clean code that works, the developers want to exhibit their programming skills (while not getting fired), and the audience wants a good time while they eat. Come see how much can get done in 40 minutes of intense, focused agile development. Join us as a participant or spectator in "the fishbowl." Each day during the lunch block, participants line up to await their turn in the fishbowl—a highly-visible, high-pressure development situation with everything on the line (including their reputations). Wait for others to be "fired" until your turn rolls around. Then get seated quickly with your pair and await the ride of your life. You contribute code and tests to the ever-growing program, under the eagle eye of the demanding and occasionally capricious customer. Feedback is omnipresent, with all of the action shown on two big screens and a running play-by-play commentary from the host. As analysts dissect your every move, the audience watches in anticipation. One misstep—one too many red bars when you needed green—and it could be your last!

   
Presenter(s): J. B. Rainsberger , Jeff Nielsen
Day and Time: Wednesday, 11 August 2010, 12:30 - 13:15   Add to Calendar
Location: Southern Hemisphere IV
Level: Practicing

Zero to Clojure in 90 Minutes

We all know that learning one new language a year is a great goal for improvement as an Agile developer who wants to be more effective. However, it can be a bit intimidating to get started in a new language, especially one that looks very different from what you're used to. Many developers are responding to change (in a macro sense) by learning Clojure, which brings together the expressiveness and power of Lisp, fantastic concurrency semantics, and the rich libraries of Java. It allows for great simplicity of code, which translates to fewer mistakes and more working software.

   
Presenter(s): Colin Jones
Day and Time: Wednesday, 11 August 2010, 13:30 - 15:00   Add to Calendar
Location: Asia 1
Level: Introductory

How to screw up Dependency Injection and Inversion of Control

Dependency Injection is a technique that has moved out of controversy, but it continues to cause problems when introduced into codebases. Some consider it a basic principle of good OO design (separating concerns), while others find it makes their code "magical", creates confusing code flow, and obfuscates entry points. This session examines the worst practices and patterns to come out of the IoC/D-I tools, their limitations, and their communities. Focusing on Google Guice and others, we examine how and why some of these practices create worse code, and how such errors can be corrected.

   
Presenter(s): Christian Gruber , Bryan Beecham
Day and Time: Wednesday, 11 August 2010, 15:30 - 17:00   Add to Calendar
Location: Asia 1
Level: Practicing

Your software can run faster

This tutorial gets you started in performance engineering. Everyone likes systems that are 'fast', but 'fast' won't do as a metric. The many facets of 'fast' are discussed, but throughput is the main focus of the tutorial. In order to improve throughput, the current bottleneck resource must be found and used more efficiently. This procedure is followed iteratively and recursively until it becomes uneconomic to do so. Bottlenecks are identified by monitoring resource utilization. To make this practical, performance tests must be automated, mirroring modern unit test practices.

   
Presenter(s): Johan Peeters
Day and Time: Thursday, 12 August 2010, 09:00 - 10:30   Add to Calendar
Location: Asia 1
Level: Practicing
Presentation: Download Slides

Understanding Design Complexity

Domain driven design isn't enough to prevent churn on complex, hairy systems. To get slightly ahead of the design curve you should understand more about the inherent complexities in the domain. This tutorial introduces two techniques designers and domain experts can use in conversations to reveal complexities, variations, and stable concepts: commonality-variability analysis and hot spot cards. Applying these techniques allows designers to see the slightly bigger picture so they can be better equipped to align their solutions with the relatively stable parts and support known variations.

   
Presenter(s): Rebecca Wirfs-Brock
Day and Time: Thursday, 12 August 2010, 09:00 - 10:30   Add to Calendar
Location: Southern Hemisphere III
Level: Practicing
Presentation: Download Slides

Extreme Fishbowl 2010

Two pairs of programmers, the latest high-tech tools, large screen monitors, and a customer with a vision. Put it all together and you have ... Extreme Fishbowl 2010! Eight years after the original event, the fishbowl is back—bigger and better than ever. The customer wants clean code that works, the developers want to exhibit their programming skills (while not getting fired), and the audience wants a good time while they eat. Come see how much can get done in 40 minutes of intense, focused agile development. Join us as a participant or spectator in "the fishbowl." Each day during the lunch block, participants line up to await their turn in the fishbowl—a highly-visible, high-pressure development situation with everything on the line (including their reputations). Wait for others to be "fired" until your turn rolls around. Then get seated quickly with your pair and await the ride of your life. You contribute code and tests to the ever-growing program, under the eagle eye of the demanding and occasionally capricious customer. Feedback is omnipresent, with all of the action shown on two big screens and a running play-by-play commentary from the host. As analysts dissect your every move, the audience watches in anticipation. One misstep—one too many red bars when you needed green—and it could be your last!

   
Presenter(s): J. B. Rainsberger , Jeff Nielsen
Day and Time: Thursday, 12 August 2010, 12:30 - 13:15   Add to Calendar
Location: Southern Hemisphere IV
Level: Practicing

The Limited Red Society

When you have compilation errors and/or failing tests, you are "in the red", unable to integrate or release your code. Over the years, I've learned techniques to limit red time while test-driving and refactoring code. In this talk, we will study live Eclipse/Java programming sessions using graphs that clearly visualize red time and green time. You’ll learn strategies and tactics that help or hurt our ability to limit red time and you’ll gain an appreciation for the visual cues that can help make you a better programmer and fellow member of the Limited Red Society.

   
Presenter(s): Joshua Kerievsky
Day and Time: Thursday, 12 August 2010, 13:30 - 15:00   Add to Calendar
Location: Australia 3
Level: Introductory

The Worst of Legacy Code: Forensic Development

This session will teach 2 techniques that not only individually help to tackle the more complex parts of legacy code, but combined act as the most powerful technique to fix the worst legacy code situations. After exploring these separately, we will dive into how they work together to improve a hideous piece of legacy code. It is in Russian, with no access to the underlying source objects, and can't be instantiated (due to external dependencies). If firefighting or legacy code is part of your job, this is one session not to be missed

   
Presenter(s): Jason Kerney , Llewellyn Falco
Day and Time: Thursday, 12 August 2010, 13:30 - 15:00   Add to Calendar
Location: Asia 1
Level: Practicing

Coupling Loosely

Mock objects are a good way to break apart a legacy system to test it. However, they do not improve coupling (few dependencies between units) or cohesion (each unit does one thing). Developers who rely on mocks build well-tested legacy code, even on greenfield projects. The next step, making the code easy to change, requires using indirections with looser coupling. In this information-dense, code-oriented session, we'll learn 12 to 18 key indirections and their impacts on your design. Next time, choose the right indirection for the job rather than just reaching for another mock object.

   
Presenter(s): Arlo Belshee
Day and Time: Thursday, 12 August 2010, 13:30 - 15:00   Add to Calendar
Location: Southern Hemisphere III
Level: Expert

Large-scale refactorings using the Mikado Method

For any code base, ill- or well-structured, there comes a time when you want to change large portions of it to meet new functional requirements or a new business model. When these changes become extensive, it’s easy to get lost in a jungle of dependencies, or on a sea of broken code. This session presents ‘The Mikado Method’, a systematic approach to large changes. It helps you visualize, prepare and perform business-value-focused refactorings, without having a broken code-base. It also enhances communication, collaboration, learning for teams and helps individuals stay on track.

   
Presenter(s): Ola Ellnestam , Daniel Brolund
Day and Time: Thursday, 12 August 2010, 15:30 - 17:00   Add to Calendar
Location: Asia 1
Level: Practicing

Stage Sponsor

Your Logo Here!
Please contact Phil Brock to sponsor this stage.

Stage Producer

  • Producer: Michael Feathers

  • Co-Producer: Rachel Davies

Home
Contact us
>