You’re about to build your next product. Your product vision is getting more detailed every day, and it’s time to turn it into a real product people look forward to using.
At this point, you may decide to delegate software engineering to an experienced partner who has a deep technology background.
But while it may seem at first glance that software engineers are the only specialists you need on your team, you’ll quickly learn that any software development team consists of different roles. Each specialist is responsible for particular business or technical tasks.
Who are all these people?
Why do you need to pay for their efforts?
And do you REALLY need them on your team?
Today, you’re going to get acquainted with the key roles on a software development team and find out how big your team should be to deliver a product of exceptional quality.
Key roles in a software development team
“Every product begins with the people on the cross-functional product team. How you define the roles, and the people you select to staff the team, will very likely prove to be a determining factor in its success or failure.”
A skilled, responsible, open-minded, and friendly team with wide yet deep expertise in IT product development lays the foundation for a product’s success. Team members dedicate their time, effort, and knowledge to your product’s growth. From the product discovery phase to a successful product launch, maintenance, and further growth, a development team contributes to every single stage of your product’s lifecycle. Thus, it’s critical to know who you should hire.
In this section, you’ll meet six key roles on a software development team. You’ll find out their responsibilities as well as how they can optimize the work and save costs at early stages of product development.
Product owner (PO)
Let’s start with your role on your software development team.
As a startup founder, you may participate in the project discovery and development processes to provide all product details to the development team. You may also delegate this role to someone with a clear vision of your idea who’s able to represent your interests, wishes, and product requirements.
A product owner, or PO, defines the product’s goal and explains it to the team. They communicate actively with all specialists involved in the development process and are able to answer any product-related questions. The product owner does not necessarily need to have a technical background. If you’re new to app development, don’t worry: You can still play this role on your team. A bit later, we’ll highlight the technical roles responsible for building and scaling an app.
The product owner creates a product backlog — a list of requirements to be met at various stages of product growth. Basically, items in a product backlog are the features you want to implement in your app. The product owner has to make sure the product backlog is transparent, detailed, and explicit.
Although the product owner communicates closely with the rest of the development team, they aren’t responsible for how (and whether) the software development team meets the project objectives. There’s another role for that.
The PO is a guiding light for the development team. If there’s no one to provide directions and clarify expectations, it’s likely the product will fail to meet business objectives and your expectations.
Project manager (PM)
A project manager (PM) is responsible for every step the software development team takes to meet your requirements and deliver the expected results. The project manager is solely responsible for the efficiency of product development and for optimizing the development process. It’s hard to overestimate the role of the PM in the app development process.
With proper project management, combined development efforts, thousands of lines of code, and a solid business idea, you can create a product that’s able to amaze, serve, and stand out for years.
Later, we’ll pay attention to the size of your team. But any project needs a project manager, no matter if it consists of two or 200 specialists.
The only exception is if you’re the only person working on a project. In this case, you don’t need a team or a project manager. However, successful commercial projects are not usually born this way. Even if you start all by yourself, you’ll still need a team to work on your project. If you don’t scale your team, your product won’t scale either.
A project manager closely communicates with the PO and possesses necessary information about:
- Your business
- Your app’s users
- Your target market
Basic technical awareness makes a project manager an even more important member of the team. A qualified PM not only can ensure your product meets the requirements and satisfies stakeholders but can participate in estimating tasks, suggesting ways to improve the product, and provide a better understanding of the app to the software development team.
Poor project management may result in numerous consequences, including:
- Missing deadlines
- Exceeding the app’s budget
- Project failure
Business analyst (BA)
Life at Google is a thrilling YouTube channel packed with great videos about Googlers and insights from one of the most powerful IT corporations in the world. Check out this channel for an explanation of what business analysts do.
“Business analysts analyze data to find different insights that will drive a business impact.” — Rachel Poulsen, Senior Product Analyst at Google
What if you don’t have a business yet? In this case, business analysts collect and analyze data, interpret the results, and come up with suggestions to launch a potentially popular app.
“There are just a million questions you have to ask before you launch and after you launch. What are we trying to make happen? How can we prove that quantitatively? And are we confident in that?” — Wei Yang, Product Analyst at Google
These are questions a business analyst can answer. They bridge existing demands, pain points, and troubles with a real solution embodied in your software application. Business analysts work with tons of data to suggest the best ways to develop and improve your app. They also study competitors, define their weaknesses, and reveal users’ concerns to help you launch a better, more user-oriented app.
If you don’t have a business analyst on your team, your project may fail to meet users’ demands.
Without a BA on your team, you risk several unwanted outcomes:
- Users don’t want to use your product
- Users don’t like your product
- Users don’t need your product
Business analyst vs system analyst
It may be confusing to differentiate between the roles of business analyst and system analyst (SA), especially if you’re new to product development. Business analysis is a wider concept, covering an entire organization or business domain. System analysis focuses on technical specifics or the development of a particular product.
- A BA develops business requirements, while an SA interprets these requirements for the software system.
- A BA identifies the existing problem and describes what solution to implement. An SA reviews the project objectives and states how to implement the solution in an app.
- System analysis is an area of business analysis. Thus, in many teams, a business analyst plays the role of system analyst.
Note: Business analysis is critical for decision-making when launching your startup. A business analyst may help you choose a potentially profitable niche, define steps to launch your business, or pivot if needed. A project manager skilled in market research and analysis may play the role of a business analyst. However, if a project manager has never worked with similar tasks, this may be inefficient. Consider hiring a separate business analyst or outsourcing business analysis to a dependable partner.
UI/UX designer or software designer (SD)
According to Forrester, an attractive app design may cause a 200% jump in your conversion rate. Intuitive navigation and a seamless user experience may increase your conversion rate by 400%.
This is why you need a skilled UI/UX designer on your software development team.
There’s a misconception that software engineers can create an app’s design themselves. It’s true that engineers may use a ready-made template. But in this case, your app will look exactly like thousands of other apps. Besides, your idea isn’t built for a specific template. Trying to make it fit into one may result in an app that looks cheap and unattractive.
The primary task of developers is to code, not to create nice designs. UI/UX design requires creativity, an awareness of modern design trends, deep expertise in software design tools, and a ton of creativity.
A talented designer is an artist who makes your software a masterpiece to be loved by users.
A UI/UX designer contributes to all stages of app development:
- Discovery phase
In the discovery phase, a designer helps to prove the app’s concept by creating app screens and wireframes.
In cooperation with a BA, a designer creates a prototype that allows you to reach out to potential investors.
- Idea testing
Software designers may provide you with several design ideas. You can test them and decide which leads to more conversions. Frequent design iterations may help you constantly improve your app and warm up users’ interest.
- Brand identity
A designer creates logos and other visual elements to increase brand awareness and make your company recognizable.
- User interface and user experience
The designer’s responsibility is to create a visual interpretation of your idea.
Much more than an attractive interface, users now demand a seamless journey. A good-looking app won’t succeed if it’s hard to use. Simple navigation, an uninterrupted user journey, and a seamless experience boost your app’s viability.
What if you don’t have a designer on your software development team? Without a designer, your app’s interface may seriously suffer. If you don’t think you need a full-time designer, hire a part-time designer.
Software engineer (SE)
Software engineers (or software developers, or programmers) convert requirements and designs into real clickable apps that can respond to user queries, interact with other apps and services, provide answers, and meet your expectations. Software engineers build exactly what you want to see up and running on the web.
Backend engineers, or server-side engineers, make your app not only look good but work well. They’re responsible for developing your app’s functionality and improving its performance. They connect an app to servers, databases, and APIs to make it useful. PHP, Node.js, Python, Java, and Ruby are some of the tools backend engineers employ.
If you want your app to be as user-friendly and popular as possible, you should make it available as a mobile application downloadable from the app stores. Swift and Java/Kotlin specialists can help you build native mobile apps for iOS and Android. As an alternative to native development, you may consider a cross-platform approach. Cross-platform development may be more efficient in terms of cost and code reusability. For example, React developers can build your app’s front end and also make it available as a mobile app using the React Native framework.
Who is a software architect (SA)?
At your project kick-off meeting, you’ll likely get acquainted with a software architect. In some teams, this is also the technical or team leader. The software architect is the most skilled engineer on the team. Unlike other software specialists, the software architect not only codes and works on app development but contributes to project management and system analysis and provides an essential connection between the business and technical sides of the team. A software architect provides a technical vision for the product discovery, designs the product architecture from scratch, constructs the solution, and leads the software development team.
Test engineer or QA engineer (TE or QA)
With a myriad of apps and websites, it’s a challenge to attract users’ attention and make a potential user take a look at your app, but it takes just a second to lose a user forever. Poor product quality may be one of the key reasons for that.
So who’s responsible for product quality?
- Is it you?
Of course, you can invest your time in testing. But with software engineers working eight hours a day on writing, fixing, and refactoring code, you’ll need to invest a great deal of time on testing.
You probably don’t have this time. And if you do, you probably want to invest it in critical business development tasks, not in software testing.
- Is it a software engineer?
Surely, app developers can check the functionality they build. But that will only result in wasted time. When testing a product, engineers won’t have time to build other features. If they invest their time in quality assurance, your time to market may be greatly extended.
- It must be the software tester
A test engineer (or quality assurance engineer, or quality control engineer) is responsible for assuring that your app’s design and functionality meets product requirements. A test engineer develops test plans and test cases, then executes tests to validate the product and find possible errors or bugs in its functionality.
Without a test engineer, you either lose time (if you test your app yourself) or money (if you want developers to test it) or product quality and users (if no one tests the app).
Now you’re acquainted with all the software development team roles you may need in the initial stages of product development. Later, you may need other specialists to join your team, but for now, let’s check out the optimal software development team size.
Software development team size
How big should your development team be? It’s impossible to answer this question without a deep understanding of your idea, business requirements, and expected time to market. Be wary of claims like “We’ll build your app in a week” or “Two developers will do all the work for you.” No one can estimate the scope of work, development team size, budget, and development duration without detailed information.
These are the main factors that may impact the size of your team:
- Product complexity
If you need to prove your concept and build an MVP, a team of four to six specialists may be enough. However, if you’re going to completely redesign an existing app, launch a fully functioning product, or deal with another complex software solution, the number of team members you’ll need will increase.
For example, if you want to build the front-end of your MVP using Angular, one front-end developer who specializes on Angular will be enough. However, Angular apps differ by their complexity. And if you want to build a fully functioning, feature-rich product, you may need two or even more Angular developers.
During the pre-seed round of investment, your budget may be limited. The amount of money you have available will limit the size of your team.
Our highly competitive world requires fast decisions and swiftly built products. The less time you have to roll out your product, the more specialists you may need to build it.
To sum up, your team may consist of four specialists or thousands. But it’s always better to start with less and extend your team than to start with a huge team and run out of budget before your product becomes profitable.
Software development team structure
Just like the size of your team, the software development team structure will depend on what you’re looking to accomplish. Here are three common scenarios.
1. Product discovery
- Team size: 5+ specialists
- Team structure: product owner, project manager, business analyst, software designer, software architect
If you’ve got a great idea but aren’t sure whether it has potential, product discovery is the phase you need to start with. In this case, your team may consist of a product owner, project manager, business analyst, software designer, and software architect. These specialists working together may deliver real proof that your product is viable. In other cases, they may suggest a pivot and help you modify your concept according to market demands.
2. Prototype development
- Team size: 4+ specialists
- Team structure: product owner, project manager, business analyst, software designer
Developing a prototype may be part of product discovery or an independent process. If you have a comprehensive understanding of your product and want to win investors’ attention, a prototype may help with that. A product owner, project manager, business analyst, and software designer can turn your requirements into a fundraising magnet.
3. Minimum viable product development
- Team size: 8+
- Team structure: product owner, project manager, business analyst, software designer, software architect, software engineers, test engineers
If you need to build an initial version of a promising app, consider starting with an MVP. A product owner, project manager, business analyst, software designer, software architect, and several software and test engineers can build a brilliant MVP for your business.
In the book Inspired: How to Create Tech Products Customers Love, Marty Cagan says:
“A product team is a set of highly skilled people who come together for an extended period of time to solve hard business problems.”
Today, you’ve found out all the software development team roles:
- Product owner (PO)
- Project manager (PM)
- Business analyst (BA)
- Software designer (SD) or UI/UX designer
- Software engineer (SE), including software architect (SA)
- Software tester (ST) or quality assurance specialist (QA)
Now that you know the importance of each role on your software development team, you can start hiring and building a strong app-based business.