Arrow sending up
OG guide to software development
for Founders, Product Owners & Managers

So you are on a mission to bring value & change the world, the industry, or your company with the help of new technology?

A pleasure to meet you! I am Karol from Order Group and I work with CEOs, Product Owners, and CTOs with ambitious plans to bring their companies to a new business level. And if you are reading this it means that you probably also belong to this group. 

I’m writing this guide because I know that the most challenging part of creating game-changing software is getting started. If, just like many other business people, you are unsure about what awaits you and how to prepare for software development, you are in the right place.

By reading the OG guide to software development: 

1.
you will get solutions to many common problems and misconceptions about creating software projects & development
2.
you will get answers to the most frequently asked questions (based on real life project situations and cooperations with customers in our industry
3.
you will learn about good practices in software development

I will try to give you both a broad picture of the product development process and a specific explanation of the stages of the project. 

If any of the threads still raise your doubts – contact me directly.

So, without further ado, let’s begin.

Karol Oponowicz
Pope of Design

You are on a mission to build something new.

What do you need to lay down before coding?

The misconception about the business success

Initially, I want to highlight one crucial thing for this guide and the software development process in general. Programming is not the most critical step in creating a successful digital product.

You may have difficulty believing these words, especially since they come from a guy who works for a software development agency. However, to be sure, I will write again that the app itself won’t decide about your project’s success.

Over the years of building software and working closely with entrepreneurs, I’ve learned that people tend to overestimate the role of product development. And it’s fully understandable because an innovative, cutting-edge technology does seem like a bulletproof solution to win the market and the clients.

The reality is, however, that it hardly ever happens. The product, be it an app or a website, is just the tip of an iceberg, resulting from a broader process that I’m sure you have heard of: the business plan and product market fit. And every business plan begins with questions. Luckily, you don’t need to come up with the questions yourself because Product workshops and other strategy planning methodologies come to the rescue.

The Discovery Phase: where everything starts

The Discovery Phase is all about envisioning, describing & shaping your project. We use different workshop sessions as a framework that allows us to cover certain topics and parts of your vision.

The Briefing, Product & Dev Workshops
are different events that allow us to come up with the first full vision of documentation, wireframes, mockups, and prototypes of your project. We agree on the initial architecture & tech stack, set the milestones for the business and development roadmap, set the dates for all upcoming Sprint Demo’s & agree on a time for Daily Standups. We clarify the User Stories, plan & start planning the UX work. It's essential to do it all before the project kicks-off.

The Briefing Workshop: setting your project’s foundations

Just as building a house begins with creating an architectural blueprint (based on the users needs), creating a successful software starts with answering the most critical business questions. It’s the very first phase of a software development project, and it’s called the Briefing Workshop.

Before a single line of code is written, first, you want to map the characteristics of your targeted group (you need to really know your users), the specificity of your industry, your position in the market, and the strengths and weaknesses of your competition.

If you decide to develop an app you should start the work with a proper Discovery -  a series of Workshops that should be structured and divided into 2 or 3 subsequent sessions.

Here is a structure that we follow in Order Group:

At the end of the day, no one but you and your team will be able to answer these questions. Of course, you can ask colleagues, consultants, or agencies for help, especially collecting your competitions data or doing market research, but the final decisions, however, are yours. It's a huge responsibility, I know, but I also know that with the help of your team, you will make it. 

If you would like to see some deliverables from such workshop sessions – contact me directly. and I can show you some examples during a call.

If you don’t have time or budget to go through a thorough discovery you can take some shortcuts here:

You could try to cut some corners and reverse engineer a methodology which is used in qualifying promising projects in sales processes used in many software companies. It’s a structured way of evaluating a project's potential - it’s a simple yet effective methodology called BANT.

You can divide:

Budget

So first, begin with a good look at your financial capabilities.

1.
What's your current budget?
2.
What financial limits do you want to fit?
3.
How might your budget change in the foreseeable future?
4.
Do you want to use external financing if the current budget isn’t enough?

Before you start developing software, also inquire about the finances of the future product.

1.
If you create a solution for your employees, how much time and money will it save your company, and how?
2.
If you are developing a commercial application, how will it earn for itself?

Thanks to these questions, you will verify whether you are ready to implement your business vision financially-wise, and if not, when would that be. You will avoid a situation where you talk to contractors for weeks, only to discover that you’re not even halfway through the financial path.

Authority

Questions not as evident as those about the budget but extremely important. One of the most frequent causes of failure of technological projects is diffused responsibility, so define as soon as possible who and for what will be responsible in the project.

1.
Who from the company will make key decisions in the project?
2.
Who will be in constant contact with the development team or the contractor?
3.
Am I ready to spend time managing the project and participating in meetings?

At this point, you might want to get familiar with the term Product Owner.

“Product Owners navigate the project, adjust the speed, and oversee every aspect of the development, from back-end to design and UX (...) The role of a Product Owner is a combination of several positions and requires a set of skills, specific expertise, and personality traits. They must deal with business, analytics, design, customers, and marketing”.

It’s the most significant role in the software development process; chances are, you will play it, especially if you’re the main person responsible for the project. On the other hand, if you run a big company, you may nominate someone from inside the company or an external specialist.

Either way, ensure that you have or will have such a person for the software development project. And if this will be you, then, well… Fasten your seatbelt. :)

