Ingredients for Cultivating Resilient Software Development Teams

Alfie Tham
TribalScale
Published in
6 min readMay 19, 2020
Photo by Caspar Camille Rubin on Unsplash

We have been able to transition into working completely remotely at TribalScale, while continuing to maintain a high standard of quality and team performance that we can be proud of.

It felt surprising at first, how we were able to transition this successfully? After considering the extensive amount of remote pair programming we had done in the past — the dots quickly connected. But even more importantly, our teams have been very comfortable with a number of our culture values and software development practices, which blend nicely into working remotely.

In part 1 of this Remote Software Development blog series, I’m going to analyze some of the secrets of the philosophies behind these practices, and explore thoughts on maintaining a highly effective software development team that is fully remote. I see collaboration technology and tools as simply a means to help getting remote work done better. However, I believe it is organizational practices, culture, and mindsets that, more crucially, underpins an organization’s success.

Culture and mentality

Having the right company culture and mindset may not seem obvious, but they are essential to an organization’s success. It influences behaviour and sets a base-level tone on how an organization tackles problems. Not only does it make work more rewarding and fun, it is also good for business.

Photo by Aditya Wardhana on Unsplash

This forms a foundational layer that binds teams and their work effectively. This becomes increasingly important and gets tested when organizations and teams are challenged with changing circumstances. Such is the case when the world goes remote, and business landscapes shift amidst a pandemic. Let’s dive in and explore environments that are: collaborative, supportive, and respectfully candid and open.

Collaborative

The business argument for a collaborative culture, in brief, is that it is simply more effective for innovation and solving challenging problems. Within organizations and teams, it is groups who excel at working together who tends to be more innovative.

Diverse perspectives collide through healthy debates. Various specialized information shared openly across disciplines. Such teams are much more effective in forging innovative solutions to challenges. The kind of innovation and problems that we face in technology everyday. The tasks and goals that, together, add up to make a huge impact. The kind of work that, when done well across the board, will set you apart from the rest of the competition.

Quote by Ronald Reagan: “We can’t help everyone, but everyone can help someone.”

Supportive

Now, compound that with a supportive culture and it will help towards building a resilient team. To argue one case for supportiveness within every individual in an organization — it stems from recognizing that human beings innately experience ebbs and flows in their wellbeing. These fluctuations are tied to a range of complex variables, and tend to be even more volatile at times of crises. Imagine a group of people who have got each other’s back and trust that others have got theirs when they need it. As a team, this group can consistently march forward. This is why we want to support and nurture this type of attitude.

Respectfully candid and open

I also trust in a culture of being respectfully candid and open. The goal being to fully harness the power of diversity by allowing different perspectives, ideas, and information from all levels to easily get to wherever it needs to effectively.

At TribalScale, we have a culture we call Fail Fast, where we regularly and openly share our failures with the rest of the company and what we learned from them. The goal is to encourage learning and help others avoid making similar mistakes. Often, others would chip in with a similar experience and share other ways of solving the problem. Sometimes, more opportunities to improve on a situation can be uncovered. This candid sharing of failures helps us to solve problems better and in turn, innovate.

Cultivating candor and openness can get tricky and is a point that I have found to be a little controversial, and easily misunderstood. The key is to set the correct motivations for why we are doing this, establish respect for each other, and refine the techniques for doing this well. To list some good mantras that I like to echo: “have strong opinions, but loosely held”, “embrace healthy tension”, and “criticise the work, not the person”.

Corollary: Take criticisms as being directed towards your work and not your person.

We are merely skimming the surface on these three points. Not to mention the many other values that are important in building a strong foundation. Aside from that, a number of common, yet valid, concerns were often raised when thinking about implementing these ideas above. Developing trust, as well as setting up proper governance, responsibility and accountability structures are a few of the important considerations that I’m leaving out of this brief.

Agile / Extreme programming practices

Let’s get more tactical and explore why these practices help make working remotely more effective. There are good articles out there that go more in-depth into what pair programming is.

Daily standups have proven extremely valuable. We have company-wide standups as well as project team standups; both help everyone coordinate better with a focus on how we can be more effective as a team. It is important to be candid and over-communicate in a fully-remote team and this is a great forum for that. The goal is to reduce scattered meetings and allow focused chunks of time.

A cityscape covered by thick fog
A better way to navigate a thick fog is to find other ways to help you percieve better (Photo by Alfie Tham)

If solo programming runs the risk of tunnel vision and wasted work, doing so alone at home may well increase that risk. Pair programming helps inject perspective and accelerate the feedback cycle, therefore boosting effectiveness. As a bonus, it brings in the social aspect to remote work.

Be warned though, pair programming, and especially remote pair programming, is not easy without being able to read non-verbal cues, such as nervous hand-wringing, or an intrigued forward lean, just as well amongst other things. However, do pair programming well and it will be very satisfying and rewarding.

Boosting your software development teams

A rapid transition of a remote software development team into being fully remote can come with challenges. The good news is the nature of work in the technology industry tends to allow for more flexibility when it comes to shifting to a remote workplace. There will be roadblocks, but they can be overcome with the right strategies and execution.

Hopefully this tip-of-the-iceberg brief can spark some ideas and good conversations around boosting the effectiveness and morale of software development teams that are working remotely.

This is part one of a two part series on running high-performing remote software development teams. In Part Two, we’ll look at some of the surprisingly effective remote collaboration tools that we’ve found useful for remote software development teams!

Have questions about cultivating resilient software development teams? Click here to speak to one of our experts.

Alfie is excited about the space where technology, business and design intersect, and bringing these elements together to create great products, teams, and businesses. In his day job, he works to build digital products, and grow highly effective teams. His roles in technology and product organizations are typically in the areas of conceptual design, system architecture, and full-stack engineering.

TribalScale is a global innovation firm that helps enterprises adapt and thrive in the digital era. We transform teams and processes, build best-in-class digital products, and create disruptive startups. Learn more about us on our website. Connect with us on Twitter, LinkedIn & Facebook!

--

--

Alfie Tham
TribalScale

Conceptual Designer. Software Engineer. Working to build digital products, grow teams, and right the future.