How to manage a software development team: A guide for SaaS founders

A development team manager with multiple team members
Blog
Explore article topics
in this article

    Developers don’t like changes. They simply don’t. What they like is working with new technologies and having flexible deadlines. They also like to discuss things in groups and complain about anything. Well, that doesn’t sound productive at all. So, how can you manage your software development team, especially if you’re not a technical person yourself?

    In my experience leading software development teams, I’ve learned that the most effective approach is to focus on encouraging open communication to build strong relationships while providing the necessary support for the team to succeed.

    In this guide, I share my best practices for managing a software development team. My goal here is to help you, as a non-technical founder,  better understand your group members and make the most of their potential.

    What is a software development team

    A software development team is basically a group of skilled professionals who work together to create, design, develop, test and maintain software applications or systems. The team typically includes various roles and technical skills to cover the full software development lifecycle.

    Remember that a dedicated person doesn’t always fill a specific role, as positions can vary depending on the project size. For SaaS startups, in particular, it makes sense to combine several roles and have a single person responsible for them. You just need to keep the importance of combining roles in mind and ensure you don’t overlook any responsibilities in your project.

    So what are the different roles in software development?

    Key roles in a software development team Let’s break down the key roles and responsibilities of a software development team.

    Roles in software developmentResponsibilities
    Product ownerUsually, the business owner or a group of stakeholders with a keen sense of what is good or bad for their software takes this role. And they're responsible for making the final decisions, maintaining a clear vision of your SaaS product and understanding the industry and customers.
    Project manager (PM)The PM organizes the work of the technical team around the project, keeps track of the tasks and time and is also responsible for managing the project budget. A significant part of a PM's role involves people management, so ideally, they should be highly organized and have great social skills.
    Technical leadSomeone who knows every technology necessary to deliver a project. A technical lead needs team management skills to assign tasks to the group, oversee code quality, and establish the project's core structure. They also play a crucial role in product development due to their deep understanding of the technologies.
    Front-end developerTheir job is to ensure the product works and looks properly. They create user interfaces for websites, mobile devices and desktop applications, using technologies like JavaScript, HTML, CSS, React, Angular, Vue and jQuery. Ideally, they should have some design skills, but it’s not a requirement.
    Back-end developerTheir responsibilities include working with data processing and storage, sending forms and emails, preparing reports and webpages and processing payments. Back-end developers use technologies such as PHP, JavaScript (often in conjunction with Node.js), Python, .NET and Ruby.
    Quality assurance (QA)There is no way to write perfect code that works seamlessly on all devices. That’s where QA comes in. They check that the solution meets the requirements, test the usability, and try to view the product from the perspective of potential customers.
    DevOps engineerThey handle back-end work primarily related to infrastructure (e.g., configuring servers, setting up databases, performing regular backups and establishing high-level security profiles). These tasks often involve one-time setups that can be configured and then monitored with minimal ongoing adjustments.
    DesignerEvery user wants a friendly UX. Using tools like Figma and Photoshop, a designer translates all visual requirements into an aesthetically pleasing and easy-to-navigate interface.

    How to build a software development team

    Building a successful software development team requires careful recruitment to identify the right candidates for each role. I follow these four main steps when looking for the best members to join my software team. Do the same.

    1. Start by defining who you’re looking for. Take time to understand which role covers most of the duties. It’s important to note that software development is already a well-established industry with specific job titles. Don’t be tempted to search for someone with a new role just because you think you need it. You’ll have a hard time finding the right person, and people may not understand your job proposal. Stick to the well-defined roles, simple as that.
    2. Don’t try to combine several roles into one. While you might find it appealing to have a smaller team and juggle multiple roles, this approach can complicate your job search. Few people are equally good at several different skill sets, which means you’ll spend more time searching for the right candidate. Plus, a multiskilled person is very hard to replace in the future, so why create a problem in the first place?
    3. Don’t rush the hiring process. Dedicate enough time for a proper interview process.  Bringing a new person onto the team team will affect the work of all existing members. If your choice is not the best one, you may end up wasting time and your team might become demotivated. So be careful about who you invite into your “home.” It’s good practice to have your team interview candidates with you. This approach will make it easier for a new person to adapt, as they won’t be treated as a stranger by the team.
    4. Select the interviewer carefully. To find a proper technical person, there should be another technical person to interview him. Unfortunately, there is no other reliable way to check if someone is really good at tech. But there are some hints or signs of a good developer.

    Checklist to identify a strong technical candidate for a development team

    Best tools for managing a software development team

    Assuming you have a development team, how should you properly manage it?

    First of all, understand that software development is a creative process and that people involved are often not very organized — most of them, at least.

    Next, consider using tools that help keep track of tasks, improve communication and keep everyone on the same page about project goals. They make it easier to adapt to project changes and foster collaboration.

    Top strategies to handle the workload of a software development team Here’s an overview of my favorite tools to handle the workload of a software development team.

    Kanban

    A Kanban board as a useful tool to manage a development team workload Kanban is a visual approach to assigning tasks by organizing them into columns, each representing a certain state in your project. For instance, a typical column list might include: “Backlog,” “In progress,” “Ready to be verified” and “Done.” Your tasks start in the “Backlog” column and when someone starts working on a task, they move it to “In Progress,” continuing this process until it reaches the “Done” column.

    Kanban is a great way to easily track project progress and ensure everyone is on the same page.

    Sprints

    The Scrum lifecycle diagram shows sprints as cycles where teams deliver software increments Sprints are time-boxed iterations, typically lasting 1-4 weeks, used in Agile development frameworks like Scrum. Think of them as a cycle during which the development team works toward delivering an increment of the software or product.

    Sprints help focus on a limited scope of work and actually deliver a valuable part of a project rather than keep working endlessly. They can also give us an understanding of real team performance, which can help to predict the project timeline.

    Every sprint is a repeatable process that includes phases such as:

    • Sprint planning: The team establishes the sprint goals and selects tasks from the product backlog to prioritize for development.
    • Working on tasks: Developers collaborate to implement features and address bugs, ensuring alignment with the sprint goals.
    • Testing: Quality assurance is conducted to verify that the implemented features meet the specified requirements and function correctly.
    • Stabilization: Any remaining issues are resolved, and the software is fine-tuned to ensure stability and reliability before release.
    • Delivery to production: The completed software is deployed to the production environment, making it accessible to users.
    • Retrospective: The team evaluates the sprint, discussing what worked well or not and identifying improvements for future iterations.

    In order to measure the team speed, you need to assign a certain number of points for every task, depending on the effort that is required to complete the work. At the end of the sprint, you can calculate the total of delivered points. After several sprints, you can see the average speed of your team in points.

    A visual work platform like Mural offers Agile tools and templates to help you plan your sprints, visualize team progress in real time, and track milestones.

    👉 Check out this guide we put together for one of our clients: Traditional project management vs Agile

    Roadmap

    A roadmap that outlines a project's timeline and milestones A roadmap outlines the key steps required to complete a project, along with associated timelines. You can turn each step into a milestone with a list of tasks. These tasks can be divided into sprints and prepared for execution.

    Having this roadmap is very important for a development team to maintain focus and motivation. Without a clear picture of what needs to be achieved, they may quickly lose interest. In fact, this lack of clarity is one of the major reasons why developers leave a project. So give them something to aspire to and work hard towards. If you get the right people on your team, they will appreciate the challenge.

    Development standups

    Standups are just a fancy name for a morning call to prepare everyone for the day. They can be held daily or several times per week. It’s important to have them regularly so people get used to them and structure their day around these meetings.

    These are key questions that every team member should answer:

    • What have you accomplished since the previous meeting?
    • What are you planning to do next?
    • Are there any blockers?

    Ensure that everything is clear and understandable to every team member. Keep the meetings as brief as possible. The main goal is to get everyone on the same page. If further discussions are required, it’s better to stay after the meeting and address them in a focused group without taking too much time from everyone else. Fifteen minutes is typically what it takes for a standup meeting.

    Code review

    As the name suggests, code review is a process of having a technical lead reviewing a developer’s code. The goal is to make sure that the code quality meets company standards and that the developed solution is optimal. It also allows the technical lead to stay up to date with all the changes.

    If the project is large enough, it’s useful to have other team members review the code as well. It helps them gradually learn about the project, making it less time-consuming for them to modify something if needed.

    Code should be reviewed task by task rather than waiting until a big chunk of work is done. It’s much harder to change things if something is developed poorly. The larger the tasks, the more time required for a code review. At some point, people may start accepting the solution without even checking it. Avoid these situations, as they can create a piece of software that is difficult to maintain.

    Retrospective

    A retrospective is an organized process for reviewing past issues and determining how to avoid them in the future. We all make mistakes, and developers are no exception. After every sprint, it’s essential to sit down together and transparently discuss the problems that happened.

    Critical things to remember during the retrospective:

    • Developers are smart and can often find excuses for why something wasn’t done.
    • Don’t try to compete in logic and proof that they are wrong.
    • Focus on what you can change to avoid future bugs, missing deadlines and a need to redo a big chunk of functionality or any other problem that could happen.
    • Encourage them to be creative — that’s what they like.
    • Be prepared for the possibility that management may be the primary issue that they complain about.

    👉 Keep learning: How to run a lessons learned session for a SaaS startup

    Top productivity solutions for managing software developers

    With all these tools in mind, how do you make everything work? Well, you don’t have to reinvent the wheel. Most of these methods are already available as ready-to-use services, and some of them are even free. I don’t want to promote any specific services since they are constantly evolving. Feel free to adopt any of the following solutions or find your perfect match. Just make sure that you’ve covered all the main categories.

    Communication platforms

    Slack offers desktop and mobile applications This is obviously the major thing to cover when managing a development team, especially in a hybrid or fully remote work environment where members are spread across different time zones. For text communication, I prefer Slack or Discord. It’s essential to have a shared space where you can keep all your messages organized.

    Let’s explore best practices for seamless communication with your team:

    • Create different channels. To effectively communicate with the right team members, create channels such as “standup” for notes from your standup meetings, “general” for all news and project-specific channels if you have multiple projects.
    • Prioritize written communication. Having meeting notes helps everyone stay on the same page. You can also return to a conversation and remind your team about the decisions that were made.
    • Use the  “@tag” feature. Most messaging apps support this feature, which notifies the team directly so your messages become more visible.
    • Have group calls with your team. Ideally, use this feature as your primary communication channel or opt for your calendar app. I find Google Meet very convenient as it’s built into Google Calendar and automatically attaches to every meeting you create in Calendar. At the same time, you can use Slack for short conversations.
    • On calls, turn your cameras on. Developers might not like this practice, but it ensures they are fully present instead of working on their tasks. This step is even more important when managing remote development teams, as it fosters a sense of connection among members.

    Project planning and management tools

    An example of a Jira planning screen

    Planning and project management tools are digital versions of sticky notes or to-do lists, designed to help organize and track important tasks and projects. Whatever your team is working on should be logged as a task in the system, with a clear description, acceptance criteria and the correct due date.

    Of course, you can have Google Sheets or Microsoft Excel, but effectively managing task statuses, discussing changes and keeping a history of all the work with those tools can quickly become a nightmare. Key project and task management software includes Jira, Wrike, Monday.com, Trello and any others you’ve likely heard about. It doesn’t really matter which one you choose, just keep it up to date.

    Important considerations when using planning and project management tools:

    • Make sure that your team understands the priorities. In Jira and other Kanban-based systems, the priority is usually set by the order of the tasks — the higher the task is, the more important it becomes. You can also use some tags, but I find the order works best.
    • Don’t let your developers choose priorities. Determine what is relevant to your business and can bring value to your customers. Set the priorities at the start of each sprint and keep an eye on tasks being worked on. Sometimes, developers may ignore priorities due to blockers and switch to more interesting tasks for them. So you would want to periodically check that no tasks are skipped and priorities remain unchanged.
    • Add a status for each task. At a minimum, statuses should include “Backlog,” “In progress,” “Blocked,” “Reopened,” “Ready to be verified” and “Done.” You can add more statuses relevant to your development process — for example, “Ready to be published” can make a lot of sense if you already have a website running. Keep statuses up to date and ask your developers to do the same. It’s key for efficient task management.
    • Actively use a calendar application. Most of the time I use Google Calendar. Keep all your meetings there. One great thing is you can organize not only meetings but also time that you plan to spend on some tasks (time boxing). Just don’t invite anyone to a meeting, making it a reserved time slot that everyone on your team can see. Ask your developers to do the same and now you have a great tool to track their progress and what they spend their time on.
    • Track developers’ time. Most task and project management applications allow you to track the time your developers anticipate for a task to be completed and the time that they actually spend. Don’t miss this opportunity to have them both working for you. If you see that the time logged is approaching the estimation, but the task is far from being completed, that is a red flag to raise questions such as:
      • What obstacles are you facing?
      • How can I assist you?
      • Do you need more time?
      • What is the current status?

    Version control systems

    GitHub page with a sample repository Every piece of code must be kept under version control. The vast majority of projects use Git, a tool that allows developers to keep a history of all code changes and collaborate effectively with other team members on a single project. Imagine you’re writing an article, and there are several authors who are co-editing at the same time. It’s easy to override someone else’s work. Git allows you to merge changes done by multiple participants.

    Even if there is only one developer, Git is still helpful because of its history-tracking capability. Here are my tips for using version control systems.

    Use version control tools

    Version control becomes especially efficient when you use a separate service to store all your code remotely. For Git, the most popular platforms are:

    • GitHub
    • Bitbucket
    • GitLab

    These tools allow you to create multiple repositories and facilitate team collaboration by having a platform where they can see everyone’s work in progress, share useful solutions, verify code and communicate. You can also configure an automatic deployment of your website on the same platform.

    Establish version control processes early

    The technical lead is responsible for configuring all the processes related to version control. Ideally, they should be properly set up from the beginning of development. Code review is an essential part of these processes, and all Git platforms support it. On GitHub, this is done through a “Pull request,” while on Bitbucket, the same process is called a “Merge Request.”

    Discover why and how to use GitHub for WordPress development

    Encourage continuous team improvement

    Managing a software development team requires attention to detail, as your team is a dynamic entity that constantly evolves. Consider these practices to keep your team engaged and foster an environment of continuous improvement:

    • Keep a close eye on the atmosphere and motivation of each team member. Developers normally aren’t very persistent in their demands. If they see no response to their requests over time, they’ll adapt and stop asking, which can hurt the end result. But if you try to meet all of their requests, they may become less productive and continue to complain without giving much in return.
    • Periodically collect the most pressing issues and collectively decide how to address them. Then, encourage your team to resolve the issues on their own. This approach will provoke them to learn more rapidly and understand that most of the problems they face are totally possible to resolve by themselves.
    • Keep in mind that if you don’t create an environment where people can grow, they will find another place that allows them to do so. The remaining ones will likely be the less engaged, which is not something that you want for your product or service.
    • Don’t tolerate laziness, aggression or arrogance among your team members. Such behaviors negatively affect your team’s performance and, very often, it’s better to let go of even a skilled developer to keep your team stable. In my experience, I’ve never seen any good outcomes from keeping bad-tempered teammates.

    Let’s put these proven management strategies into practice

    Now that you have these best practices in mind, let’s explore how our team can help you implement them. We conduct regular standup meetings with client teams to get everyone on the same page. Feel free to share any questions on how to manage a development team and we’ll get you the answers.

    If you’d rather avoid the hurdles of managing a web team, contact us to see how our web development solutions for technology startups can bring your project to life.

    Anton I

    Anton Iakushyn

    Web Services Lead

    Anton Iakushyn is a Web Services Lead at Productive Shop. He has a deep knowledge of programming technologies such as PHP, JavaScript, WordPress, Next, React, Angular and many other platforms required for successful web development. His priority is always the quality of the solutions that he creates with his team. Having more than 15 years of experience, Anton understands the core ideas behind every aspect of web development. Prior to Productive Shop, he was leading multiple teams developing projects for startups in industries such as finance, banking, entertainment and even AI. Anton graduated with a university degree in aerospace engineering so he has a passion for exploration and the ability to handle great challenges. When he’s not at work, Anton enjoys hiking, fishing, BBQing and traveling. He also likes to try new activities such as yachting — and once, he even piloted a small plane!

    If you’ve been
    referred, give
    us a shout.