ebook - 6 most common software development mistakes

18
Copyright Arcanys © 2010–2015 6 THE MOST COMMON MISTAKES, EXPLAINED SOFTWARE DEVELOPMENT OUTSOURCING

Upload: michael-barrientos

Post on 24-Jul-2016

222 views

Category:

Documents


2 download

DESCRIPTION

Discover 6 common mistakes when outsourcing your software development and how to avoid them.

TRANSCRIPT

Copyright Arcanys © 2010–2015

6THE MOST COMMONMISTAKES, EXPLAINEDSOFTWARE DEVELOPMENT OUTSOURCING

Avoiding these 6 common mistakes, explained | © 2015 www.arcanys.com

Startups and established companies are both often in a rush to get their software product out there without full awareness of what it really means to create software through outsourcing, and the dangers it encompasses.

While software development outsourcing allows companies to focus on their core competencies, conserve capital, have a flexible team with the latest best practices and speed the product to market, it is also a risky practice if not well prepared.

We’ve seen hundreds of projects over the last years and recovered lots of them. We wanted to share with you the lessons we’ve learned with the companies, startups and entrepreneurs we’ve worked with along the way.

Hopefully, none of these horror stories will happen to you, and will prepare you on how to assess other potential risks when looking at software development outsourcing!

INTRODUCTION

Thinking a fixed-price project is the way to go

MISTAKE 1:

1

Avoiding these 6 common mistakes, explained | © 2015 www.arcanys.com

A very common request we hear is: Read the requirements (a few lines in a word document) and please send us a timeline and a cost. This is an approach bound to fail, and here’s why:

A. Fixed price projects require crystal clear requirements leaving no stone unturned (hint: it doesn’t exist) In theory, a fixed-price project could work if the project scope and requirements are extremely clear and set in stone. In practice however, this is never the case, especially with startups or innovative projects. Requirements are often somewhat vague with scenarios not thoroughly conceptualized. Anytime a requirement isn’t clearly spelled out, the developer is left to figure out the missing pieces, and the results are usually not how the client had envisioned them –

in particular if the provider operates in a different country and culture from the client’s. Often, the scope and requirements have to be changed based on new knowledge gathered during the course of development.

B. Estimating a project with less than 20% error margin requires a crystal ball If you insist on pushing your contractor to go for a fixed price, they’ll have no choice but to try and estimate the risk, add a significant padding to the project cost and pray it wasn’t too underestimated. Since the risk is capped, clients are usually less involved in the project because it’s more or less the burden of the developer to figure things out.

If a service company offers an attractive fixed price for a complex and poorly specified project, it probably is too good to be true.

Thinking a fixed-price project is the way to go.

Avoiding these 6 common mistakes, explained | © 2015 www.arcanys.com

As the project moves along, the developer starts discovering more and more unforeseen issues, pretty much to the point that he will start going over his estimations and buffer combined. The only solution left for the provider is to attempt to limit his losses.

C. Everyone is losing in a fixed cost project How do you limit your losses? By cutting corners, and cutting on quality. The developer may remove his best team members for more interesting clients, and try to handle the project at his lowest cost. Code may not be as well handled as it should, documentation could be skipped, and important details can just be looked over. Undoubtedly, deadlines and quality don’t matter anymore to the developer; his only worry is how to crash land his project while still meeting whatever was agreed in the contract. Demos may be buggier, and it’ll depend on the client to spend more time testing and finding bugs, and then junior developers will try to go about the project.

D. Fixed cost is limiting for all parties Truth be told, clients asking for fixed price are rarely strong technically, and instead are usually coming from the business side of things. This is one of the reasons why they are pushing for fixed price, as a way to cap their risk for something they don’t understand well. This means, they also rarely foresee the biggest drawbacks of potentially huge delays, large time investments of themselves in quality control, and the absolute impossibility to change their product during development (the developer will certainly dig his feet into the ground before taking on any change orders). At the end of the day, you end up with a project that doesn’t fit your needs, that is grossly delayed, that took you way more time than you expected, but yes… the bill was cheap.

Avoiding these 6 common mistakes, explained | © 2015 www.arcanys.com

E. The road to success for your project is controlled flexibility through a trusted relationship In a time and material based project, it is the burden of the client to make sure the developer has everything they need to succeed, as quickly as possible (pretty much like in any company employing its own developers; it is just one team working together). The collaboration is much closer as everyone has a common goal of pushing a project to completion, with the best results. There is more pressure at the beginning to plan everything well, to conceptualize the best product, you’ll spend more time helping your provider/team to do the best job they can – but the results are most often way more satisfying. For a successful innovative project, make sure you:

