Let me share with you some of my personal experience. I used to work as a data scientist for ‘Big 4’ consultancies. And now I’m working for a small, “boutique” company and have a totally different perspective. I think this is a great opportunity to summarise the pros and cons from both points of view. I would like to focus on the communication between the client and the consultants as well as the quality of the work done. Let’s go throughout the project path together:
We should start our journey from the very beginning: a potential client contacts the company for a data science project. Let’s assume that I’m the one responsible for the project delivery. In a “boutique” company, I’m at the decision table from day one. Before signing the deal, the client has an opportunity to discuss the technical perspective with the person that would actually work on the solution – it delivers far better results later, as all the doubts are cleared before the project even started. The technical ideas, estimations and risks are truly taken into consideration.
Of course there is no point in involving every single consultant during discussion on extensive projects. Nevertheless in the big companies the technical perspective is often missed – the sales department is entirely responsible for signing the deal. It can cause misunderstandings in the later stage. Working together at the outset creates a great connection of mutual understanding of the project goal between the client and the consultant. It bypasses all of the middle-men playing the ‘lost in translation’ game.
Speaking of long lasting projects: working together with a small company gives the client a lot of space for rethinking problems. Sometimes it is good to take a step back and we allow the client to do this. It is usually the case that not everything is known from the beginning. Priorities change and user feedback can bring valuable input. In one of the projects that I was involved in, after the initial implementation our client received feedback that sending email directly from the application would be a game changer for the users. So we sat down with the project manager on the client side, re-ordered the priorities, estimated additional work and were able to start coding on the very same day.
Data science or software development is a complex and not fully predictable process. We face changing requests often, thus elasticity and customisation are essential. Having the mindset that the contracted scope of work is some sacred thing that cannot be modified (even if it does not make sense to continue on the agreed upon path) is the worst thing that can occur in a project.
This brings us to the topic of project development time-effectiveness: in small companies the consultants are truly full-stack, i.e. they have all of the necessary skills and knowledge, both data science and technical, needed to deliver the project from the beginning to the end. Starting from designing the UI and ending with deploying the app on the Amazon Web Services (AWS) cloud. There is no need to wait for cooperation between three different teams. What is more, usually the worst part of working in big structured companies is waiting for the agreement between managers about splitting costs and profits. That does not mean that the client is forced to deal with a single consultant all of the time; of course when there is a need, the whole company gets involved in helping to deliver success, as we all have a common goal. Just this week, the CEO himself gave me a piece of advice on how to deliver a feature of a table exported as html.
The whole decision process also speeds up: the managing partners are sitting in the next room with the door open. In a boutique company, even important decisions can be made rapidly without going through unnecessary steps.
One recent situation surprised me in a very positive way: we were developing a mobile version of an application that was supposed to work on Apple iPads. The development team decided that it would be beneficial to work on Macs for this and discussed the matter with our company’s managing partners. The next day we had two Macs leased so that we could work effectively and immediately.
Imagine how long this procurement process would have taken in a big company! Of course the resources available at large firms are vast, but it can be painful and time-consuming to use them. I also love the way a small company deals with legal agreements: it starts from the position of trust and seeking a win-win situation with the client, thus the whole process of signing the deal is smooth and fast. Of course the project and the companies are legally secured but there is just a mindset of trust, not an obsession with being cheated. This clears the atmosphere a great deal.
What is often the case in well-established companies is a fear of using open source solutions. They want to protect themselves and push the responsibility to the support provider. That is fine, and often more reliable, but it also increases costs for the client. And there is nothing to fear with open source; actually, due to the large community it has the ability to deliver stable and cutting edge solutions. With all of the current technical possibilities of maintaining stable environments (e.g. Docker) and properly tested solutions there is little or no concern that open source used in a project will become buggy or will disappear overnight. “Boutique” takes responsibility for the support, thus is interested in delivering truly the highest quality (to save themselves troubles in the future). At Appsilon we value community a lot, thus we share our solutions with others to help solve common problems (like internationalisation in Shiny apps or semantic UI implementation).
Another point that I’ve noticed is that small companies care more about the client’s success. Of course all consulting firms focus on customer satisfaction, but for “boutique” this is a life or death matter: clients’ word-of-mouth recommendations are the lifeblood needed for their very existence, so they really care about delivering high quality products, adding real value, and fostering long-lasting relationships.
I focused on the perspective of the client’s benefits, but I think it is also worth mentioning the consultant’s advantages: you’ll get your hands dirty. Only within a small company can a once narrowly focused consultant become truly full-stack, as the responsibilities cover the whole project from the very beginning pre-sales process to implementation. There is no other team on some other floor of the building that will do the job for you. However, there is something better: a group of more experienced friends sitting next to you, happy to mentor you and grow together.
Thanks for reading! For more, follow me on Linkedin and Twitter. You can also check out my other articles: Forget about Excel, Use these R/Shiny Packages Instead and Super Solutions for Shiny Architecture.