Programmers’ efficiency - practical hints

Just waiting and wasting your time…? Sometime it is more than just a time waste.

Let’s see how much time is required to fully compile and build our projects. I am pretty sure that in most cases the time will be considerable. Such factors as project size, external components, dedicated builders, pre-compilation tools and simple engineer’s mistakes in header files (*.h) may incredibly increase the compilation time.

Usually we put some effort into optimizing it to reasonable limits to avoid wasting our engineers’ time, but do we really know what the “reasonable limit” is?
What is the maximum time the engineers should be allowed to wait?

Not very long!

At some point we start to waste more than just “compile time”: we start wasting our people’s efficiency.

How it worksThe engineer who is working on his/her module and is not able to compile and check results of his work immediately (3-5 minutes) starts trying to prevent wasting time.

What can he do?

  • Dry implementation – Engineer is trying to implement his part of code all at once by writing hundreds of lines of code without checking it step by step. Series of tests done by the engineer afterwards usually do not cover all the implemented code lines. After a few successful tests, the engineer usually assumes that his produce works well, and closes the task, possibly leaving some changes unchecked.
  • A few issues at once – Engineer is trying to implement as many aspects of the fix as possible for each build. After the long compilation it often happens that he does not remember all implemented improvements and leaves something out during the tests.
  • Let’s do something else – while the build is pending, the engineer has plenty of time to do different things like another task, another coffee, phone conversation or web browsing. The problem is that very often he simply misses the moment when compilation is over; he is also distracted, forgetting all about the things which he needed to check when the build is completed.
It is easy to imagine that such a “smart” engineer will generate low quality source code which needs to be corrected later.

Let’s calculate
Assume that we have reduced the compilation time from 10 to 5 minutes.

Considering only profits related with pure “compile time”, a single engineer can save about 1hour a day which means that they are 15% more efficient and we save 15% on their salaries. In few months all expenses related to reduction of compilation time are refunded.

Not only “compile time”The most profitable part of this optimization has to do with the engineers who can now stay focused on the work and not be distracted by other things in the meantime. I am pretty sure that this is worth much more than the money in the calculation above.

No comments: