Software Development - Roles & Resources

Lutfal and Champa and their team (Remote Programmer) in Kolkata have been working with me since 2003.

Andrew R. Taylor

I personally went to India to visit Lutfal and his team in 2007 to start off our project and they made me feel very welcome. I was impressed by their set-up and professionalism. I would highly recommend Remote Programmer to anyone.

Martin J Smith

We have used Remote Programmer for last 13 years (as on Jan 2020) and have always been impressed by the quality of the service they provide. We have a fairly complex website with more than 500 MySQL tables which requires a lot of work on an ongoing basis so we opted to use dedicated resources from them. It is a great value for money.

Martin Gibbons

https://www.peoplemaps.com/

From insightfulness to exquisiteness, RP proved to be an excellent partner on all aspects. Flexible work schemes, dedicated developers plus an advisory role indirectly.

Mohammed Moulay

Who to hire and why?

You can hire a single developer to build a simple CMS website.   There are specific templates available on the web, with some alteration an experienced developer can take care of everything you may need.

But when you are going to build a software system to deliver some specific set of benefits to its users, says a LEAN compliant product,  you need to take a different approach. It requires a wide level of expertise to handle different types of problems.  Chances of premature death of the project are quite high if you bank on a single person. You need a team.

Here is the list of resource types typically required for large professional web application development. You may hire some of them on dedicated and some of them on an SOS basis. Some roles may not be applicable to your project or one may play multiple roles -- all depends on the size, type, and complexity of the project.
 

Product Owner 

He is responsible for picturizing the whole system in advance. He is a system thinker. He talks to the operation team (stakeholders) of different departments and jots down the requirements. He talks to the dev team and explores the technical possibilities. Then he decides what system we are going to build. Normally he defines the business logic in terms of features, sections, and stories along with high-level acceptance criteria. He is the last man to say something about the software requirement.  

Hiring Tips:  For a small project this role can be done by the client himself or someone from the client team. You can also hire someone from RP to play the role as a proxy.
 

System Architect

He draws the architecture and decides development rules for the proposed system;  An architecture is a blueprint of a system how internal software units will interact with others. How much will be shared, how much will be distributed, etc; such that everyone has the freedom to think but at the same time we have central control important for performance,  security, robustness, maintainability, etc.

Hiring Tips:  We have been doing almost for the last 20 years and we have several system architects. We suggest you hire on an SOS basis only for a project. You can hire a dedicated one when you hire a team.
 

Scrum Master

Project development is not only coding work. Managing the project development processes itself a job- known as project management. Solving problems in the process itself is a job. Helping a developer to set up his local environment is also a job.  A scrum master’s job is to simply do anything to keep the project moving --- from daily scrum meetings to month-end retro.

The scrum master often has to play the role of an architect, server admin, test analyst, tester, and of course a project manager.  A scrum master solves those by himself/herself or by another person. He/she normally has vast experience in playing different roles in software development.  You should not expect this level of expertise from a developer.

Hiring Tips: We have several scrum masters and we automatically assign a developer under a scrum master. We suggest you hire on a part dedicated basis for a single project. You can hire a dedicated one when you hire a team.


Web Developer

The job of a web developer is to develop websites/web applications. The traditional web development techniques do not separate backend and front end codes. Both are often written in a mixed manner and then get executed in the same server process. And all these codes are primarily written by a web developer. Of course, he may seek help from a designer or from other experts. 

However for bigger projects, particularly in decoupled modern web application development projects, coding tasks are often divided based on application layers, and developers working on specific layers are termed by the layer name. Say, front-end developers, backend developers,  full-stack developers, and so on. Sometimes they are called by the technology names also - PHP developers,  Laravel developers, React developers, etc. But all are web developers.

Hiring Tips: You can hire a web developer on a dedicated or part dedicated or usage basis. A dedicated developer is always profitable for you as he will think only for your project. A part dedicated developer needs a monthly hour commitment. Usage-based - go as you require, but the cons are, you may have to wait.


Backend API Developer

Modern web development technologies (sometimes called technology stacks) try to decouple development into the backend and front end. Backend code and frontend codes are never written on the same files. They get executed separately too. A backend developer is responsible for the development of the backend APIs only. He/she is an expert in backend technologies (PHP/Node.js etc),  system design, database design, database coding, and SQL. He starts where product owners and system architects stop. An expert back end developer further breaks the requirements into TDD (requirement logic in terms of test cases), provides the technical solutions, does the coding, verifies/validates through unit & functional testing mainly, and delivers it to the front end developer. His job is to write the script which is responsible for fetching the data from the system as per request and handing it over to the front-end.

Hiring Tips:  You can hire dedicated or part dedicated. However, we suggest hiring on a dedicated basis because a part dedicated developer may not be available for a long time.  For medium, to bigger projects, we suggest hiring a separate back end developer.
 

Front End Web Developer

As already discussed, modern web development techniques try to decouple development into the backend and front end. The job of a front end developer is to build web interfaces that display the supplied data (coming through  API normally)  to the user as per display logic. The coding process is similar: finalize the display logic in terms of TDD points, write the code, validate and verify it and deliver to the product owner/tester.  

