Which parts of your product development should you outsource?

BACK

August 28th, 2024, posted in for_founders
by Adelina

Making the decision to outsource a part of a software project isn’t easy. It involves trust, good decision making and the ability to determine what you can and cannot handle as a business. You might know what you want to build, exactly how you want it to work, but not entirely how to build that from the ground up.

 

Outsourcing parts of a software project isn’t uncommon, and it’s a good cost-saving approach if you don’t have the time and budget to hire new people. Maybe your inhouse developers are too busy or not familiar enough with the technology you need to use. Or maybe you need design upgrades and you don’t have a designer.

 

Here at UPDIVISION, we work as outsourced tech partners often, so we know exactly how it works. Oftentimes, the businesses that choose to work with us need some extra manpower, and hiring one or two people or a full dev team from us is just enough for their software needs.

 

So in this article, we’re going to talk about how outsourcing works, so you can try to figure out if it’s a good fit for you or not.

 

So, what is outsourcing and how does it work?

Outsourcing means hiring one person or a team of people outside of your own business to do work that you’re unable to do in-house. Either designing an app, coding parts of it that require more manpower, doing bug fixing or maintenance, or building an entire app from the ground up.

 

A company that does outsourcing in software is just a software development company like any other - but the clients they work with sometimes already have their own development department. In that case, the outsourced company will collaborate with that team to ensure efficiency, especially if working on the same code. 

 

Just like hiring someone to tend to your garden as you either don’t have the time or skill to do it, you can also outsource tasks or entire projects to a software development company. And so, it works pretty similarly - you’ll either actively seek someone or put out an ad, hire someone who fits your needs and goals, and work with them until your project is done. 

 

You might wonder, what happens after I hire them? How does it all work? Well, just like a team within your own company, sit down with the outsourced company’s manager or leadership and set a series of goals. Discuss your main objectives and how you can achieve them in your desired timeline.

 

A good thing to decide ahead of time is exactly what you want done and on what timeline. Don’t make it up as you go - this can prove chaotic and you might end up realizing you need part of your project done sooner than you initially thought. Once you decide what you need and communicate it with the team you hired, they can organize their tasks in an efficient way so they can be done when you want them to be.

 

You can organize all the work using the Agile methodology, by splitting chunks of work into sprints From general tasks to more specific. This will allow for a structured process and it’s very common within software companies, so your outsourced team is highly likely to be doing that already.

 

What should you outsource?

There are different aspects of a software development project that you can outsource. Whatever you choose depends on your needs and what you can already do by yourself. This, of course, depends on the nature of your business, your current team and your budget.

 

Outsource design

One of the most common things to outsource is UI/UX design. This is especially useful if you have an entire development team but none of them are particularly well-versed in UI/UX. As much as a frontend dev can create good looking interfaces either by themselves or using templates, they can’t always come up with good user flows - after all, it’s not their expertise. 

 

In such cases, your best bet is outsourcing your project’s design. You can either hire just one person or an entire team, depending on the size of your project. Hold meetings with them explaining what you want - the main features of your app, key user flows, user types, and visual preferences. And once the design is complete, ask the designer to do a handover to your development team, explaining how the main features should work, and then you can get to coding the app.

 

Outsource code

Let’s say your company is non-technical. You’re taking your business online through software but it’s too small an app to need to hire an entire development team. Your best bet is looking for a software development company to take care of the code for you. 

 

Now, whether you go for an entire company, a small team or just one developer depends on the size of your project, your budget and how fast you want it done. Clearly, the bigger-scale the project, the bigger the team should be. Which, of course, is for you to determine. 

 

Outsourcing code can be quite complex: first off, if you only have an app idea and nothing else, your dev team will need a design for it - if you hire an entire company, they’ll have one in-house. But if they don’t, you might have to outsource the design first, and then find another team to do the code.

 

Secondly, you’ll have to be very clear about what you want to build. Sit down with the team you hired and clearly explain your app concept, all features needed, user types and what each should be able to do, and so on. The better you explain things, the better the app will turn out.

 

How involved do you get when you outsource software work?

You’ve hired someone to do a chunk of software work for you. Does that mean you won’t get involved in the process? You might be thinking - if I’m hiring them to do it, it’s out of my hands. I’ll just wait until it’s done and not bother them. But that’s a very inefficient way to work on a software project, especially as a business or product owner.

 

There are 2 main approaches you can take here:

  • You can get hands-on to whichever extent you can: either get directly involved in the process and work with the team you hired, or act as a project manager within their team to organize tasks and ensure that everything is running on your set timeline. Openly discuss and brainstorm tasks with them, hold constant meetings and be in constant communication with them.
  • You can keep a watchful eye on the team you hired, without getting involved. Let them do everything but stay up to date on their process. You can either ask for constant status updates or hold weekly meetings with them. Daily meetings are also common, but we’d say they’d bring you to the hands-on approach mentioned above.

 

How do you decide which of these approaches work for you? As unsatisfactory as this response is, it really depends. If you have a software development background, you’ve got enough time and you’re very passionate about what you’re building, the answer is clear - get as hands-on as possible. 

 

