Developer productivity is a perpetual area of improvement. Finding better tools, new abstractions, learning shortcut keys and using modern project planning is a way to continually get better at your job. The goal of doing all that is to produce better software faster.
Choosing the right tool for the job plays a big part.
Lets say you wanted to get a web app up and running that provides a login, admin area, user accounts and authenticated REST API around some simple business form data that’s submitted by a Mobile App. Writing that in C++ might take weeks, writing it in Go would take days and writing in Python/Django might take hours.
When deciding how to roll this service out onto some servers. purchasing, receiving and building physical hardware could take weeks, manually building the machines on AWS could take a couple days, and deploying to a PaaS like Heroku or ElasticBeanstalk might take minutes.
There are orders of magnitude in reduction of effort required to build things when you choose the appropriate solutions.
As a developer who writes software there are several things that are easy wins for writing more code in less time:
- Typing speed. Learning to type faster is a basic skill, expanding on that with shortcuts is awesome
- Knowing the language and APIs. Every time you have to Google for API references it slows you down by 10x and gives you a chance to get distracted.
- Knowing how to do things. At a higher level than code syntax, knowing how to structure solutions, and having a good sense of what the software is supposed to do and how you are going to do it.
- Isolation. Distractions will derail you – people, noise, tv, all get in the way of being able to focus on the problems at hand.
- Preventing blocks. Running out of battery, losing internet, no credit card, don’t have the credentials? Getting blocked can stop you from working entirely.
The best developers really can be operating at 10x the performance of the average developer.
Getting things built quickly is not only impressive, but it is a major competitive advantage. Getting your products to market faster and iterating on them faster is a big win for everyone.