3 Tips for Creating a Strong, Healthy Software Team
Lots of things can ruin the success of a software project. Your approach to people and processes doesn’t have to be one of them.
July 27, 2021
Nearly two decades of experience working with software companies taught me that the team is often what makes projects successful. My company has won “Best Places to Work” 13 times, but we got there through trial and error, including learning what does and doesn’t work for a team. There are three key themes businesses should consider whether they are starting a new project or revisiting an existing application:
1. Start with a small team.
It’s easy to get swept up in an exciting new project by throwing as many resources at it as you can. However, starting small is imperative to bring the vision to life and avoid financial loss and waste. In addition, a smaller team can adapt and pivot as you determine the needs of the project.
For example, I’ve seen an excellent application idea immediately funded, with a 10-person team hired out of the gate. The problem was that no one had curated the processes and development backlog for the team, so it turned into an inefficient mess that cost a lot of money and frustrated stakeholders and team members alike.
Just because you have the money to spend right away doesn’t mean you should spend it. Starting with two to four people while you figure everything out is a much better solution. You'll have a more efficient process, both calendar and cost-wise, if you set the vision, architecture and ideas with a small team and grow from there. One of the core admissions of modern development is that we will have to adapt from initial plans.
2. Communicate clearly -- and often.
It is essential for any team, but especially a growing one, that communication is flowing freely and accurately in both directions. The vision and values should be shared early and often from leadership so that each team member can communicate them at a high level. If the project values are well known, individual team members can ensure they make the best decisions regarding implementation, prioritization and more. Your team will also feel valued if they can share recommendations and ideas that achieve the goals.
In addition, feedback should be encouraged and accepted by project leadership. Most modern development teams have retrospectives to share feedback regularly. For the team to be healthy, that feedback needs to go all the way to the stakeholders. Whether it's a great new idea or tweaks in processes or approaches, the team has valuable insight to share. Additionally, any input from the end-users must make its way back up to the development team and stakeholders. I’ve seen in past projects where stakeholders didn’t adapt to user feedback, which initially eroded interest and engagement and eventually led to the solution being abandoned or replaced.
3. Be process mature, but flexible.
Healthy teams need to perform the essential rituals they know they should do, including planning and requirements, estimation, testing, CI/CD, UAT, retrospectives, etc. But it is not worth being dogmatic about there being only one right way to do things. Each team and project are different due to the dynamics and people involved. Do what makes the most sense for the project. In other words, be open-minded about how things are executed.
For example, exactly how a team estimates work depends on the specific project and could change over time. It is more important that the employees are estimating in a way that makes sense for the team versus doing it the way that the panel prescribed during your recent training.
Lastly, as you're building a healthy, strong software team, consider the soft skills necessary to make the world go 'round, such as being kind and consistent, taking ownership and initiative, and being invested in your teammates’ success. These qualities are the glue for a team to navigate the everyday challenges that software development presents.
Ryan Jackson is a Principal Consultant of Technology Solutions for InfoWorks, a national consulting firm headquartered in Nashville that specializes in technology, analytics and management solutions. Ryan is a seasoned consultant with more than 15 years of experience in service of InfoWorks clients. After completing his MBA and Software Engineering degrees at Auburn University, Ryan focused on custom software development in the Microsoft stack and worked extensively as a project manager, business analyst, and development team lead. Ryan is currently leading multiple development teams for key accounts and spearheading the Technology Solutions group. The group seeks to share solutions, experiences, skills development, and lessons learned across the firm to improve outcomes for talent and clients.
You May Also Like