Pen

5 Reasons Why You Really Do Not Need More Developers

13 May 2019 | Marcin Michalski | development rad

Do you want to make an app? Do you want to make an app quickly and with low risk? Find out about alternative solutions and stop thinking about hiring developers!

From the article you will learn:

  • whether the process of launching applications on the market can be accelerated;
  • whether all application functionalities must be provided immediately;
  • what to do when the team’s performance decreases;
  • what to do to reduce the chance of errors in the application;
  • how important the application quality assurance process is;
  • what are the consequences of the lack of a Project Manager in the team.

It’s not that I believe that software development services are not relevant. Quite contrary especially since I’m running software development agency for over 7 years. However there are moments where you naturally may think that the solution to all your problems is to hire extra software developers while this is not necessary the case.

In this article you will find out when you should not think about hiring software developers and use alternative solutions that will not only help you save time and money but also allow you to end up with a better application. Because new product development starts with a well-thought-out business strategy supported by technical and technological skills of owned or hired team.

The text describes real examples that I experienced during my career. I tried to cover 5, in my opinion, most common topics which address different stages of development life cycle of digital project where you may think that you need extra developers. So, you don’t need more developers when...

1. You want to speed up the time to market

Sometimes you see that your dev team is not delivering solution fast enough. Of course the easiest way would be to add extra capacity into your project to speed up. However this may help you address current situation but not necessary the root cause, not mentioning how it will affect your budget. There are several reasons why the dev team is not moving fast enough which I will describe later on. Before you start an expensive recruitment process, talk to your team and find out what may be the main cause.

2. You have a lot of functionalities to deliver

Yes, obviously if you need to provide specific functionalities there is always a need to have someone who will make them. However believe me or not, some of the functionalities that you will have in your software are not unique. Lots of applications need to handle user management, registration, login, profiling, payment functionalities or shipment. This is nothing really specific to your case so check if there are some ready made solutions available on the market which can do that for you and you can use.

Moreover some software agencies, at least the mature ones, switched to something which is called microservices. The solution was first introduced by Netflix and now is more commonly adopted by the IT sector. This is a new way of designing software architecture as a set of many small micro applications which can be used in several large applications also in yours. If software agency has such microservices they usually provide them to theirs customers free of charge, so check if the one you are working with has some microservices that you can actually use in your product.

This could reduce necessity of your software development capacity even up to 15% and you can use this budget for adding new features or to invest in sales and marketing of your product.

3. Developers performance is going down

Sometimes you may wonder why at the beginning of the project developers delivered functionalities faster and now it’s slowing down. Are they tired with the project? Maybe they don’t care about it anymore or maybe new functionalities are more complex than the previous ones and you really need more developers.

Very often when you kick off the project you just want your developers to go straight to implementing functionalities and hence they don’t focus on preparing proper foundation for your project. At the beginning it allows you to speed up, however once the project evolves, the application is getting bigger and your technological debt is getting more frustrating. Not only for you but also for you dev team.

Since the dev team doesn’t provide functionality on time you want to increase the capacity of the team to speed up. This solves your problem only temporary because after some time your project starts getting bigger and so is your technical debt. Soon you will realize that the dev team is slowing down again.

The Continuous Delivery Process

If you want your team to be efficient, invest not only in developers but also in devops (development and operations). Devops will help your team to become more efficient by setting up Continuous Delivery process which involves elements like Continuous Integration servers, project containerization and automatic deployments of your tests, staging and production environments. This will allow your dev team to focus on your IT product development rather than struggling with setting up environments, servers or production deployments. This will also help your test team, if you have one, to quickly detect bugs thanks to automated deployment of new version of your product into test environment.

4. There are too many bugs which can take too much time

We have lots of bugs so we need more developers to fix them. But the right question is, why do we have some many bugs? Is it because our developers are messy or maybe because we are lacking of real Quality Assurance process.

While talking to customers, I am often being asked, why there is so much time needed for testing, or why developers can’t check the code on their own? Sometimes I’ve been told that testers aren’t needed because client will test the product on his own.

Approaches described above have several consequences. First of all programmers are not testers. They are usually trying to check if the system works according to specification - so called acceptance testing. What they don’t check is abnormal behaviour of the system like corner cases, improper usage of the system - so called exploratory testing. And actually the exploratory tests are the ones which usually discover numerous bugs.

If client wants to test the system on her/his own, s/he usually focus on newly delivered functionalities. What she doesn’t check, is whether old functionalities were impacted by the new ones. The reason to do so, is that a new code can break previously working functions or introduce errors, or create bugs. Testers would perform regression testing which, by the way, if not automated, may be very time consuming.

The effects of the lack of a quality control process

In the end, lack of real Quality Assurance process might become inefficient. Lots of bugs might get through into live system and stay undetected even several months after. If the bug is detected in the later stage of our project, the cost of fixing it might be drastically higher. Just imagine a software developer who programmed the functionality several months ago and now s/he needs to fix the bug which was discovered. Trying to remember what this was about will consume lots of time. Moreover if the code changes were introduced some time ago the developer might no longer be with your company. Apart from fixing the code you might also need to involve Data Base administrator to fix your production database which was already corrupted by the bug.

