For all the talk of rock-star developers, we all know it takes a strong, coherent team working in concert to get the best work done. So here’s the question: What does it take to establish a great team of developers who create great products and work well across departments?
We reached out to tech executives and engineering managers who have done exactly that and asked them to share their hard-earned wisdom of team building.
From finding the best fit for your next hire to keeping your team fresh and motivated, the following collective advice will have your team coding at its best.
1. Empower your engineers
Engineer teams can often find themselves at odds with management, business development, or marketing on any given project -- often because they are treated like order-takers rather than collaborators. To get the best from your developers, let them be heard and have a say in what they work on.
At online real estate site Trulia, management and development teams meet quarterly to plan and work out issues, says Jeff McConathy, vice president of engineering for consumer services.
“The process is employee-driven,” McConathy says, “with teams responsible for creating their own priorities and road maps and presenting them to senior management and leaders across the company. Each team also shares their successes and [what they’ve learned] over the past quarter. This helps each team determine their plans and prioritize projects, and allows ... the management team to ask questions and ensure each group is set up for success and moving in the right direction for the company."
Employee-empowerment measures can also ensure engagement and help retain top developer talent.
“The team should be allowed to determine their own professional road map, and what technologies are most suitable for specific tasks, while at the same time being held accountable for their decisions,” McConathy says. “Ask teams to focus on specific high-level goals, then let them run with ideas and execution. This is true empowerment, and at the end of the day, we all like to work in an environment where we can make a difference and learn new things.”
2. Remember your roots
Engineering managers all too often find themselves pulled away from their first love: writing code. But the problems with overemphasizing the “management” aspect of a dev manager’s work profile run deeper.
Sam Lambert, GitHub’s senior director of infrastructure, argues that companies that view managers and engineers differently are destined to underperform.
“Companies need to position managers as strong technical mentors to their teams,” Lambert says. That way, engineering managers “can provide guidance on code and projects, help them navigate technical challenges, and use their personal experiences to multiply the effectiveness of their group.”
Training is a great opportunity for bringing managers and team members together in the same boat. At Booz Allen Hamilton, principal Dan Tucker gets help from a team of agile coaches, who train and coach teams and managers.
“As a rule, we have managers go through these experiences with their teams,” Tucker says. “This helps to level-set on a common language, work through resistance and confusion, and design the journey ahead.”
Trulia’s McConathy also recommends an employee-focused culture and an open door -- even in the face of business-based duties. “I’ve canceled meetings with our president in order to grab coffee with a new employee or someone trying to work through a problem,” McConathy says.
3. Increase business visibility
Giving your developers greater visibility into the business is another way to ensure your technical teams can bring a deeper understanding to bear on achieving business goals. For this, Larry Gadea, CEO of Envoy, preaches transparency.
“Aside from private employee information and customer data, we let employees see everything about the business,” Gadea says. “This includes investor updates, board meeting slides, up-to-the-minute finances -- including bank account balances -- un-redacted calendars, etc.”
Bridget Frey, CTO of Redfin, agrees that exposure to the company’s core business activities is important in helping developers gain valuable insights.
“Our engineers shadow our real estate agents, learning what it’s like to take a customer on tour or negotiate a home purchase price,” Frey says.
4. Break down the walls
If your projects aren’t solving the problems they’re supposed to, it may be a matter of barriers that need breaking down.
Amanda Whaley, director of developer experience at Cisco, attacks silos by targeting two areas: cultural and technology.
“On the cultural side, we invest energy into building relationships across the company,” Whaley says. “One example is sponsoring internal unconference and hackathon days where team members from many organizations can work together in a workshop and create connections that can then be used to facilitate collaboration.”
“On the technology side, we value an API-first culture,” Whaley adds. “This encourages development teams to build APIs so that it is easy for other teams to build integrations and leverage each other's projects.”
5. Know when to cross-train -- and when to specialize
Shaking up roles in the short term may build a team that’s better trained to handle unexpected problems on the fly. Here, cross-training can be essential to getting the most of your team.
Redfin’s Frey says the company uses cross-training widely. “Within engineering, most of our engineers work with multiple technologies, and we run a series of engineering training classes that are open to anyone.”
But there can be an upper limit on cross-training where the returns no longer justify pulling specialists off their domain to increase versatility. John Paliotta, co-founder and CTO of Vector Software, says while important, cross-training can go too far.
“For a development group you clearly want redundancy so that multiple developers can work on the same area of the product, but you also want each developer to have a deep specialization,” Paliotta says. “Specialization results in huge productivity gains versus having a team of generalists.”
6. Mix it up
Another way to facilitate cohesion and break down barriers is to expose team members to fellow tech colleagues they might not typically interact with in their daily duties.
Zubin Irani, founder and CEO of cPrime, emphasizes the need to mix it up: “At our last all-hands meeting, instead of breaking into our usual teams, we actually mixed different teams together so they could talk about cross-team issues, and come up with solutions together about how to improve things,” Irani says. “For example, our mobile team, our ecommerce team, and our API team all met together with the goal of talking about what's working well and what's not between the teams, then they spent time coming up with ways to improve where they had challenges.”
Usha Parsa, product director for Yahoo Cloud Services, says interteam cross-pollination is all about creating common goals.
“We believe in an agile approach … across different reporting boundaries that come together for execution toward a common goal,” Parsa says. “Modular teams share a common goal. Teams have individual daily stand-ups for efficiency, but teams also meet each other in short ‘Scrum of Scrums’ several times during the week to share progress and where they need help from each other.”
7. Go cross-functional
Sometimes the best way to get the most of your development team is to split them up and fold them into cross-functional teams that pool talent from various facets of the business. This is especially effective if you find projects hindered by departmental silos.
Nic Grange, CTO of Retriever Communications, says creating groups based on results -- rather than function -- helps reduce the problems found in silos. It comes down to how your business is structured.
“Creating a structure of cross-functional teams can help reduce the impact of silos,” Grange says says. “Some information will still be siloed within the cross-functional team, but at least they have all the information they need to deliver their business outcomes.”
8. Get out of the office
What about ways to keep team members working well together? How do you keep a group feeling motivated, at ease with each other, and importantly, not burned out?
Eden Chen, CEO and founder of Fishermen Labs, says his firm gets away -- far away -- from its Los Angeles-based office each year for two weeks.
“We’re looking at Sydney, Madrid, or Budapest this year,” Chen says. “We are able to work there and still complete projects during this two-week time period, but this is huge for team building, for talking through process inefficiencies, and getting the multiple teams on the same page -- business, project management, design, and development. We also do one meetup a month where we go out and do something fun.”
9. Celebrate success
Another way to avoid burnout and increase morale is to take the time to pat yourselves on the back. Here, Artur Seidel, vice president of Elektrobit, advises celebrating successes right away.
“We always host a shipping party celebrating an important release for a customer,” Seidel says.
He recalls a project with a tight deadline that led to working over the holidays.
“We finished on Dec. 29, and celebrated with a day of snowmobiling in the Canadian wilderness … and then flew home,” Seidel says. “What could have been a real drag turned into a positive memory and team bonding.”
10. Give back and bond
Let’s face it, not everyone can find passion in tackling bug reports in pursuit of business goals all the time. Some developers hope to bring their skills to bear on more pressing problems outside the workplace, if only they had the time.
Why not run with that instinct and provide a valuable refresh for your engineers’ souls and minds?
At Cisco, Whaley says the company “encourages employees to volunteer their time to help their community or support a global cause. These volunteer opportunities are a way to give back and to spend time together as a team.”