By Johan Mostert, BBD executive
Covid-19 may have forever changed the way businesses do business. In what feels like an instant, remote work was the norm, distributed development was commonplace and many companies were adjusting their timelines for their digital transformation programmes. Organisations and their staff were thrust into this new way of working, and their team dynamics took a couple hits.
As a software development company who has been utilising a distributed development model across five countries for over 15 years, BBD was able to seamlessly transition into this “new” way of working. Here’s a look at the top team traits that have stood out for BBD’s successfully distributed teams over time.
- Diverse, distributed teams
Successful development teams consist of diverse and often distributed individuals from various walks of life with differing levels of technical knowledge, skillsets and work experiences. The sheer nature of having a diverse team cultivates creativity, constructing an expansive view of a problem and its potential solutions.
Teams with diverse cultural backgrounds also bring unique perspectives to the table. This allows for better / broader understanding of problem statements, requirement analysis and a more comprehensive understanding of solutions. Geographically distributed teams have a competitive advantage to non-distributed teams as they have already mastered effective remote collaboration including working with different time-zones. Geographically split teams did not have to learn how to collaborate during an already challenging time (in recent history) instead they were able to immediately deal with the complexities of working from home. At BBD, last year highlighted how effective our distributed development model is as teams were able to continue driving delivery, from a few more remote locations than before.
Moreover, team dynamics continuously mature and are influenced by many factors including the normal flow of new joiners and individuals leaving the team. When these new joiners include graduates, their fresh perspective and hunger for learning bring a positive energy and allow other team members the opportunity to play a technical leadership role. This all helps shape a successful development team.
2. Learning from mistakes
In the world of tech, technologies constantly evolve and must be vigorously tried and tested. In this process, any mistakes made form a critical part of the whole learning process. What separates a successful development team from an average one is not that they are immune to making mistakes or the process as a whole, it is that they fail fast and bounce back quickly, efficiently and take the learnings from these failures – approaching the next deliverable with this experience top of mind.
The best performers don’t spend or waste time hiding their mistakes due to perceived repercussions, they deal with it head-on and identify the reasons or root causes, learn from it, share their learnings and move on. This is how you accelerate growth and learn through innovation.
3. Tailored delivery approach
Over the years at BBD we have seen many approaches to software development in the form of bodies of knowledge, guidelines, manifestos and methodologies. We have always found some aspects of these approaches extremely useful in delivering quality software solutions. I remember seeing successful delivery teams take whatever software development methodology they are required to follow and mould it in such a way as to fit the team dynamics; taking the best aspects of all the flavours and making it their own. This could involve chasing a delivery-date, using daily stand-ups and two-week cycles to manage and monitor progress, or using story points as opposed to man-days to estimate work – to name a few. The list is vast but they make it work.
A point worth noting is that there is no one-size-fits-all approach. There are simply too many variables and success stories, or requirements are rarely the same. Looking at the endless flavours of software development languages, supporting technology stacks and software solutions out there, why would the approach to software development be any different? There are many similarities in as far as what software solutions are meant to accomplish such as increasing productivity, reducing waste, increasing ROI, improved collaboration, etc. But the fact remains they are developed by different teams based on requirements defined by and for different organisations in a different environment at a different point in time. Considering all these dynamic or variable aspects, tailoring the delivery approach must be a given to make a success of it!
With that in mind, a successful development team is committed to their delivery and understands that owning each aspect of their delivery approach will create the foundation for measuring and managing their software delivery lifecycle. This in turn benefits the client not just at the end of the delivery but every step of the way.
4. Hands-on leadership
I believe that successful development teams have strong leadership who create a space within any environment that enables individuals to not only grow their technical and soft skills but also nurture their creative problem-solving skills throughout the software delivery lifecycle. A strong leader can articulate the purpose and be trusted in delivering results. They motivate team members to perform at their best, are empathetic, stimulate growth by creating a safe space for people to thrive, deliver clear communication and are consistent in their approach. BBD cultivates a culture of mentorship alongside delivery because we understand how solid team dynamics and a clear vision of what needs to happen and when allows teams to perform optimally. This is a big part of the reason why our teams have been successfully delivering digital solutions for over 36 years.
These traits are by no means exhaustive, but they are the ones that stand out as critical to the successful delivery of any complex software development initiative, no matter where your teams sit, or the tech, business domain or platform.