Needs

Now, this is where the real fun starts. Questions from the Needs category are about what values you want to bring to the world and the fundamental importance of your product, and what you as a founder / owner need to make it happen.

1.
Who will buy / use your product?
2.
What will be the unique value of your app?
3.
Do similar solutions already exist on the market?
4.
What are their strengths and weaknesses?
5.
What will distinguish your product from the competitors?
6.
What problems will your product solve for the users?
7.
What benefits will your product provide?
8.
Who do you need to build this product / app?

At this stage, you will discover your true business potential. You will likely determine the application’s success if you do an excellent job researching the market and the needs of customers and end users. 

Your answers to these questions will steer the project in the right direction, so be scrupulous, honest, and decisive. Because the last thing you want is to invest your time and money into a project that is not well thought out, right?

Oh, and by the way – we might help you get this information out. Like we did for Enerace, an app that revolutionized the energy procurement industry, thanks to a thorough discovery phase and market research.

The Design Workshop: where business goals meet real users needs

In the next stage of creating a successful digital product, the Product Design Workshop, you will focus on your future product development from the user’s perspective. You will recreate the user journey - from the moment their need appears, through interaction with your product, and ending up on resolving the issue(completing the need and receiving a benefit) and closing the app. Sometimes it’s worth to consider what can “hook” the user and bring him back to your product.

You will ask yourself questions about the biggest challenges of your users and how they want to resolve them. However, the ultimate goal is not to just answer these questions but to shape the answers into an actual product that you will present to real users later.

You will match the theory with practice and, most likely, see your product for the first time.

But why even do it?

Timeframe

Finally, you should define the time frame.

1.
Do you have a project roadmap in mind?
2.
How much are you in a hurry?
3.
Do you have some milestones, KPI’s or deadlines to meet?
4.
Do you have time to manage the project yourself?

If you know the answers to all of the above questions - you are on the right track to push things forward. Now, you are ready for the next step: narrowing the broad business picture into a tangible and concrete product. Or, rather, a prototype.

The Service Design/UX first approach

The Design-thinking approach to software development has taken the IT world by storm. It’s based on creative problem solving, prototyping, and testing. Its goal is to build a product that fulfills the business goals by responding to the actual users' needs. Design Sprints aim to reduce the risk of developing something that doesn’t match the market. So, before you start coding the solution, you first create several prototypes and put them through the testing meat grinder.

The UX-first rule is beautiful in its simplicity: your user’s needs are the product’s starting point, around which you build the design and features. So instead of just assuming that a feature “X” is needed and then developing it, you:

1.
Gather your stakeholders and colleagues (and sometimes even clients),
2.
Deeply analyze users’ challenges,
3.
Think of the best solutions to resolve them (look for already existing well defined patterns),
4.
Include these solutions in a prototype,
5.
Test the prototype with real users,
6.
Repeat the process until the test with users is satisfying and your final product is shaped.

The above process is called the Product Design Sprint. In Order Group, we combine two specific methodologies to go through this process painlessly.

User Journey Mapping and Design Sprint

User Journey Mapping and Google Design Sprints are two exercises to learn and discover different layers of information about your user. The questions aim to look at your user’s needs from different angles to create an interface that best matches those needs.

Example questions:

