Productivity and GTD
4 Things Engineers Do To Be More Productive (And So Can You)
As technology evolves and systems become more and more complex, hardware engineers and software developers are constantly looking for ways to stay productive. It is a matter of survival.
These are the four mechanisms we use to improve our productivity and the quality of what we produce. Pay attention, since they can generally be applied in many other areas.
It is assumed that if a program is easier to understand, it will have fewer errors and it will be easier to make it evolve. It is also assumed that the smaller a program is, the easier it is to understand it. Therefore, to improve the productivity of programmers, the code must be short and easy to read and understand.
Even if you are not a programmer, everything you write, any text—emails, messages, reports, summaries, drafts—will somehow condition your productivity. In one way or the other, these are texts that you will have to communicate, use as working material or revise in the future. The way they are drafted can cause confusion, misunderstandings, or force you to redo part of the work.
Always seek clarity through concision (“brevity and economy of means in the way to accurately express a concept"”.) And remember that when it comes to productivity, words matter.
Engineers and programmers do not build large super-complex systems out of nothing. In fact, they build small components, modules, blocks, code routines, etc., which are then combined to form a larger and much more impressive system. Synthesizing means to build a whole by combining its various parts.
Similarly, you should not try to achieve large goals out of thin air. That can be overwhelming. Think about sets of steps, actions and small projects that will then be combined to achieve impressive goals. Visualize the end in your mind, and your subconscious will encourage you to create the necessary pieces to achieve the goal.
There is a motto in the world of programming, summarized by the acronym DRY, which stands for “Don’t repeat yourself”.
You don’t have to write an entire program from scratch. The typical thing to do is to reuse parts from previous designs that perfectly fit into the current one, or that need only minor changes to become perfectly valid. The procedures and functions allow you to reuse the same code with different parameters, and there are countless standardized libraries to carry out the most common operations.
You can also reuse your own knowledge. To do that, you must put it down so that you can retrieve it whenever you need it. Use processes to be more productive. They will allow you to do things faster, and with greater piece of mind.
Something that every developer has deeply assimilated is the need to search for ways to replace dull, heavy and repetitive tasks with automated systems that enable us to save time and gain accuracy.
Automation often involves the use of new tools that can make your work easier. Here you must assess whether the time it takes to learn to use a new tool is worth the time you’ll save by using it. Depending on the tool, other factors that you must consider are: cost, ease of use, accessibility, integration with other tools you already use, and other less obvious factors, such as your feelings when using the tool (the quality of the experience, the tranquility that it gives you, the confidence it generates, etc.)
The ability to quickly learn how to use new tools has always been a necessary skill for software developers. But today, with technology pervading every single aspect of your life, it is also a skill that you should improve.