The app is ready but there are a few small issues that do not work and several large changes that need to be made.
Unfortunately, in most cases where a transition occurs between contract developers prior to a shipped product, it's almost *always* the case that the new developer starts the code largely from scratch. When problems dictate a required transition to a new developer, it usually means that the previous developer left enough of a mess (in the codebase) that no good developer would want to try to waste your money and their time cleaning up the mess.
Happy to talk with you about your current predicament and offer you advice based on more information.
This is a process we've been through on both sides a number of times. When a client has left us, it is because we, as an agency, had chose to end the relationship due to an abusive work environment/demands, or the classic: never paying ones' bills on time (if at all). We also pick up work a lot where a previous dev has left off, which can vary in terms of time and cost very, very much depending on your needs.
The first question that may solve this headache for you more immediately is: is your code base currently on GitHub or any other repository provider? This makes transferring source code exceptionally easy, and for our clients we create a new repository (always private, which you'll need a paid account for) for every new client project, whether it's an iOS app or a website.
If you DON'T have access to your code (and don't forget all of your creative assets and other strategy related documents that your previous provider may have created as a part of your project scope) then things will just be a tiny bit messier (and costlier) during the transition.
While it's true that many developers really need to start from scratch on certain transfer projects like these, if the previous company you were working with was any good (charging at least $90-$150/hr) then the code that they wrote likely adhered to a certain set of standards and best practices.
Any responsible web agency will ensure their code can be taken over at any time by a new dev. This is helpful for everyone involved, always, in the short and long term.
Anyways, if you'd like to share a few further details about your project I'd be happy to chat more :)
I'm in the same situation currently, trying to fix and make changes to an iOS app that was initially done by a contractor.
First thing you need to understand is it is not an easy job for any developer to take over some else's mess. Every developer uses his now coding method and his own choice of libraries/frameworks to develop the app. It is never easy for any developer to take over some else's project, no matter how good the first developer was. A non-coder should know that same app can be developed in many different ways using different frameworks and stuff, each developer does in a way which is most comfortable for him. Every developer feels his methodology is best and other's code is always a mess :) Unless you have specified in detail exactly what frameworks to use and coding structure to use (for example use auto-layout or use storyboard....), it will be difficult for new developer, you need to understand this. It will take a while before the new guy can fix a simple thing in app, cause he has to go thru the entire code and project to figure out stuff.
The best you can ask is the old developer to document all the Classes in iOS project, comment every method in the code, document high level app flow (similar to storyboard). What 3rd party frameworks used, why were those chosen. What iOS frameworks were used (example MapKit, CoreLocation,...)
Using this information you can advertise that you are looking for example: "iOS coder to finish a project that does blah blah, that uses these frameworks...., storyboard interface, and auto-layout and blah blah"
My firm has been building apps (web and mobile) for the past 15 years. I've seen a lot of situations similar to this and have been on the receiving end of partially completed apps in various states.
I would agree with some of the others in that it is normally a difficult task for a developer to pick up an application mid-stream due to the technical knowledge required to understand the app. You should expect some expense or required time in bringing the new developer up to speed with the work that has been done.
However, I would say that it is always possible to pick up a project and move it forward if you find a developer who is willing to make it work. If the code was well structured and documented, it can be fairly straight forward for a new developer to come in and pick things up where they were left off. If things were not structured well, or undocumented, it can take a bit more time.
As a developer, I would ask you the following questions:
- What were the details of the problems that lead you to have to switch teams at this stage?
- Do you have ownership and control over the codebase from both a software licensing perspective and an access perspective? As one other expert mentioned, getting ownership over the code repository on Github would be a great first step.
- What are the details of what needs to be done? What doesn't work, what is left to do?
- Can we take a look at the codebase and make an assessment to the quality of the code and complexity? There are some automated tools we use to analyze a codebase to determine complexity and quality. Giving someone access to a Github repository is an easy way to allow a quick review.
- Is there documentation or a written specification for the codebase?
- Is the app running in a beta environment? If this is an iOS app, can I get access to the beta version of the app via TestFlight?
I think the answers to those questions would cover most of the high level details that a new developer would need to help you plan out next steps.
Let me know if I can be of further assistance.
Tom brought up some good points. I myself, when I was still freelancing had many clients who came to me precisely because of previous developer nightmares, especially hired through elance/odesk networks.
However, there are also other cases. Relationship/communication is very important, and so is price. Both might trigger wanting to switch developers.
To answer your question, you should make sure to have a list of external/3rd party frameworks used, how well-commented the code is and obviously access to the full source code.
Any respectable company will assess the source code before suggesting a re-code or estimating the time/cost load.
Feel free to reach out if you need help with your specific code.