1.
What is the client's biggest motivation behind the product's development?
2.
What existing problem would you like to solve by creating this product?
3.
How (exact steps & actions) will your product fix that problem?
4.
How are you going to measure your product's performance & success?
5.
How are you going to check and validate if your product is needed?
6.
What is your product's value proposition, and is it valuable to the user?

From my experience, these exercises are not only good for the one particular product you want to develop, but they will also organize your knowledge about your company and clients in general. We’ve used this framework for several years now, and every client of ours had their “a-ha!” moments during the UJM or GDS.

MVP vs. MLP vs. MMP: Witness your product for the first time!

I’ve already mentioned the word “prototype” a couple of times, and it’s time to explain it further. So, suppose you’re in the Design Workshop process, thinking about how your users behave and what they need. You lay down some bold assumptions about the features and the design.

Now, what would be the best way to verify your theories, if not with a low-cost, high-usability prototype? Or maybe you would like to deliver something more memorable, standing out and loveable?

MVP, the Minimum Viable Product, is a simplified version of your product. It’s not perfect, but it’s not final, and you don’t spend too much time or money designing it. You create it during live design sessions, where you draw a sketch in-real time. Then a software developer completes the sketch, and you present this version to the users.

Consider MVP a low-cost version of your app whose goal is to be tested and thrown to dump. Whatever appears to be good in it stays for the next iteration. Likewise, whatever is missing will be added in the next iteration, based on the user’s feedback and your intuition.

The goal of MVP is to validate your ideas at minimal costs. It’s a low-risk, high-reward solution and an absolute milestone in software development.

MLP: Minimum Lovable Product – similar to an MVP, but with more thought and care taken in design and UI. It aims to solve the problem, but also delight.

A Minimum Lovable Product (also known as Minimum Loveable Product) goes beyond asking ‘how do we fix customer’s problems?’ by also asking ‘how do we delight them along the way?’

In product development, it’s important to take the time to conduct the proper research to adequately fill the needs of the user. When building an MLP, that research includes finding out what they love. This could be a pleasing design aesthetic, an innovative user on-boarding experience, or integration with other tools.

Earning your user’s love is vital for early product success, as it’ll give you an edge over your competitors, and help keep your product memorable.

MMP: Minimum Marketable Product – this is the version of your MVP (or MLP) which you’ll push to market.

At the end of the day you will need to decide on what feature set you would like to push to the market. This usually boils down to decisions being made by the Product Owner during the development and dynamically changing market. You will decide will it be leaning more to the MVP or MLP side.

While you are focused on the Product Design stage, with your Product Prototype tested and verified multiple times,don’t forget to fill out the tech blanks and get to the last workshop phase before the actual coding.

And in the meantime, check the Kyoto case study, where Product Design Workshops played a crucial role in developing an energy storage system and obtaining $18,000.000 funding.

The Development Workshop: let’s talk about code

Once the business overview is clear, and the MVP has taken the final shape, you’re ready for the Product Development Workshop. Its goal is to find the most suitable IT solutions and plan the entire software development process.

Whether you're creating an app from scratch or upgrading the existing one, an Analyst will go through all IT-related aspects of the project.

Areas covered:

1.
What technology stack should we use?
2.
What will be the system’s architecture and cloud infrastructure?
3.
Which features do you do from scratch, and which using ready-made solutions?
4.
What will be the Development Timeline?
5.
What are the rules and requirements for testing?
6.
What are the Support / SLA requirements and needs?
7.
How the designed prototype will translate into the development work (how many screens and functionalities we will need to develop)

Development workshops are helping to define a lot of things like:

the list of developers (with certain tech skills) that are needed to create the project

an outline for the projects backlog (list of epics and user stories)

After Product Workshops, you will receive complete documentation with the development roadmap. You will learn about the resources you need and the necessary time to build the app.

At this point, you’re ready to start the actual coding. Can you imagine building a unique, complex technology without taking previous steps? I hope it’s clear to you just how vital the workshops are.

Now let’s dig into a few other issues that reveal the big picture of software development. 

The 5 big questions about your future product

In software development, there are questions that sooner or later will pop into your mind, and even if they don’t, someone will surely raise them. I’ve listed 5 of them that I believe are of the most significant business importance.

How much does the software cost?

You guessed it right: how much does the software cost?” is the biggest question among stakeholders, and I will start from it. And yes, you guessed this one too: you’re not going to get a precise answer here, although I will shed some light on the matter that I hope will be satisfying enough.

