Manual for IT Recruiters - II. Roles in the team

In the first part of this Manual for IT Recruiters, we describe individual roles within the software development team. The term “software” encompasses internet banking, accounting systems, CRM (a client management tool), various mobile apps, Windows apps, etc.

A full list of roles one can find in such teams would be the following: project manager, analyst, architect, tester a developer. Not all these roles need be in every team, however. In a smaller project, e.g. developing a simple web app, the team will often comprise just a project manager and 1-2 developers. The developers can often perform the activities of the analyst and architect, while the project manager can take on the role of tester. In contrast, where the project is significant in size, one can find a number of analysts, testers and developers within the team.
 

Project manager

The project manager’s objective is to manage the whole project – manage team members, communicate with the client, take responsibility for delivering the result by the agreed date to the agreed quality. The PM’s bread and butter is planning separate parts, communicating with all team members and organising meetings required. In order to successfully handle a PM role, you need to be rigorous, organised, good at planning and have excellent communication skills. Although PMs need not know in-depth about the technology used, they should have a technical education and have a good idea of how programming, analysing, etc. works. The project manager’s activities can be compared to that of a site manager in construction.

An example of the tools project managers use to organise their projects better:

Analyst

The analyst’s objective is to analyse the individual parts of the developed software. The analyst often communicates with the client and ascertains all their requirements. The analyst’s output in simpler projects is a text specification which serves as the assignments for the developers. For more complex projects, they also produce UML diagrams showing the processes the particular app will be implementing. The analyst is usually involved in the first phase of the software development. UML diagram example:

Architect

The architect’s task is to choose the technology which will be used to develop the particular software. Because there are today hundreds of technologies, programming languages and frameworks, the architect must carefully choose which components are most suited to the particular task: whether to use large robust or easy-to-implement frameworks, whether to use a native or hybrid programming language to develop a mobile app, how to set up the API, through which the mobile and web app will communicate, etc. Software architects also propose the architecture in general, determining whether it will develop procedurally or object-oriented, what data types are used, etc. The architect must have a lot of experience and in-depth knowledge in order to be able to always choose the best tools and procedures.

Example of web app architecture:

Software developer

a.k.a. programmer. Their task is to programme the whole app or part of it. Programming is done by “writing code”. The code differs depending on what programming language the developer is using. The app or software can comprise thousands, tens of thousands or hundreds of thousands of lines of code.

An example of simple code:

Tester

It is natural that the software developer may make errors during programming when writing thousands of lines. And so comes the turn of the tester, who tests whether the particular software works as it should. The tester proceeds according to scenarios prepared for him by the slightly more skilled test analyst, who is able to assess which parts of the application are critical and how to test them. The tester subsequently goes through the whole application, enters various values within it, verifies different procedures and endeavours to find places where the app/software works poorly. He subsequently reports back on these places and sends it to the programmer, who corrects it. We differentiate 2 types of testing – manual and automatic. Manual tests involve standard “clicking” through the app. Automatic tests are programmed pieces of code which, e.g., test the software at certain periods from a particular perspective.

Entry image
  • Javascript
  • Java
  • programming languages
  • PHP

What frameworks are, and the most commonly used ones

Besides requirements for knowledge of programming languages in job vacancies, there are also often requirements for knowledge of a particular framework. But what exactly is a framework? It is a programming language add-on, or one might say a package of components which makes programming in a particular language easier. Every programming language has a large number of frameworks. Let’s look at so

Vojtech Zahorsky
Entry image
  • Javascript
  • Java
  • backend
  • programming languages

Manual for IT Recruiters - V. Java and Javascript: the difference between them

One of the most common errors made by recruiters is mixing up Java and Javascript. These words are very similar, but their meaning and uses are entirely different. As we know from Chapter 3, Java and Javascript are two different programming languages. Java is most frequently used to develop backend parts of apps (that part which ensures functionality). In contrast, Javascript is used to develop th

Vojtech Zahorsky