High Quality and Stabilization in Outsourcing

What is high quality in the startup world?

High quality is usually understood as the difference between what people expect, and what they ultimately get. The smaller the difference, the higher the quality.

In case of a startup, high quality means delivering what customers require in order to solve their problems. So, how to cooperate with an outsource company to achieve best results?

How do IT companies build software?

To know how to build a high quality startup, you have to understand how software is made.

Usually building software is a process in which a company delivers a working set of functionalities with each iteration. Depending on methodology, iterations could take from one week to several months (usually shorter time is better because you will be able to revise the work and more quickly adjust the product to market needs).

With each iteration, the team working on your product will probably make some awesome wireframes, amazing graphic design, and then put everything into code.

The most important thing to understand, however, is that building software is a process that rarely sees ends. There will always be some features, tweaks or adjustments you might want to add. Bottom line: there are only iterations, working sets of functionalities.

First: launch an MVP product

Well, I stretched the truth a bit when I said that building software doesn’t have an end. There are a couple of “ends” along the way. Those “ends” are software launches.

First release is a minimum viable product (MVP). Basically, what you need is a short list of functionalities crucial for your product to launch. This should be your first step in cooperation with an outsource company. They assess the amount of work required to implement those functionalities and deliver the product.

Why your MVP might not be high quality (at least at the beginning)

Ok, so you’ve made a short list of features, picked a top outsourcing company, signed the agreement but ended up with a… subpar product.

There are a few reasons why:

  • outsource teams don’t usually know your clients (i.e. not in person), so they usually have to guess user behavior and needs;
  • outsource teams use different kinds of abstractions along the design process, like feature descriptions, clickable wireframes and graphic designs. All of them share one flaw: they are not a working product and, as I’ve said before, are mere abstractions;
  • your outsource partner is focused on meeting your (not just your client’s) expectations;
  • and, of course - you might have missed something describing what your product should look like.

What’s next - stabilization

In my experience, making the product awesome after launch takes a couple of days (one week at most). I call this process stabilization.

You should bear this in mind when signing the agreement with an outsource company. They have to reserve team time after software launch, exclusively for stabilization.

Stabilization is not just bug fixes. If some of functionalities don’t work as required, they have to be fixed, period. Stabilization is not adding new features to MVP either - for these, there are subsequent releases.

Stabilization, however, could involve:

  • changing design to emphasize some actions;
  • adding descriptions in user interface;
  • adding/removing some fields from forms (some of them might turn out to be obsolete);
  • and so on…

After stabilization...

MVP and first stabilization are always hard because they involve the app facing the market for the first time. In further releases it will be easier to deliver high quality product, even without stabilization.