So, first of all, the cost of the software depends on whether you want to create it from scratch, upgrade the existing system, or use a ready-made solution. In the last case, simply visit the vendor’s website to learn the costs. You will choose between different pricing plans that usually are transparent and often include the Enterprise pricing model, which is calculated based on your individual needs. You will get on the phone with a consultant, who will ask you several questions and get back to you with a rough estimate.When it comes to custom software development, the cost question is a bit more complex.Since our approach is that we don't just want to create the product but to deeply understand your needs and help you reach your business goals, the cost estimation is a thorough process and requires a few steps.

In fact, three very precise steps with which you’re already familiar with.

1.
After the Briefing Workshop, you get a quote of 65% precision.
2.
After the Design Workshop, you get a quote of 85% precision.
3.
After the Development Workshop, you get a quote of 95% precision.

I will also add that our custom software development projects range from X to Y. Are you close to the ends or somewhere in the middle? Or maybe you will set a new standard in our company, at the bottom or top of the list?

There is no other way to find out than get in touch with a software agency. 

For now, however, I will dig a little deeper into the two approaches to software development we’ve just tackled.

Should I go for an Off-the-shelf solution or a custom app?

What is an off-the-shelf app?

Off-the-shelf solutions are ready-made programs that you can use based on a license, subscription, or even free. These are generally available, ready-to-implement apps that, in most cases, respond to companies' generic problems, such as task or invoice management.

Some off-the-shelf apps you can implement on your own and almost immediately; others require the support of a company that will adjust certain features to your needs. 

You can customize them to some extent, but the foundation of the software remains unchanged. You can only navigate within the predefined functional and visual framework as a customer or a user.

Examples of off-the-shelf apps are MS Office, SalesForce, or Slack.

Off-the-Shelf pros

  • Relatively cheap, especially at the beginning
  • Fast implementation
  • Easy to use
  • A large community of users and developers
  • Free technical support and updates

Off-the-shelf cons

  • Limited customization & scaling
  • Costs increase over time
  • The tool is not yours; you only rent it

When to choose off-the-shelf?

1.
You have simple business challenges
2.
You have a small budget
3.
You’re not planning to create something new and unique on the market

What is custom software?

A custom solution is tailor-made; it's created based on the unique needs of employees and companies. You won't find them anywhere on the internet. Instead, development teams make them from scratch in the custom software development process.

Need an example of dedicated software?

Enerace, a SaaS for consulting services in the energy procurement industry

Kyoto, an industrial solar battery management platform

Clear AirSpace®, Google Maps for Airplane Pilots

Custom apps pros

  • Total adjustment to the company's unique challenges
  • Unlimited scaling
  • You create new quality and unique value on the market
  • The application is yours, and you can manage it freely

Custom apps cons

  • High initial cost
  • Demanding process of the development
  • More significant risk and responsibility; you will pay for all decisions made in the development process

When should you choose a custom app?

1.
Your company is so specific that generally available solutions aren't enough or don't exist
2.
You want to create a unique brand, set trends, and establish a new quality on the market
3.
You have a proper budget or external financing

Which software billing model will fit you better?

If you already know what the cost of a dedicated application depends on, it's time to learn about the two most popular forms of billing for this kind of service. Your choice comes down to Fixed Price and Time&Materials (T&M).

What is a Fixed price model?

In the fixed-fee model, you get the project’s final price (with a management reserve of up to 30%) before coding starts. It’s a well-known way of paying for services; one could say it’s a traditional or natural way of paying for things in general.

The main principle of this model is simple: you provide the contractor with data about the project, define the scope together and get a complete quote for the service. The price is based on the precise contract called PRD (Product Requirements Document), which includes the scope of work and acceptance criteria.

Price transparency and predictability are the most significant advantages of the Fixed Price; you know how much you will pay from the beginning, and you can easily plan your budget. However, it comes with a risk because you fully commit to a specific range of services.

If, after signing the contract, a new legal regulation comes into force that will change your business environment, you won’t be able to change the direction of software development easily. Likewise, if a new technology appears on the market that you could introduce to your app, you wouldn’t be able to implement it.

Due to its simplicity, Fixed Price is recommended for repetitive, predictable projects when you are sure about the product’s final shape and don’t expect any changes in the making of it.

Fixed prices pros

  • Simplicity
  • Predictability
  • Easier cost planning