• Avoid fixed cost projects for projects bigger than a week.

• Polish your requirements as much as possible so the provider may be able to evaluate your project as accurately as possible (keeping in mind he could still be 25-50% away from actual numbers).

• Ask help from your provider or hire a professional agency if you have trouble with the requirements.

• Consider building non working prototypes to get the validation of all potential users way before entering the beta phase.

• Be ready to ditch non-essential parts of your project to lower the scope of your first phase.

• Ask for demos every 3 to 4 weeks.

Not having access to your source code on a regular basis

MISTAKE 2:

2

Avoiding these 6 common mistakes, explained | © 2015 www.arcanys.com

Clients often want to know if they will have access to the source code once the project is completed. The answer should always be yes when a client is paying for some software to be done specifically for them. But another important question that should be answered is: when?

Some outsourcing companies deliver the code only when full and final payments have been made for the entire project. But problems in projects usually arise before the project is finished, and most of the time the final payment is never made, or the cost is just much higher than what had been previously discussed, due to changes occurring during the project because the scope was not clearly defined from the start.

While we could discuss hours about the definition of the scope of the project, it is also very important to make sure that the source code gets delivered throughout the project at regular intervals as the project is demoed and

small incremental payments are released as the project progresses.

Don’t become hostage of your provider by:

• Negotiating that your provider must deliver code on a regular basis, linking payments based on proper code deliveries.

• Make sure the code gets released on a regular basis.

• Create your own source code repository (for example on Git or Bitbucket or other providers), so that your provider must check their code into YOUR repository.

• Make sure you can see the progress of developers on a regular basis.

• Pay on regular intervals (e.g. monthly payments) when the provider is honoring his obligations.

Some outsourcing companies keep the source code until full final payment is made. You want to avoid that.

Not having access to your source code on a regular basis.

Not caring about who exactly is working on your project, and only looking at the cost

MISTAKE 3:

3

Avoiding these 6 common mistakes, explained | © 2015 www.arcanys.com

Software development costs are lower offshore, but the price alone should not be the deciding factor. Check out the team who is going to work on your project, and their skills. If costs are too low, you should be suspicious.

When you are looking at outsourcing your project, an important part of the project is to actually get to know who is going to work on it. Some software development companies present an A-team to the company to impress them, and quickly replace them by junior developers to increase their margin since they have been bidding low just to get the deal in their pocket.

Make sure before you sign any agreement that you have the guarantee about the people who are going to work on your project and their skills, and that you have interviewed them before.

It is however normal that you will not only have senior developers on your project, but also have a blend of competencies on it. This has to be clearly defined at the start of the project.

When selecting your software development outsourcing partner, make sure that you:

• Have established a personal relationship with the key people on your team.

• Have a clause for compensation for any change in team members (for example, it could be 2 to 4 weeks of free training).

• Check the skills of the team that will be assigned on your project.

• Be suspicious if costs are too low.

• Hire an outsourcing company that will take responsibility for the success of the project.

• Check the company’s culture and environment (important for employee retention).

Not caring about who exactly is working on your project, and only looking at the cost. When looking for software outsourcing companies, clients are usually attracted at the impressive amount of cost savings they provide, but what actually matters is the value for money.

MISTAKE 4:

4 Looking for a software development outsourcing firm that only does coding

Avoiding these 6 common mistakes, explained | © 2015 www.arcanys.com

Projects can come in all forms and at all stages of development, from when the idea was born to taking over a project that has been ongoing for years. Although coding is the main skill startups and companies are looking for in most cases in software development outsourcing, it is important to make sure your partner can help you out in areas you thought you didn’t need help with, but that you will actually have to use down the road.

It is also very important to hire a full service outsourcing company who is capable of understanding your needs and turning them into requirements with business analysts, or into beautiful and user oriented designs with designers and UI / UX experts, and later with software architects who will not blindly execute what you’ve laid down on paper, but help you evolve. Developers are creative people, but they are not the best people to design a new interface, or to understand the full picture of the business logic behind your choices.

All projects are going through changes along the way, and you want to make sure that you have a partner that can understand your changing needs, and help you along the process to a successful release with QA.

This means that behind coding, a successful project usually requires:

• Business analysts to understand your changing requirements and translate them for engineers to work effectively.

• Designers with strong user interface and user experience knowledge to make it intuitive to use.

• Architects to design a robust, efficient and scalable solution.

• Quality assurance engineers (testers) to increase the quality of the final product.

