For non technical business owners who collaborate with an outsource sooner or later comes a question: “How to ensure that everything goes well with my software development?”. Sometimes this question came as part of the desire to terminate a contract with an outsource software development agency, like it is described in our post 6 Steps on how to terminate a contract with an outsource custom software development company. Sometimes because owners see negative consequences and nobody can tell why (delays in planning and go-live, bad quality, security risks and so on).
In both cases a question “How to audit outsource software development?” arises. And the process starts from choosing by whom the audit should be done.
But before answering the question, I’ll make my usual advice: provide feedback and see what will happen. Trust is important in all businesses so if you don’t trust your agency - better to carefully talk about it and fix it.
So let’s see possible options on how to solve the question.
1. Learn and audit on your own
As a person, who loves to get new experience - I can't skip this option to dig into details and analyse on your own. This could be tricky for completely non-technical persons, but this approach has its own pros and cons.
The pros and cons
Advantages:
you invest your time in your success and learn something new
cheapest option (except of the time invested in learning)
less problematic for the future as you'll have in-house expert - yourself
continuous control instead of periodic audits
if you plan to continue your business in IT domain - the most pragmatic option
Disadvantages:
time consuming and not the fastest option
you can't compete with 10+ years engineers and in any case will rely on your engineering team for the first time
impossible option if technology is something you don't like at all or don't want to focus on
2. Find freelancer
It could be Senior Engineer/Architect or Chief Technology Officer (CTO).
How to find:
ask network for recommendations, ideally choose somebody with business (less chance that a person don’t understand business needs) and domain expertise
if no recommendations - Upwork and freelancers with good ratings can help
don’t look for candidates on job boards - most often they are focused on long term cooperation
Interview candidates by trusted persons (ideally by 2)
no trusted persons - bad news, then you need to find 2-3 people and make 2-3 audits and compare. Could be a disaster, as they can provide 3 contradictory conclusions as most often one thing in software development can be done by 2-3 different scenarios and all of them could be right.
Pro Tip 1: never hire consultants that propose your hourly rate and don’t tell estimates on when the audit will be done. They can explain it by many serious factors, but in majority cases after initial talk and overview of audit requirements professionals with domain knowledge can say the initial estimate. Ask for a fixed price - this is better.
Pro Tip 2: don’t hire for that purpose another outsource. They will always tell you that the current company does things completely wrong and they know how to make it right.
Now let's see pros and cons for the option
Advantages:
comparatively low cost
fastest option
easy to replace consultant
fresh view on software development process and on your product idea
Disadvantages:
sometimes it is not enough to have one person, especially for technically difficult projects with multiple technologies (or need to find Architect/CTO level)
risk that a person will be not so motivated and provide you an audit that will be not so good or professional
3. Hire in-house CTO
This option is similar to the 1st option, but with some important differences.
How to find
ask network for recommendations, ideally choose somebody with business (less chance that a person don’t understand business needs) and domain expertise
if no recommendations - job boards and boards like Y Combinator
Interview candidates by trusted persons (ideally 2)
for sure set KPI that are related to the product financial success - this person should be fully interested in business goals
Worth mentioning that I saw a case when a non technical business owner asked some trusted engineer to become a CTO. The CTO had only a salary. As a result the company lost time and competitive advantage because of endless rewriting/refactoring and implementing new features just for implementing new features. Fun for a CTO, but pain for a business.
Pros and cons for in-house CTO
Advantages:
great motivation (if right bonus schema was chosen)
higher trust
in-house technological expertise
more value for technologically complex products
Disadvantages:
usually longer and more difficult for find a great CTO-partner
hard and painful to change CTO if any difficulties
more expensive in any case than option #1
as option - hire a Senior Engineer - less cost, but also less value.
4. Share part of your business with a Full-cycle agency
Actually this option is not exactly an answer to the "How to make an audit?" but provides alternatives. These are so-called Full-cycle product incubators with marketing, product and sales expertise. In the case of partnering with them the question becomes not so actual because of their motivation to make your product successful.
How to find
also networking and search for the type of agencies
Pros and cons for the option
Advantages:
full expertise ready to solve all questions related to your product launch
great for fast go to market strategy
sometimes very good domain expertise
Disadvantages:
doubtful motivation - they can have other more interesting contracts
great option to spend money fast and without warranty as budget grows because of non engineering team members
less product control
less income
What should I choose to make the audit of outsource software development?
Well, everything is context specific (difficulty of your product, your future plans, readiness to share income and so on).
So initially I recommend finding somebody on freelance for software development audit and then going to in-house CTO as the final and the most reliable option. Making audit on your own is also a great option - but most probably you prefer to focus on business tasks.
Sharing income with a full-cycle agency (4rd option) could be good if you don’t want to dig into details and are lazy. But as for me - this is not an ideal case at all because of possible lack of motivation, higher costs or less income for you.
Overall recommendation - choose an agency with transparent processes, readiness to explain and clear contract with trial period (better 1-2 month delay, than 1-2 years on unclear software development without clear vision of future). For example, at Widerix we propose flexible contracts, transparent by default processes and continuous communication with bi-weekly demos to keep our clients involved and aware. We know how it is important to spend money and see which value it brings.
Please let me know in comments if topic "What to audit" should be covered as well.
Comments