Fixed prices cons

  • Limited flexibility to the changing business and technological environment
  • Usually more cost
  • Takes longer to start the project

When should you choose the fixed price model?

1.
Your project is simple and predictable
2.
You are making a 1:1 copy of the website or app
3.
You release a small product
4.
You don’t expect changes to the project during its duration

What is a Time & Material Model?

In this model, the product’s final price depends on the working hours of the development team and the tools it uses. The cost of the service increases as the project progresses, and you only know the final price when the software team puts the last line of code.

The biggest advantage of the T&M model is that you can immediately kick off the project. You don’t declare a specific result, so the initial planning takes less time. Additionally, you create and improve the app in real-time, and you can adjust its course depending on the variables, such as user feedback or business changes in the industry.

T&M pros

  • Quick start
  • Flexibility
  • Lower cost
  • Adaptation of the product to changing trends

T&M cons

  • Less budget predictability
  • More complicated (takes into account many variables)

When should you choose the T&M model?

1.
You run a startup or a dynamically developing company
2.
You have a rough idea of the direction of development, but you don’t know what the final product will look like
3.
You want to be able to change the app in real-time

Now that you’re aware of the software development pricing models, let’s discuss two approaches to how software is being made. They’re inherently connected to the pricing models, and you will also have to choose between one of them.

What software development methodology should you choose?

Nowadays, most digital products are created in two main ways: cascade (Waterfall) or agile (Scrum). Which will suit your project better? It depends on your product type, company, and industry dynamics. I will describe both methodologies below.

What is Waterfall?

The Waterfall model is a traditional project management approach. It breaks down the project into specific, predetermined stages. The course and purpose of each stage are precisely described; in the Waterfall methodology, the project moves from point A to point B according to the planned scenario.

Waterfall projects rely on a project specification, which includes, among other things, a list of features and the time and budget necessary to create them. 

See any similarities with one of the financing models described above? You are right; Waterfall and Fixed Price go hand in hand.

Importantly, in a Waterfall project, you set the project assumptions in a small group of people. In this methodology, development teams only follow a set plan. There is no communication between you and those responsible for writing the app.

Waterfall pros

  • Predefined, thus predictable cost, execution time, and scope

Waterfall cons

  • Low flexibility and adaptation to changes
  • If your initial idea doesn’t work out, all the changes will cost you a lot

When should you use Waterfall?

1.
You have a clear plan for your product
2.
You know you won’t need  to change anything during the development process
3.
You need to know the cost before coding (for your investors or because of law regulations)

What is Scrum?

In opposition to the cascade approach, there are agile methodologies, the most popular of which is Scrum.

In Scrum, you also divide the project into stages, but they are different from Waterfall. Scrum Sprints last from one to four weeks, and after each sprint, you verify the project’s progress and plan new activities for the next sprint, taking into account the conclusions from the previous one.

Thanks to this, you can continuously make changes to your app and have complete control over the work progress. But on the other hand, you aren’t sure how much the Scrum project will cost you, and you cannot plan your budget in the long term.What is the unique value of Scrum? Responsibility for the success of the project also goes to the development team. As I mentioned, the most important person in software development is the Product Owner, who makes critical decisions. However, he does it in consultation with software developers, who actively participate in the project and help make technology and business decisions.

Scrum pros

  • Better matching of the product to the market
  • The ability to make changes on an ongoing basis
  • Quick verification of business assumptions
  • Shared responsibility of programmers for the success of the project

Scrum cons

  • Unpredictable budget
  • Demanding process (If you are a Product Owner, you become part of a team and have to work with them)

When should you choose Scrum?

1.
You want to be able to change the product in real-time
2.
You want to best adapt the application to the evolving trends
3.
You don't know what the final version of the product should be

Do you want to know why we have completely moved to Scrum after five years of running a software house? Then, check the 6 reasons why agile methods are a better choice for software development. You will learn about Scrum’s advantages in greater detail, and in the meantime, let’s jump into another of the big questions you and your company will have to answer.

Cross-platform or a Native App?

Suppose you have decided to create a brand new solution from scratch and want to release it on both the Google and App Store. Who wouldn’t want to be visible to all the phone users in the world, anyway?

In this case, it’s time for you to decide between cross-platform and native software development.

What is a cross-platform app?

