+1-205-846-5575
contact@softenq.com
+1-205-846-5575
contact@softenq.com

Starting a software project, it is wise to track its health and progress rather than just awaiting how it all ends. This is where key performance indicators (KPIs) come to the rescue. Software project KPIs are certain metrics that enable you to measure crucial aspects during the entire software development pipeline. This way you get a full understanding of how efficiently your project is progressing. Besides, armed with these indicators, you can identify certain project issues on the go and start fixing them on the early stage.

The basics of key performance indicators

When you ask about software project KPIs is very likely you talk about key performance indicators for a software development team. These metrics cover the developers’ efficiency and can be assumed as a clue to the insight of project delivery date estimation. Note, this is not a question of the single developer’s efficiency but the efficiency of the team as a whole. After all, as a customer, you don’t need to know who exactly block or facilitate project progress. You need the job to be done within your deadlines.

When it comes to measuring software development team performance, there couldn’t be two similar KPI values for two different projects. Because each project is unique. Moreover, they are helpful only when they involve preliminary planning. In other words, you need to set certain targeted values first and compare actually achieved values then.

Here are some software development KPI examples for outsourced projects we will discuss here:

Team velocity and its derivatives

Team velocity shows how much value a team adds to the product within the set milestones and represents the team’s ability to hit project milestones and deadlines. Here there are two derivatives. First, team velocity per each iteration. Second, cumulative team velocity.

Typically, delivered value means features and functionalities built. However, when it comes to software development, value includes software quality and potential performance as well. For example, you can build a file storage feature for your CRM system that allows only 1 Mb files to be downloaded or a system that successfully deals with files of any size.

Team velocity per each iteration

Here, you get a picture of your team performance within each iteration (or a milestone, if you choose). This kind of KPI metrics for software development is useful to understand at what stage blocks for the project have appeared and how efficiently the team has overcome them.

To measure team velocity, check how many tasks (scored, for example, in a story points) developers have implemented in each iteration. Ideally, the estimated and actually achieved numbers should match. If not, you need to analyze what has caused this deviation.Also, readjust the value after each sprint. Depending on the exact case, adding an uncovered task to the next iteration, you can either exclude certain previously included tasks or not.This is ok if the deviation arises at one of the iterations, though you always need to inspect its reason. On the contrary, the red flag is when the deviation repeats again and again or team velocity tends to slow down.

Cumulative team velocity

This metric deals with the team performance not during a certain period (sprint, iteration) but during all the iterations the project has gone through. In other words, it gives you an understanding of how efficiently your project progresses to its end. Moreover, it provides you with a clue on whether you will get your software on time or will face a delay.So, evaluate and set how much tasks your vendor’s developers should implement during one, two, and more iterations. For example, if you set three points to be completed within each iteration, you will score 3 at the end of the first iteration, 6 at the end of the second one, etc. The actually achieved values there should match the estimated ones after every iteration. However, it is ok if there is a negative deviation after one of the iterations. You need to be alert, but still, chances are the team will manage to get back on track in a few next sprints. The worst case is a continuous increase in deviation. This means, your project steadily run behind schedule.

Cycle time

Another useful example of KPIs for software development projects is cycle time. Cycle time stands for how many man-hours it takes to bring the exact feature to production and deploy in the perfect state. It includes the main time during which this functionality was developed and extra time to debug and improve it.

To clarify, often, new bugs and vulnerabilities emerge after you get your first product version regarding this feature. So, you have to open new tickets to get these issues fixed, and your outsourced developers work to eliminate these bugs and vulnerabilities.This metric is especially important when you are on a time and material basis. Definitely, in this case, the time your vendor’s software engineers spend actually working on fixing all the bugs and improving product performance and can be considered as your additional expenditures. As for the main time, the situation is similar. To clarify, it is the one thing when, for example, you estimate (and/or negotiate) the feature takes 50 man-hours to build, but the thing turns differ when you actually have to pay for 70 man-hours instead.So, the best (but, perhaps, rare in reality) case is when the cycle time is equal to the main time during which this functionality was developed. And, once and again, when the estimated and actually got numbers match.

