How To Cure Your Software Project After Misfire With a Bad Contractor

There are many reasons why a client could decide to change the software contractor halfway through. If summed up, the main reason is that the client is not satisfied with their work. But reasons aside, we are interested in the result: there is a project done to a certain extent; this means there is design and/or code that must be used by another contractor to make a finished product.

About 77% of projects with the third-party unfinished code brought by clients needed reworking. One third of them required full code refactoring, while about 20% had to be basically rewritten from scratch.

Such ‘transitions’ and ‘reworks’ rarely are painless for the owner of the future software product. The project runs the risks of not being finished at all. Moreover, if the previous contractor was quite negligent about their duties, the code brought by the client to a new contractor might be of insufficient quality. The new development team has their own risks of working with such code, but if they are really good at their job, they will cure the client’s project and get things done with quality.

Main risks faced by both the company and the client when starting work on third-party code:

Quality. If the code is of low quality initially, all efforts might be simply unable to improve it. For example, the code has no extendability; or there are lots of hidden bugs – fixing them bears risks of causing other bugs and so on.

Time. Different developers use different approaches to coding. The client goes to a new software company whose priority is quality. But when they encounter problems with poor third-party code, they have to either fix them or start working with the substandard code of low quality. The latter case can be unacceptable and risky for both sides. Needless to say that estimations of third-party code are often subjective and inadequate. The poorly written code may not meet the expectations of a good developer.

Costs. It’s quite normal for clients to overestimate their code as ”almost ready, just some fixes needed”. The hidden danger is underestimating the labor required to make a finished product from this code.

How Does The Recovery Begin?

#1. The work does not begin without the full analysis of the quality of the third-party code provided by the client – and the related risks. A possible alternative is writing a functional module from scratch to showcase the quality of the new team’s work. It can be the best solution if the analysis shows that the code brought by the client severely lacks quality.

#2. There are certain objective risks, even if the analysis shows that the code is rather good. The company is responsible for the quality of their manipulations with the client’s code; but not for the way this code will react to these manipulations. Not always there’s a possibility to foresee incompatibilities. The results of analysis and all the risks will be reflected in the estimate.

#3. The client and the company must agree on where the code will be deployed, how often (the milestones), where it will be tested and fixed, and on which stage the project will be considered finished (usually after the release on the production server and the client’s approval).

#4. If the code quality is poor but the company accepts working with it, the testing should be performed on the company’s side (not on the client’s server, for example).

#5. If the company has to work with the code on the client’s server, they need to know its technical parameters. Thus they decrease the risks of incompatibilities with the environment, where it will be used by the client.

A good contractor will be skeptical towards the third-party code; but willing to finish the project as a working software product that will satisfy the client. A good contractor will try to minimize all risks transparently for both sides, and include everything into estimates. The openness will help both sides overcome the misfire and help the project stay healthy until it’s a finished shiny product.

Leave a Reply

Your email address will not be published.