There’s a common pitfall within the hands-on approach, however: you risk micromanaging your outsourced team, which can build up resentment over time, and make your working relationship strenuous, which can lower productivity. In case you want to be very involved, it’s essential to communicate efficiently with your team. Here are a few ideas:

  • “I appreciate the time you took coming up with this approach. However, I’d like to try something else that works better for my project”
  • “Thank you for your suggestion, but I’m used to doing this a different way and it’s worked well for me in the past”
  • “Thank you for your work, but unfortunately it doesn’t entirely fit the idea I had in mind. I will try to be more clear so we can get to a middle ground”
  • “I might have miscommunicated my ideas and wishes, should we discuss further so everything is clear?”
  • “Your work looks great, however, I had a different image in mind. Let’s chat and come up with something closer to my ideas”

 

Finding better ways to communicate when getting hands-on will be very useful longterm: you’ll get your ideas across better, you’ll keep a strong professional relationship with your outsourced team, they’ll feel appreciated even if their work wasn’t what you wished for, and they’ll build a sense of trust and security while working with you. All of these lead to better productivity, as your team won’t be anxious, unhappy or frustrated when working for you.

 

On the other hand, if you’re not a technical person, you’ve got your own work to deal with every day, and you can’t possibly manage everything your outsourced team does, then you can watch them from afar. This doesn’t mean letting them run wild: you’ll still hold those important meetings where you set goals and a timeline for your project. And you can also hold weekly or bi-weekly meetings to get updated on their progress. But since you can’t evaluate their technical work, as it’s not your expertise, you’ll have to have faith in the team you chose and let them do their job.

 

A good outsourcing company is good at handling that kind of working relationship: we, for instance, are used to this type of process, and we’ve got our own system. We keep our clients up to date with their project, either when major milestones are done, or every week through meetings, depending on what they seem to prefer. Communication channels are always open, so they can ask for progress updates at any time. 

 

A standard approach is holding weekly meetings where the development team will present what they’d been working on and what they’ll work on next. It’s also a good opportunity to discuss tasks, brainstorm, or ask questions that are essential to understanding the nature of the software you want to get built. Either participate in them yourself as a business/product owner, or send out a manager from your company who’s well-informed about the app you’re building.

 

This approach also relies on good communication, from both you and the outsourcing company. If you’re not a technical person, don’t hesitate to ask the team you hired to explain what they do in detail. And don’t be afraid to tell them when you struggle to understand something. They, as well, should communicate with you openly, especially if any issues or delays arise in their work. 

 

Would outsourcing work for me?

A lot of factors can go into this decision. You have to sit down with your team (or just yourself) and carefully assess your current resources, versus your software development needs. 

 

So start by asking yourself these 2 questions:

  • Do you have the necessary manpower to work on this yourself? If you want to embark on a development project that will last several months and which will require a dedicated project manager, a designer, a tech lead, a frontend and a backend developer (or more), and you don’t have such people on your team, or they’re off focusing on a different project, you might need to outsource, unless you want to hire at least 5 new people.
  • If you already have a dev team, could it handle this work by themselves? And by handle, we mean in 2 ways - are they well-versed in whatever you want to build or will they need to learn new technologies, which can take up to a few months?  And do they have the time to do it? Maybe they’re busy building onto an existing product of yours and it takes too much time for them to be able to work on something else as well. Carefully discuss such aspects with your team before you decide.

 

Alternatively, you can do a SWOT analysis: evaluate your current strengths, weaknesses, opportunities and threats. By putting these to paper, you can get a new perspective on whether or not you need to outsource development or not. Maybe in the strengths section you’ll realize your team can handle the project. Or maybe in the opportunity section you’ll realize a new team can help bring expertise and by working together you could finish your project faster.

 

All in all, it really depends on your business type, what you’re looking to build and what you already have. If you want design work and you already have a designer, they can do it. If you don’t have one, you can outsource. Of course, not all situations are so black and white. Maybe you’ve got developers but they’re not versatile enough for what you want to build. You either spend money helping them learn, or you spend money on someone who already has those skills.

 

In terms of process, outsourcing could be ideal for you if you want your app to get built while you focus on other work. When you hire a good team, who’s good at keeping you updated, you won’t be in the dark. You’ll know good work is getting done, and you’ll see it when it’s complete. You can manage the team you hired while still focusing on your own day to day work.

 

In case you’re the type who wants to get involved, outsourcing can work, but you must find the best team for you. Carefully assess candidates and talk about your work style to ensure you’d get along and can work well together. Describe your day to day work and how you tackle tasks and ask your candidates how they could accommodate that.

 

And last but not least, ask other people who have outsourced their projects. This is a good way to figure out if it’s right for you: hear about real experiences people have had, especially those in a similar type of business to yours.

 

All in all, it’s very common to outsource development work, especially major projects that your existing team can’t handle by themselves. Carefully assess your needs and your potential software partners, have some faith, communicate efficiently, and keep track of their work without micromanaging. And you might end up making some great new business partners.


Looking to outsource a software project yourself? Contact us and let’s see how we can help.


About the author

Adelina

Artsy kid navigating the world of tech for the first time and trying to learn as much as possible about it. My biggest passions are video making, writing, and TV shows I can cry to at 2AM. I also really love IKEA.

See more articles by Adelina