The bug may also cause additional financial loses. One of the banks, I used to work for, had an issue which placed wrong price on the insurance contract. They lost a huge amount of money thanks to that. Besides finances you can also suffer reputational loss which are hard to express in numbers.

That is why instead of increasing capacity of your dev team, it is better to invest in good Quality Assurance process in software development life cycle. It is necessary to ensure an appropriate standard of software development. Testers should not only be able to perform manual tests but also to run test automations. Thanks to that you will be able to run regression tests every time when you need to publish new updates of your product. This will help to detect more bugs in your product right after they were introduced and reduce the risk of publishing the bugs in production. As a result your dev team will be able to fix them quickly and focus on new functionalities.

5. You don’t hire a Project Manager

Fish always rots from the head - this also refers to custom software development projects. It is important that your dev team is managed by experienced Project Manager. Someone who understands both business and technical world. You might not understand technical world and developers might not necessary understand the business one.

Good Project Manager should verify if developers fully understand what needs to be delivered and whether the team is on track with the functionalities or not. PM role is also to challenge your requirements to find out if they are relevant to the project. If you would ask developer to implement some changes he would probably agree ad hoc. PM on the other side, will ask about the reasons why you want to make those changes and what do you want to achieve.

Thanks to that PM can filter out functionalities which are irrelevant in order not to flood your dev team with features which, in the end, occur to be needles and don’t impact your products success. Moreover, during such discussion, PM basing on your intention can actually find another solution. Which usually will be more suitable for your case.

You usually don’t need extra developers, you need to review your processes

Of course, software developers are indispensable element of development life cycle. But it’s worth to emphasize that they are only one element of the whole bigger thing. Programing skills need to be surrounded by at least few others, like testers, devops, PM, UX/UI team and microservices. All of that will help you in achieving your goal. Trying to cut expenses or only focusing on developers may cause more problems than you think. Only thanks to the synergy of people with different competences, it will be easier for you to do the product development cost estimation and control the entire process. As a last resort you can always decide for outsourced product development and hand over your IT product to the Technology Partner, who will deal with the process of creating it in a holistic way. In the end it’s your time and money so invest them wisely.

Lemlock ebook. Expert Guidebook: Three vievs on cybersecurity
We would be happy to talk about your project!
Consent to  data processing for contact purposes
I confirm that I have read the  information clause of Sagiton Sp. z o.o.

I hereby give consent to the processing of my personal data by the Personal Data Controller (hereinafter: "PDC") – Sagiton Sp. z o.o. ul. Fabryczna 19, 53-609 Wrocław, within the scope of: full name, e-mail address or telephone number, for the purpose of sale of products and services of Sagiton Sp. z o.o. and for the purpose of sending me feedback and making contact with me by Sagiton Sp. z o.o.

At the same time, I acknowledge that: at any time I can request the removal of my personal data from the PDC Sagiton Sp. z o.o. database, by sending an e-mail to hello@sagiton.pl, or a letter to Sagiton Sp. z o.o., ul. Fabryczna 19, 53-609 Wrocław, with a statement containing the relevant request, which shall result in the deletion of my personal data from the PDC Sagiton Sp. z o.o. database; I have the right to access my data; providing my data is voluntary, however refusal to provide it is tantamount to not receiving information regarding sale of products and services of Sagiton Sp. z o.o., as well as not receiving feedback and making contact with me by Sagiton Sp. z o.o.

In accordance with Art. 13 section 1 of the General Data Protection Regulation of 27 April 2016, (GDPR), we would like to inform you that the controller of your personal data is Sagiton Sp. z o.o. with its registered office at ul. Fabryczna 19, 53-609 Wrocław, e-mail: hello@sagiton.pl.

Your personal data shall be processed within the scope of: full name, e-mail address and/or telephone number in order to answer your question/request for contact and send feedback – pursuant to Art. 6 section 1 (a) of the GDPR, i.e. consent to the processing of personal data.

The data controller would like to inform you that your personal data shall not be disclosed to third parties.

Your data shall not be transferred outside of the European Economic Area or to international organizations.

Your personal data shall be processed until you withdraw your consent to the processing of data, as well as if the purpose for processing this data shall no longer be applicable.

You have the right to access your personal data, rectify it, delete it, restrict its processing, the right to transfer it, as well as the right to object.

In the case of giving your consent, you have the right to withdraw it at any time. Exercising the right to withdraw the consent does not affect the processing carried out before the consent was withdrawn.

You have the right to lodge a complaint with the supervisory body, i.e. the President of the Office for Personal Data Protection, ul. Stawki 2, 00-193 Warsaw.

Providing your personal data is a prerequisite for making contact with you by Sagiton Sp. z o.o. with its registered office at ul. Fabryczna 19, 53-609 Wrocław. In the case of not providing your personal data, Sagiton Sp. z o.o., shall not be able to contact you.

The Data Controller, Sagiton Sp. z o.o., would like to inform you that they shall not use your personal data for automated decision-making, which is based solely on automated processing, including profiling, and has legal effects for you or affects you significantly in a similar way.