September 4th, 2024, posted in for_founders
by Adelina
Building software as a lone wolf sounds great and all, but the best software development projects are a team effort. In the Agile development methodology especially, a software project requires a certain set of roles and responsibilities, for the project to function properly.
So what does that mean? Well, when building software, you need someone to manage the project goals and tasks. You need a UI/UX designer to create the look & feel of the app. You need a tech lead to oversee the code. You need at least one developer and someone to test their work.
In other words, a software team doesn’t entail just one or two developers. It’s an entire ecosystem of people trained to work together seamlessly. To handle not just the code part of software, but also the usability, management and quality assurance sides of it.
So in this article, we’re going to tell you more about what kind of roles you need in a software team, not just in general, but for smaller-scale projects. So you can make the best hiring decisions for your needs.
Project manager
With both small scale and larger scale projects, you’re always going to need a project manager. This team member holds all the information and is the gateway between the designers and developers and the project stakeholders.
In software development, project managers keep track of all tasks that need to be completed, they organize meetings with the product owners, they handle all communication with them, they hold status meetings with the designers and developers to keep track of progress, and overall they make sure everyone is doing what they’re supposed to, following the timeline set by the stakeholders.
How can a project manager help a product owner? Project managers will keep them up to date with everything happening in the project: the tasks that have been completed, tasks that are currently in progress, and those coming up next. They can also bring any questions the developers have to the product owners and organize meetings to discuss or brainstorm with them.
In other words, project managers bridge the gap between the technical part of the team and the project stakeholders. You can’t really rely on the designers and developers only, as they have plenty on their plate already. Asking them to do project management tasks can lengthen their work or delay the completion of their current tasks. Not to mention they might not be good at it, since it’s not their job.
What’s the ideal situation where you can do without a project manager? Ideally, you should always have one in your technical team. But if you’re in a time or budget crunch and really can’t afford one, then you, as the app stakeholder or product manager, should fill that role.
In that situation, it’s best to open communication channels with your technical team, let them reach you easily, tell them when you’re available to chat (whether through text or through calls), hold regular meetings (daily if there are a lot of tasks and you work with a bigger team, weekly if it’s a smaller team with lengthy tasks) and check in on them as often as possible. In such situations, it’s useful to work with platforms such as ClickUp and Jira in order to keep track of tasks.
UI/UX Designer
We’ve talked a lot about the importance of design-first development. When starting a new software project, you might want to go straight into code, as that seems the best way to see your app come to life. But if you’ve only got an app concept and a list of key features, maybe some user stories as well, you’re leaving the look and usability of the app to chance. Or, better said, in the developers’ hands.
The risk of doing that is after months of code, your app will come to life and you’ll realize you don’t like what it looks like, or that it’s difficult to use. Or you do focus groups with potential users and they come to you with multiple complaints regarding usability.
This means that the time & money you might be saving at the beginning of the project by skipping design, will have to be spent after the app goes live. And it takes much longer to reiterate a live app, as features within a piece of code depend on each other and developers have to tinker carefully so as to not break existing functionality.
So when starting a new project from scratch, with just a list of features and maybe a visual branding guide, it’s important to hire a UI/UX designer, or even 2 if it’s a larger-scale project. Their work will come first, before any development is done, as they will map out the entire look and feel of your app.
This will allow you to see exactly what the app will look like and how it’ll work, especially if the designers add prototyping to their screens. This way, you can see what you don’t like, what’s missing, what you can do without, and quickly reiterate with the designers.
Most importantly, UI/UX designers will know what works best in terms of looks & usability. Some developers might be good at design, but not on the same level as an actual designer. And UI/UX designers will also be good at mapping out user flows, user research, and overall coming up with the best user experience for your users.
What does that mean, long term? It means that your app will better serve its intended users, which means having happy customers, which means better conversion rates for app stakeholders. In other words, it’s a good return of investment.
Now, if you’re in a situation where you’ve worked with a designer already, finished the entire app design, and you want to move it into development, this can go in either of two ways:
-
You decide not to hire a designer. You’ll have to stick to what’s in the design and build those features only, as there isn’t someone who could update the design.
-
You’ll hire a designer in case you decide you want to add new things, change certain features or remove something that affects the look of specific pages.
So how do you decide if you need a UI/UX designer in your team or not? Well, if you don’t have an app design, you’ll need one. If you do have a design already, be sure about it before you make your decision. Is there a chance you’ll look at it again in a month and realize you forgot certain features? Then you should hire one. Did you look at it enough, test it with potential users, and thoroughly compared it with the list of features you had in mind? Then you might not need one.
Tech Lead
We always have a tech lead in our dev teams. A tech lead is a senior developer, usually fullstack, who oversees the coding process and ensures that the devs don’t make major mistakes. They’re like a big brother, except they truly want what’s best for everyone.
Tech leads are particularly useful to have in large teams with junior or mid-level developers. They can help manage the technical aspect of things, while project managers only handle administrative things such as keeping track of tasks - but not specifically how the tasks are getting done.
They can help teach developers and lead them towards the right direction in the coding process. This is useful long term for the junior developers, and it also ensures that tasks are getting done well in software projects.
In other words, their role might be big, but it’s not as time consuming as other roles. If you pay everyone by the hour, you won’t spend too much on a tech lead. They’re a good addition to a development team if your developers don’t have too much experience, or need help with certain aspects of the project.
Now, you might ask, do I need a tech lead if I’ve hired 2 or more senior developers? Not really. You could designate the most senior of the ones you hired as the lead - they’d still code just as much as everyone else, but they would also oversee everyone’s work to make sure it’s going smoothly. But if your team has, let’s say, 7 years of experience each, you don’t really need someone else to lead them.
So when deciding if you need this role in your team or not, it’s best to look at the developers you’ve picked out already, look at your budget, the length and complexity of your project, or maybe even talk to the developers you’ve chosen already and ask if a tech lead would be helpful for them.
Backend & Frontend Developers
Backend developers handle the nitty gritty aspect of an app - the architecture, the database, and the way those blend in with the frontend (which is what users see). They hold a key role in building a software product and you can’t really skip out on hiring one.
Backend developers focus on the behind the scenes of what you usually see in an app, so hiring someone to do frontend but not also someone to do backend means getting an app with no spine. It can’t really be held up. It’ll disintegrate into mush.
Frontend developers, on the other hand, will bring to life what you see in your app designs. They focus on what meets the eye - the layout, colors, typography, any hover effects and animations, and so on. They build on the foundation made by the backend developers and use what comes out of that to create fully breathing apps.
You might think - can’t designers handle this part? Some designers are, indeed, trained in some frontend technologies. Usually the very basics like HTML, CSS and Javascript. So they might be able to do that for you, but this sort of situation is pretty rare. Not many UI/UX designers do frontend as well, as these 2 are separate roles. Don’t expect to easily find someone who does both, especially someone who does them equally well.
So the conclusion here is that you definitely need both roles. Now, if you don’t want to hire 2 people (or can’t), you can look for a fullstack developer instead. A fullstack developer does both backend and frontend, so it’s the best of both worlds. Do expect this approach to take quite a while, as you’re putting a lot of work into the hands of one person. This can be ideal if you can’t find 2 separate people to do frontend and backend for your app - but having just one developer can be challenging.
With just one developer, there’s no one to oversee their work, who can help them fix any issues (while also having access to the code base) or who can find problems the one developers can’t see, as it’s their own code. This can be risky in the long run, as issues can arise throughout the code, which can negatively impact the app’s user experience.
Now, if you’re building a small project, or adding new features to an already-existing project, one fullstack developer might be enough. But larger scale projects, that can take up to several months to build, might require 2 or more developers. One of the best combos is a tech lead, a backend developer and a frontend developer. Alternatively, if it’s a very big project, you can hire 2 or more backend and frontend developers each. This really depends on the size of your project, and if your initial team seems to be unable to handle their tasks, that’s a clear getaway that you need more manpower.
Quality Assurance or Testers
One inevitable part of building software is having bugs. It’s a given when writing code - you can write the best code in the world and little issues can still slip away. Even more so when building on top of an existing project, especially with new people who didn’t work on the original code.
In software development, this will be handled by the quality assurance team. This team is composed of engineers and/or manual testers who will use the app to test its main functionality, but they’ll also use it in less conventional ways to try to break it.
But why would they break it, you might ask. By finding ways the app can be broken, especially trivial ways that regular users can do, you’re also finding ways to fix it. You're not breaking the app to leave it so - what QA is supposed to do is find pain points and vulnerabilities, which then the development team can fix.
Thoroughly testing an app before release is very important: bugs can always get through, and releasing without checking for bugs means letting the users do that for you. This can create a bad user experience, which can negatively affect your conversion rate.
Picture this: you’re an ecommerce customer and you’re trying to place your order. There are 2 fields for 2 different address lines, but your address is short and only takes up one line. After filling your info and hitting Save, the app tells you you have to fill in address line 2. But there’s nothing to add to it. And it won’t let you continue. Would you abandon the order? Probably yes.
Having a dedicated team, or at least one person, in charge of testing your app is crucial: some bugs can make it impossible to fulfill certain tasks the app was meant for. What’s the point of building an online store if you can’t place orders, right? Testers will check out every use case of the app and even use it in ways it’s not supposed to be used - such as intentionally doing things wrong. This ensures that they can find hidden issues, which will then be fixed.
Can’t testing be handled by the developers? To a certain extent, they can. Developers often implement automatic tests into their code, which can help avoid major bugs. But automated testing can’t cover the human part of things - people tend to click on the wrong thing by accident, they forget things, or they don’t pay attention to key information.
Developers, or designers, can, of course, test their own work. However, the risk of this is that they’d use the app entirely as intended. Which means they might not find issues or manage to break it. Also, they might go easier on themselves. So it’s best to bring someone else who’s not emotionally attached to what they’re testing.
So, do you need testers in your team? The answer will always be yes. You need someone qualified to find your app’s pain points before your customers do. But what varies is who will be doing the testing: if your project is small and low-budget, the project manager or the designer could handle testing. But if it’s a larger scale project that can take up to a few years, you’ll need at least one dedicated tester.
And there you have it, these are the main roles you’d need in a software team and what each person would be in charge of. After all, who you choose to hire depends on the nature of your project and how complex it is. That’s for you to decide, but we gave you a few guidelines which will hopefully help you in your decision.
Looking to form a great software team for your own project? Contact us and let’s see what we can do together.