A problem with using software consultancies in startups
Outsourcing your tech work might not be the best solution?
An interesting discussion (and a good article to read as well) on how big consultancies can fail some times.
https://news.ycombinator.com/item?id=32184183
One of the biggest challenges with any consultancy is domain knowledge - thats the one thing I have learnt after joining Sastaticket. Domain knowledge is so critical (along with its documentation and communication) that a simple feature can become a nightmare due to mis-communication. Bringing all stakeholders to use the same language and the same perspective is a very hard problem to solve.
A great example of this was the implementation of a specific check on our Sastaticket.pk website - restricting the user to make duplicate bookings. This is important for us since we get penalties from airlines (called ADMs), and even though this is a simple check - understanding its edge cases, impact on customer support and overall user experience is essential. And this understanding comes with close collaboration of our customer support team, product team, design team and engineering. The back and forth discussions and understanding takes time to build. It’s not just a task on someones board they need to complete and move on.
This is specially critical for startups. As we work towards finding the product market fit, and giving the user the best experience possible - things are precariously balanced with every decision we take. And if those executing do not have a part of the stake - then the results are best varied.
Im not saying you cant have good work delivered this way - but its how we normally execute this. For example take this from a team alignment perspective. Consultancy has a different goal, and your team members have a different goal. This usually ends poorly for both teams.
Another area which sticks out sorely is the engineering mindset, an excellent article here on why India is struggling with finding the right engineers.
https://edition.cnn.com/2021/09/09/tech/india-software-saas-intl-hnk/index.html
"Indian engineers trained in the IT services industry may find it hard to develop the discipline required to build a product-focused company.
In IT services, "you are selling bodies and you say yes to everything the customer says," said Krishnamoorthy. SaaS companies, on the other hand, have to say no to 99% of [potential] customers, he added."
The shift from consultancy to product requires you to question your requirements, understand their business use-case and even speak with the customers or stakeholders. This is in stark contrast to how normally engineers work in a consultancy, usually “behind” a project manager, and are not allowed to question the requirements of the client or understand why they are needed. The resulting output is very different - which is the focus - consultancy would end up focusing more on the task, the product engineer would focus on the users problem and if he’s actually solving that.
Working with a consultancy is an art - and my recommendation is to try to make it into a long term partnership rather than shipping a “project” - it will cost a lot more - but at least there will be some thought put into it. Otherwise I would recommend building a team, with likeminded passionate devs who want to solve the problem you are working on.