Top 3 Outsourcing issues in Software development
This post is based on many discussions with potential clients and previous experience at FreezePro Software.
Lack of trust and authenticity.
This is one is pretty basic. From a customer perspective, there is only email or messenger contact on that side. Regardless of who you are talking to, start with a video call. People are socialized, you can see from first minutes if you like to work with the vendor and its representatives or not.
Other than that, always make a contract even on the small project. Always communicate on IP rights and contractual terms.
Lack of transparency.
If you decided to work with the particular vendor, make sure you understand their methods, what to expect, how they work etc. Try to be close to vendor’s team, at least, first two weeks to see how they work. It is good to visit the vendor if the project is vital for your business.
There are many cases when vendors are hiding who is actually working on the particular project. In most cases, because of non-transparent culture in the organization itself. This is a low margin kind of business, so providing junior instead of senior is quite a common situation. As a customer, you have to decide if you would like to live with that as long as the quality is high. Yet I would suggest committing to named resources and dealing with it.
Poor communication skills.
Numerous young outsourcing companies do not understand the importance of communication. Communication is a must and that is the first skill to consider when hiring a developer, tester, project manager etc. It might even be important to hire more soft-skilled developers as they can improve their skills eventually. The level of English is significant as well; many people cannot understand the role of fluent communication with a client. Usually, a lack of English language skills lies on Project Manager shoulders. It might be an extra overhead to his or her responsibilities.
Scrum is invented for having solid alignment and communication as frequent as possible. Being a customer, present on daily standups, sprint planning and retrospectives.
Recap. Each customer or vendor has its own maturity level. As a customer, you would like to work with a solid company and expect their prices to be relatively low. At the same time, vendors are looking for clients that are bigger than the service provider is. This is natural to look better than you are, but you have to be honest on that matter.
As a conclusion, I can see only three ways to move forward for win-win cooperation:
- Customer and vendor have the same maturity level. They understand each other and have a similar level of organization, processes and budget expectations. On one hand, vendors are capable of delivering what they promised to at proposal level. On the other hand, customers are capable of paying for that.
- The vendor has lower maturity level than the customer. The risk is from the customer’s side. Quality and final budget might raise because of the lack of competence. In such case, if the customer is willing to take such risk, he or she has to be assured that the long-term vendor will reach the needed level. It might work as a long-term strategic partnership, when a vendor is happy to have you as a customer and do its best to keep you satisfied.
- The customer has lower maturity level. This is the case especially when someone wants to run a product he or she dreamed of for many years. The customer can be new to software development process and even running a business. Still they can have a solid background in appropriate industry or responsibility area. In such case, the vendor should take responsibility to educate the customer. This should start with answering basic questions like how you are going to work, manage expectations, and tell about risks you foresee. Moreover, you should talk about responsibility areas. There are many cases when customer blames vendor for failing the commercial side of the project.
This is it. I will appreciate hearing other ideas and points of view.