This article analyzes six characteristics of ineffective engineering teams and walks you through potential improvements.
Teamwork—so important, yet often so elusive.
Having a team of software engineers that gel well together can make your business stand out from the competition.
Software engineers who know and accommodate each others’ working styles while also getting along on a personal level tend to produce great results.
It’s time that you encourage teamwork among them and let that potential flourish. With tips from this article, you’ll have no problem achieving that.
Table of contents
Implement cross-training days
Cross-training offers multiple benefits for software engineers. One of those benefits is improved teamwork.
Developers have a chance to learn skills and acquire knowledge that isn’t necessarily tied to their specific role in the team.
However, you may wonder why, then, they should spend their precious time on it.
Well, being more versatile and flexible is essential in today’s working environment; it benefits both the developer and their employer.
But, in addition to ensuring they become more proficient in different skills, it also makes engineers more empathetic.
Being outside their comfort zone improves their understanding of challenges others face in their work, which boosts teamwork; in short, it makes “T-shaped” employees.
As Tim Brown, Executive Chair at IDEO, puts it, the vertical line of the “T” represents the depth of skill, while the horizontal line represents the ability to collaborate across disciplines.
The horizontal line is increasingly important in the business world as it indicates the ability to work in a diverse team.
You can organize cross-training days within a particular team; for example, you can set aside a day every few weeks when a team member will do a presentation about their area of expertise.
You can also employ outside experts to provide your engineers with cross-training, like the software development company Createk did.
As you can see from their tweet, their developers went to Northcoders to experience cross-training, and they had a great time.
At Northcoders, you can find courses and bootcamps where your developers can broaden their skills together, which can be vital for improving teamwork.
You can see one team that received training at Northcoders in the photo below, holding a presentation about front-end development.
Whether you give one of your team members the responsibility of passing on their knowledge to other developers or send your entire team to a bootcamp for cross-training days, teamwork will improve—and that’s essential for better business results.
Organize team buildings
Team buildings are a classic method of strengthening connections between employees in all kinds of businesses—software engineers are no exception.
There are different approaches when it comes to team building.
Sure, you can take your software engineers on a three-day whitewater rafting or a hunting trip—it could be fun.
However, there are more affordable, and more developer-centric activities that you can organize to get your engineers to bond.
For example, escape rooms are a fun way for developers to employ their problem-solving skills and creative thinking while working as a team.
Today, there are plenty of escape rooms available in almost every bigger city.
But there are also more convenient solutions.
Escape from Hotel California is an escape room that’s delivered to your company or wherever you prefer.
Every table is a “room”, and the teams have to solve puzzles and uncover secrets in a limited time frame.
There are also virtual escape rooms geared even more towards developers. For example, /dev/esc is an escape room designed specifically for them.
Teams of up to 12 members can solve challenges and find clues for escaping on their computers in the same room or via video call.
The game requires some coding skills, so it’s right in the developers’ wheelhouse.
If you want to organize a team-building activity that creates direct value for the company, you can organize a hackathon—a competitive event where teams of software engineers work on projects to produce a functioning product.
Many companies use hackathons to improve team collaboration while getting some interesting results.
For instance, Facebook developers came up with exciting ideas during hackathons; some became new products.
Facebook Chat, which later evolved into Messenger, and the Like button are some notable examples.
The point of a hackathon isn’t necessarily to produce the next big thing in the world of software development. They know that even at Facebook.
However, working with other developers on a fun idea and thinking outside the box can be a great team-building experience for your engineers—that’s valuable enough by itself.
Allow flexible working hours
Software engineers tend to enjoy flexibility when it comes to working hours, especially since the rise of remote work.
Allowing them a certain amount of structured flexibility can improve their level of satisfaction and, therefore, positively impact teamwork.
You can allow flexible working hours for your office workers, but they are more typical for remote work.
Freeing your developers from the constraints of standard office hours can help them manage their work-life balance and handle their workload more efficiently.
Just imagine how satisfied your developers would be if they had the opportunity to do something like this.
Luckily for software engineers, flexible working hours are more and more common in the industry.
According to a report from Terminal, 75% of software engineers work from home at least three days a week, and 61% of them work fully remote.
Giving software engineers complete freedom to work whenever they want may not be practical for every company due to deadlines, particular project demands, or other reasons.
If that’s the case with you, you can allow flexibility to a certain extent.
For example, Tim Arnold, former CEO of Fyre, provided his tech team with a flexible schedule that nevertheless included core hours when the team would meet for collaboration and necessary meetings.
“This tends to work well because the employee gets the benefits of a flexible schedule while the managers can still ensure things are humming along and necessary collaboration is happening.”
That way, the engineers still have a part of the day when they’re working together, but they’re still able to organize their own time to a large extent.
However, some companies push flexible hours even further, like the EDISON Software Development Center.
They instated a compulsory 40-hour workweek in which working days can last from four to ten hours.
The employees decide how much they work each day; they can take any day of the week free and work on Sunday if they prefer.
All they have to do is sync with their project manager about the times they plan to work—that ensures that the team functions well even with so much flexibility.
To sum up, teamwork doesn’t have to suffer if you allow flexible working hours for your engineering team.
With smart organization, you can combine those two elements and have your cake and eat it too.
Encourage pair programming
Pair programming can be very beneficial for improving teamwork, regardless of the two paired software engineers’ level of knowledge and experience.
If you encourage two engineers with similar-level skills to work together, they could be great at solving challenging problems.
Just ensure that they get along well and that their personalities don’t clash—in such cases, pairing them up can further damage their relationship.
Pairing a senior and a junior programmer can be even more beneficial.
That’s the experience of software engineer Luke Perry, who’s been paired up with a more experienced developer. In his case, learning was one of the main benefits of this type of work.
“When I was much more of a rookie programmer, one of my teammates was a 10 or 15-year programming vet. Just watching them program was extremely valuable.”
Besides that, pair work produces better results, and problem-solving in pairs almost always leads to a better outcome.
In Perry’s opinion, the senior developers have an opportunity to examine their long-standing coding practices when a rookie challenges them with questions.
The data supports Perry’s experience. In a dissertation by Laurie Ann Williams, it’s stated that collaborative pairs have 15% fewer defects in their code.
In addition, 95% of programmers said they enjoyed their work more and were more confident than when working alone.
Much of the success of pair programming lies in the communication between paired engineers.
Strong teamwork is the result of strong communication. Take a look at this list of tips for pair programming from one software engineer.
As you can see, two of the five tips boil down to communication skills—talking and actively participating/leading.
When you add regularly changing who’s at the keyboard, both engineers have the chance to lead, communicate, ask questions and learn from each other.
What about pair programming in remote work arrangements?
Unsurprisingly, thanks to technology, it’s very much possible.
There are tools that allow developers to do pair programming even when they’re not in the same room (or on the same continent).
For example, Codeanywhere allows developers to work live in the same file with an unlimited number of collaborators simultaneously—almost like sharing a keyboard.
When you encourage pair programming, you’re forming two-person teams which can combine their knowledge and experience to produce great results, while establishing a long-term collaborative connection.
Mix-match developers in different projects
Assigning your developers to one project and leaving them there for too long can lead to a range of problems and, ultimately, an unhappy team.
Working on one project alone or always with the same group of people can lead to isolation or the creation of information silos, therefore affecting the effectiveness of the organization as a whole.
As one developer wrote in a forum thread about the benefits and drawbacks of rotating developers on projects, variety in the workplace is essential.
Collaboration with different developers on different projects can improve commitment and efficiency.
Moreover, learning new things and working on various tasks can reinvigorate your engineers, who may be following the same routine for months.
It also expands their network by having them interact with more people, which boosts the level of teamwork across the company, as Daniel Kaplan puts it.
How, then, to mix and match developers across projects?
The Thoughtbot company did it by forming four teams with four to five members and rotating them every two months.
As they claim, one clear benefit that they experienced from such practice is increased quality of the work.
Every person brings something unique to the team, which can benefit the project they start to work on.
It also brings fresh eyes to projects; as they put it, developers “immediately find code that drives them nuts”.
That’s not surprising—the more the same people work together, the more they build up a tolerance for inferior practices as they encounter them every day.
However, at Thoughtbot, they try to keep one person on the project the whole way through for consistency.
It’s easier for new people to adapt when someone can show them the ropes.
And it seems like their developers like that kind of arrangement—they even design movie posters for their new teams.
Rotating developers on projects keeps their minds sharp and ideas fresh.
Working with different people in various contexts can boost your developers’ output to new heights, so you should definitely consider it.
Organize feedback sessions
To feel like a part of the team, employees need to know that their work is noticed and that they matter to the company.
One of the best ways to show them that is by organizing feedback sessions.
According to the study, four out of ten employees are actively disengaged from their work if they receive little to no feedback.
In other words, 40% of employees might feel like they don’t belong in the team if they don’t regularly receive feedback.
Luckily, you can prevent that outcome with thoughtful feedback sessions. For example, feedback from other developers can be incredibly effective.
At HireVue, every team member got their work evaluated by their colleagues twice a year.
First, they received an email asking them to pick four people they would like to receive feedback from.
After the manager reviewed the lists, each feedback provider was asked to answer three questions:
- What should this person continue doing?
- What should this person start doing?
- What should this person stop doing?
The manager then scheduled a half an hour with each person to read the feedback they received and tell them who gave it.
Employees had the opportunity to respond and talk about every statement in the feedback.
In the end, they picked one measurable thing they would want to improve in the next six months.
This system seems to have worked at HireVue.
As Smith claims, the developers were energized with feedback, feeling appreciated by their teammates.
This approach helped them identify their strengths instead of amplifying their weaknesses.
Feedback sessions can be very beneficial for strengthening the team.
The team can identify the challenges, work on their issues and grow stronger as a unit.
When one engineer gives feedback to another, whether positive or constructive, it improves trust and communication between them—just what you want to see in a healthy teamwork environment.
Here’s a common-sense fact—a team of software engineers who work together toward a common goal is better than a team of software engineers with lousy teamwork.
You probably know that already, but it’s worth keeping in mind.
If you do, you can use the tips from this article to encourage teamwork.
Cross-training days, team buildings, flexible work hours, pair programming, rotating developers on projects, and feedback sessions can turn your engineering team into a productive unit that efficiently tackles every challenge and task.
Don’t miss a chance to have that in your business.