Final thoughts

However, it is worth mentioning that all key performance indicators are no more than indicators in their very nature. They don’t say for certain whether your outsourced software development team is good or bad. To clarify, they give you a direction where to be alert. Thus, you need to analyze each of these metrics and take into account all the factors that accompany and affect your project health.

The request for quotation (RFQ) can be regarded both as a procedure of choosing a vendor for a software project and a paper that contains an invitation to bid. For software outsourcing companies, it stays as a formal ask «What will be the price if I handle over my software project to you?». Here, we will guide you on how to write an effective RFQ.

Why do you need to prepare an RFQ

First of all, it is worth to mention, in software development an RFQ is not only for big companies with formalized business processes and the cost as the main deciding factor. This request serves well for small or medium-sized businesses and is suitable even if you go to a freelance platform with your software project.A good RFQ hits two goals simultaneously:

However, note a request for quotation is not a counterpart of a request for proposal (RFP), where software development outsourcers shall provide more details regarding the solution you need, including feasibility study and technical research.

What items to include in an RFQ

As every formalized paper, a request for quotation has its structure. To clarify, this enables to organize information in the most readable way. Moreover, this enables you to use RFQ templates and examples and easily adapt them to your exact project.

Introduction

The aim of this section is to give a brief company background and describe your business environment and the challenges you need to overcome. For example, mention the industry your company operates in, why do you need this software.

Project overview

Here, you give a brief explanation of what software you need to have developed. Set your project goals and end-users here as well. For example, if you need a CRM system, this is the right place to denote it.

Project description in details

In this section, you need to describe what functionalities and features the product must have. In other words, here you provide user stories to implement in the solution. For example, for a CRM system, you may start with briefing negotiating, corresponding, notification, user interaction facilities. Then, you need to disclose each of these functionalities so that your outsourced developers have a complete picture of what should be the input and output for every feature.

Project scope and expected deliverables

Here, you define a minimum viable product you expect to get and prioritize tasks. Also, it is a good idea to provide your assessment of your project scope so you can have a comparison base right here when the time comes. For example, you can specify you want to have corresponding facilities first, notification facilities second, and user monitoring functionality third. And that you expect your project will take around 500 man-hours, for instance.

Required technology stack

In this section, you specify what technologies your project requires. It includes the programming languages and frameworks both for the front end and back end, libraries, a database, cloud services if required. For example, if you want to hire React JS developers, state React JS in this section. If you see your product on the MySQL database, state it as well.

Quality requirements for targeted deliverables

Here, you need to touch both functional and non-functional aspects of the solution you need to get. For instance, it can be enhanced security as a functional quality aspect. Better, if you can define metrics you are going to use. For instance, it can be assigning a priority and/or severity to bugs, using such metrics number of vulnerabilities and time to resolution.

Project milestones and deadlines

Here, you set deadlines for a minimum viable product (MVP) and milestones for each iteration. This way you help IT companies understand your expectations and whether they can meet them. For example, you can set deadlines in the form of the exact date or a period within a project pipeline.

General terms and conditions

This is where you disclose your expectations about a pricing model for your software project, your budget, intellectual property protection requirements, delivery terms, etc. For instance, state your targeted project budget if you want to contract on a fixed-price basis, of a maximum hourly rate if you are going to use a time and material pricing model. If you insist on signing an NDA, make it clear in this section of the RFQ template. If you want your outsourced software development team to send their results on GitHub, state it here as well.

Point of contact

Here, you specify a person who you designate to answer vendors’ questions and negotiate project details. Also, you need to provide contacts and preferred communication methods. For example, if you send your RFQ via a vendor’s website, give an email where he can send his bid. If you communicate via freelance platform or directory listings, make it clear vendors can message right there.

Pricing template