Cross-platform development is a strategy to create one software adjusted to many platforms. You release a universal product integrated both with Android and iOS. Flutter and React Native are the two biggest cross-platform frameworks on the market. Cross–platform apps are widely used worldwide by huge and well-established enterprises like Facebook and by young and innovative companies who want to test their business ideas quickly and cheaply.Thanks to their universal nature, multi-platform apps are an excellent choice for startups; you only need one development team to reach the entire market. The price for this privilege is the lack of or more difficult access to features dedicated only to native apps.

Cross-platform pros

  • Faster time-to-market
  • Lower development cost
  • Faster testing of new versions
  • Less code to manage (you only need one development team)

Cross-platform cons

  • Limited access to some features reserved exclusively for iOS and Android
  • Minimally lower performance (which might make the difference in the case of hundreds of thousands of users or high-tech features)

When should you choose a cross-platform app?

2.
You don't expect complicated features using geolocation, Augmented Reality, etc.

What is a native app?

Native app development is about creating a mobile product directly for a given platform, whether iOS or Android. Therefore, if you want to put your system in both stores, you must release two dedicated apps. Among the most popular native applications you will find WhatsApp and Spotify.

Contrary to cross-platform solutions, Native apps have the best possible performance and can benefit from the full range of features available for each operating system. The drawback, however, is that they cost more and are more problematic to manage since you need to maintain two software teams instead of just one.

Native pros

  • Full access to all available iOS and Android features
  • Better performance, especially in advanced features related to hardware, with a large number of users

Native cons

  • Longer time-to-market
  • Higher costs
  • Two development teams to manage

When should you choose native apps?

1.
You want to make use of all iOS and Android features
2.
You work in an industry where the highest possible app performance is important
3.
Your app will use complex technological solutions
4.
You have the time and budget to maintain two development teams

Who, why, and how should develop your app?

To outsource, or not to outsource?

To outsource, or not to outsource?

Now that you’re familiar with the most important product-related issues, it’s time to return to your business model. After all, the decision to build an in-house development team or hire outside specialists affects your product strategy AND the entire company.

As a rule of thumb, you will either build an in-house programming team or outsource software development to a development agency. Chances are, you will combine both approaches and choose a hybrid model, but for the sake of this guide, I will focus on the two most popular methods.

The specificity of an in-house team

The greatest value of building the IT team in-house is having your developers close to you. Generally speaking, on-site people are more attached to the company and better understand the project. Likewise, the management is more eager to invest their time and money in developing on-site developers’ skills through coaching sessions or courses. 

Local developers also ensure a full cultural fit and communication at the highest level. Employees from the same country understand nuances that foreigners cannot understand. This factor also brings the team together, potentially increasing its quality of work and efficiency.

What's on the other side, though? First, you spend huge money on finding, onboarding, and maintaining an in-house development team. These costs aren’t only the salaries but all the employee-related expenses, like the hardware, software, taxes, or benefits.

Recruiting a developer is also time-consuming; finding a good developer is complicated or very complicated, depending on where you live. Based on our experience, finding a tech specialist takes 50 to 60 days, so if you need a development team immediately, you will most likely not complete it on your own. 

And if you hire someone who fails at their role, you pay for the unsuccessful recruitment out of your own pocket.

Finally, I would like to add that building an in-house team is a considerable business challenge that will consume much of your time and energy. It’s impossible to hire and manage a programming team part-time. It’s a demanding process both financially and intellectually.

In-house pros

  • Easy communication
  • Full cultural fit
  • Influence on the team morale

In-house cons

  • High price
  • Time-consuming
  • Split business focus

When should you choose In-house?

1.
Programming is the most critical area in your company
2.
You have a big budget. I mean, very big.

The specificity of IT outsourcing

Software outsourcing means much lower costs; you bypass the expenses related to hiring and retaining employees full-time. You don't have to limit yourself to the pool of local developers either. By opening up to outsourcing, you get access to engineers from every part of the world, specializing in any software and having any experience or skill set.

Thanks to this, your time-to-market is vastly reduced. Having a suitable outsourcing partner allows you to complete the engineering team, build the product’s prototype, test it and release the final app in no more than a few months. The same process held in-house would take you at least twice as much time (and, no offense, I’m being super optimistic here).

On top of that, outsourcing allows you to focus 100% on business development, sales, marketing, and finances—eyes on the prize.

