It's stressful when your project is behind schedule or over budget, or when the software simply doesn't work. How do you get the project back on track? Adding more developers isn't always the answer. I wrote this guide for founders, CEOs, CTOs and product owners who are deciding whether a new team should take over development. The guide explains what a software project rescue company does and profiles firms that offer this service in the US. It also shows you how to hand over the project while keeping control of your source code.
Contents
What Is a Software Project Rescue Company?
When a Rescue Is Needed
What is a software project rescue? This process is closely related to what is known as a code takeover or a project takeover. Imagine a startup, a mature business, or an enterprise that hires a software development agency to create a software product and then wants another firm to take over the development of this product. That is a code takeover. When the project is already failing, we call it a rescue. And a software project rescue company is the firm that gets called in to take over.
There are many reasons a client might break up with a developer: deadlines keep slipping, bugs never end or developers just stopped answering calls.
By then, the project is usually off-track. When it becomes apparent that a project may not deliver as promised, either because it's over budget, of poor quality or scope, delayed, it's off-track.
Who Comes to Help
Rescue developers are called in to fix software that has never been finished or has never worked properly. Reliable vendors try to get things right from the very beginning. But when it doesn't work out, rescue developers play a part in saving failing projects.
A rescue can come from a consultant or a team that can help your organization recover from mishaps and get the project back on track. About half the projects some software companies take on are rescues.
How Does a Rescue Vendor Differ from a Development Agency?
New Projects Versus Abandoned Ones
A development agency competes for new projects. A rescue company inherits abandoned ones.
One of the most challenging things clients ask us to do is to take over an existing project. By the time a client is so unhappy with their previous developer that they want to move the project, the software program is almost definitely a disaster. The project is behind time and the client is stressed so we get called in to provide the solution.
A Different Skill
Taking over an existing project requires a special expertise, and many developers don't do it very often.
They must do a code review before accepting a project. You need to get the project understanding before you even think about changing the code. Missing any? We fix that before we write a single line of code.
The easier part is usually working with the code itself. The tricky part is getting the whole thing under control.
Is the whole system under source control?
Is there a test environment that works like production?
E7 Systems is frequently called upon for project rescue. From its perspective, projects most often fail because the requirements were poorly understood by client and developer. It has also seen many projects where the developer overpromised, underestimated the budget, or declared the work done before it was acually business-ready.
3. SOLTECH
SOLTECH is based in Atlanta and has been called in on rescue situations for more than 20 years. From its perspective, software projects most often fail because the solution was not properly designed from the onset. It has also seen many projects where offshore developers made promises they could not keep and left the stakeholder with a partially developed application.
Best Practices for Success
Switching to a new development team is a stressful process. Where do you start?
Own Your Code and Your Environments
The only thing you receive for all the money you spend is your code. You cannot allow it to escape your control since it is your equity. If you decide to switch to another developer, you need to have access to the most recent source code so that they can take over the development. The contract should assign the IP to you. In this case, as long as you pay on time, you have the full right to access and control your code.
The source code and the compiled or minified code it produces are very different. Compiled or minified code cannot be reliably reconstructed into the original source, so you need source code to continue development of your application.
I recommend keeping the code in a repository that belongs to your organization's account. Access alone is not enough, because the account owner can revoke it at any time. If this is not possible, at least put the code in escrow and update it regularly.
Make sure you own the source code when you start working with a new developer. Double-check your contracts and never give away ownership. State the IP terms clearly from the very beginning.
Additionally, as soon as the application is released, request management over your staging and production settings. Register the hosting accounts for these environments in your name or your company's name. You should be the account owner and control who gets admin access. The same applies to your domain, your cloud provider accounts, your Apple Developer and Google Play Developer accounts, and any third-party services your application depends on.
Examine the New Company Before Committing
Check out some of the projects in the portfolio of the development company to see if they are related to what you are trying to develop. Pay attention to the projects that look like yours. Ask the company for references from similar projects and talk to the clients behind them if possible. Also, check the reviews on third-party sites like GoodFirms, and G2.
How long has the business been running? If it’s been around for years, that’s stability and experience. I suggest asking for the bios of the key specialists who will work on your project.
You need to understand what resources the company can provide and what part of its capacity your project will take. Ask whether the developers are full-time employees or contractors.
Finally, find out how the company will support you after the project is complete. What kind of support contracts does it offer? Is there a warranty period for fixing bugs after the release?
After all these checks, it's better to start small in a part of the product and grow from there. This way you get a feel for the business before committing yourself completely.
Demand Open Communication and Practical Planning
Communication is the basis of any business partnership. You should always know the current status of your project and understand how your decisions affect the budget and the timeline. A reliable development company provides you with detailed reports and a breakdown of hours at several levels: by specialist, by feature, and by sprint. I also recommend getting your own access to the task tracker and the CI/CD pipelines. As a result, you see the progress yourself and can release a build on your own.
Take Security Seriously
Prevention comes first, but once you're hacked, your recovery plan is all you have. Ensure that all your data is encrypted both in transit and at rest, and stored securely. Ensure your developer is adhering to security best practices and inquire about their prevention and recovery plans.
How a Reliable Company Approaches Software Project Rescue
Any new business you consider partnering with should be sympathetic to your situation. It is important to expose the past so the new team can fix mistakes and not repeat them.
Here is how a reliable software project rescue company approaches it.
It Reviews the Code Before Taking the Work
Before a reliable company agrees to take on a project, it reviews the code and evaluates the underlying architecture. The company needs to understand what quality of code it will deal with and what risks it will take on. The review also includes what is easily missed. Can the team build the project from the repo? How many tests are there? Are the dependencies insecure or outdated? Are the open-source licenses compatible with your product? Note that the new team inherits all these risks along with the code.
Poor but Workable
The code isn't great, but it isn't so bad that the team scraps it and starts over. That usually means the code is poorly structured or documented, has no tests, or has no automated build and deployment. In this case the team has to take more time to work out problems before it starts producing results. It may need to refactor parts of the code before it can start building new features. With such code, the team is slower at the start. However, as it gradually brings the code into a better state, the pace picks up, and the team becomes more efficient over time.
Unworkable
On occasion, the team will run into a situation where the code is so bad, or the technology stack is so old and without an upgrade path, that it just doesn't make sense to try to change it. In this case there are two options. For smaller applications, it is more cost-effective and time-efficient to rewrite the code from scratch, and you have a chance to end up with a much higher-quality product. For larger applications, a rewrite from scratch may not be the best option. A full rewrite usually takes much longer than planned, and the old code often does things that nobody has documented, so the new code will not do them. In this case the team may need to replace the system in parts. It builds the new modules alongside the old code and moves the functionality over as time goes on. It does this so that the application keeps working while the team reworks the system into a better state.
It Checks the Stage of the Project
Once the company has agreed to take on the work, it checks the current stage of the application:
Partially complete (due to mid-project failure)
Nearly complete (where the project is struggling to get to the finish line)
Live and in need of takeover support (where the application works but requires improvement)
Based on this assessment, the company provides you with a solid overview of the functionality that your system can offer your organization and recommends changes to your current setup or an entirely new plan.
It Manages the Transition
A proper transition between the original developer and the new software developer matters regardless of what stage the project has been left at. A reliable company takes this on itself: it arranges the handover with the original developer and makes sure nothing is lost before the old team leaves.
Frequently Asked Questions
Often, you don't have to rebuild. Many applications can be maintained, enhanced, and modernized without a complete rebuild. But if the project is in the early stages and continues to have technical issues, oftentimes it's best to stop and just start over.
Yes. It happens frequently. First of all you need access to your source code. Ensure you know who owns the code and when you can access it. And check whether your old developer is still under contract for a handover period.
Adding more developers isn't always the answer. If you're near the end of your project but you can't get that last 10% done, you may just need some extra support to get it to the finish line. But if the project is missing a clear vision from management, project managers who communicate effectively, or strong tech leadership, more people won't fix it.
Three things. A number: what the problem was costing the business. The whole story: where the project was, what was decided, and how it ended. And an outcome the client confirms.
I've been leading a department specializing in custom software development for 20 years.
5.0
1review
Rate this article
Thanks for joining!
The goods will start arriving in your mailbox soon.
Leave a comment
Your email address will not be published.
Our Clients' Feedback
Any software development, programming, or design needs we have had, Belitsoft company has always been able to handle this for us
We have been working for over 10 years and they have become our long-term technology partner. Any software development, programming, or design needs we have had, Belitsoft company has always been able to handle this for us.
Belitsoft has been the driving force behind several of our software development projects within the last few years. This company demonstrates high professionalism in their work approach. They have continuously proved to be ready to go the extra mile. We are very happy with Belitsoft, and in a position to strongly recommend them for software development and support as a most reliable and fully transparent partner focused on long term business relationships.
We can recommend Belitsoft and are looking forward to start a follow-up project
It was a great pleasure working with Belitsoft. Software Development Company. New requirements and adjustments were implemented fast and precisely. We can recommend Belitsoft and are looking forward to start a follow-up project.
We are definitely looking at Belitsoft as a long-term partner
They use their knowledge and skills to program the product, and then completed a series of quality assurance tests. We were working in an agile way with them. Belitsoft performed very well throughout our project. We are definitely looking at Belitsoft as a long-term partner.
I highly recommend Belitsoft for website design and development
I highly recommend Belitsoft for website design and development. We were up against a tight deadline to launch the project. The work was delivered on time and within budget! I will continue working with Belitsoft as a valued partner for our web development!
We would recommend them to anyone who is in need of custom programming work
We have worked with Belitsoft team over the past few years on projects involving much customized programming work. They are knowledgeable and are able to complete tasks on schedule, meeting our technical requirements. We would recommend them to anyone who is in need of custom programming work.
Belitsoft seems to know what they're doing, which I appreciate
Belitsoft company is able to make changes instantly. One of our internal engineers has commented about how clean their code is. Belitsoft seems to know what they're doing, which I appreciate.
We continue today to augment our existing staff with great developers from Belitsoft
Belitsoft company has been able to provide senior developers with the skills to support back end, native mobile and web applications. We continue today to augment our existing staff with great developers from Belitsoft.
We highly recommend that you use this company if you want the same benefits
Belitsoft company delivered dedicated development team for our products and technical specialists for our clients time to time custom development needs. We highly recommend that you use this company if you want the same benefits.
They were able to convert it into a multi-platform software solution
We approached BelITsoft with a concept, and they were able to convert it into a multi-platform software solution. Their team members are skilled, agile and attached to their work, all of which paid dividends as our software grew in complexity.
Belitsoft guarantees first-class service through efficient management, great expertise, and a systematic approach to business
Having worked with Belitsoft as a service provider, I must say that I'm very pleased with the company's policy. Belitsoft guarantees first-class service through efficient management, great expertise, and a systematic approach to business. I would strongly recommend Belitsoft's services to anyone wanting to get the right IT products in the right place at the right time.
If you are looking for a true partnership Belitsoft company might be the best choice for you
If you are looking for a true partnership Belitsoft company might be the best choice for you. They have proven to be most reliable, polite and professional. The team managed to adapt to changing requirements and to provide me with best solutions. I strongly recommend Belisoft.
I expected and demanded a lot of you at Belitsoft company, but you exceeded my expectations
I expected and demanded a lot of you at Belitsoft company, but you exceeded my expectations. You acted pro-actively, challenged me at the right moments. Thanks!
Do you have a software development project to implement? We have people to work on it. We will be glad to answer all your questions as well as estimate any project of yours. Use the form below to describe the project and we will get in touch with you within 1 business day.
Contact form
Contact us
USA +1 (917) 410-57-57 700 N Fairfax St Ste 614, Alexandria, VA, 22314 - 2040, United States