A while ago I heard that being a lazy developer is not a bad thing. This could sound a bit weird to start with, but it makes a lot of sense. So, let me explain why you should strive to be a lazy developer and why it makes sense to hire one. Being a lazy developer means that you always try to avoid doing repetitive tasks and also don’t write code which will cause problems later.
Spending time doing lots of repetitive tasks isn’t only boring, but it can also lead to unneeded burnout. And then you will ask if there is a better way to do that. The answer is: yes, most of the time there is.
Basically the answer comes down to two words: automation and organisation. What do you and your team need to do is automate things through:
Using a revision control system, like Git for example. You will be able to check the codebase history, through commits with descriptions of each modification avoiding the need to spend time trying to find out why some code has been written / updated. Also, you could easily find who wrote a specific part of the code and chat to him / her about that if you need to. Another benefit of revision control is how it can help to improve your team’s communication, like explained in this blog post.
Creating automated tests (using RSpec for example). Using automated tests will ensure that old code won’t break when it’s added to or new features are created, it will also be easy to refactor and you will ensure that every single layer will work fine when they are joined. Along with this tests make projects understandable to new team members and most importantly: automated tests are guides – meaning that they will help you during development and help you create great code.
Automating the deployment (using Capistrano for example). You can create automated tasks, such as, run the database migrations, restart the web server, restart other services, pull the newest codebase from the repository, and so on.
And more: whenever you find yourself doing a task more than once, you should look into a way to automate it. You can use scripts, tools, anything.
To automate repetitive tasks increases productivity, it dramatically reduces the possibility that mistakes happen and still gives you more time to invest in what really matters.