Distributed development is transforming the way in which software is built and released. There are a wide variety of scenarios in which different teams and even individual members within a team are geographically separated Indeed, open source developers working on upstream RedHat projects may meet only at annual summits, if at all; large companies may run development teams out of different countries; and smaller companies may make use of nearshore teams to reduce costs. This is not without difficulty; however, with effective processes and a belief in communication and quality, we have been able to reduce costs significantly whilst maintaining velocity
We began delivering projects using Scrum about 4 years ago. We liked the fast communication between product owner and development team, finding it an effective way to deliver high quality code which meets changing business need. We worried about the impact of adding nearshore capability to reduce costs: would it lower our quality?; increase need for up-front analysis and design?; or kill our productivity?
Our approach to distributed development relies on a whole-team approach: UK staff work on-site with the customer, whilst their colleagues in Sofia work out of our office. The UK staff may be architects, developers or testers; however, they are key to the success of the project as they are the ones working closely with the customer’s staff including product owner, enterprise architects, test leads and release management. The Sofia team members are usually developers, build engineers and testers, and rely on the good information fed back by the UK staff to solve problems and set priorities. The whole team meets virtually through our collaboration platform (including GoogleDocs for documentation and wikis; Google Hangouts for video conferencing; and Skype for instance messaging) for Spring Planning, Daily Stand-ups, Sprint Reviews and Retrospectives. This is key for us: distributed development only works if everyone is included in the fast (face-to-face) communication, and that means communication has to be easy and regular – instant message windows are always open and Hangouts can be used peer-to-peer or for the entire team as required. An added benefit for us is that all our Sofia staff are co-located, meaning that it is quick to support for best practice and other shared knowledge.
Nearshore in Sofia
We chose Sofia for a number of reasons: we already had industry contacts; the IT market is lively and educated; and the culture is to challenge, rather than simply accept, information they are given. One of the problems we’d found previously when working with our customers’ offshore suppliers what there was frequently a lack of challenge; rather they accepted everything they were given told the customer whatever they wanted to hear. This runs counter to our own culture and the mechanics of a healthy Agile project. Our nearshore colleagues are equal members of the team whose ideas, software and opinions are valued as much as the on-site team.
The lifecycle of a typical Estafet project begins with a smaller and predominantly UK team to conduct solution design work and deliver architecturally significant use-cases. This lets us form a clearer picture of the overall work required; delivers worthwhile artefacts which are used throughout project; and helps the main build to proceed smoothly. An increased team (of around seven) tackles the main build, releasing frequently to higher (and controlled) environments to allow customer integration and testing. The full team is predominantly based in Sofia where we’ve found it much easier to scale resources. If we need to increase the development effort still more, we add a second team, again split between the UK and Sofia and coordinated through a daily scrum of scrums. As we transition to live service, the team ramps down, eventually leaving only those who will cover support and warranty.
Find out more
Our core principles include openness and transparency: we are keen to demonstrate how we work and to ensure it works for you in your own environment. We have been running distributed agile projects for a number of years and our customers have found it extremely cost-effective, providing the processes and culture are geared towards fast and open communications. If you’d like to find out more, please call us on 0208 012 8599 or email firstname.lastname@example.org and we’ll share what we’ve learned along with how we are helping top companies to lower costs whilst maintaining high quality delivery.