Always on-time, more at the same time, quicker, under control, planned, delivered. Productivity topics should be important not only for developers but for their bosses and clients as well. Being productive outside of a programming world won’t hurt either.
Below are general points about productivity explained from a developer’s standpoint.
Automation saves time and prevents silly mistakes, thus saving time possibly spent on fixing mistakes in repetitive tasks.
Processes can be automated too, e.g. by creating templates for documents: requirements gathering, project planning, testing.
Common tasks like debugging can also be either documented and followed, or remembered and followed automatically when needed.
Long tasks or tasks prone to mistakes like deployment, environment configuration, test data configuration, etc. should be scripted.
There are add-ons for IDEs created to improve the working speed with the code. Developers will save time in future projects by creating own snippets and libraries.
Another kind of automation is a keyboard shortcut. Many mouse pointing, clicking and dragging are condensed in a keyboard stroke.
2. Return on investment
Before automating everything a question should be answered – is this really needed now?
Let’s say the deployment takes ten minutes manually and writing an automated script is a work for two days. The next step is taking into account how often deployments take place and how problematic possible mistakes can be (both in the script and manual process). Finally, it may be better for the script to wait in the backlog for a better time (after the important deadline).
Creating a reusable library takes longer than a project-specific code, but can be useful in the future. Adding more maintainability is longer as well, and can save a lot of time. Cases like these should be analysed individually.
Learning productivity tools and shortcuts is going to take some time in the beginning.
There are better ways than not using the mouse at all. Keyboard vs The Mouse on Coding Horror may shed some light.
Relying on the tools, configurations and custom shortcuts may backfire when moving onto the new workstation.
And what is a point to memorize shortcuts for an app used only once a month? It makes sense for an IDE if being used often through the workday (which depends on additional daily duties developer has).
Moreover, learning shortcuts should happen more like this:
“I’m commenting large blocks of code by adding // at the beginning of each line and I can’t use /* */. It takes a lot of time and I’m doing it third time today. There must be a way to select the whole block, comment it or uncomment it, using a shortcut”.
“I will skim the list of shortcuts from documentation to discover something useful, put it on my TODO/table/desktop and try to apply when needed. When I get comfortable with using it, I will move to the next shortcut.”
But not like this:
“Today I’m going to spend two hours learning all the shortcuts to manipulate windows in this IDE”.
And finally, is lack of shortcuts or typing slowly your bottleneck? If not, more productive would be fixing the bottleneck first. E.g. slow workstation or not being familiar with domain/codebase yet.
Remember – always question the cost before applying any productivity boost tip.
To be productive things have to be organized. Planned, prioritized; some calendar / TODO apps will come in handy.
Use techniques as:
- batching tasks (e.g. fixing similar bugs in one app same day rather than fixing those bugs one per day),
- pomodoro – explained on the Simple Programmer,
- Getting Things Done
Another aspect here is removing distractions. Finding a way of letting others know you are in your productive time and they should wait if something is not urgent. Like wearing headphones.
You can read how much impact distractions can have in the Maximizing Development Productivity article by Dave Chaplin.
4. Learning new paths
Questioning current ways of doing things and learning about new practices, new tools and new versions of the IDE can be beneficial for productivity.
Think about a situation where you discover that something currently done manually is now automated in the new version.
The fact that the new IDE will save you more time should be a good point in negotiations about the update. And consider if the time spent on switching to it compensates possible gains.
5. Mind and body
It’s hard to be productive if someone didn’t sleep well lately, well it’s hard for me. If one more hour of sleeping can provide two productive hours in the morning, it’s worth it. I’m addicted to sleeping but I know many of you prefer the alternative:
The list for being more energized to work goes on: eating well, physical activity, avoiding stress, having a comfortable chair and keyboard, just to name a few.
By the way – the shortcut for comments in Visual Studio is Ctrl+K Ctrl+C (comment) and Ctrl+K Ctrl+U (uncomment).