Basically Agile (and Scrum!)

The use of the agile methodology in combination with the scrum framework is a widely accepted industry standard for software development throughout the world. Together the methodologies provide an iterative and collaborative system that has been proven to be adaptable and resilient over a wide range of implementations by teams in the industry.

What makes the combination of these methodologies so attractive and useful in the development of software?

  • An adaptable framework for iterative software development that provides the customer working software for evaluation in regular, short increments.
  • The ability to deal with incomplete or fluctuating product development concepts during the process of development in a way that allows discovery and adjustment as needed.
  • The project team includes formal roles and responsibilities for both the client, development team and each individual in decision making during the development process.
  • Inclusion of systems for communication, trust and collaboration across the entire product development team.
  • Recognition that the availability of team members for consultation during core working hours is critical to the iterative production process to assure alignment and to allow adjustment as needed.
  • The production process includes regular daily meetings, as well as meetings for production assessment and planning that are focused on understanding the status of committed work, clearing production obstacles, and making adjustments where  necessary to achieve goals the team has committed to accomplish.
  • Outcomes that have proven to be beneficial to both the client and the development team in the development of successful software applications.

Scrum_Framework

Of course, if you dig into the implementation details of agile and scrum for software development, you will find a number of additional benefits. Each team and project can and does adapt the processes within the framework to fit the constraints of their situation. But with the focus on real-time collaboration and face-to-face interaction, what happens when circumstances combine to require the use of agile and scrum across a team that is distributed across a geography? Can the agile-scrum framework be adapted to a distributed team? That is the focus of this five part series – Best Practices for Distributed Agile Teams.

Adapting Agile & Scrum to a Distributed Team

With the availability of broadband network access across the Internet, as well as the benefits and pressures provided by a global marketplace and workforce – it is critical that the benefits of the agile – scrum framework can be both adapted and scaled to provide their benefits to distributed teams. For the purposes of this series, we will consider any team that has members who are not physically in the same location during core working hours, they are distributed.  That could mean the team is spread across a metropolitan area where colocation is both time-consuming and expensive or the team is spread across a wider area – across states or national borders.

The business advantages of opening horizons for software development by distributed teams are relatively obvious:

  • A distributed model brings a wider field of skills and expertise into play, often with lower costs.
  • Varied experience in both technology and problem-solving can bring more answers to the table with a lower cost of recruitment and faster fulfilment of specialized requirements
  • Entire teams can be sourced with less time, training and deeper experience in leveraging agile-scrum for software and product development.

The scenarios for distributed development can include:

  • Development team together in a development center with
    • Client in different location, same time zone
    • Client in different location and time zone
  • Split development team
    • Development team is split between locations or combined with a client team in another location or both
      • Same time zones or different time zones
  • Various combinations – split client team, outside consultants, single team members remotely located

Continuity is Key

Regardless of where the client is, adaption to a distributed agile – scrum model is critical to insure the involvement of key stakeholders, development and product teams and to achieve the benefits of the framework in projects. In fact, at Scio, we have found that consideration and inclusion of the practices required for distributed teams is critical to all our software development projects – whether they are considered to be “distributed” or not.  We have found:

  • Using the practices required for distributed teams provides a more scalable base for all software development teams.
  • If distributed team practices are not in the standard agile repertoire:
    • New projects that require a distributed team have a longer ramp to productivity because team members have to adapt to new tools and practices.
    • Projects face higher risk because situational adaptions selected by teams may not be proven and optimal.
    • Teams may have to spend many cycles dealing with organizational issues to reach full productivity.

So, from our experience – adaptations of the agile-scrum methodology and framework to allow a distributed team environment are just good practice. They bring many benefits, including better communication, formalized technical environments, and organizational adaptions.  They are a critical part of our work environment and our commitment to our clients.

During the following four parts of this series, we will explore some of the best practices Scio has found to be beneficial for distributed teams and some of the myths that we find are common when the idea is considered by organizations. We hope you will stay with us because there is a lot to know about leveraging a distributed team environment successfully for software development.