Getting right to the point, many (possibly even most) software/web developers will simply hand you the deliverable upon project completion and call it a day. The tools and processes used are often held back, forcing you to always go through them for updates or eventually argue with them to get what you need. Although the former may make a bit of business sense on the consultant’s side, I’d argue that this methodology is terrible.
Lately, I’ve been approached by multiple organizations in a really tough spot: they were working with a developer and something tragic happened to him/her mid-process. The organization had been kept in-the-dark about the tools, processes, tasks, online accounts, etc. necessary to pick the project back up. In the end, this often forces the clients to restart from square one.
The following is a list of topics to discuss with your consultant before the project even starts. During the ongoing work, require that they keep you in the loop. At a bare minimum, you should at least be able to 1.) find a replacement with the necessary skills and 2.) pick up where the project was left.
- “Source control management” (SCM): Most developers house all code in an SCM repository (git, SVN, and others) or some central location. Ensure you have access to this — it’s, by far, the most vital piece! Most consultants will be hesitant to give you access, prior to the final payment, but you should at least require a full copy of the code at each paid milestone.
- Have the developer provide you a list with the programming languages, libraries, technologies, methodologies, etc. used in the project, just in case you need to find a qualified replacement with the right skills.
- If the software uses any third-party services, make sure you receive a full list of all URLs, usernames, and passwords.
- The above also applies for where the live software/web application is eventually run. Require the account information for the server, hosting company, or cloud platform.
- If the system includes a database, know where and how to fully export it.
- Have the consultant maintain a description of the system architecture, methodologies, tips, gotchas, etc. Think of this as a quick tutorial for the replacement.
- Task tracking: the developers should maintain a list of open, in-progress, and finished tasks, giving a clear view into the current/future efforts and what is already complete.
Again, some consultants will be reluctant to provide the above, or at worst will refuse outright. However, I’d argue that their level of irresponsibility is extremely risky. Tragedies, breaches of contract, and other negative circumstances can happen. Be prepared to keep your project on track!