To have vendors’ bids more detailed and simplify your comparison and negotiation procedure, you can include in your software RFQ this clause. For example, you can state their bids shall be provided by filling up the template you provide in an attached file. The pricing template may include a table with such columns as the tasks, scope of work, hourly rates, etc.

Prequalification requirements

Here, you state your conditions on vendors’ opportunity to have their bids regarded by you. For example, you may state a vendor shall have at least 10 software developers on board, at least one successfully completed project in the targeted domain. Or that they need to have experience in running a project of at least six-month duration. Also, you can declare you allow (or not allow) junior developers to be assigned for your project.

RFQ deadlines

State the last date you receive bids so vendors can understand their timeframes. For example, for a small project of less than $10,000, one week is an appropriate timeframe.To conclude, it is worth to mention a well-prepared request for quotation will shorten your negotiation path and help you to shortlist vendors, negotiate the contract, and make your choice easier.So, if you need to build software that is fully customized to your exact needs, send us your RFQ with the above-mentioned details. We will be happy to work on your software project!

Definitely, when walking through long rows of companies that provide software development outsourcing services, you have already noticed that one vendor charges $20 per hour while another $50 or even $150. Why their rates differ? Does this mean that those with $150 ensure better quality than those of just $20? Or, does this mean that some of them just have bigger appetites?

Now, we have come to the labor rates, factors that affect them, and their costing to dig deeper to cost factors of outsourced software development projects. Well, going forward, we can say that rates a vendor charges for his services don’t go directly and in full to developers’ pockets. In other words, these are external rates that include many components. So, here we distinguish project cost factors related directly to the project execution as well as factors associated with running a company and its pricing strategy.

Factors associated with project execution

These factors are associated with the project team and include developers’ salary and project management fees.

The developer’s salary is the accrued salary, the money he earns for his efforts, skills, and experience. After all, an outsourced developer, who works on your project, is an employee for your vendor.

Typically, in software development, salary either goes in the form of or can be decompounded to the hourly rate. There are two main sub-factors that affect or determine the developer’s hourly rates:

First, salaries differ from country to country and from city to city within the country. For example, a developer may earn just $5 in a small Indian town but $100 in the capital of the US. Second, juniors are paid less than middles and seniors. So, if your vendor engaged on your project mostly junior developers, you will enjoy with lower bid though may suffer with lower code quality or longer delivery.

Project management fees are money a vendor pays to a project manager, a person who supervises a project. A project manager may run two or more projects simultaneously. So, only part of his salary is included in your exact project. And again, location affects the rate in the same manner.

Factors associated with running a company

These factors stand for company expenses associated with organizational and managerial aspects of running a business in whole. So, the final costing includes the following items that can be named as overheads:

In general, the bigger a company is, the bigger its overheads associated with infrastructure, staff hierarchy, marketing, and corporate culture policy are. And, once and again, location can be regarded as sub-factor here with the same relation and outcomes as well as taking into account differences in the government policy regarding Social Security.

Pricing strategy

Even if you manage to find two companies that share the same approach to costing and use the same numbers, their bids may still differ. Moreover, even within the same company bids may vary from time to time. This is because the last factor is in the game. Yes, we speak about the pricing strategy with its main sub-factors:

Company margin depends on the vendor’s appetites, market recognition of the brand, and their experience on the market. For example, newcomers often use a penetration pricing strategy. To clarify, they are ready to take over their first software development projects with a miserable margin or even with no margin at all. In contrast, there are branded companies that have already established themselves on the software development market. Such companies have both name and goodwill, so they can charge a good margin for their software development outsourcing services.

Clever minds say little money is better than no money at all. So, if an IT company experiences a long-term gap in project orders in the given moment, it can apply a lower margin to win the contract and cover this gap. By the way, the current workload may affect not only the size of a vendor’s margin but partly overheads he includes in the project prime cost as well.

