Custom Software Development Company Services
We are a company which builds remote digital teams for agencies, IT services providers and IT departments.
Here we discuss the challenges, possible solutions, advantages of outsourcing and additional information on developing custom software.
When building IT solutions, there are many challenges. When involving a third party vendor it becomes even more complex.
Some of those challenges are:
- Transparency issues: Making sure that the third party vendor is giving insights about how the software is developed and that there is no “smoke screen” like project managers and sales people who prevent a close look into the internal processes.
- Who works on the project: In some cases the partner who outsources the work does not know who is actually working on the IT project. Questions like “Which kind of programmers are involved?”, “Are they all experienced IT professionals?”, “Are they the one’s who worked on the sample projects, which were mentioned in the sales phase?”, “Are there testers/ quality analysts and application architects involved?”, “Or are there only junior programmers on the team?” remain in some cases unanswered.
- Trust issues: How sincere is the IT services provider? Are they working out of high integrity? Are they completely open, if something negative happens? Or are they hiding any possible issues which could arise in the future? Like maintainability or scalability of the system, which can only be found out in the future and not immediately after hand over of the project.
- Billing related transparency: Are they billing more hours than needed? Are they putting a too large margin on their costs?
Usually transparency in regard on who is working on the project and also billing related questions, will erode the relationship between vendor and the partner who has outsourced the work.
The reasons for these issues are to be found on the outsourcing companies side, as well as at the partners side.
Vendor (IT provider) issues:
- Does not know the payment behavior of the client: Will the client pay all his bills on time? Will they drag the payments over a long period of time? Will they not pay their bills, saying that the project was not delivered in the right quality or time? All this will make the service provider hesitate to bring his “A”-team on to the project and avoids spending too much time initially, before having answers to those questions.
- Does not have the required expertise, but needs the project due to internal cost structure: Sometimes custom application service providers have high monthly costs, due to salaries and other infrastructure (rent, computers, internet, overhead, etc.) expenses. This will make some vendors take projects, which they cannot do in a high quality at the best possible price. To meet their expenses they will take the project anyways.
- Wants to avoid poaching of employees: By hiding the programmers behind project managers and sales people, the IT vendor will make sure, that a possible poaching of talent is avoided. Because if the vendor does not know the behavior of the partner, it could be that they start hiring them away. This “smoke screen” will cause issues with communication, because all messages need to go via different people, who do not add much value to the discussion.
- Wants to make sure that billing and efforts are in balance: The sales person might be deeply involved in the process, so as to make sure that billing and efforts are in balance. But this will not help the project as such and is instead only helpful for the vendor.
Partner (client) issues:
- Can I be sure that the end result is what I expected?: When a team of 5 people is working for 7 months on the project, all the bills are paid and the application is delivered, will I be sure that I will get a solution which is scalable and maintainable? This the partner can only know after several months of in-house testing, as well as further feedback from end customers.
- Will I be overpaying for low quality services?: As mentioned in the beginning, the partner cannot be sure who is working on the application, if transparency is missing. This will in turn could affect the quality of the output.
- How can I make sure that the product can be maintained in the future?: What about coding standards, documentation and maintainability? Can our own team or a team from another vendor easily know what is going on inside the code and build upon it? These are things which are important in custom software development. Because a good percentage of projects fail at this next stage.
The third-party vendor who builds the application needs to be sure that he will get remunerated for its services and on the other side wants to work with reliable partners.
The partner wants to make sure to get the best value for a reasonable budget. A solution which is scalable, fast and maintainable.
We have worked many years with several clients from across the globe. To be honest: Some of those projects failed, due to the reasons mentioned in the beginning of the text.
Since 2014 we changed our model to providing dedicated IT experts to our partners, this has been the point where things become very positive. With most of the clients from those times we are still working today.
How dedicated teams work
Instead of doing the traditional outsourcing collaboration, whereby the vendor is taking all the requirements from start to end, there will be higher client-side involvement.
For this the following things are required on the partner side:
- a) A project manager: This person should have already done projects related to application development. He/ she will thus have knowledge which challenges can come up in IT projects and how to solve them.
- b) A coding expert: Someone on the partner side, who knows coding inside out. This will make sure that the delivered programming can be checked by the partner company. Very quickly any issues can be found this way.
To save manpower, the project manager could be also the person who is the coding expert.
The following things are required from the vendor side:
- a) Direct access to the programmers: The vendor will give direct access to the developers, so as to make sure that communication is smooth and that communication gaps are avoided. In most cases the IT expert on the vendor side and the coding expert on the partner side will find the right solution to the architectural issues, which could come up.
- b) A say in selection of team members: The vendor will give the partner the possibility to select the team members who will be working on the project. This is important, as the partner might have their own work culture, quality requirements and their own IT and project management tools. For this the vendor will provide the CV’s of the programmers and the client can select accordingly.
- c) Possibility to visit each other: The software development services provider should allow the client to visit their own location, or for the team members to visit the client if needed. This will make sure that a stronger bond between the onsite and offsite teams is created. Directly meeting each other will make a big difference to the team collaboration.
Here an explainer video on how such a process could look like:
Working with external companies for development of custom software can be a good idea. Especially if the required manpower is not available inside the own team.
Making it work can be a challenge at times. According to several studies and our own experience, a good part of IT projects fail. The reasons for this and possible solutions are mentioned in this text.
What is your experience with software outsourcing? We would like to hear from you.
Pictures: Flickr.com/ Official GDC/ Sonin
The author: Sascha Thattil is working as CEO and project manager at www.Software-Developer-India.com which is a part of the YUHIRO Group. YUHIRO is a German-Indian enterprise which provides programmers to small to medium sized IT companies, agencies and IT departments.