Agile Walk Through - Free Beta

Be distributed or offshore

 

Collaboration is the core of Agile approach and canonical Agile requires having whole team including customer in one location. Customer's role is to answer domain-related questions of the development team which arise, review progress and re-evaluate priorities.

The case when you don't have a luxury of having an onsite customer's representative is quite common, and it means that your team is in fact distributed. You can't just be agile on your own without a customer, because you'll be effectively doing things for yourself not for him. The reason why you can't have a customer as an onsite member of your team can be that the project is small and dedicating a person is just too much of an overhead. Another case is having a customer from another city, country or overseas.

Our approach to be Agile in distributed environment is:

  • constant communication in structured and written form, sharing project knowledge within all team in form of AWT project artifacts,
  • making and sharing necessary upfront design,
  • constant work on design: clarification, evolvement and refactoring - throughout whole project according to changes of experience resulting in ideas, understanding of the possibilities and changes in environment,
  • traditional Agile practices: iterations and planning game, bug tracking etc.

Reasons for being distributed

Very often it's quite difficult and expensive to get the team (including customer) in a single place for a period necessary to work on the project. Usually it means a big city and office in a good location which, rent aside, also imposes higher costs of employment. If you share the opinion that interruptions are productivity killers you'll need to give your engineers space where they can be saved from interruptions, like personal offices, which brings costs to the next level.

AWT aims to address the problem of effective communication and project organization whilst allowing project members to stay at places where they feel comfortable and can work effectively.

From our experience the best is if you do your day-to-day work activities and communication through unified system which facilitates communication and project management, and meet up in person periodically. Regular meet ups are important to get to know people, to better understand them in written communication later, share the enthusiasm and get other positive energy from meeting good people. It also very helpful for the purpose of quick exchange of opinions and brainstorming. Finally, it's just enjoyable because we don't really work with people we don't like, do we? :)

Copyright 2007-2010 Agile Walkthrough