2020-06-26

Know Your Tools

A few months back I switched companies. For me this means new team, new domain, new programming language, new tools. After starting with my first project I quickly learned that I had a lot to learn.

Waiting

I am working on end2end tests of a web application. If you ever worked on this you know, that end2end tests are very slow.. Because I just started with the programming language (actually this was my first code I wrote in it), I made a lot of newbie errors. Missing imports, missing semicolons, … But the tools I thought were standard didn’t do auto imports or highlighting compiler errors (this does not mean that they did not support this, but I definitely used them wrong). So I always run the build command just to learn 30seconds later that I missed something obvious. When finally everything compiled, the tests were failing. I was also new to the testing framework, so I did not know all features that were supported nor how to use it properly. I need to do some trial and error.

After spending a whole afternoon waiting, I felt very frustrated. I am working in an engineering productivity team. This was definitely not engineering productivity. I want to consult people and support them in being more efficient, but I was not able to be efficient myself. Not even close.

Increase Productivity – The Power of the Debugger

So I decided to spend the next day to work on my developer setup. I read the documentation and guess what, they were suggesting a different IDE. After setting up the IDE I felt relieved. Compiler errors were displayed immediately, as well as missing imports. This alone would save me hours. I learned how I can execute single test cases (I already knew how to execute single test files but running single tests increased the build runtime even more).

I asked the dev team how I can reduce execution time and got a few more hints. And then I realized that I could just debug the test and evaluate expressions and scroll threw the object instances on the fly. Suddenly I was pretty fast compared to the day before. End2End tests are still slow, I’m not able to change this (at least not in short term), but getting to know the tools, their features and how to use them increased my productivity a lot.

In the past I met some developers who just lived with such a situation. “It’s slow, what can I do? That is how it is.” and they waited and waited (and complained about the slow end2end tests and that they do not want to write more tests). Don’t do this. Invest a few hours to make a good setup and learn about the recommended tools. Afterwards you are much faster and much happier.