At the same time, outsourcing IT limits your control over the team and its morale. Even the best workflow with a subcontractor won’t provide you with such smooth and trouble-free communication as with developers working in the office.

I also mentioned the cultural fit earlier; despite the disappearing differences between nations or the universal nature of the code, you will never connect with foreigners as with employees from your home country. These may be subtle differences, but they do exist. Common language, shared traditions, evergreen movies, local proverbs, and memes make the difference. Period.

Outsourcing pros

  • Lower cost
  • Faster time-to-market
  • Quick and unlimited access to developers
  • 100% attention to the core of the business

Outsourcing cons

  • Difficult communication
  • Less cultural fit
  • Limited control over the development team

When should you choose to outsource?

1.
Low costs and fast time-to-market are important to you
2.
None of the board members has programming skills
3.
The core of your business isn’t software development

As you can see, cultural mismatches and difficult communication are the most problematic areas when it comes to outsourcing. At Order Group, we understand how important these challenges are, and for ten years of running the company, we have developed a model of remote cooperation that addresses them well.

Let's talk about nearshoring.

What's nearshoring, and how to make it work for you?

You can choose among three models when outsourcing the IT work to a software development agency.

Onshoring is outsourcing work to a company from the same country. There is a complete cultural fit between you and the contractor, but the price of it is high for the local developers and their limited availability.

Offshoring involves hiring software developers from anywhere in the world. In this model, you can employ cheap programmers at the expense of a different time zone, work culture, and sometimes low quality of work.

Nearshoring is a compromise between these two approaches: you outsource work to a country close enough for you to be similar cultural-wise and be able to visit each other regularly. At the same time, you hire cheaper and more accessible employees than programmers from your city or country.

How do we make our nearshoring partners feel at home?

As mentioned above, companies choose nearshoring because of the reduced costs, access to a bigger pool of developers, and the possibility of establishing a close relationship with a nearshoring partner.

Conversely, the most significant nearshoring risk comes from the distance between companies. If your outsourcing partner is in a different country, it's harder for him to understand your company, employees, and the meaning of the project.

How do we address these challenges at Order Group?

We practice nearshoring

We're nearshoring practitioners. 60% of our co-operations are carried out in this model, and the percentage of nearshoring customers is growing yearly. We've been supporting Western European companies and polishing the hybrid model since 20XX. We keep improving the process, adjusting work tools to the ever-changing IT environment, and educating ourselves and our clients in remote work.

We speak your language

Needless to say, the programming language is universal, making IT outsourcing viable for companies worldwide. But we don't stop there.

As a Scrum company, our developers are in direct contact with our partners' stakeholders, so we hire only engineers with perfect fluency in the English language and good communication skills. Of course, it also works the other way around; we only work with companies where English is the official language of communication or at least commonly used by employees.

We visit your office

There is no substitute for face-to-face meetings, so we visit our nearshoring partners in their offices. For example, we went to our Norwegian-based partner Kyoto for two weeks to get to know each other and thoroughly understand their business needs. We also flew to the Danish company Nuvve to conduct product workshops and planning sessions.

The experience from these two and many more projects has taught us that you can't truly engage in app development if you don't get involved directly. Sure, remote work, emails, and quick telcos have value, but only when you combine them with face-to-face meetings can you create not a good product but a great one.

How to recognize a top-notch outsourcing partner?

Now, let's focus on choosing the right technology partner. As mentioned before, outsourcing software development is a strategic decision. You will merge with another company for at least several months, so when choosing one, you should be as careful as when hiring in-house employees.

Below I will present the essential criteria you should verify before signing the contract.

Experience in similar projects

The primary criterion that will significantly reduce the number of potential candidates is their experience in your field. 

A company that knows your industry will understand your needs better and propose the right solutions faster. Suppose an agency has already succeeded with three other companies with similar challenges. In that case, there is a good chance they will do the same for you. Because as Frank Sinatra sang in "New York, New York":

"If I can make it there, I'll make it anywhere."

Working with an agency with a proven track record in your market will also reduce your time devoted to introducing them to industry nuances, such as the niche terminology or specific user behavior. All this will be easier and faster to learn for someone who has already dealt with similar issues.

Software development process

Now let's go back to the first paragraph of this guide: Programming is not the most critical step in creating a successful digital product. So before you decide on a technological partner, find out his proposed software development process.

