DATE

TIME TO READ

2 min

Creating and managing software is like riding a bike. You never forget how to ride, but you might lose the muscle memory and bottom callouses that once made you a great domestique. And when the chain comes off half way up a hill, it's definitely easier to get going again if you've kept your maintenance skills up to date and your toolkit close at hand.

When you create software for someone, you're being asked to learn a new skill, and create new mental muscles. As a good developer, you know how to take requirements and translate them into code, but that code will have uniqueness that you won't see anywhere else, so you're learning.

If you don't keep up that learning the specific skill will start to fade, and when you're asked to get back in the saddle after a long break eating croissants, it might take some painful days before the wheels start turning at speed.

How do you maintain dozens of skills?

For a large organisation, it's easy for their software team to maintain the specific skills they need. At Facebook and Google, developers will be working on the same software project day in, day out, so they won't lose the familiarity with the code that they have developed.

But as a 'developer-for-hire' in an agency like Versantus, you might be working on dozens of bespoke projects per year, and when you're asked to add a new feature to a piece of software you built 18 months ago but haven't looked at since, it can be tricky to remember every detail. You need to learn again to get the mental wheels spinning like they used. This takes time, which costs money, and your boss is telling you that it's your job to do the work brilliantly and cost-effectively.

So what can you, as an agency developer do, to make your life easier, and ensure the skills you learned on a project can be quickly relearned when the time comes to work on it again?

1. Write good tests 🧪

Good tests help catch issues early and make it easier for anyone to continue where you left off. A good test suite is a safety net for future developers.

2. Create and share good documentation 📚

Clear and concise documentation, either in the code or as a separate document, is very helpful. It's like leaving breadcrumbs for yourself or another developer. Tests are a great form of documentation, because they explain what the code should do

3. Use standard tools and platforms and don't reinvent the wheel 🛠️

Unique code is critical in many projects, but the more code varies across your projects, the harder it will be to come back to it months later. Using common toolkts and standard development platforms like Symfony, Django, and Vue gives you an option to regularly refresh your skills even while working on different projects. It also means that if you need to bring another developer in to help you, there's more chance they will be able to get up to speed quickly

4. Maintain the code well 👷

Applying security updates or small bug fixes on the code regularly can give you a skill refresher, and means that things are less likely to break in a way that forces you to re-learn in a panic. Regular maintenance means that your chain is less likely to come off half way up a hill...

5. Follow a clear process 🗂

Having a clear process to spot risks and keep things simple will save you problems later on. Plan ahead to make sure the software works well now and in the future. This process should include all of the above, as well as code reviews and pair programming, all of which help to keep the skill alive

In short: document what you've done, share it with others, practice your skills often, and create code in a standard way so that you don't have to think too hard when you pick up a long forgotten project.

Now, go and dust the spiders off your bike, oil your chain, and get back up that hill!