8 Main Roles and Responsibilities In Project Management (Part 2)

In the preceding part, we discussed four key roles in project management. In continuation of this blog series, GCT Solution will discuss four additional roles that managers must be aware of when working for a software development company.

1. Backend

The backend of a software product is responsible for accepting requests from client apps and processing them on dedicated servers, which are often hosted by cloud services or server providers. To name a few examples, you can host a product's backend on Amazon Web Services, Google Cloud Platform, and Microsoft Azure Cloud computing.

There are other types of backend web services (e.g., RESTful, WSDL, and SOAP) that expose a set of operations that can be used by frontend applications or even integration services, but the focus of this blog will be on RESTful. RESTful web services are currently one of the most popular because they often rely purely on the HTTP protocol, unlike WSDL and SOAP, and they are relatively easy to comprehend and implement.

When product managers create new features or stories, backend teams typically implement them first because the rest of the product depends on them to complete the story. In certain instances, both frontend and backend implementations will begin concurrently, as there are always activities that may be completed without the backend, such as the implementation of the displays, and then subsequently connected.

Backend developers frequently face obstacles while developing backend operations, especially in terms of performance. This is because the backend must simultaneously handle a large number of queries, as all applications will be pointing at it.

When developing backend endpoints, optimization is a major consideration, including how to retrieve data, how to arrange data, how to make them easily adaptable to future modifications, and how to interact with external services, caches, databases, etc.

Authentication and authorisation are an additional concern that the backend must address. Public versus private endpoints, user roles (what users can or cannot access), revocation of access, etc., must be meticulously established by product managers, as they are fundamental to the product's concept.

When an application offers an online store or subscription-based services, the backend is also responsible for processing payments via Payment Service Providers or, as is usual nowadays, collecting receipts from mobile stores (Apple, Google, Amazon), authenticating those receipts, and acting accordingly. This indicates that backend services frequently collaborate with one another. This is also known as server-to-server communication or server-side communication.

Now that your backend is complete, it is time to begin constructing our frontend application, with which users will interface directly.

2. Frontend

The end-user-facing application of a product is the frontend application. Typically, when we refer to the frontend, we see a web application running on a web browser. Even though this is true, any application with a graphical user interface or command line interface can be termed a frontend application. In general, a frontend application is a piece of software that runs on the client side; this includes web applications, mobile applications, and, more recently, television applications.

The frontend work can be divided into two basic modules: representation and logic. Representation is the interface, how elements are shown, and how to interact with them. The logic consists of everything else that makes it an application, such as retrieving data, changing it to show it to the user, and handling requests, states, input validation, etc.

Depending on the size of the team or firm, there may be individuals who are solely responsible for a certain frontend duty, such as HTML and CSS representation specialists and JavaScript coders. This is extremely difficult to locate in starting organizations, as there is typically not enough work to differentiate these positions. In other circumstances, individuals are responsible for both the frontend and the backend; such individuals are typically referred to as full-stack engineers or full-stack programmers, depending on their expertise or academic background.

When a user story or feature lands at the desk of a frontend engineer, it is unclear whether they should begin with the logic implementation or the design implementation. In our experience, and as is usual in businesses, frontend implementation begins before the design is complete. In such circumstances, frontend developers typically begin with the logic.