>Our problem is defining what you already have - "we're a butique consultancy specialized in machine learning."

We were a "pure consulting company" for a period. We drastically changed the process and ruthlessly killed projects to align the company after the co-founder and CTO of that company quit and many in the company panicked because they figured if the CTO quit, it was going to die. We were 17 people at that point working on about 8 projects. When we took over and after the dust settled, we're 6 and generating more with fewer people and one project at a time. I think we generated more revenue last year than all years combined.

Once we killed what needed to be killed and changed the process and collaboration protocol to be more effective [being clear on what to do, what not to do], the next evolution was to aim to be more efficient [do whatever was to be done more efficiently], hence building a platform that suited our needs. In other words, the process part was validating and picking clients, laying the ground rules before we even move further or even think of ML approaches or requesting data. And the tooling part was to make our life easier for model building and deployment and experiment tracking and all the jazz.

This has made our consulting activities more stable, but it was not enough. The next evolution was to get recurring revenue from the platform and shifting our main revenue from consulting to the platform. However, consulting got us here because it allowed us not only to be profitable all these years but also to know what to build and what not to build. In other words, we built the platform to solve our own problems, not for others, but we wouldn't have known what problems to solve if we didn't have them. There are a lot of people trying to build these platforms without having the experience and the scars to discern what actually matters from non-problems for they've never worked on real projects with stakes. Therefore, we probably won't kill the consulting activities because they're our way to keep a finger on the pulse.

>I see you put a lot of work into it, it's amazing, congrats! Curious to hear how long you take the contracts for?

Short answer: it depends on the maturity level of the organization, our experience in that sector or that problem, even personal experience, and whether we have already worked with the client before.

Longer answer:

It depends on many parameters. One of them is the maturity of our clients. There are organizations that are in the "I've heard of this AI stuff" and we sit down with them and explain what we can do, what we can't do, when to use machine learning and when not to use it. It happens we recommend an approach and say to the client they don't really need our services, or that they ought to work on some aspect first before we could be effective. One other category is an organization that has the prerequisites in terms of data, but we help them identify problems that could be solved with machine learning. Sometimes we dive in deep in their own domain and help them discover things in their own field. Other organizations actually have internal ML teams and need support either becauser their team is super busy, or because they know we have worked on a similar problem. One instance was a large organization that has submitted for a tender and was afraid to win because they had never worked in that space but felt compelled to apply because the other two or three competitors did. They wanted our help because we had already worked with the organization they were hoping to work with on a similar problem.

Therefore, the duration will depend on the maturity level of the organization. We are coming up with a way to extract these meetings in a course so we don't have to do it ourselves. So, instead of holding their hands to bring them up to speed, gather pre-requisites, define the problem, they can do it themselves and then we come in. I told you, we systematically strive to reduce our part to its irreducible form, and then we question if that irreducible form truly is irreducible.

For example, one of the things that allowed us to be effective is bringing that background and that experience and talk about what makes a project successful and what makes it fail. Then we decided to put that into a "training material product", if you will. This, too, will be a revenue stream for us, but more importantly reduce the activation energy/serve as a catalyst. We already have video material.

Other parameters are the domain, sector, problem, etc. It takes less time to solve something you already have solved for a someone in the same sector. The experience curve is a thing. I'm really fortunate because there are many problems we've worked on in completely different spaces that I was involved in as a student or personal projects (I read many books on reservoir characterization as a student and had a stint and was about to join an energy services company, I had a project in telecommunications and learned a lot about GSM and CDMA networks, my background is in control systems and instrumentation and was familiar with SCADA, I had also worked on anomaly detection from ECG signals, and multiphase flows in college, etc). Every one of these made my life much, much, easier when dealing with clients and problems in energy, telecommunications, healthcare, etc on these very problems. It is a very funny coincidence. This has reduced the "rig up" time. One of the projects was sped up because I was familiar with safely handling and operating some loud sound producing equipment.

It's also not the same if this is the nth project you do with that client. The whole getting to know each other and knowing how it works is amortized. Relationships compound.

So, the duration depends on many parameters, even anecdotally.

One very important thing. Our CEO is tireless when it comes to bringing in new business or maintaining relationships for years with people.. I'm sure that if he were on your team, he'll be able to dig into your repositories and find something you are "meh" about because "it's just something I did in a week-end" and be able to sell that and make deals on the fly and people will buy it because it actually has value to them.

You'll have to learn to sell things and figure what has value if you have nothing against "sales/business/marketing". My opinion is that you posted this question on HN, so you have a sensibility for this. You'll probably end up learning this whether you have someone who can sell on your team or not. Next is to have someone on your team who can do that, bring in new business and maintain relationships, etc.

One other option is to do the following: talk with an agency that does X with many clients and work together to be a one shop stop for their clients. They'll handle getting clients for their part of the work, and then complement that with building whatever product needs to be built. You said you didn't want to work with clients from all fields. Which clients were a blast to work with? Do more of that. Leverage your experience in that sector/function/industry so projects take less time and effort. Extract features into modules. Notice patterns and common problems. Put that in the toolbox. Integrate these tools into a product for that sector/industry/function.