In this lightning talk we argue against what we see as ‘TDD fundamentalism’. We posit that practices such as “do the simplest thing that can possibly work” and “deal with one requirement at the time” are wasteful, risky and do not encourage innovative, competitive solutions. Instead we argue that adding a small up-front design phase will allow us to arrive faster at a better solution. We advocate introducing stakeholder values and product qualities as explicit parts of the design and introduce some design heuristics that we find are sensible alternatives to more fundamentalist approaches.
Unit testing is a widely adopted agile practice. But can we ensure that tests are executed, kept up to date or even written?
This talk presents a concept web framework which integrates unit testing in a novel way. Based on the premiss that untested code can’t be trusted, the it will refuse running your code if it does not have tests, the tests don’t cover all your code, or your tests fail to detect bugs artificially injected into your code.
If you’ve never been on a team that’s fully bought into Test Driven Development (TDD) and Pair Programming, then you’re missing out. These teams tend to learn much faster from each other, be more cohesive, write more modular software with fewer defects, refactor with confidence, and are generally more fun to be on.
Come experience what it’s like to work on a team that’s using XP dev practices!
You will need a laptop with wireless connectivity and a web-browser.
Ever tried to study a tune for an acoustic guitars? Or trained for a marathon? Or rehearsed a scene in a stage play? Key to success in all those disciplines is steady practice day after day.
Code Katas (jap. 形, means “form”) are a way to practice programming (BDD/TDD). A coder will solve a coding problem given by a task repeatedly in regular intervals such as every day to achieve better solutions and skills.
In this workshop we’ll do Code Katas (several tasks with several constraints will be provided). And of course we expect lots of fun during this event!
For decades functional programming has disappeared from industry mainstream. It’s great that these ideas around modeling applications have reappeared with a huge force, but it can be difficult to see how they fit into our current Agile teams. I’ve spent the last year and a half working to figure out if and how TDD and BDD fit with functional programming. To take it a step further, I’ll break down how agile practices fit in with Lisp vs ML style functional languages.
A characterization test is a means to describe (characterize) the actual behaviour of an existing piece of software, and therefore protect existing behaviour of legacy code against unintended changes via automated testing.
In this talk I will share my experience from a project where we automatically generated fast running characterization tests based on existing slow running integration tests. The characterization tests helped us do a major redesign of a core calculation module in an insurance system without breaking existing functionality.
Most Coding Dojos follow 2 main formats: Kata and Randori. Both formats try to give as much information as possible to the audience by evolving solutions from scratch. This is great when dealing from Novice to Competent level but tends to get slightly less interesting to people at a higher level. The Kake format goes beyond competent by adding an extra challenge. It increases dynamics by putting people into a more “real” world exercise. Participants deal with unknown code bases and have to evolve from them. This clinic will present the format and initiate a real session with the attendees.
The art of Test Driven Development (TDD) is a skill that needs to be learnt, and takes practice to master. In this workshop, a select number of conference participants, with considerable skill and experience, will perform code katas. The aim is for them to demonstrate excellence. The code Kata problems are not supposed to be hard in themselves, the challenge is to solve them in a pair using TDD, and end up with great code. This session is for the benefit of agile developers, who can come along and witness TDD and pairing, get a chance to ask questions, and provide feedback.
This session introduces “Feature Injection”, a toolkit to help Business Analysts become effective on an Agile Project.
Feature Injection structures the process of “Example” discovery for business analysts so that they can feed directly into a BDD/TDD development process.
Feature Injection consists of…
- Find the Business Value.
- Inject the Features.
- Break the Model to find the Examples.
This is a toolkit based on actual experience of business analysts on Agile projects. Feature Injection is a variant in the TDD / BDD family of tools.
TDD is promoted as a powerful technique for combining software design, testing, and coding to increase reliability and productivity. However the transition to TDD is not always easy. Is it worth the effort and what can really be gained from it? This report describes a useful transition strategy based on different TDD styles and identifies key elements required for each style. It identifies differences found on code that developed using these TDD styles. The differences are striking in their consistency and give a strong indication that TDD is well worth the effort.