So, when outsourcing your software development to an IT company, a project manager and software development team’s salaries are what lie on the surface as factors that determine vendor’s rates. However, there are plenty of other expenses an IT company has to incur (and, thus, include in its quote) as well as other financial aspects to consider. They may be invisible to you, but still, they are here either by law, circumstances, or company’s own choice.

Of course, you can’t manage these factors as they are not on your side. However, you should understand them clearly. Understand and be aware of why the particular vendor bid may be low or high and what risks, pitfalls, or benefits it may provide for the project and your budget.

The choice between different software development outsourcing models touches not only financial questions. In other words, this is not only about pricing. It touches also such aspects as project management, control, and versatility in terms of changing project scope as the whole. In this post, we explain the difference between the three pricing models in IT managed services:

Fixed-price model

The fixed-price pricing model means the exact cost of a software development project is predetermined. That is to say, a vendor estimates in advance how much he will charge for the project to complete and you know the exact price before you enter a contract.

This is the most desired pricing model for those who need clear price points. However, the model is not as straightforward as it is mistakably considered to be. So, let’s give it special attention.

The surface

The fixed-price model is simple for you as a customer. However, you need to define the project scope clearly in advance. In other words, you preliminarily run business analysis (BA) to understand the exact needs the solution should cover and requirements it should meet. BA results in a detailed software development specification for the project and includes all its features, technology stack, quality metrics, etc. A company you apply with your outsourced IT project assesses its scope and quotes it with its price.

Deep insight

Of course, a fixed price is very appealing to your budget policy. But don’t let it be the only thing you know about the model. Here are some other important details for you to be aware of, so you can make an informed decision and understand it pitfalls and your options within a fixed-price contract:

  1. The model does allow alterations and improvements. For example, adding new features to the final build. Yes, even with a fixed-price model you have this flexibility. However, you will have to protocol these contract amendments. That is to say, all the changes are possible but made through additional agreements to the main contract. So, be prepared it may increase decision and execution time. And be prepared to pay for these alterations.
  2. The model does not provide you any control over the project pipeline. You just hand over the project and just get the result. In other words, you can’t control the process (who, when, how, and how long code and test the program). Your only option here is to control the quality of the delivered result.

Time and material model

The time and material model means you engage an IT outsourcing company for their managed services on a “when-actually-employed” basis. Here, you pay for the hours your outsourcing developers actually spend on your project.

The surface

The time and material model is great to use in agile software development. That is to say, when it is impossible to assess all the requirements the ever-changing business environment poses on the project. When it is impossible to identify all the features software should have. At last, when it is impossible to guarantee the requirements and, thus, features of the solution will not change during project execution. To conclude, when there is no rationale in project scope assessment once and for all.

Deep insight

Though providing you with great flexibility in terms of changing and improving the final build value, this model is still kinda “to avoid” for many customers. The reason here is it demands a lot of trust in the vendor’s reliability and his commitment to your goals.

  1. The risks of manipulations by the developers who work on your project. Definitely, this may be one of the main frustrations for you. The fear a vendor may report more hours than they actually spent. As well as the fear they may spend these hours ineffectively. However, there is a perfect remedy to avoid this. Here we are talking about challenges and other trials you may ask developers to complete to verify their skills. This way you get a clear idea about their proficiency, velocity, and general performance.
  2. The model gives you more control over the project execution. Yes, we left this aspect last. Not because it is the icing on the cake but because it follows smoothly from the previous bullet point. With trials to verify the proficiency, you can preliminary assess your outsourcing software developers’ KPIs and control it during your project execution. Besides, sprints reviews and reports helps you a lot in this task. Hence, you can control not only the quality of the deliverables but over the project pipeline as well.

Dedicated development team model

The dedicated development team (DDT) model means your vendor builds a team regarding your project needs and assigns them to your project on a full-time basis. While it is your vendor’s responsibility to payroll them, actually, it is you who pay them on a monthly rate.

The surface

The DDT model is great when you have a project of a large scope in a highly variable business environment and long duration. From this point of view, the model resembles a T&M model but here you get developers to use their skills on a full-time basis. As if you would employ your in-house developers.

Deep insight

Often, this IT outsourcing model is associated with a long-term T&A model. However, this is not true. Here are the factors that make DDT stand apart from T&M:

  1. You take full control over the team selection process. Your vendor suggests and helps you interview and test a candidate. But it is you who make the final decision about whether to include this engineer into the team or not.
  2. A risk of the changeling is not your case. You know exactly who is working on your project. Thus, a DDT model guarantees your vendor does not change the developer without your preliminary permission.

Instead of summary

As it always happens, there is no “right-for-all-the-cases” model. A fixed-price contract is great for a small project but can be a nightmare for large ones. A time and material contract is great for a large project but still doesn’t provide great control over the project pipeline. A dedicated development team contract provides this control but irrational for small projects. So, selecting an outsourcing contract model is always answering the “What is your exact case, and what do you want to get?” question.


Selecting an IT outsourcing company is a task of great responsibility. Choose the wrong one, and you may end with a poor result, broken deadlines, and even project disruption. The whole procedure may seem complicated and daunting to you. Especially, when it is your first time and you do not yet know all the nuances. So, keep reading to get a full understanding of how to find a reliable house for your software development.

Step 1. Shape your IT project needs and requirements

Yes, we urge you to begin with a deep analysis of your software development needs, challenges, and requirements. To clarify, it is crucial first to understand what is your starting point and destination and map your route as rigorously as possible. No one leaves home without knowing where and how to go. The same way, no one starts looking for a software outsourcing company without knowing what he wants from the project contract.

Here are some tasks to perform at this stage:

Step 2. Make your vendor shortlist

Just as you never consider staying at the first hotel you came across while traveling abroad, never consider handing over your project to the first software development company as well. So, do some preliminary research and compose your list of vendor-to-be candidates selected out of IT outsourcing companies that fit your criteria in the first instance.

Here are some freelancing and B2B platforms and directories we recommend you to visit in your research:

Many of them have filters that enable you to narrow your search down. To clarify, there are millions of companies that provide software outsourcing services around the globe. Therefore, search filters significantly simplify your scanning. For example, you can filter outsourcing companies by their:

Also, it would be great if you know someone who has already outsourced his software development and can recommend you a vendor to deal (or not to deal) with. Yes, a vendor-never-to-deal-with shortlist is an important part of your finding the right vendor. After all, you don’t want to waste time and money just to affirm or deny their disrepute, do you?

Step 3. Verify your shortlisted vendors

Here, verification means conducting a deeper research for your shortlisted vendors to exclude those who are not the right one for your exact case. Here are some details about the candidates to pay attention to:

Visit their websites to know more about them and their services. Examine their portfolio. Contact companies to ask your questions about their expertise and experience. Read available reviews, feedbacks, and testimonials (whatever your, other customers, or a platform may call it). Ask and check their references. Discuss their vision of your project implementation and solutions they can offer. At last, verify their proficiency and coding practice.

Step 4. Analyze bids


Having gone these three steps, you will probably leave on your shortlist, perhaps, no more than five or six companies that are worth further considering. Now, it is time to send them your RFQ and analyze their bids.Here are some tips on what things to take into consideration when analyzing and comparing bids:

With five or six bid proposals in your hands, you have a very large room for decision.

Step 5. Discuss the contract and collaboration details

The cost makes the difference and determines. However, there are other things that matter as well. To clarify, you need to discuss certain contract clauses and guarantees, communication and collaboration details before making your final decision.

Here are some points to touch and analyze in your negotiation:

Step 6. Make and test your decision

Now you come close to choosing a vendor you are going to entrust with your software outsource project. Choose the one who has convinced you in their ability to deliver the result you need, the one who wins your trust. Choose and try them with a pilot project (if possible) to make sure the vendor not only seems to be proficient and reliable but really is.

