When you put a bunch of humans together, there is always a good chance of dysfunction creeping in. If you have worked with (or in) different IT teams over the years, you would have probably experienced ones that worked well and ones that didn’t.
Whether the software development team is coding, creating architectures to scale, or working toward an MVP, there’s always the possibility of it quickly becoming dysfunctional. Once this happens, failure will start to rear its ugly head.
Nobody wants to fail, so you really have to identify the dysfunction quickly and fix it to keep the build on track. So what should you look out for?
Whether it’s gender, ethnicity, age, or a sense of style, diversity is important. If the development team looks homogenous, then you’re probably in serious danger of failure.
While it may sound fun to work with people who look like you and think like you, it can lead to tunnel vision. Furthermore, monocultures tend to do a good job at masking other types of dysfunction within the team.
You can completely avoid creating a monoculture during the hiring process to make sure that the organization is well represented. If it’s a large company, it will be a lot be easier for you to put teams together that are anything but homogenous.
2. Dodging Accountability
If the team members are dodging accountability and excessively deferring to the leader, you have a serious problem. You can easily spot this dysfunction if the group is heavily relying on one person to make all the decisions.
The same is true if the group is too scared to change the code written by the leader or founder.This kind of situation can also lead to a high turnover of engineers, so it has to be addressed and resolved.
The best way to go about changing this is to consistently encourage a culture of change that’s focused on improvement and using continuous integration (CI).
3. Absence of Trust
Team members need to trust each other. They also need to feel like they can communicate with each other openly and honestly.
When the team members believe in each other and support one another, you can bet that they are developing some great software. When there is no trust, conflict will be king and individuals will try to protect themselves by deflecting blame. While a little conflict can be healthy, too much of it will derail the development process.
You can’t make people trust each other once that trust is lost, so there’s no way to fix it. But you can try and avoid this by creating an environment where everyone is respected and encouraged to be honest and open with each other.
Read how an experienced software development leader has built trust within his remote team and benefited from this.
Great teams are built on a foundation of trust, so it’s important to build a healthy environment right from the beginning.
4. Lack of a Service-Oriented Mindset
Even though everyone is working within the technology space, lack of a service-oriented mindset will be a killer. If team members are just focused on their own tasks without paying attention to what other people need from them to perform better at their jobs, you’re going to have a problem.
The chances of failure can be significantly reduced if team members look for opportunities to serve one another. So if it’s lacking, try to nurture a service-oriented culture within the team and the entire organization.
This is of course not going to happen overnight, but you can start by leading by example and reinforcing this philosophy whenever possible.
5. Not Confronting Technical Debt
If the team avoids confronting technical debt, they are going to struggle to make any real progress. Instead, they will be coding around the hacks because they haven’t addressed the core issues.
If the team is engaging in this behavior, you have to ask yourself if they expect you to be the person to clean it all up!
Technical debt needs to be addressed immediately as great software is built on a foundation of a sustainable code base. You can start to resolve this dysfunction by allowing more time to manage the backlog of bugs. Further, you can also encourage the team to automate whenever possible.
A lot of these dysfunctional characteristics in development teams can also be interrelated. So you will have to get creative when you observe these behaviors in your team.
A diversified team with a culture of collaborative behaviors is needed to deliver great software, so don’t ignore even one them.
Also, view this video to see how Patrick Lencioni, the author of The Five Dysfunctions of a Team, addresses the subject matter in his book: