Originally published on forbes.com.
I’m lazy, and most great developers I know are lazy too.
I would much rather spend a day developing an import script to import 2,000-3,000 pieces of content than spend that day manually importing that content.
Sure, I could put on a podcast or book in the background while I manually copy each piece of content from one place to the other. But that would be a colossal waste of money. An untrained professional could spend that same time doing the work, and it would cost the company less money.
Developers get paid to be lazy because the side benefit of writing an import script instead of manually importing the content is that if the import goes wrong, they can take an hour, tweak the script, and run it again. Reimporting that content by hand would take another day. Not to mention that code, once written, is reusable — and the knowledge learned in the process will be used elsewhere. There’s no assurance that another manual import will be any better than the first.
I’m not alone. The most impactful technologies that have changed the world came about because someone tried to build an easier way of doing a laborious task.
The most obvious example is the printing press. Before Gutenberg, scribes had to copy manuscripts by hand. While typesetting a book may take longer than transcribing it, once the book was set they could print thousands of copies from that single plate. What used to take two to three hours could be done in under ten minutes, and today in milliseconds.
A more current example is Dropbox. Drew Houston talks in Forbes about how he started developing the software for Dropbox on a Chinatown bus. He had forgotten to take an important thumb drive with him on the trip. He didn’t want to have to remember to do that again, so he started coding his solution.
Great developers have curious minds. We don’t want to be bored doing the same monotonous chores over and over again. We look to build the tools so we never have to remember to do something or never have to keep doing something, again.
Bad developers are lazy too. A bad developer will be too lazy to build out the tests to make sure their code adequately provides the solution it needs to provide. A bad developer will be too lazy to look for a better solution once their first solution already works.
A bad developer is too lazy to explore new technologies because their toolbox already gets them their paycheck and they don’t want to work on the weekends learning new things.
Good developers are lazy because they don’t want to waste their time on tasks that can be done more efficiently, and they love the tools they use. Bad developers are lazy because they let themselves off the hook.
This is true about more than just developers. You don’t need to know how to code to look at a process and see that it could be done better. Whether you are a CEO or work in the mailroom, someone who is a good worker will care about time being wasted when things could be done better.
The people who have the greatest impact on the world are annoyed when they get stuck doing boring chores that could be handled more efficiently.