00:24 Marcin: Hi, my name is Marcin Kokott and welcome to Product Odyssey, the podcast where we explore how to build products fundamentally better. Today with me are Mike and Maciej. Hi guys. Today, we'll be discussing one question and one question only: how to start a collaboration, find a good partnership, or outsource your development. So let's start with some basics. I'm a CEO/CTO, and I'm standing in front of a decision.
00:56 Marcin: I need to start a project and I need to decide whether to hire or go for a partner and outsource. When should I actually consider outsourcing? What are the benefits or things I should consider when going for outsourcing?
01:13 Maciej: I think there are a few obvious ones and a few not so obvious. The most obvious one is quicker scaling up. With an external partner, you can get development teams up to speed much faster, scaling up all the necessary resources, not only people. You can get to your goals quicker.
01:37 Mike: Another benefit is scaling down. If you have a partner and need to downsize your team, doing this internally usually creates pressure and tension. With an external partner, it's much easier because it doesn't affect your culture as much.
01:58 Maciej: Yeah, it's important to remember that with the right partner, scaling down and removing people from your project is not necessarily bad for them. With a good process, there is probably another project waiting for them. You're not burning bridges with the people who used to work on your project. When you need them back, there's a very high chance you can get them back to your team.
02:34 Maciej: Once again.
02:35 Mike: Another advantage is expertise. You may find a partner well-experienced in a given field, either in domain knowledge or technical expertise. You can quickly fill your competency gaps.
02:52 Maciej: Especially with niche competencies. Let's say you have your default tech stack, but you need some side project or feature requiring additional technology you're not familiar with, and your developers aren't familiar with. Technologies like React Native or Three.js that are distinctive but not big enough for a project to hire new people just for these competencies.
03:28 Maciej: Getting those niche competencies from a partner is the way to move forward.
03:34 Marcin: Yeah, we are covering the basics: needing more people, scaling up, lowering costs, or missing expertise. These are the three basic things in my mind. Is there anything else I can expect from going with a partner?
04:05 Mike: Yes, there are many. The ones we mentioned are what you usually think about. But when we talk with CTOs, they often say they chose a company for one of these reasons. But when we ask why they stay with them, it's because the partner delivers much more. They become essential to the project, and that's why the cooperation continues. These aspects are usually job-specific needs. But there are others where you can gain a lot of advantages. One is improving your development process. Maybe you're not going fast enough or unsure how to structure the process and roles within the project. You can get a partner or consultant to adjust this and gain outside experience.
05:16 Marcin: Okay, if I have a problem with productivity in my development process or know there's an implementation issue, how does this work?
05:26 Mike: There could be many reasons. One is optimization. This could be the speed of your application, the number of users you service, or the speed of working with the application, technical debt, and other aspects. But there are more. It can vary a lot.
05:48 Marcin: Right, okay. That's a good point. So I would search for a partner with the experience, see how good they are with their current development efforts and experience, and based on that, assume that if I go with them, I can improve my own processes, right?
06:04 Mike: Yeah, exactly. This can involve bringing in a consultant or part of another company's team to your project for a longer look at those processes and introduce them over time.
06:20 Maciej: Another less obvious reason to get a partner is the capability to test new technologies much quicker, to adapt new technologies quicker, to be on the bleeding edge if you wish. Let's say there is a new technology you want to evaluate. You can assign your own resources, but they might be more productive elsewhere. This is also productive, right?
06:52 Maciej: But something more urgent from the perspective of your business needs. With the right partner, there is the economics of scale where new technologies could already be evaluated by teams on the partner's side. We can share and tap into that knowledge and know whether it's a good direction or not.
07:23 Mike: Yeah, no matter how brilliant your team is, if you have three or five people, you cannot give two of them time to invest in new solutions and technologies. That's where the economy of scale really works. It's interesting right now because of the innovation AI is providing. Everyone knows about the copilot, but there are other tools that speed up the work of developers, product owners, and business people as well.
07:54 Mike: This is a quick learning curve. You can get knowledge on optimizing the development process from someone with a bigger scale or a network to get information from multiple projects or other companies.
08:20 Marcin: Okay, then we're talking about having the partner cover your gap for experimentation. If I want to test or try out new technology or build an MVP, doing it in a different culture and setup, maybe outside, it's like a lab for R&D. This is where you can use that, right?
08:46 Maciej: It depends on the case. Of course, you should do research in-house as well. Organize hackathons and do the stuff we discuss in other episodes on how to pick new technology. But with an external partner, you can do the same thing much quicker. A good partner can multiply your effort in this area. It will never cover everything, in the end, this should be your call, but a good partner can be a good advisor and help you be more productive.
09:25 Mike: Yeah, it boils down to partners providing a knowledge-sharing network. This way, you don't get just the experience of the team on your project but also experiences from other projects of this partner or their network. If you have a specific problem to solve, it's often the case that this company worked on similar problems elsewhere.
09:57 Mike: If they have a system of exchanging this knowledge, your team can get insights on what not to do and how to save work.
10:07 Marcin: That's an interesting aspect because I might assume that if I'm outsourcing, I'm just paying for a team. I wouldn't expect to get more than that. What you're saying is that I can expect the team to have a network of different companies or partners, which will give me more knowledge and experience to lean on.
10:36 Mike: Yeah, you probably won't get this with every partner, but some provide this.
10:40 Marcin: But that should be something to expect, right? It means we are introducing the concept that there are different hidden values behind selecting partners. Some partners will have that, some will not.
10:58 Mike: Yeah, and here maybe there's one more critical aspect: whether there's a true partnership. Whether someone is providing you just resources or really understands your business and tries to help you with your goal. One example we had, we have a popular open-source package for building forms in React. We decided to go for the Finnish market after talking with a few people, deciding to go for the banking industry.
11:30 Mike: We found a Finnish company to prepare market research for us. Instead of doing exactly what we told them, they said, let's do it differently. We had discussions with CTOs from different banks, and we were able to verify quickly and define if we wanted to go there. In the end, this allowed us to fail quickly and understand this was not the route we wanted to go. They were a true partner because they helped us with our business goals. They didn't do as much work for us, but we recommended them for three other projects.
12:22 Maciej: Yeah, those are the values that body leasing or other kinds of partnerships could not deliver. You need to have this kind of trust and cooperation with the partner, this true partnership, to share your goals and visions, so they can be proactive and go ahead with those initiatives.
12:46 Mike: Yeah, and this can go through all levels of the company you're partnering with. Business people on top, salespeople, but also the team. If everyone is proactive, knows what you want to achieve, and helps you meet business goals through their work, that's quite effective. You might find that a team will come up with ideas, like the voice of technology, that changes your business.
13:20 Mike: That's something you should aim for.
13:22 Marcin: I would love to trust that this is the thinking behind every component doing software development, aiming for the success of my client or everyone else, and doing everything for that. But in the end, it's not the case. I'm searching for this differentiator. Why isn't everyone thinking like that? Is it the price limit or the cost behind it or just the culture of the company?
13:55 Mike: It's hard, especially when you scale, to keep focused on business goals and delivering quality. It's much easier to do body leasing or provide teams, but if you have proper mechanisms in place, this can happen. You can have a structure that enforces this focus on business. There may be an incentive to just sell as many hours as possible, but in the end, you'll work on a project that may not be successful. It's much better to try to build something successful for the client. If it doesn't happen, you allow them to fail quickly, but they may recommend you to other clients, and you'll work on something more interesting.
14:48 Maciej: This is basically a separate service, a separate product. Either the typical body leasing where we give you a developer, and you need to manage them, take care of the culture, process, and everything. This is fine if you need it and have the capability to integrate new people into your organization. But at the same time, we have this other kind of partnership, not just giving people but working on a business level to ensure you are heading in the right direction. This has elements of consulting and advisory, not only in tech but also in business. We call both approaches partnership, but they are separate products, and a company can offer either one or the other, never both.
15:57 Marcin: We are talking about different levels of service. The software house or the partner you go with is on a different level of service, connected with different things behind, business model, cost structure. I imagine that if I'm on any level of this slider, it's connected with different things on the partner's side.
16:48 Marcin: For example, if I'm assuming body leasing but it's developing innovative teams, I would expect those teams to have experience from running their own startups, not just regular developers. Those guys have the time to experiment and learn, with different processes ensuring they develop and think about that. There are many things you're not thinking about when assuming you want the best guys to help with your business.
17:27 Marcin: And that comes with a price, with effort.
17:31 Mike: Yeah, and with those partnerships, you can get more than proactive people who provide accountability, ownership, and good work. You can also get a structure out of the partner. You can jumpstart your culture or processes by using those from the partner and moving them slowly to your company. That's additional value and usually contains additional costs.
18:11 Maciej: I think it's important to remember the culture in all of this. The true partnership can work only if there is some alignment.
18:21 Mike: Maybe one more less obvious thing we can get from the partner is their network. Companies on the market for some time have a network of earned trust. They worked with a few other companies similar to them and know which ones do good work, which ones to recommend, which ones are good for specific tasks in terms of specialization, technical specialization, or business aspects.
18:52 Mike: One example from our backyard is recently working with a company that provides booking systems for beauty salons. The company was thinking about building a dynamic pricing model. We reached out to a company from the hotel industry that solved the same problem and provided our client with information on what not to do, what wouldn't work, how to approach the problem, and how to save hundreds or thousands of hours on development. Very often, you can get this partnership or network out of a good partnership.
19:36 Marcin: You've mentioned that before, that this is something visible if you see it. You would expect this behavior all the time with a partner, but it's not obvious. Can I check it before starting a collaboration? Is there any way to make sure that if this is the level of service I want, I will get this?
20:02 Mike: Yeah, you should definitely check it. I think the biggest cost of getting the partnership is spending time on verifying this. There are quick ways to do this. One quick good tip is based on recommendations. If you have your own network, ideally your own network of earned trust, people that will give you good recommendations on whom to work with. By knowing those people, you will know what they mean through the recommendation.
20:33 Mike: If you work with this guy and he recommends someone, you can extrapolate whom he is probably recommending. So that's one aspect you can use.
20:43 Maciej: During this evaluation, you need to make sure you got this culture fit with the partner because this is the basis for everything. Whether the process will align, whether people coming from the partner side will align well with your people. Those are important aspects you cannot test beforehand. Maybe a small cooperation, maybe some side project, maybe some consulting is a way to test whether there is something.
21:12 Mike: That's actually a topic we'll discuss in larger extent. Like you said, the best final test is to check how things work in action, to do a small task together. If you have two or three companies you are considering, it may be a good investment to spend some time working with all of them for a week, for example, and compare. That's something you should do at some point. Before that, I would advise talking with the company and not only just the owner or salespeople but also the people who would be on your team. Ask them about their culture, what is important for them, how they solve problems, what the structure is, how they make decisions. If they say they have an exchange of knowledge in their company, how does it happen? Then you'll get a real answer on whether this is actually there.
22:13 Marcin: That's actually fair and logical. If I'm expecting that from the collaboration, I should be able to talk, verify that, talk with the teams, and ask to show me examples of another project. If it was one time, then I can ask what processes support this behavior, what culture or values drive you to do that. And more, if this is what I'm expecting, then I can ask, okay, so how will you manage to create a system that results in innovation?
22:56 Mike: I would also advise talking about the business aspects a little bit and asking, okay, this is our goal, how would you help us? If you don't get meaningful insights at the beginning of the discussion, maybe it won't work. On the other hand, if you hear, let's maybe use this technology or approach you didn't think about, that's probably where the value lies, where the company can really impact your business, and it's worth investing more to get to know those people.
23:27 Maciej: A good partner will challenge you. They will not blindly obey what you are telling them to do. They will challenge your decisions, of course in the right way, to ensure you're on the right path to success.
23:42 Mike: Yeah. Another aspect is checking their willingness to share knowledge. There may be a company with a good structure, but they say, okay, this is ours, we won't be sharing this, this is our business. We'll just provide you the output. But there are also companies willing to transfer some of this to your company, a good way to reduce vendor lock-in, and jumpstart your project. It's good to test this at first.
24:17 Maciej: I think this is very important because this is a very big advantage of having a good partner. One of the less obvious benefits is the ability to take some responsibilities off managing the development team. Assuming there is this culture alignment, let's say you are a CTO of a product company, you probably have a lot on your plate. If you can delegate some responsibilities to a partner you trust.
24:52 Maciej: I'm thinking about processes like recruiting new people, developing the people already on the team, feedback, continuous improvement, the ability to grow. If you hire ambitious people, to keep them, you need to provide an environment for them to grow, realize their passions, experiment, and find new things. Processes like everything related to DevOps, deliveries, quality assurance.
25:25 Maciej: You may want to take care of these processes yourself, and that's fine, but most often than not, your time and attention could be more beneficial in different areas of your business. You can delegate those to a partner with those processes in place to help you move forward quicker.
25:50 Mike: Yeah, this is often overlooked by startups. You think about getting great people and getting them into your company, but that's not enough. You can get good people, but if you don't have those other processes, they will start to leave, or maybe they won't be efficient. It's good to build those mechanisms. If you can use them and slowly transfer them to your company, that's a true advantage. Even recruitment, you can have reputation, promise, advertisements, and get people, but if you have a partner with scale, they most likely have mechanisms in place to be better visible in the market to attract the best people. Meetups, bootcamps, other aspects where they provide something to their local community and get the best people before you can even talk to them. One thing is to use this, but another thing is to build this on your own, with time, and have ways to jumpstart this.
27:03 Maciej: Yeah, recruitment is easy, especially nowadays, but recruiting the right people for the job is still tricky.
27:11 Marcin: Yeah, tricky and time-consuming, and you need effort. This goes to your point. The goal is to go faster, focus on the right things. Building recruitment, marketing, onboarding, training, skillset, feedback loops, that's time-consuming and costly. Especially if you're in a startup phase, you need to focus only on the things that matter.
27:49 Marcin: We're not saying you should always outsource, but it is an area to think about using a partner and their processes to help you with that.
28:03 Maciej: In a startup, you have limited resources. A good partner can help you manage this more efficiently, cost-effectively, jumpstart processes quicker, and possibly help with the next round of financing, depending on the partner you find.
28:22 Marcin: Can I assume it's not just with the price tag? The assumption is there are benefits for both partners, and I can trust this is not only about the cost. I can take your process, learn from you, and we are on the same journey. There is something for us from both sides, or is it not a fair assumption?
28:49 Mike: You should always look at engaging a partner as an investment. Compare options and see what it will give you in return. There are moments you just want outsourcing, and sometimes that's good. Other times you want to speed up the business development of your product, and you can use other tools.
29:24 Maciej: A good partner will usually come at a premium, so it's only worth it from the company perspective if it works as an efficiency multiplier. If having this partner helps me grow faster than the premium I need to pay, then it's a completely sane investment.
29:51 Marcin: But then it sounds like the more I pay, the better for me. That could be the case, but I would like to trust that if I go to a discussion and ask if I need to invest so much, they will tell me yes in some cases, no in others. But I don't trust that kind of system. Is there any justification for a good partner to tell me it's not good for them to go with some cases if it's not providing value for the other side?
30:31 Mike: There are also risks with involving a partner, and that's worth considering. One is a culture mismatch. If you aim for a true partnership, someone who will be part of your team, be in the same boat, and you have a cultural misalignment, that's really painful. That's where a lot of horror stories happen.
31:03 Mike: A good way of adjusting for this is checking at the beginning, testing things, trying out, and spending some time. That's an investment of your time needed at first that may pay back in the future when you choose a good partner. Another one is if you have a really short project and you don't have time to consider involving partners. Maybe you just don't need it because you have a good path, good way forward, you are efficient, you have people that can build the structures, or you already have the structures in place. Then you don't need to consider it. There are other risks as well.
31:47 Maciej: One of the biggest risks I see is the vendor lock-in. You don't want to be too dependent on the partner. A healthy relationship ensures you're not locked in. A good partner will make sure you're not locked into them, that you're working with them because you want to, not because you have to.
32:13 Marcin: Let's dive here. That means there is an incentive, and I need to catch that. What is the incentive for a software house or partner company to say, no, we don't want to grow with you? Where is the incentive for something like, we have enough growth, we don't want to take your money, let's stop here because of the vendor lock-in? Or if you come to me asking for collaboration, I'll say, no, we have too much money. Where is the incentive for the partner to say you don't need us?
32:50 Mike: That's one thing you should ask for at the beginning of the cooperation, the boundaries of where they are best. If someone tells you they are great at everything, that's a red light. You want a partner that will tell you where they are best, and if it's not in a particular area, they might recommend someone else or tell you to search elsewhere. You want to check this and test it. You'll feel it at the beginning when discussing with people from the company, whether they are trying to solve your business or sell you more hours.
33:34 Maciej: Another thing is trying to vendor lock you in. If the company is forcing you to use their proprietary technologies, their packages that are only maintained by them, using methodologies or processes unique to them, it will be really hard to find someone else familiar with this technology or processes.
34:07 Maciej: You should look for a partner using open-source products, popular solutions, not niche enough to get the job done well, but not too niche that you cannot find a replacement on the market.
34:26 Mike: There's also a business aspect. We had situations where we were 100% of the development team, which is risky. 30% is okay, 100% is risky. There are solutions like the build operate transfer model, ensuring you can buy out part of the team whenever needed. This can derisk those things. But if you don't have those mechanisms in place and someone tries to convince you to buy their software, but without a clear price, that's when you should run away.
35:18 Maciej: Investors are also important. Investors often frown upon partners too deeply integrated, seeing it as a risk. It's important to find a partner able to mitigate those risks, with a good track record, making investors feel comfortable with such a partner.
35:50 Maciej: A way to move out, like Mike mentioned, is the build operate transfer model, with a clear path on how to get out of the arrangement if necessary. Even though investors typically are not enthusiastic about investing in startups with a big involvement from a single partner, a good partner can turn this around, making it more attractive to investors.
36:27 Marcin: Right. But that covers the aspect of if the partner is on this slider where they care, and we have a justification that I want this level of service connected with the price tag and so on. But then, let's turn the table around. As a CEO, I would like to see the other side of the paper. When shouldn't I think about going for a partner? That should be a question, not just with whom I should go, but what are the cases where I don't need to think about that?
37:07 Maciej: If you have enough time and experience to build everything in-house, that's a valuable solution. You should go with it. But if you want to boost the process, if you are lacking some competencies needed to set everything up, this is where a partner shines. It's not always necessary.
37:32 Mike: It depends because it's a tool you can use, like many other aspects in IT development. Sometimes it makes sense, sometimes it doesn't. It's good to know the options, but it's for you to decide when it makes sense. There are multiple cases where it doesn't, and one is if you don't have enough time to choose the right partner, don't have good contacts, don't know whom to choose. That's when you would involve a lot of risk. Choosing a bad partner can be harmful. That's one. But there are others that are probably less obvious.
38:17 Marcin: Okay. This covers when I shouldn't think about going with a software house, and I can go in-house. There are risks we mentioned, but it's creating a picture that there is effort on my side to find the right partner. They exist. Maybe the area we haven't mentioned is can I trust that if I find a bad partner, I can do something? If I'm already working with a partner and it's not going well, is there any sort of bullet I can use?
39:02 Mike: One thing you can do is audit their work. Usually, from our experience, you're not sure. There are always excuses, something happens, and there is a reason for this. Sometimes it's not the case. Sometimes it is. You can bring another company to evaluate your cooperation and get a third-party opinion. You should never trust the third party completely, but getting impartial reviews is useful. You can make a decision, often auditing the project, either helps you fix the partnership or gives you information on whether to continue.
40:01 Marcin: Okay, that's a good hint. It's not a decision you cannot move back from. As we mentioned, starting development is always the case where I can improve. I can have a trial, check the culture, processes, right attitude, and support. There are processes to verify it through network, recommendations, technology perspective, checking if new technology is taken by the teams, or using the team for R&D. There are multiple use cases for when I should go, and we've talked about that. To summarize, we have covered a lot of aspects to consider. Any last two or three takeaways a CEO or CTO can take from this discussion?
41:17 Maciej: We discussed how to take a good partner but didn't put enough emphasis on the fact you don't always need a partner. If you're capable enough to do something in-house, you should. You should get a partner only when you get additional value for your money, whether they can bring improvement in processes, culture, technology, or any area you need improvement. Once they're on board, you get to your goals much quicker.
41:51 Mike: One takeaway is to build up your network and build up the network of potential partners you can use because then you get partners tested in battle. Don't settle for mediocre. Search for companies that can really impact your business, improve what you're planning, and change how you approach IT projects. If you can achieve this, that's a great investment.
42:33 Marcin: From my side, there is always the case that we don't take everything we can from the collaboration with partners. If I have a good partner with a great team, that means they have great processes behind it that I can use. I can ask for that and definitely they have the network. If a great team has great people, there are companies with experience around them. I can use that. When starting a collaboration, think about testing it. Go to the company, ask, talk with the people, and have proof.
43:22 Marcin: