Cross sector solutions

BBD’s fundamentals of distributed development

BBD’s fundamentals of distributed development

Part 1 of the distributed development series

Distributed development is not a typical company structure. We have been moving away from traditional work structures over the last 15 years and are now operating a mature and successful distributed development model.

With many companies having to rapidly realign their workforce into a distributed way of working, where work is distributed across a single geographically spread team, understanding the ins and outs of how to continue to effectively perform, deliver and add value is key. This three-part series will delve into BBD’s experience, looking at the best tools and team structures as well as critical methodologies that streamline projects and help balance flexibility with delivery.

With staff in Bulgaria, Cyprus, India, Netherlands, Poland, South Africa and the United Kingdom, we are no stranger to asynchronous time zones, virtual offices spaces and the need for constant communication. Here, we dive into the fundamental pillars necessary for this leap into productive distributed delivery.

It’s all about the teams in play
With any project, having the right people in place makes a massive difference to the outcome. Over their 35 years in the industry, we have learnt that our high recruitment standard paves the way for easier adoption of a distributed development model within project teams. “Having team members who you trust to continuously do their jobs to a high standard is paramount to success” explains David Xavier, a BBD executive and advocate for remote working. He goes on to say that it always starts with coming together as a team in the same location to allow the members to build a rapport, and smooth over any cultural differences. This enables effective communication for the duration of the project. “It also means that the teams build a relationship, collaborate more easily, and trust each other to do what they need to do.”

Xavier asserts that written and verbal communication are essentially the cornerstones of an effective distributed model – feeding the methodology, trust, and flexible nature of the work. But coupled with this is the understanding that each team, for every project is going to have their own ‘best practice’ in this regard.

We’ve seen time and time again that each unique project team dictates the best way to do what they need to do. It’s very important when adopting this model to allow your teams to find a rhythm that works for them.

For some it means a combination of Mono Repo, Slack and Github while for others it means daily standups and a continuous video feed. Creating an environment where the people in your team are comfortable with how the day-to-day project is communicated and shared is crucial to doing this well. Xavier surmises that “People are always looking for a place to belong, now we have to do that virtually across countries, and not just physically.

You’ve got the team, now for the process
Processes provide the structure in a distributed model. They outline the strategy, guide the team and maintain a clear roadmap for the client and stakeholders to track. Xavier states that for many of their successful distributed deliveries, they’ve followed an Agile mindset alongside the required methodology. He says that this allows the teams to adapt, decide and code at speed, while working in a way that suits the client environment. “Scrum, KanBan, SAFe, are all methodologies we frequently use. Although each has their own practices, the overriding Agile mindset ensures that our processes are streamlined, iterative, incremental and pragmatic.”

Now for the tools to bring it all together
Maintaining constant communication is a key premise in making distributed development work. “It’s important to remember that in a distributed model, it’s the people who are distributed, not the work. Teams work together on a single project” explains Russell Davidson, a BBD director. It is this consistent use of communication and workflow tools that enables transparency in what is being delivered – both to the rest of the team, as well as to the client.

Davidson goes on to explain that the tools facilitate the conversations we naturally have in an office and which keep everyone on the same page. This in turn breeds effective collaboration. Xavier agrees, and adds that everything from initial code design to pull requests and production alerts must happen on the tools. “Fostering this culture for accountability, transparency and delivery has increased BBD’s productivity – regardless of where the bums are actually seated” explains Davidson.

Specific project management tools, coupled with the right combination of social and interactive platforms, gives the team the necessary flexibility to meet informal and more formalised communication needs. “The trick is to assemble a great team and then let them figure out which combination is the best fit for them” concludes Xavier.

It all boils down to

  1. Trusting your people
  2. Starting co-located if possible and gradually moving into a distributed model
  3. Allowing your team to smooth any differences and build a good rapport
  4. Using the tools
  5. Ensuring constant communication
  6. Defining a pragmatic process that suits each project

With a strong team to deliver, an Agile mindset as the enabler, coherent project processes, and a clear set of which tools to use when, distributed development is the ace up our sleeve; securing specialist talent from around the globe to join project teams who efficiently and successfully deliver innovation.

The next article in this series will delve into the tech, tools and methods we have found most beneficial throughout our journey to delivering through a distributed model. Using project insights and real-world examples, it’ll outline tips and tricks to ensure success in any project.

What’s next? We’re ready!