The product team 1/3: Working with the internal team.
By: Andrei Smagin
Tags: Team Building, Product Management, Teamwork, Team, Programming

Main roles in the team

You are a product manager, you need a team. Now I will tell you who it can consist of in web development. There are different sets of teams. These may depend on how complex the product is, how many users are in your product, and how the business processes in your team are built. Of course, there is also mobile development, but I think that after reading this part, you will not have any difficulties to assemble your team for it.

What does a backend developer do?

To put it very briefly and clearly — they programm everything that you don’t see on the screen. Applications, your website, program, project, etc.

In a more detailed way, it goes something like this:

Transfers business logic to code. Works with frameworks. Writes in: C#, C++, Java, Python, Ruby, Node.js, PHP. Responsible for the “server” functionality. Creates the product API. Works with SQL and NoSQL databases.

This person is well versed in at least one programming language — the one that your project is written in. It can transfer business logic to your code and understand the context in which it is executed. They can write integration to suppliers, such as a logistics company or bank.

They can work with databases, write queries to these, and program stored procedures.

They work with the server part of the code, deploys the code to production — put the executable code on the “combat” server where your application is running.

They write technical documentation, if necessary. Unit tests, integration tests, and others are also their responsibility.

What does a frontend developer do?

A frontend developer handles everything you see in your app or program. Everything you interact with with your hands: buttons, drop-down lists, clickable images. They create the client part of the application. A frontend developer deals with the layout of the website, creation of user interfaces.

Sometimes they do part of the backend logic in the frontend, such as programming the cart logic in an online store: recalculate the number of products, apply a discount, add a delivery address.

They interact a lot with the designer, as they need to transfer the layout that the designer drew to the programmable template.

As a rule, frontend developers are much happier than backend developers, as they deal with beautiful layouts and design. If your job is to spend the whole day looking at female models on the site, and not just at the numbers on the screen, you will be happier.

Front-end developer also works with frameworks — sets of ready-made tools that are already created by other programmers. This allows you to save time and make projects faster.

What does a full-stack developer do?

Everything you need to know about the full-stack developer: it does the same thing as frontend + backend, only worse. Of course, there are exceptions to any rule, but this is usually the case.

A full-stack developer can save you a lot of development time at the beginning of a project, but then you will want to share this role anyway, as you will need deep expertise.

What does a system analyst do?

The main task of a system analyst is to reduce uncertainty for the team. It should proceed from the “how can I help?” paradigm.

This specialist works with three levels of abstraction: user, code (business logic), and data.

They create artifacts in the form of user documentation, technical tasks, user stories, diagrams, and any other documentation. They keep it up-to-date: makes timely edits, supports the versioning of the project they are working on.

As a rule, a system analyst works ahead of the curve: if the team does tasks in a sprint, the system analyst prepares the development of features for the next sprint. They can quickly answer questions about the current functionality of the app, as it is very well versed in it.

They can and should conduct customer interviews, create check-lists, to rank the priorities of the tasks. They can analyze the situation and offer the best solution. In many ways, they complement and facilitate the work of the product.

What does a UX / UI designer do?

The first thing they do is create the design of your app. A UX / UI designer draws layouts, prepares presentations (if necessary), for example, a presentation of a new feature. They are well versed in user interaction and usability. They can tell you where to place the button in the app or how best to implement the new functionality.

They work a lot with prototypes and a CJM map of consumer interaction with the product.

A UX/UI designer works a lot with front-end developers, since the layout doesn’t get into the design almost ever, and this is normal.

What the tester does (QA)

The tester tests your product for bugs and errors. They check whether the program is doing exactly what it should be doing.

As a rule, a tester, especially an experienced one, is very well versed in your application, since they are constantly testing different blocks of its functionality. They can tell you where, how, and what can be improved. This is the second most important person in the team after the system analyst.

The tester works in manual or automatic mode. The tester can simply go through user scenarios, noting errors in the checklist, or write an automatic test in which the machine will do it repeatedly for it.

What does a Scrum master do?

The main task of the scrum master is to help remove obstacles to the normal workflow.

They help you organize a sprint — a two-week development cycle, conduct stand-UPS, demos, and retro events. They are engaged in facilitation (conflict resolution) of meetings. It is based on the paradigm “not to find who to blame, but to solve the problem”. A scrum master updates the statuses of offline and online boards (Scrum/kanban).

They ask the right questions in meetings. For example, “What key opportunity do you want to get this week?” or “What exactly is the question?» They help the team stay focused on the task at hand and not get carried away.

They help you evaluate tasks and divide them correctly into atomic, i.e. smaller pieces.

A scrum master creates the sprint goal.