How to build an efficient software development team during a crisis?
As the pandemic crisis continues, the only certainty is … the lack of certainty. Businesses seem to be adopting one of three basic strategies. First, do nothing, wait and hope (risky!). Second, cut everything you can and aim to rebuild later (more likely to survive but at what cost?) And third, actively plan for the new world as it emerges (the most likely to see you thrive but let’s not underestimate the difficulty). It’s with this last strategy in mind that Boldare put together our three-part Crash Course webinar series, “How to manage risks, web products & software teams in a recession” to help businesses get inspired and get the tools they need to shape their future.
In the previous article in the series – Risk management for software development – we focused on the six specific risks to your digital product development projects, especially those risks associated with remote working and dispersed teams.
This third and final article looks at distributed teams, an increasingly common way of developing software, especially in the current global business environment. Here, we draw on solutions and strategies around team building and performance based on Boldare’s 16 years of expertise in creating award-winning digital products remotely.
The importance of people and the need for agile teams
If there’s one universal effect of COVID-19, it’s that it made the world spin faster. The business environment changed, almost overnight, and that rate of change will continue as long as we’re in this crisis… and who knows for how long past it. Initiatives and strategies that we used to spend years on must now literally be done in weeks, or risk being obsolete.
Any company that fails to adapt to this “new normal” is facing an existential threat. What does this mean?
It means learning and operating on the fly – we simply have insufficient data and time for formulating and rolling out detailed plans. Welcome to the ‘new normal’.
Right now, we’re operating on the border between complexity and chaos. It’s difficult to predict and plan, everything seems to be dependent on everything else and looking ahead, the future parameters of business are uncertain. What’s the key to success in such an environment?
Put simply, it’s the same as it ever was: people. BUT… you need to equip your people (employees, external partners, stakeholders, customers…) with flexible frameworks and processes; give them broader accountability and freedom to act; distribute your decision-making; all so they can navigate a project through the complexity and chaos that surrounds us.
In software development, the proven methodologies in such circumstances (also in “normal” circumstances and Boldare is a vivid example of this statement) are agile. At Boldare, we use scrum in our digital product development. What does it mean for us, practically speaking?
Short sprints mean delivery of a new, testable product iteration every one or two-weeks. A team that plans, designs, develops and tests in rapid, focused bursts is capable of quickly responding to fresh information and the latest changes, pivoting its efforts to maintain a constant focus on the goal: a high-quality, relevant digital product that meets both your business and user needs.
This means that we plan together, deliver regular working product iterations and we are always ready to change the plan when necessary. And this kind of approach is an important ingredient of thriving, especially during such hard times.
What is an agile team?
Agile approaches and methodologies are usually talked about in relation to companies or projects, but on a day-to-day basis, it’s the team that is the foundation of any agile organization.
So-called ‘traditional’ teams are structured, hierarchical, role-driven (and restricted) with a clear leader or manager responsible for decision-making and direction. Let’s be clear, that doesn’t work in a complex bordering on chaotic environment.
So, if you’re putting together an agile team, what should it look like?
- Small – Ideally no more than nine people. You want to maximize the different points of view but minimize the time for synchronization. Simply speaking, more team members mean longer meetings.
- Cross-functional – The concept of a different person for each role is in the past. Ensuring multiple areas of expertise means the team has everything, and everyone, necessary to achieve the goal. At Boldare, we always aim to include a product designer on each software development team, so we are sure that we have various points of view during the meetings.
- Self-organizing – A truly agile team is internally managed, not solely responsible to (and therefore controlled by) a team leader or project manager; the team’s structure is as flat as possible rather than hierarchical. It doesn’t mean that there’s no responsibility - quite the opposite, every team member is responsible.
- Goal-focused – The unifying factor is the focus on one specific thing to achieve, keeping the team organized and focused on goal-relevant work.
Now, let’s look at the three key techniques we use to build our agile development teams at Boldare.
Creating agile teams - Day Zero technique
Classic team building theory tends to quote Bruce Tuckman’s famous forming-storming-norming-performing model. In the past, getting a group of people to the performing stage and delivering value could take weeks. However, in a changing world, the team may need to change direction several times in that same time period. The Tuckman model still applies to agile team development, it just needs to happen faster.
At Boldare, before we start working with any client on their product, we spend one or two highly intensive days to mold the team into shape. We call this exercise, Day Zero.
The main goal of Day Zero is to rapidly equip the development team and scrum master (who facilitates the scrum process) with everything they need to deliver value from the first project sprints onwards. The whole event is focused on using interactive exercises to create a common understanding of the most important project issues. The key areas are:
- Getting to know each other – Not only what each team member is bringing to the table, but also sharing what they need to learn and connecting them to someone who can support that learning.
- Investigating the business problem – Understanding the client, their business and their goals; not just the ‘what’ of the product that will be developed but also the ‘why’.
- Agreeing roles and processes – Both within the team and also in terms of how the team will interact and fit with the bigger picture (e.g. within a range of digital products or a series of connected projects).
The constant theme throughout is creating a team with a tight focus on a specific product. As a summary of Day Zero, we create a ‘team canvas’, a visual representation and constant reminder of the team, its purpose, roles, values, rules, strengths and weaknesses. This is how the “team canvas” might look:
Creating agile teams - the product discovery workshop technique
The next key stage is to bring the client into the team and the ideal point is when we are exploring in detail the product to be developed. We do that by getting the team and the client representative (the product owner) together for a product discovery workshop: a two-day event with the goal of developing a shared understanding of the digital product that will address the original business problem. The outcomes are:
- The team takes its first shared steps towards creating something great.
- The client gets to know the team and sees first-hand that they have the necessary skills and knowledge and can ask difficult questions and challenge the status quo.
- The project is now working to a detailed and agreed plan how to achieve its goal.
For more details and pro tips, read our article about what happens in a Boldare product discovery workshop.
Creating agile teams – The sprint retrospective meeting technique
Having laid such strong foundations, it’s important to continue to develop the team while you develop the product, honing performance throughout the project. Our use of the scrum methodology gives us an ideal tool to do just that.
In scrum, at the end of every sprint, the team (including the scrum master and the product owner) take part in a sprint retrospective; a meeting with the goal of reviewing how the team is working together. To be clear, the retrospective meeting does not review the product increment that was produced during the sprint, it focuses on how that increment was produced. The sprint retrospective meeting looks at productivity, processes, tools used, people and relationships – all through a positive lens of three, crucial questions:
- How did we do?
- What did we do?
- How can we do it better?
Answers can be later transformed into actionable tasks that can help to improve the work of the team during the next sprint. It’s important to try to change declarations and ideas into such tasks - this way it’s possible to improve performance in real terms and not just talk, without commitment.
For more details and pro tips, read our guide, What is a sprint retrospective.
Scrum helps a lot to organize communication… the meetings keep things on the go.
Issam Al Najm, CTO, Ionoview, MATIC
Agile teams – the cultural context
Strategies and techniques are great (essential, in fact) but as Peter Drucker famously said, “Culture eats strategy for breakfast,” and it’s equally essential to build the kind of culture that keeps your team - and project – agile.
Google’s Project Aristotle research found that the most important factor influencing how a team works together is psychological safety; i.e. that it’s safe to take risks, ask questions, suggest new ideas, admit mistakes, etc.
- A team that feels psychologically safe will learn from mistakes more quickly, make bolder, more confident decisions, and perform at a higher level. At Boldare, we find people feel psychologically safe when:
- They have a sense of meaning.
- Their talents are fully utilized.
- Share a sense of belonging.
- They trust their teammates.
There are many ways to create psychological safety – here are four we’ve found to be highly effective at Boldare.
Effective facilitation – With a flatter, self-organizing team structure, direction and guidance (and a sense of meaning!) comes via facilitation rather than a traditional ‘boss’ figure; especially during team meetings and events. This facilitator is often the scrum master, helping to build, reinforce and encourage the team’s collaboration.
The team makes its own decisions, agreeing the priorities that will achieve the project goals, and how those priorities can best be delivered. The facilitator helps keep that decision-making process on track, assisting the team in ‘joining the dots’; guiding the team to avoid unproductive or off-topic discussion, for example.
During the project, this role is influential in building the team’s ways of working, avoiding unnecessary complexity. To refer back to the classic Tuckman team development process, the facilitator helps the team agree and stick to their norms simultaneously with delivering product increments.
The key is mutual accountability – team members are all accountable to each other; not just a manager.
Issam Al Najm, CTO Ionoview, MATIC
Making room for everyone to contribute – In an agile team, it’s not enough just to know your colleagues, the agility comes from understanding and respecting each other’s different points of view. One very effective meeting technique we use to encourage this is called Rounds. In a round, you simply go round the team, allowing each individual person to express their perspective on an issue. (Yes, this can be daunting or even stressful for some people but that’s where good facilitation comes in!)
For example, you can do a check-in round at the start of a meeting to establish the differing moods of the group. A reaction round allows you to gather the full range of thoughts on a specific issue or question. A check-out round summarizes what people are taking away from the meeting. It can be as simple as asking a question and then ensuring everyone has a chance to answer. But don’t be fooled by its simplicity, this technique can be invaluable for building mutual understanding and appreciation within an agile team.
Providing space for learning – The learning process is fundamental to building and utilizing everybody’s talents in a team. The abovementioned retrospective meetings are an important method of a team learning after every sprint. In addition, as part of our approach to encouraging rapid learning during a project, we use half-day team feedback workshops, structured according to the team’s needs and the requirements of the project. The benefits include greater clarity of communication and enhanced appreciation of each other’s talents. The learning process helps build the necessary psychological safety within the team and also builds personal and social bonds.
Interestingly, when we started using this technique, we naturally conducted the workshops face to face, with the whole team physically together. In the current circumstances, that’s no longer an option but we are finding these events are just as powerful when done at a distance, using videoconferencing!
You have to have this culture where you are safe to learn in the team… you can ask whatever you want.
Issam Al Najm, CTO, Ionoview, MATIC
Establishing rituals – Every team has its rituals. That shared coffee break or watercooler chat can often be one of the strongest unconscious connections between team members. What can be even more powerful is to establish such rituals consciously, deliberately creating casual activities that bring teammates together. And the great thing about rituals is, you can be creative.
For example, at Boldare, we set aside a little time at the end of the week to complain. Just some space to let off steam (with respect, of course) about the things that have bugged you that week. No need to be constructive, just get it off your chest – you’ll feel better. Another fun one is the weekly ‘magic question’: choose a question from the list – What superpower would you like to have? What is the bravest thing you’ve ever done? etc. – and everyone answers it; a great way to connect and have fun with colleagues. Connection and fun that then acts as a turbocharge for the team’s performance.
See other articles from the “Risk management“ series:
- Risk management strategies for building software in a complex and chaotic environment
- 6 risk management strategies for software development
- You need a Next-Gen company in your risk management strategy
Agile is the solution
For software and digital product development, distributed teams are becoming the norm. It’s a norm that is unlikely to change when the crisis abates, so supporting teams from a distance is now a key business competence – a survival trait, in fact. While the project’s focus is always on the product – the end goal – that product is delivered by the team. And that team needs to be agile.
Team agility is no accident. It’s a quality and culture that can be deliberately created and carefully nurtured using specific techniques and tools, such as the ones highlighted above that we use at Boldare with all our clients’ projects. Your success in developing agile teams will be a determining factor in how your business emerges from the current crisis, the focus of our Crash Course series.
The Crash Course webinars, articles and other materials reflect our firm belief that a digital transformation strategy is the best way to come out of this crisis thriving, and not just surviving.