Commissioning someone or a company to develop software from the ground up or customize an existing one have always been the default option for companies who couldn’t find an off-the-shelf software to fit in their needs.
On the other hand, a lot of software companies, especially startups or young programmers, offer their services without seriously considering proper software engineering and development process.
And even for a mature service provider, if one hired wrong people to execute the process, software development and implementation are doomed to failure. As I always say, it should be a collaborative effort by both the customer and the provider to make it a success.
Here are some scenarios that you should be careful of when engaging with a software development project:
Scenario A – Both the developer and the customer have minimal or zero experience in software development. In this case, the customer will provide their needs; the developer will listen and do the requirements without any documentation, possibly execute in a waterfall approach and upon delivery, the customer will ask the developer to make a significant overhaul of the software.
Scenario B – The developer has vast experience, but the customer demands to do it their way. In this case, as the developer, even how proper your documentation is, specifications are well defined, and test scripts are well written, if the customer does not realize the value of the methodology and executes the way they wanted it, then projects get delayed and will result in a loss. This customer profile is typically the mom & pop or a small company who is governed by owners or managers who are close-minded and who antagonize the software developer during implementation.
Scenario C – The customer has an expert project manager who’s executing the project, but the developer assigned the wrong person/team. Even how good the software company is in terms of their system process in software development, but if the person executing it is stubborn and do not follow, then, in the end, the project gets delayed and eventually be re-assigned to another person or team. Yes, it is the company’s role to train and guide the assigned project team, but in reality, people are at times unpredictable.
Scenario D – Both the developer and the customer are working together harmoniously and do not offend each other. Both parties agree on the process/system; they both trust each other and has the genuine intention to make the software implementation a success.
The key takeaway here is; as a customer who is looking for a software or a software provider to help them, make sure you are ready. Prepare your team and resources. It is your job to encourage your employees to work harmoniously with the software provider. When choosing for a software provider, a reference check with their existing reputable customers is enough. If your reference check says that company was able to deliver, then extend your trust to the company 100% and do not see them as the villain during implementation. If you think this is not your profile, then opt for an off-the-shelf software or a self-service SAAS platform and do it yourself because a customized software is not for you.
As software developers, during pre-sales, it is your job to explain to the customer how you will execute the project. Make sure they understand the predicaments of doing the project. Do not engage if your gut says the customer will be a pain in the ass. You also have the right to screen and fire your customer. Because in the end, no matter how much effort you make to make it successful, and the other party is just does it their way, then you won’t be able to help them and you’ll both just lose money. It is also your job to check the early signs of employee lapses. Do not tolerate the problems that you see internally. Establish a strong HR and operations team and build a good culture. I know it is difficult to do especially the way young people work nowadays but it is what it is. But if you think you don’t have the energy to work with people then create a self-service SAAS software instead and focus on this customer segment.