What makes a development team flourish? Is it all about having great talent or is there more to it than that? Having invested many years as a web developer, I’ve experienced all kinds of development teams and would like to share my perspective on what makes a development team thrive.
At Sparkbox, we talk a lot about three primary characteristics we look for in our team members: fluency, humility and empathy. Fluency is about the skills we have learned and experience gained in our craft, while humility and empathy are about how we relate to others in our work.
I believe that a key difference between development teams that thrive and those that tend to wallow in mediocrity is a culture that both cultivates technical growth and values humility and empathy on their teams.
I’d like to provide some practical tips and ideas for companies and development teams on how to build fluency and foster an environment of humility and empathy that leads to successful collaboration within your teams. Some of these tips may only be practical for those in leadership or management positions to implement, but many of them can be put in to practice by any member of the team and still have an impact.
Cultivate Fluency
Fluency matters. You can’t have a successful development team without it. Building great development skills is in large part the responsibility of each developer. However, fluency is something we can build and accelerate in our teams by making wise choices and investments in our teams.
Promote Passion and Creativity
Most of us pursued web development because we enjoy the creative process of building things. We enjoy challenging work and solving interesting problems. Not all the work we do is going to be thrilling, but the more we can provide challenging and interesting work to our teams, the more they will find satisfaction and fulfillment in that work.
Ask Team Members What Work They Enjoy
Everyone is different and what one person enjoys another may loathe. We can’t always pick the perfect project for everyone, but knowing what kind of work our team members enjoy will help us set them up for success.
Don’t Allow Team Members to Stay Too Long on a Project
We all get bored. Some of us more quickly than others. It’s easy to default to keeping someone on the same project because of all the experience they have gained over their tenure. Consider moving folks between teams if you find boredom setting in.
Take More Interesting Work
If you are in a position to choose which projects your company takes on, prioritize projects that require more creativity than those that are more “grunt work.”
Encourage Experimentation
Balance tried-and-true tech with the new and shiny. Encourage developers to try out new software, tools, and techniques for every new project. Make time for developers to work on interesting side projects. Not only will this increase developer happiness, but it will also help teams grow their skill sets and experience.
Encourage and Support Side Projects
Many developers spend their free time on hobby projects that provide a fulfilling creative outlet. Ask people to share their side projects with the team or company. Maybe even provide some company time to work on personal or open source projects.
Invest in Education
Web development is an ever-changing landscape. It’s important to always be learning and it’s not always possible to learn all you need to know on the job.
Provide Opportunities to Attend Conferences
Conferences expose developers to new technology and new ideas. They are an opportunity to leave the paradigm of our current experience and learn how others may do things differently.
Provide Opportunities to Take Courses
Some people prefer learning new things in quiet isolation. Give folks a budget for buying courses in which they may be interested, whether on their own time or while at the office.
Provide Opportunities to Share Internally
Organize a regular lunch and learn. Create an internal communication channel for developers to share things about their craft.
Practice Humility and Empathy
The values of humility and empathy go hand-in-hand. Humility is about how we view ourselves, while empathy is how we view others.
Humility is really just about being realistic about your own strengths and weaknesses. For developers, humility is having confidence in your craft without being over-confident—it’s about welcoming collaboration and recognizing there’s room to be better.
Empathy is taking the time and effort to consider how others feel. For developers, empathy is understanding how our decisions will impact the rest of the team. It’s also realizing and accounting for the fact that many developers deal with the same feelings of inadequacy about their craft that we all do at times.
When we take the time and exert the effort to create an atmosphere of humility and empathy among our teams, we will foster an environment that allows everyone to be realistic and authentic with one another. We can all liberally share our strengths, weaknesses, recommendations, and questions without fear. This kind of uninhibited collaboration will ultimately lead to everyone’s growth.
Here are some practical recommendations for practicing humility.
Intentionally Talk About Things You Don’t Know or Understand
This is especially important if you are a senior member of a team. Expressing gaps in your own knowledge makes it easier for others to do the same.
Ask “Dumb” Questions
While most people feel comfortable asking questions about complicated or advanced topics, we sometimes shy away from question we consider might make us appear “dumb” to others. By asking “dumb” questions ourselves, we make our team a safe place to ask about any topic, simple or not.
Don’t Act Surprised If Someone Doesn’t Know Something
There may be times where you’re surprised by another developer’s lack of knowledge or experience. Whether or not you should be surprised doesn’t really matter. Just be careful not to express that surprise, making your colleague feel disrespected or inadequate.
Don’t Try to Be the “Rockstar” Developer
If you have the skills and experience to outshine everyone else on the team, make an effort to avoid doing so. Instead, create opportunities for others on your team to shine. In all likelihood, the other members of your team already admire your skills and expertise. Use that influence to help them grow, not accumulate more accolades.
Ask Other Team Members for Their Ideas
When you have more experience, it’s easy to push your own ideas without considering others. But asking other team members for their ideas to solutions helps them practice creative problem solving. And you might just find that their solutions turn out to be better than yours. Take others’ ideas just as seriously as you take yours and assume theirs are better until proven otherwise.
Brag About Your Team Members Both Publicly and Privately
Regardless of your role or level of experience on the team, find opportunities to brag about one another. Affirmation of a job well done is good for the soul, builds rapport, and promotes more good work.
Find Opportunities to Encourage Team Members Both in Successes and Failures
It’s important to encourage one another, not just in times of success, but also in failure. No one wants to be the one that introduced that fatal bug into the application, but the truth is failure is an inevitable part becoming fluent as a developer. Keep stories in your back pocket of your biggest failures as a developer to encourage others.
Take the Lead
All these practices can become infectious on a team. It just takes one person to lead and it will start to catch on.
All these practices can become infectious on a team. It just takes one person to lead and it will start to catch on. Promoting creativity. Investing in education. Practicing humility and empathy. These are the things I’ve seen that make the biggest impact toward thriving development teams.
Putting these kinds of practices into place aren’t difficult and many of them require only a small investment of time and intentionality. Creative passion, humility, and empathy can all start with a single person who’s willing to take the lead. You may not be the top dog in your organization, but if you are willing to put these things into practice within your sphere of influence, you may be surprised at how much of an impact you can make.