We've seen how Agile Development affects each developer individually, so now we'll look at how the whole development team adopts Agile practises.

In part one of this three-part series on Agile Software Development, we looked at developer practices and how technical excellence can lead to marked improvements in quality. Part one focused largely on the test-code-refactor cycle. Now we'll move on to the next circle out and look at how Agile practices affect things at a team level.

Getting the team working effectively - team practices
Once each developer is working in the tight feedback loop of the central circle, we can examine how the entire development team can work together in a more Agile way. Team level practices are central to Agile, as they show us how the team can work together more effectively and drive technical decisions together. We'll look at this evolution of the team in four increments -- setting the tone, team based code, increasing and maintaining effectiveness and the first moves into a "one team" approach, which includes those outside the immediate development team. We'll present you with examples from 3Q Solutions, a software company that creates wealth management systems and uses Agile methods exclusively.

Setting the Tone - step one
One of the central ideas of Agile software development is that of a team working towards a common goal. While many processes advocate teamwork, Agile incorporates practices that support teamwork and puts teamwork in daily practice. Before moving into the team practices we need to set the tone for the team so they begin to feel more like a true team.

Open workspace
One of the best ways to set the tone for more open, team based Agile approaches is creating open workspaces for the team. This means setting up an area or areas that are open and allow for the maximum amount of communication and collaboration. You want to look especially at configurations that make pairing easier. Cubicles and offices are the antithesis of Agile open workspaces and should be avoided. The open space should also ideally have whiteboards and other design and development materials. In one company Exoftware worked with, the open space area was for work only and had only pairing, integration and build machines. A whole other area was set aside for personal machines with Internet access and phones. If you have the space, this is something to consider, as it helps to say clearly "when we are in the work area, we are working".

Don't underestimate how important an open workspace is for the team -- that is why we have it as a first step. Below is a picture of part of the 3Q Solutions development team workspace.

Note that two large desks (with no under filing cabinets) are pushed together to make the optimum pairing desk.

Collective ownership
Next we want to introduce ideas such as Collective Ownership. This central concept to Agile states that everyone is responsible for the entire system, and that anyone has the freedom to change code. This is an important way of thinking as it focuses the team on the project and ensures a common goal. The other steps presented here along with Pair Programming will emphasise this idea, but it's a good idea to introduce this idea early on.

Simple design
Agile advocates simple evolutionary design, rather than big up-front design. The objective is to design only the parts of the project we know about and no more, then allow that design to evolve over time, which helps increase flexibility and minimise the cost of change.

Taking an example from 3Q Solutions, the customer required a rules engine. Traditionally the team would have begun work on the rules engine that would have taken months to produce and still potentially not get sold. Working with the customer, the team decided to design the simplest system that could possibly work for the rules engine and build a thin vertical slice of it with one rule. This gave the customer what he really needed -- a demonstrable rule -- and ensured that the investment was offset against the time committed. The team was then able to evolve the design from the initial build while maintaining flexibility. Simple Design is a complex area, and the best way to begin to look at this is to get external help.

Critical success factors

  • Buy-in -- it is important that the whole development team is committed to trying Agile and the practices within the development team circle. Without this level of commitment it will be very difficult to start and even maintain these practices.
  • Communication -- this point cannot be emphasised enough. Ensuring a high level of communication within the team and an understanding of concepts such as collective ownership is critical.
  • Pairing -- pairing supports many of the team practices and will strengthen team communication and cohesiveness.
  • Facilities -- open workspaces can be difficult without some help from facilities. In certain cases, we have simply made changes when the bureaucracy of facilities has become too much.
  • Daily Stand-ups -- This is a brief meeting every morning where developers discuss their work for the day and issues they are facing. They are stand-ups because they shouldn't take any longer than a few minutes.

Related links

Leave a comment

You must read and type the 6 chars within 0..9 and A..F

* indicates mandatory fields.

Log in


Sign up | Forgot your password?

  • Chris Duckett IE9's H.264 vote killed Ogg

    In a split decision by the judges, the winner of the W3C/WHATWG video codec consensus is H.264, taking home the future of video playback on the internet while loser Ogg goes home with nothing but thoughts of what might have been. Read more »

    -- posted by Chris Duckett

  • Staff Google launches Apps Marketplace

    Google launches and app store, while Mozilla plans to re-write its open-source license. More of this week's news in the Roundup. Read more »

    -- posted by Staff

  • Staff Microsoft showcases new NUIs

    TechFest, Microsoft's internal even took place this week with researchers showcasing some new interfaces the company is working on. Read more »

    -- posted by Staff

What's on?

  • Optus Deal

    Broadband + home phone + PlayStation®3 in a single package price!