The front end developer must be an expert in HTML/CSS/Javascript along with high-level expertise in at least one frontend JS frameworks like REACT / Angular  / Vue.

Hiring Tips: You can hire dedicated or part dedicated. However, we suggest hiring on a dedicated basis because a part dedicated developer may not be available for a long time.  For medium to bigger projects, we suggest hiring a separate front end developer.
 

Full-Stack Developer

The full-stack developer has the skills of both the frontend and backend developer for developing a modern web application. A senior full-stack developer often plays the role of the product owner, system architect, test analyst, tester, and data entry operator - however, this is only possible for less critical tasks/feature development.

Hiring Tips: You can hire dedicated or part dedicated. A dedicated developer is always profitable for you as he will think only for your project. A part dedicated developer may get replaced from our end.
 

Mobile App Developer

Mobile app developers are basically front end developers.

The job of a mobile app developer is to build mobile interfaces that display the supplied data (coming through  API normally)  to the user as per display logic. The coding process is similar: finalize the display logic in terms of TDD points, write the code, validate and verify it and deliver to the product owner/tester.  

A mobile App Developer must be an expert in HTML/CSS/Javascript along with React Native or some other native development tools.

Hiring Tips: You can hire dedicated or part dedicated or usage-based. A dedicated developer is always profitable for you as he will think only for your project.
 

Web Designer

A web designer helps us to make the interfaces more attractive. By designing a better layout and by giving attractive color, normally in image formats. He/she also helps us to convert those layouts into HTML/CSS formats.  It is a creative job, a programmer without creative sense may never reach that perfection level even in a lifetime.

Hiring Tips: You can hire dedicated or part dedicated or SOS (when required) based. For a single project, we suggest SOS based because you don't exactly know when you will require him. If you are hiring a team and you have plenty of design work then only you should hire dedicated designers.
 

Server Administrator

Software applications run on a server. A server administrator’s job is to set up and administer the servers.  Especially setting up the live or dev server often requires help from a server administrator.

Hiring Tips: You can hire us on an SOS basis only. Certain routine jobs can be done by the developer too.  We suggest you hire on SOS basis only for a project. You can leave it to your hosting provider too. You can hire a 3rd person too based on your past experiences.
 

Database Administrator

For a large project, you must need help from a professional database administrator whose job is to check the health of the database server only. However, for small projects, the scrum master or even the developer can play the role.

Hiring Tips: Normally this role can be played by the developer unless your application data size has become too big. When required we suggest hiring on a part dedicated basis. In extreme cases, you need a dedicated database administrator.
 

Test Analyst

A test analyst will help the development team in writing the test cases (mainly nonfunctional) and test plans. A product owner in many cases only emphasizes the functional requirements and simply ignores nonfunctional test cases. He expects that developers will take care of everything. But it does not happen normally. So there is a high chance even after passing all functional test cases, an application crashes in production when a little high load is applied.  A test analyst can be of great help.

Hiring Tips:  We suggest you hire on SOS basis for a single project. You will never be able to predict the timing.  You can hire a dedicated one when you hire a team.
 

Routine Tester

A routine tester helps the development team to test most routine test cases. Routine functional or UX related test cases that do not go in the detailed business logic. But surprisingly if these cover 80% of the errors.

Hiring Tips: You can hire on a dedicated / part dedicated / SOS basis depending on your project and team size.
 

Load & Security Tester

A load/security tester has extra expertise in load testing and security testing tools like JMeter, sonarqube, etc. For large applications the importance of a load tester is immense. If load testing is not done in advance you may have to throw away  full application if it fails to withstand the actual load.

Hiring Tips:  We suggest you hire on SOS basis for a single project. You will never be able to predict the timing.  You may not need it for a simple application.
 

Data Entry Operator

Any web application often requires existing data to be fed into the system. A data entry operator does this job. The job of a data entry operator is not rocket science but without his help, an application can not be launched.

Hiring Tips:  We suggest you hire on an SOS basis unless you have a steady flow of work. In that case, you can hire on a dedicated or part dedicated basis.
 

Content Writer

If your application has some information pages you may need a content writer to write it in a presentable way.  It is not exactly a development JOB but often we have seen many projects are often kept pending just because of the fact content has not been written.

Hiring Tips:  We do not provide this service and we suggest you do yourself or hire a good 3rd content writer. We will coordinate with him on technical/SEO points if required.
 

SEO Expert

If the application has public pages and that requires to be listed in search engines you must need the help of an SEO expert to make it SEO ready before launching. Otherwise, nobody will be able to see your website through search engines.

Hiring Tips: You can hire from us or you can or hire a 3rd person. We will coordinate with him on technical/SEO points if required.
 

Digital Marketer

You need a digital marketer only when your objective is to reach a target audience through promotional campaigns. The responsibility of a digital marketer to promote your website in search engines, social media, and other digital media. This is not a part of the development process nor application launch will be pending if you do not assign a digital marketer to do his job, but your business objective of the project may not be fulfilled.

Hiring Tips: You can hire from us if available or you can or hire a 3rd person. Best if you do it yourself with your in-house team. We will coordinate with him on technical points if required.