Collaboration and praise

From our early childhood, most of us learn to expect praise for the things we do well as much as we expect criticism or correction for the ones we do wrong. Growing up, at least in most western societies, we are taught to seek the approval of the people we respect: parents, teachers, bosses, even friends or sentimental partners. In some cased the need for recognition becomes so strong that it has been the motivation behind some unbelievable feats, from heroic sports achievements to wars. Now, thanks to the isolation measures linked to the COVID-19 pandemic, receiving this kind of praise in the  work environment has gotten so much harder, at least due to significant reduction of the interaction with other workers.

But this is not the only loss attributable to the corona virus: the mere physical distance has made collaboration a lot harder. Before the outbreak, it was very frequent addressing a colleague you just crossed in the corridor, even if the question was not urgent; or you could pay him a visit and instantly get full real-time in-the-flesh interaction. Now the most immediate option is the company chat, which can be less than optimal if the recipient happens not to be in front of the laptop in that precise moment, plus it becomes unwieldy for a detailed discussion. Email is not much better, as by its very nature it does not require immediate response. And to get a meaningful interaction you have to first manage to get in touch by chat, agree on having a virtual meeting, and only then set up a video conference. It is a matter of five to ten minutes most of the time, but the hurdle is still a lot higher that in the office.

Photo: Jessie Pearl

Luckily for me, today I have managed to climb over that wall and do some work with a colleague and get praised for it. It is a well-known fact in the world of computer programming that a problem can have several valid solutions, even when using the same computer language and problem specification. And then, in most scenarios, each programmer might choose a different split of the problem when looking for smaller pieces to solve the big one. The result is that every programmer gets to develop their own style, which you can even recognize in the code. The corollary is that you can have a working solution for a problem and still not be satisfied with it because it does not look clean enough, or well-documented, or maintainable... In summary, because it does not fit your style. This is precisely the point where looking for help can be really helpful, because we tend to get stuck in the path we found and have a difficult time to find alternatives.

This morning Martin, a very talented programmer that has developed probably half of the software running in our instrument, sent me an instant message because  he was not satisfied with a function he had written. The function was supposed to delete several images from our instrument, similar to the photographs in your digital camera. The files are numbered, so it would be very convenient to delete, for instance, all images between 101 and 120 in a single instruction rather than the actual way, were you would have to request the deletion of each image individually. But he had a problem with the messaging: successfully deleted images would automatically generate a confirmation of deletion, but if there was any gap, trying to delete a non-existent image would produce an error. And this would be an acceptable error, but it would still look bad in the console. Instead, he decided to check if the image exists before the function tries to delete it, but that suppresses any messaging concerning the non-existent files: if you tried to delete 20 files that did not exist, you would not get any message, and understandably that was troubling him.

My suggestion was to add at the end of the function a single message stating how many deletions were requested and how many succeeded, so that you would normally get 20/20 if all files exist, 17/20 if three are missing, or 0/20 if non existed. Furthermore, if you had a type and tried to delete all files between 1001 and 120, the function would not delete anything and report 0/0, giving you the insight that the boundaries were not properly defined.

It was only a ten minute interaction by chat, but when he texted "That is an excellent proposal. I knew you would have a solution for me" it felt so good that I am still floating above ground. It is a very small praise, but in this time of scarcity you have to appreciate every bit you get. Have a nice evening.

Comments

Popular Posts