5 Ways to Speed up Your Development
They say that time is money. So logically, one wants to find ways to improve their speed and make more money with their time. If this is your goal, then here you’ll find a list of what I’d recommend for the toolbox of every software-developing freelancer.
If you’ve had to do something twice, automate it. Whether it’s recreating a database, transferring new files to the web server, or just crunching a handful of data, doing it by hand twice is already once too many.
Learn a scripting language, get comfy with the automation tools your applications offer you (think snippets in TextMate or macros in Photoshop), and start using them, so that you can focus your valuable time on the important things.
Imagine your tools doing the work for you in the background while you’re sitting in the sun with a coffee, and reading everyone’s favourite freelancing site.
Learn Keyboard Shortcuts
I know, I know, you love your mouse. It’s such a handy device, and it feels just like an extension of your arm. But think about how much time it costs you to move it to an item in the menu. Now compare that to how long it would take you to press a couple of keys (that’s a sequence of keys for you Emac users out there) to achieve the same effect.
Keyboard shortcuts are a time saver, and it’s well worth knowing the ones your favourite tools offer. Photoshop has a huge load of shortcuts, and so do most text editors and development environments.
Learning shortcuts will be a time investment in the beginning, but there are loads of handy cheat sheets out there to keep on your desk.
Tests are the most effective development tool I’ve gotten to know since I left university. It’s a pity they didn’t tell us about them then. A test is basically a piece of code that checks an isolated part of your application for correctness. Whether you adopt test-driven development or just test your code, is up to you, but do test it. It not only ensures that your code works correctly, but it shows your clients that you value your own work and that you ensure the quality of your own code.
If you test, don’t rely solely on them by any means. If something’s not working when your client tests the application, pointing out that you are running a test suite is not the answer. A problem is there to be fixed, not to be argued about for hours and hours.
Learn How To Use A Shell
The shell has to be one of the greatest inventions of all time. Okay that might be an exaggeration, but it’s still one of the most valuable (and free) tools out there. It doesn’t even matter if you’re working on a Unix-like system or on Windows. Both come along with a shell, and it’s well worth your while knowing your way around.
A shell is focused on your keyboard, and oftentimes it’s a lot faster to do things on a shell than say, clicking your way through a wizard in your development environment.
Use Version Control
We’ve all seen it happen. You or someone else made a change in your code. It’s just a small patch and it’s immediately deployed to your production environment. Putting aside that this shouldn’t be done anyway, the code breaks something. You want to switch back to the older version. Unfortunately your team works on a network share. Your administrator can help you out with a backup, but it takes a while to find the right file, and it might not even include all the latest changes. Meanwhile the client keeps on asking why his application is broken. After several hours you finally have a working production environment.
Now compare it to this. Since you’re using version control, you can easily fetch the revision before the broken change and replace the file on the production system. Throw in an automated deployment which you can tell to automatically deploy a specific revision of your application, and you’re in a more comfortable situation.
Basically version control, used correctly, stores a backlog of all your changes. When your application’s undo is out of changes, you can go back to the last revision and start over.
A version control system is a valuable tool not only for developers, but also for designers, copywriters and photographers. The latter are now spoiled by applications like Aperture or Lightroom. The most common system these days is Subversion. If you’re not already using version control, do yourself a favour and get comfortable with it. It’s not only a time saver, it lets your mind rest in the knowledge that you can switch back and forth between all your changes and have a history of when you did what.
All these things can help you increase your development speed. Get into them one by one, and bask in the joy of more time for things that matter. Some of them are not only valuable tools for developers, but also for designers and copywriters. They take some time to learn, but in the long run it’s more than worth it.