See all articles

Strategy, risk and execution. A real story of outsourcing software development

The COVID-19 outbreak changed everything. If your business strategy included building an internal software development team and working together with them in an office, you need to switch gears fast. Luckily, it’s possible to create apps entirely remotely, with trustworthy technology partners from all over the world. Find out how to approach application development in a time of crisis.

Outsourcing as a tool for strategy execution

Outsourcing your software project means trusting external experts with its development. Sometimes, this can mean extending your team with one or more extra developers, brought in for their expertise in particular fields. Often, it’s easier and more beneficial to find a technology partner and have them build a full development team for you, with all the necessary roles filled, including backend and frontend development, project management, design and quality assurance.

A big benefit of working with an external team is the lack of recruitment costs. You won’t have to find the right experts, get them through the recruitment process, onboard them, or provide them with necessary tools and equipment. All of that is taken care of by your technology partner. Additionally, you won’t have to worry about extending your team’s expertise. Software houses usually already have access to multiple senior-level experts in various areas. If your project ends up requiring Elixir expertise, your partner will provide it. Because of this, outsourcing the development of your app frees you up to focus on your business strategy.

How to avoid outsourcing risks

Despite the benefits of working with a technology partner, many executives worry about the risks of software development outsourcing. As a result, they choose to work with internal teams. This can be a mistake in normal conditions, but now, with the coronavirus limiting our options, it’s simply impossible. Luckily, many of these apparent risks are easy to avoid - as long as you partner with an experienced company.

1. Unrealistic expectations

If you’ve never developed an app before, you are likely to be surprised by how much time and resources it takes to build even a simple but high-quality product. Software houses are usually eager to set up clear expectations for the project, including deadlines, milestones and pricing, but to do so, they need detailed specifications from you. That’s why partnerships can turn sour despite both sides’ best intentions.

The easiest way to avoid this issue is to approach your development team as consultants and use workshops at the beginning of the project to establish goals and expectations. Remember that your technology partner builds apps regularly. They have plenty of know-how that they can share with you, if you let them.

Another important aspect of good communication about how a project will proceed is software project management methodology, which has a direct impact on the available pricing models. There is no universal best way to develop apps. The Waterfall approach offers predictability and allows for better budget planning through establishing project timelines, costs and specifications up front. The Agile and Lean methodologies are focused on development in small increments (usually week-long sprints), which makes them very flexible and adaptable to changes on the market. For Waterfall projects, fixed price is usually best, while the time & materials pricing model fits the Agile approach. Whichever option you choose, it’s important to clearly establish all of these rules and expectations with your partner, and to write them into your contract.

2. Lack of project management and ownership

While preparing to work with an external team, you might worry about leadership and work organization. A good project manager (or PM) is the solution to this issue. They will organize tasks, make sure work gets completed on time, keep you up-to-date on new developments and foster the right atmosphere between you and the team. A good PM is reliable and possesses experience gathered across various projects, which allows them to anticipate challenges, react quickly to changes and spot new opportunities.

Many clients think that they don’t need a PM or prefer not to pay for another team member’s work. However, it’s crucial for any project’s success to have an intermediary between developers and the client’s representatives. Clients, often acting as product owners, are indispensable as the best source of information about their business. But they are usually not tech-savvy and need someone to explain to them the technical aspects of development in an understandable way. Developers, on the other hand, should stay focused on coding. Clear information on what should be delivered within the project, presented to them in a precise manner, allows them to work at top efficiency.

3. Low code quality

This worry can be especially acute if your company doesn’t have the technical expertise to verify the quality of the code provided by your partner. Bad code and (more importantly) poorly planned software architecture can be very costly to maintain, or make an app impossible to scale, so quality really is crucial for your project. The best way to ensure that your partner will deliver top code and architectural solutions is to make sure that their software development process includes quality assurance, and to look at their portfolio. You can also speak to their previous clients, or take a look at the reviews they’ve received on Clutch. If a software house has delivered a number of successful products, they are likely to do the same for you. Long-term cooperation with clients is another good sign.

4. Lack of team engagement

There’s nothing quite like the startup atmosphere, where all team members share the ups and downs of working on a passion project. It’s natural to want that kind of engagement for your business - but don’t assume that an external team, contracted to work on your project from start to finish, won’t be just as passionate about its success. At iRonin.IT, we care about the projects we take on, and we’re proud of our clients’ achievements. Take a look at some of the project case studies in our portfolio - we’ve worked with financial innovators and companies empowering women as they undergo menopause, among others.

5. Poor communication

It’s not always easy to communicate well across a large distance. When choosing a software development partner, make sure they will be available through multiple channels of communication, and that their process includes keeping you in the loop. iRonin.IT’s teams use Slack for easy text messaging and video calls, Jira, GitLab and Trello for task management, and PM Sentry for time tracking. We’ve been 100% remote since the inception of our company. We know how to manage productive calls, organize an effective information flow and build personal, human relations online.

6. Confidentiality and code ownership

You might wonder about the safety of your ideas and the code provided for you by an external partner. Who will have the rights to them? This is actually an issue that can be quickly settled by NDAs and a good contract. Most software houses waive their rights to the code they create for a client - but you need to make sure that they are contractually obligated to do so.

Acima Credit - example of a successful partnership

There are many projects we are truly proud of, and Acima Credit is one of them. This consumer lending platform came to us with an MVP in 2016. We extended the project’s functionality, developed a highly effective leasing management system, and added integrations with external software. Today, Acima’s web app handles 200k customers every day.

As a fintech business, Acima had to be especially conscious of security and reliability. At the beginning of our cooperation, we took the time to truly understand the client’s business and established clear goals for the project together. Our solutions needed to be technologically advanced, easy to scale and maintain, and very efficient. Integrations with third party software can be challenging, as well - in Acima’s case, we built a custom API to handle them.

The results? We built on the MVP version by using the best software development practices, such as smart team division, large tasks segmentation, an autonomous team, as well as regular code reviews and testing sessions. We’ve implemented zero downtime migrations, to make sure that Acima’s users would always be able to access the app.

Ryan Christensen, Acima Credit’s VP of Engineering, admitted that he was sceptical about offshore collaboration because of bad experiences in the past. “I can now say that iRonin has exceeded every expectation I had for them and they continue to impress me. They are an integral part of our software development team, and we continue to grow the scope of our partnership,” he says now. We provide ongoing support for Acima, allowing them to focus on their business and strategy execution. We’re excited to see them reach their full potential, and we’re ready to support them every step of the way.

During the coronavirus outbreak, we were able to help Acima by developing a set of crucial features very quickly. These features allowed our client to face the challenge of a global pandemic. Despite the short deadline, we were able to seamlessly cooperate with Acima’s other team, delivering excellent results - and we received positive feedback.

If you’re considering outsourcing the development of your project, let us know. We will answer your questions, share our experience and provide complex consulting services throughout the software development process.

Read Similar Articles