Looking for a software development outsourcing firm that only does coding. Hiring a software development outsourcing firm that does only coding is too limitative, your partner has to be able to understand the broader picture, and help you out when you’re taking the wrong path.

MISTAKE 5:

5 Looking for an outsourcing partner that will blindly execute software development

Avoiding these 6 common mistakes, explained | © 2015 www.arcanys.com

Many companies and startups think that they can send a document that more or less describes what they want, wait for a couple of months and get the exact product they had envisioned. This unfortunately is not how it works.

Specifications are constantly evolving and are getting clearer over time. The first thing that a reliable software development outsourcing partner should do is to clarify and work on making the specifications as clear as possible with the client before getting started on the project. The software development outsourcing firm must be well oiled at managing clients that deal with innovation for a new project to succeed.

From the very start, it is extremely important that the flow of communication goes both ways, and there must be an understanding of each other’s expectations and cultural differences.

Clearing communication issues is an essential component when working with innovation and ever-changing requirements.

Remember that you need to make sure you and the provider:

• Keep an open Q&A and collaboration process throughout the entire project.

• Understand what working on innovative projects requires (constantly refining the specifications).

• Rule out any cultural misunderstanding by having extremely clear expectations.

• Clarify anything that is not absolutely clear before implementation.

• Review / validate deliveries on a regular basis.

Looking for an outsourcing partner that will blindly execute software development. Developing great software is an ongoing and collaborative process. Make sure you have a partner that actually understands the innovation process, which requires constant communication.

MISTAKE 6:

6 Startup special: Thinking that there is such thing as a free lunch. Work for equity deals.

Avoiding these 6 common mistakes, explained | © 2015 www.arcanys.com

It seems an easy option to use stock or stock options to fund the initial software development, but there are some risks tied to it.

We are very often asked to do development for equity, or to massively lower our already-low rates when startups approach us, because, well…. they don’t have a lot of funding to start with. While it is normal to make sure the available cash is wisely spent, startups also have to be careful in choosing the software development partner they are going to work with, and how they will structure the deal.

Companies working for free will rarely prioritize this job when paying customers knock on the door to get some work done, which might suddenly slow down the development course or the quality by the outsourcing partner leaving the project to junior developers.

Startup special: Thinking that there is such thing as a free lunch. Work for equity deals. Startups are always trying to save as much cash as possible, at least before the first few hundred thousand in first funding round. Never forget that everyone must earn some money to eat (and pay the staff).

Avoiding these 6 common mistakes, explained | © 2015 www.arcanys.com

This approach is risky for entrepreneurs because it puts a lot of risk on the project in terms of time to market and perceived quality for the very important early adopters of the product.

At Arcanys, we sometimes do work for equity, but just as the startups have to do when choosing a software development partner, we also do our due diligence. When both sides have been working together for a while and both parties deliver on their promises, this is the time it is possible to get into a more serious relationship and talk about work for equity if the opportunity makes sense for both parties.

Even then, work for equity deals are always partial, so that funds still come in to cover some of the costs – this is the only way to have sustainable “co-owned” projects.

Any deal that seems too easy for any of the parts is usually no good as there might be some surprises hidden down the road. Having a software development outsourcing firm on board is key to a fast and cheaper alternative, but needs to be considered seriously. It is not free cash, it’s much more than that. It is an incredible added value for the founding team to have technology experts with a proven track record to accelerate your success.

CONCLUSIONThose 6 mistakes to avoid are just some of the mistakes we’ve seen, but they are the most common and the most threatening to any software development outsourcing project.

Don’t let your business or startup ambitions die before you give them a chance to become a winner on the market. Use a professional software development outsourcing firms to get an A-team working on your project and start generating revenue as soon as possible!

About Arcanys

Arcanys is a Swiss company specialized in developing high quality software with a strong focus on innovation.

We build teams around startup ideas and dedicate resources to technical teams to help our clients find their way faster than anyone.

About the Author

Frederic has been setting up software development outsourcing contracts with hundreds of companies worldwide. This eBook contains great insights methods for beginners. To learn more software development outsourcing, do not hesitate to contact him.

Frederic JoyeArcanys Co-founder

If you are interested in knowing more about how to avoid an outsourcing horror story,

contact me to get more insights!

We can get you started by a free strategic analysis of your project and provide you with additional insights such as:

• Outsourcing 101: How, when and where to outsource.

• 5 key benefits of outsourcing for startups / businesses.

• 7 dangers of outsourcing and how to avoid them.

• How to structure outsourcing contracts & protect your IP.

• Outsourcing 102: Manage, communicate and release effectively .