These pass couple of years as freelancer, i helped peoples and companies building their apps. Some of it were from scratch, the rest were someone else code.
Most of the time, continuing someone else code, leads to unnecessary headache. Admit it, working with someone else code is difficult, it takes time to understand the context and how things works. However, earlier, i often forgot to include the time required reviewing and understanding the code within the quotation i gave to client. This also affect the timeline I promised to client.
Since then, I will always put it upfront, i call it “Code Audit”. It’s a process that I will do before i take any work from client, and this audit is billable.
This audit is crucial to give correct estimation, setting expectation, and ensuring high quality work. Ex: The code was written with Swift 1.2, and now it means i need to migrate it to Swift 4.2, which is a huge changes. Or when the dependency were not maintained and already deprecated.
Knowing these hidden requirement, is important to ensure that development work won’t get stuck halfway just because there is a need to refactor huge chunk of code. It also affect how I approach the project and prioritise things.
Next time you get a project to continue, make sure you count the time to audit :)