6 out of 10 clients of ours have bad experiences with different software developers or different software companies. Many issues surfaced when dealing with developers. First, we are going to talk about the different pricing from different software companies.
You presented the exact same requirements to 10 different software companies and you get 10 different pricing. Why is that you may wonder? Isn’t programming just punching in a few codes and magic happen? This is how many see software developers.
Let’s talk about a registration function for example. Developers may charge RM200 all the way to RM3000. There is a big gap in between. This is because different pricing may have different to offer.
Someone who charges you RM200 may develop a very simple bare-bone registration form that connects to the database with no proper practice which may open up your registration system to vulnerabilities. Or when you have 1000 users clicking the signup button at the same time, the system may stall.
This is how it may look when you build a registration function for RM200.
What if you pay RM1000 for a registration function?
Now you get something that looks better than before and the developer used Laravel to make this form in which the system now is scalable.
Let’s go slightly to RM1400. The developer now puts more time into designing the form. A number of revisions have been made to the form to make it minimalist to the users’ eyes.
Let’s shoot up to RM3000. The developer will be using a high-end framework like Node/Angular/React/Vue to make the registration function.
You will get different results from different companies. There is no such thing as “market price” in this industry. It’s all about value pricing. You get what you pay for.
Pricing really affects how the system is made from the point of front-end as well as backend. This is why we have laid down a number of factors that one should consider before hiring a software company :
Backlog of Projects
Low price means more projects, more projects means available resources will be shared among all projects and quality will go down.
Let’s say the overhead cost of a software company is RM50,000 and there are about 5 developers. Some companies will be charging less than their competitors by taking lots of projects to break even. Let’s say there are 6 projects and the first payment of RM10,000 is taken from each of the clients, then RM10,000 will be the net revenue. However, the problem with charging less to win projects is that they tend to lose focus since they have to juggle in between projects.
Find a company that will charge higher and has more developers so that more attention will be poured into your project.
Skills & Experience of Developers
You can guess the developer’s quality based on how much a software company quotes you. An experienced developer who can work on mobile app development will cost from RM8,000. An experienced web backend developer will cost from RM8,000. If the project timeline is 4 months, and let’s say both the app developer and backend developer have to each chip in 2 months of their working hours onto this project each, then the cost for the working hours alone is RM32,000. Therefore, expect the price to be higher.
When you have experienced developers working on your project, the code structure is going to be cleaner and a better practice will be followed which means your project will be easily scalable and there will be fewer vulnerabilities in your system.
Management of the company
Some software companies have a strong line of developers and they may still fail to deliver their client’s project as per clients’ requirements. This is because of the mistakes in project management. A project manager who does not have experience with programming or any programming knowledge tends to bring down the quality of projects by mismanaging.
Where things exactly go wrong is when the managers set deadlines. Programmers are given very very tight deadlines which are unrealistic so that the companies can keep up with all their projects. When a tight deadline is given for a programmer to let’s say add a chatting module, he won’t be paying attention to the details. He won’t be using the best practices that should be used for making a chatting system. He may just use jQuery and do a simple chatting system and not use Firebase to do the works professionally. As a client, you probably have no idea the difference between using jQuery and Firebase as all you want is to allow your users to chat. These are elements that have space for improvement but are abandoned because of mismanagement.
Once the developer has done his work, not much testing will be done before submitting it. This will leave the client themselves to test in which half of the time client won’t be doing proper testing and the system will halt after it goes to production.
Prioritization by project amount
Beware of software companies that accept projects below the market price. They probably only doing it for their cash flow, and not much attention and resources will be put on your project as soon as you have made payment. In between the project, they will change some of the requirements that you initially proposed just to suit their resources. They will assign their interns & junior developers on such projects which when these developers do not have the capability of building any function, they will change it to suit their capability.
3 months project may take 9 months.
Individuals subcontracting projects
There are a lot of people who have no knowledge in programming who are convincing others into paying them to do their projects and end up subcontracting to other software companies. The problem here is that when the initial client explains the requirements to the middle person, the middle person ends up not delivering the proper requirements to the developers which when the initial client question the middle person, he/she will put the blame on the developers and clients left with no other choice but to accept whatever works done. When the requirements of the system are changed, now the client has to go back to the drawing board to change his plan according to the finished system and this causes their business then don’t take off.
Terms and Conditions
Different companies may offer different kinds of terms and conditions. You have to understand each and every detail to avoid problems in the future. During the development of a project, there will be a lot of 3rd party services used. Hosting, APIs, SDKs, plugins, extensions and etc. You have to make sure you have the access to all of the accounts if applicable. In some cases, all these will be under the company and only passed to you if you pay an amount. You also have to make sure if you get the source codes to yourself. There are a lot of cases where after the development, the client(s) will get to know that they have to pay an extra RM20k to get the ownership of the source codes. The worst thing is when you receive a message or email from the company requesting RM20k or your website will be taken down (this happens and some clients already sign the contract without understanding).
It is always good to have someone who understand the development to assist or advice you along the project.
Related Post:
[catlist categorypage=”yes”]