Well, here you come to the end in your vendor-finding journey. We hope this guide will help you find the right outsourcing partner for productive long-term collaboration. Good luck with your project!

Despite all the huge benefits software development outsourcing may provide, it is also associated with many risks and challenges. So, let’s discuss the most common outsourcing pitfalls and find a way to mitigate their worst effects.

3 common communication risks and challenges

Two-thirds of misunderstanding issues with outsourcing comes from poor communication. It seems so easy nowadays to establish good communication via Zoom meetings, Skype calls, etc. However, the risk is still at present. And still, hundreds of customers fail to get their software developed the way they require just because of poor communication. So, this is not a subject of technical means but of other factors that beget and increase the communication risk:

Language barriers will ruin all your attempts to establish efficient communications. Simply put, if your vendor’s developers are not able to understand you, how can they deliver the result you need? The other side of their poor language skills is their failing to explain and negotiate their issues and solutions.

Time zone difference is not only your option to get the job done while you are sleeping (though, it really is). The difference may also pose a physical communication gap. For example, there is an 8-hour difference between your development team and vendor locations. In this case office hours of your vendor’s developers end right before your in-house developers start their working day.

Lack of clearly defined communication plan, perhaps, is the most crucial problem in terms of establishing efficient collaboration. Moreover, it touches all the factors we mentioned above. On the one hand, both parties need to know exactly when and how they may talk over the project issues and alterations, voice and discuss their concerns and suggestions. On the other hand, regular meetings and discussions make your vendor increase their self-organization and work more efficiently. Thus, a lack of clearly defined communication plan ties both hands and may even result in project disruption.

2 quality risks

A quality risk is, perhaps, one of the biggest headaches you may get with outsourced software development. To clarify, it splits into two parts and stands for risks of getting a solution with such shortcomings as:

Lazy debug means your vendor’s developers and testers don’t bother themselves to run appropriate life tests or build poor test coverage. Instead, they bother you and your developers to find these bugs and spend tons of time to send numerous bug requests. This reduces the project cost-efficiency as you have to pay your in-house developers for these routine instead of engaging them in more high-value tasks.

Inconsistent and hard to maintain code may be of no concern now but cause a lot of problems in the long-run. To clarify, it lengthens a learning curve for other developers and reduces room for further upgrade and customization. Thus, with inconsistent code, it will be hard to evolve your solution in the future.

How to avoid the risks

Language-associated challenges. Make sure development team your outsourcing company plan to assign for your project or, at least, a person who will oversee the project is fluent in the language you plan to communicate. This person (project manager, scrum master, etc.) acts as a link between you and developers. Thus, his language skills are of great importance for efficient collaboration and project success. The best way to check this is to contact him to talk over your project. But you need to do this due diligence before entering the contract and outsourcing your software development.

Time zone difference. This is not something you can change. However, make sure the project pipeline for your outsourced software development is tuned to mitigate the impact of this difference. Discuss the hours when your vendor guarantees the availability of an assigned project leader. Discuss an opportunity to contact him in case of an emergency.

Lack of clearly defined communication plan. Well, the only way to prevent “no-plan” challenges is to establish it as soon as (or, even better, before, at negotiation stage) the project starts. So, schedule sprint planning and review meetings and adjust this schedule according to the project progression and project pipeline alterations.

Lazy debug. Try a team you are going to outsource a large software development project with a small pilot project. Thus, you will have a chance to check them for their life-test and QA laziness.

An inconsistent and hard to maintain code. Establish a KPI system that includes such metrics as the number of bug requests with a lazy-debug nature. This way, you may increase your control over the project as well as the vendor’s awareness of their responsibilities. Thus, you can hold them accountable. And, once and again, a pilot-project practice can be of use in this case as you get a chance to check their coding practice.

To sum up, though outsourcing challenges may be fierce and severe, you can successfully overcome them at the initial stage of your outsourcing path. So, do not be afraid of the pitfalls but know how to avoid them and be proactive.