So you have a valuable legacy project, huh?
By “legacy” we mean any software that is not brand new: maybe it’s really old, or just a little behind in version updates; maybe it has some weird dependencies and system requirements; maybe it’s written in a very smart but unreadable code.
By “valuable” we mean any software that your company cannot do without. In some cases, it runs the whole business; in other cases, it just takes care of a single but very important task.
Thus, you have a slight panic attack any time an unexpected error comes up. Or, you know you’ll have to update language / framework / OS version sooner or later, but just thinking about it give you the heebie-jeebies.
Welcome to the world of legacy valuable software maintenance! We do that all the time and we have some suggestion. If you can spare 3 more minutes, here’s a very basic checklist so you at least know where to start.
- Make sure you have all credentials: database access, mailer configuration, API keys for external services. Either backup them in a safe place or check that you can get / reset them if needed. Oh, and no: you should NOT commit them in the code, but that’s a story for another post.
- Make sure you have a tracker. If any request comes at all to change / fix / do something on the project, it should not be lost amongst emails or paper notes or your very precious brain space. A tracker can be as simple as a spreadsheet, even though that’s not the best, but that is ALSO a story for another post.
- Make sure deploy is documented and automated. If you ever need to release any change, the process should be at the very least well documented, and if possible automated. We strongly suggest you have a stage environment to test the deploy procedure. Yes, you guessed it: we may tell you more about that in a future post.
- Last but not least, make sure you can rebuild it from scratch in less than 15 minutes. That is not as difficult as it seems: often it just requires some time. Also, you don’t need to get there in one go. If you don’t have a documented procedure, have a documented procedure. If the procedure takes one day, try to get to half a day. An so on. Iterations are a beatiful thing and your best friend.
This is just a quick start and we will write more about it in the future. BTW if you have specific questions, feel free to ask and we will happily share additional informations. There’s enough legacy software for everyone.