According to the latest trends in a great number of IT outsourcing companies as well as in product development companies developers started to work without any QA and PM assistance. The most common explanation is that a developer can check his results on his own and understand the tasks as well. Of course, in most cases an experienced developer will be capable to work solo, however, how will it affect the velocity? Also, will a junior developer be capable of work without management?
Let’s not focus on little projects, but let’s talk about software where there are lots of different scenarios possible.
In case you are developing an MVP and hired a solo developer to work on your project, in order to save the budget, you can discuss the tasks with the developer using Trello or Jira as a management tool. To save the budget you can do general QA on your own and in the end hire a QA to do a regress testing. Here might arise multiple questions, such as absence of the specification to understand all the logic of the app for the QA, absence of necessary devices to proceed testing. However, in general this concept might work.
When we are talking about big complex projects, we have noticed the following tendencies:
- A developer is provided with a general task and has to work solo to achieve the right results. After completion, he assigns the task to the QA;
- A developer is provided with a set of detailed tasks. After completion, he has to check all of them on his own and will be fully responsible for not working software or a piece of functionality.
These options might work mostly in product companies, where developers have years of experience working on one same product. Regarding outsourcing, as the practice shows both options do not provide the client with good final results.
The main risk of getting a general description of the task from the customer is misunderstanding of what should be done by the developer. Usually, how a developer understands and how a product owner expects – these are two extremely different approaches. As the result the delivery is usually delayed and the amount of hours might be up to twice higher, then initially estimated. This is one more point, why there is an intermediary between the customer and the developer in the form of a Project Manager. A Project Manager is usually more oriented to ask the customer “right questions” and then to “translate” them into detailed technical tasks which would be easy to understand for a developer.
When it comes to the option, when developer should do testing of the functionality implemented by himself, at first glance it seems very easy. However, you should always keep in mind that before each release QA department is doing a regress testing. Why? – Simply because changing something in one place can easily break something in another part of the application. So, as a result the developer will check the functionality he was working on and will not notice that in the other part of the software his fixes have broken something.
The concept we apply at Code Inspiration – and consider to be the best one is:
Do not mix the roles of team participants
Having experience developing projects from scratch, we also form dedicated teams for B2B segment of companies which do not have their own tech teams or need to scale their existing international teams with resources. Based on this experience we consider these two typical models to be the best “template” to form a team of a product development. Of course, the team can be scaled and adjusted according to the size of the project, number of ongoing tasks for the team and so on.
The opinion of Code inspiration is the following: it is always better, when each team participant concentrates on his/her roles rather than combines roles of a PM, QA and a developer. When each team participant will be performing well his role – the velocity on the project would be higher and atmosphere on the project would be positive.
And which team composition do you have on your project? Are you for or against the approach to mix the roles?