Posts in category agile

Agile By Example Conference

source:/BRANCH/TRUNK/artifacts/presentations/agile_by_example_button_2.png I was honoured to be invited to speak at the second  Agile By Example conference in 2012 in Warsaw Poland. Here I gave an updated version of my Thinking Distributed to Improve Agility talk that I first gave at JAX the previous year. The slides for the talk are here:

This was a fantastic, well organised conference, with a fairly unique structure. Well worth attending for those who can make the trip.

Thinking Distributed to Improve Agility

source:/BRANCH/TRUNK/artifacts/presentations/jax_2011_autumn_edition.png Today (2nd Nov 2011) I gave a talk titled "Thinking Distributed to Improve Agility" at  JAX 2011 in London. This was the first talk in the Architecture track on the second day of the conference. This is bleed over from Agile Day yesterday, but also talked to the architecture of teams within an organisation.

The premise of the talk was that, contrary to poplar belief, distributed teams exhibit characteristics that can make it easier for them to transition to agile and improve their agility. In contrast co-located teams can somehow struggle to transition and be agile. I take a look at organisational patterns and crowd communication in an attempt to explain why this might be the case.

I've uploaded the  slides from the presentation as a PDF. Hopefully it will be a good read.

There was some good feedback from the talk, with one person observing that one aspect of the distributed teams is that you are forced to do things well, otherwise you simply cannot survive. Very true in many ways but certainly only one aspect of the overall problem.

The conference has been very good with a high standard of talks over all, highly recommended to anyone who hasn't been to JAX before.

Feedback Loops in Agile Development

source:/BRANCH/TRUNK/artifacts/presentations/agile_on_the_beach.png Yesterday I gave a talk at the inaugural  Agile on the Beach conference down in Cornwall on the  Tremough Campus near at  Falmouth.

It's been a very good conference so far with a great turnout. The slides  Feedback Loops in Agile Development are available for download.

The essence of the talk was to emphasise the importance of observing and learning from feedback loops that appear in an agile methodology. It starts by examining briefly the nature and problems of typical development, then explores the key elements of an agile methodology. From here I illustrate how we can use these elements to amplify the feedback loops present to facilitate a better understanding of how to leverage agile development. Finally it takes a look at some of the practical things you should pay attention to when going agile along with a short prescription of where you can start.

The official synopsis for the talk was:

So everyone knows what being agile is all about? It's an old buzzword now, stamped on everything that moves in a development methodology, or everything in an organisation for that matter. The problem of course is that it's hard to to really distil what makes you agile and what doesn't. If you cobble together enough process, and throw in a couple of practices, you have all you need to innovate yourself to a successful, or failing, project. That's the trouble, without real agility it is often hard to know how successful you are being in a project, and often it is hard to know how agile you are. You might think you are agile and that your project is being successfully delivered when in fact neither is true.

This talk goes back to basics and re-emphasises the concepts behind agility: showing that agility is achieved through understanding, observing and amplifying the feedback loops present in a truly agile approach to development. By understanding how you setup and magnify feedback loops in your methodology, using loose processes and practices, you have a chance at agility. I'll present reliable techniques and show how they relate to agility within the feedback context. You should come away from the talk with a refreshed view of agility, some practical tips, and be able to look more critically at how you try to be agile in your organisation.

Paying Lip-Service to Agile

source:/BRANCH/TRUNK/artifacts/presentations/jaxlondon_autumn.png Today I gave a talk about "Paying Lip_service to Agile" at  JAX 2010 in London. This is the first day and so far it has been a great conference. There was a very strong turn-out for the Agile Day and it was encouraging to see so many wanting to learn more about agile development.

I've uploaded the slides Download from the presentation as a PDF. I hope it makes for an enjoyable read!

Effective Use of agile-trac for (Distributed) Agile Development

source:/BRANCH/TRUNK/artifacts/presentations/jaxlondon2010.jpg Today I gave a talk about using agile-trac at  JAX 2010 in London. This quote, from the JAX London site, sums the JAX conference up quite well, "JAX - it's all about Technology, Architecture, Agility". I've uploaded the  slides from the presentation as a PDF. There is an 'agile-trac In a Nutshell' section which actually provides quite comprehensive documentation.

User Stories and Use Cases? Sure, it even makes sense.

source:/BRANCH/TRUNK/artifacts/presentations/agile_2008_logo.png I'm not sure why but somewhere along the way User Stories were branded 'agile' and Use Cases largely relegated to a high ceremony tool for non-agile methodologies. I gave a talk about this at Agile 2008 that set out to challenge that view by suggesting that both User Stories and Use Cases could, and should, co-exist as complimentary techniques in effective agile methodologies.

The terms User Story and Use Case are two pretty broad terms, so the first thing the talk does is to clarify just what I mean by each. It would of course be possible to adopt one term over the other. For example, we could call a User Story a Use Case Brief (a la Cockburn), but I believe it is helpful to keep a separation between the two terms. Another aspect of the talk was the idea that User Stories can be used to provide a uniform method of capturing functional requirements, as well as system constraints.

Having introduced the terms, I outline how, and when, User Stories and Use Cases can be used in a typical agile methodology, and importantly how one relates to (and compliments) the other. For example, typically User Stories are the technique of choice when Release Planning and Use Cases help a lot with Iteration Planning.

As User Stories and Use Cases can exist at different levels, from business use down to component interaction, I show how a User Story can relate to more than one Use Case, and how a Use Case can be related to more than one User Story. Similarly I also look at how Use Cases can sometimes provide a 'glue' between User Stories.

If you are an experienced agile developer you may not get a lot from this presentation, but I would hope it does get you thinking.

Agile Development in Globally Distributed Team

source:/BRANCH/TRUNK/artifacts/presentations/agile_2008_logo.png One of the great uses for tools like trac, and obviously agile-trac, is development in a distributed environment. Much of the initial design of agile-trac grew from an agile project where the whole team was distributed with team members on different continents and hence also in different time-zones. During that project a lot was learned about how to work effectively in a distributed setting.

A key observation is that the solution to distributed development is not co-location. You can effectively develop within a distributed team, and with reasonable tool support this can be quite pain free. I link to a  presentation here that was first given at Agile 2008 in Toronto last year. It captures many of the lessons learned from several years of working in agile distributed teams. It turns out that going agile can really bring benefits in a distributed setting as it helps focus both the nature and the quality of communication.

Foundations of Agile Development

When I am introducing agile development within a company, or within a team, I find it useful to give a brief overview of what I actually mean by agile development.

The reasons for this are simple. Most people have heard of the term agile development but yet there appear to be many different perspectives on what is meant by that.

For example, many people are of the opinion that to be agile means practicing one of the many canned agile methodologies, like XP, FDD or Scrum. Others have a very practice oriented view of agile development. That is, they see agile development as nothing more than a collection of practices, like TDD, pair programming and so on.

As a result of that I typically introduce the idea of agile development with a quick presentation of what I feel are the  foundations of agile development. I also try to tie into that discussion some of the terms with which most developers are already familiar with, such as use cases.

Of course agile-trac has been designed to support the foundations of agile development outlined in this presentation. Some of the screenshots in the presentation are from a heavily hacked wiki site which used perl scripts to try to simulate some of the functionality that is supported first class in agile-trac.

This presentation is a good starting point for understanding agile-trac and how it should be used. It is not intended as a replacement for documentation, but should nevertheless provide some useful insights.