Since your success will depend on a good business plan and not on the product itself, a relevant IT agency should conduct Product Workshops before it starts developing your product.

1.
Business Workshops, where you will set a broad picture of the project and outline the fundamental business goals,
2.
Design Workshops, on which you can pre-define the shape of the product based on the users' needs,
3.
Programming Workshops, during which you specify technical details, such as the appropriate technology stack, necessary development resources, and a project roadmap.

If you want to create an innovative product or need a complex solution tailored to the specifics of the industry, then an agency that proposes a specific technology on the first call is probably not suitable for the job.So before the first interaction with an agency, check its website and read the "process" or "services" subpages to verify their process. Next, ask about it at the first meeting.

Cultural fit

Suppose your product is small, or your requirements are so specific that the project doesn't need close and ongoing cooperation with developers. In that case, the cultural fit isn't that important. An agency that "gets things done" will do just fine.

But when you create a complex solution from scratch or plan to change the already existing app significantly, the workshops, conceptual work, and programming will take a long time, and you want to get along with your outsourcing partner. 

Our experience has taught us that, in the long term, you don't want to work closely with someone who doesn't share the same values as you. Interpersonal friction will affect the flow of collaboration and, ultimately, the product itself.

Your only way to verify the cultural fit is to talk to the contractor and ask him questions. Pay attention to how they carry out the whole communication process. For example, how quickly they answer emails, what language they use, and what questions they ask. Do they care about learning about your business goal? Do they want to understand the core of your business?

Readiness for an on-site meeting

A successful software development project requires close cooperation between the stakeholders and the tech team. And although the IT industry is a perfect environment for working remotely, even the best remote process can't replace live meetings.

That is why, as Order Group, we chose nearshoring and encourage you to focus only on companies ready to visit your office. In my experience, it's only during live meetings that you can establish a genuine partnership with another company, both at the professional and private levels.

If you want the several months of cooperation with a technology partner to be pleasant and fruitful, ensure that the agency is ready for regular visits to your city.

Technical expertise

After a well-established business plan, the time for software development will come. And, of course, you want your technology partner to offer top-shelf IT services. So how can you check it?

First and foremost, check if the agency works in a given technology stack. The agency's blog will be a great source of information here; if the company has programmed a lot in a given language, you will surely find out on their website.

Secondly, you want to verify the agency's technological competencies directly. For example, you can arrange a competency interview where your CTO will talk with the contractors' managers and developers.

The agency should be fully open to such verifications. If you notice any resistance on their side, that's a red flag.

Responsibility and flexibility

The "Cultural fit" covers many different behaviors and values, but in my experience, responsibility and flexibility are the most important ones in software development. So let’s begin with responsibility.

You can't succeed without programmers who actually care and are eager to take some weight on their shoulders. First of all, they will take it off your back. Second, being responsible means caring for something, and you want your development team to care for the product. Third, empowering people with responsibility gives them a reason to work hard because the project's success is their success, and so is the failure.

And when it comes to flexibility, it's truly a unique virtue in the software development world, especially in the startup world. IT projects begin with certain assumptions but tend to shift dramatically during the workshops. There are many reasons for that; sometimes, new legal regulations force changes in the design, and the product workshops reveal revolutionary information about users and their needs. 

Regardless of the circumstances, you want your development team to be ready for dynamic changes in the project.

Therefore, when looking for a contractor for a project, pay special attention if they are willing to co-create the app with you and, if needed, change the course of the development.

How can you verify it?

Make sure your future development agency works in Scrum. This methodology assumes programmers' responsibility for the project by default; they help you make key business and technology decisions. At the same time, Scrum anticipates short product iterations, thanks to which the Scrum team will quickly adapt to the new reality if an unexpected situation arises.Scrum programming teams are self-organized, open to giving and receiving feedback, and are much more oriented toward open communication than, for example, Waterfall teams.

The final word

In the end, I will again emphasize the value of the business plan.

During the ten years of Order Group's existence, we have run over 300 projects. We have seen the ups and downs of dozens of companies, primarily startups. 

All failed projects had one thing in common: founders put too much faith in technology and paid too little attention to the business model. 

Instead of discovering their market and customer needs, they've been sharpening their teeth for their upcoming app that will take the world by storm. But, unfortunately, to do this, you first have to answer a couple of questions presented earlier in this guide. And success will come by itself.

Well, almost by itself :)