Learning every week – 31-Jan-2020

January has ended and that means 8.47% year has gone. That also means 8.47% of the opportunities I had to learn this year have passed me. I hope I made fair use of that time but I am not going to dwell on that. I have the remaining 91.53% to look forward to now. In any case, this post is still only about 1.91% of the whole year. These learnings are 1.91% of what I hope to learn the whole year.

Authenticity and alignment

I wrote about this in the last week’s post as well. This week, in part 2 of the podcast, the hosts continue the discussion about the notion of authenticity against the needs of the organisation. Authenticity is valuable but not to be used as an excuse against following the norms and processes set in an organisation. I’ll put in a quote from the podcast to make it clearer.

“Organisations are not built to allow every individual member to flourish completely based on their own desires and needs. That’s not why organisations exist. Organisations are built with the assumption that the members joining understand that they are giving up certain individual freedoms in return for the greatness achieved by allying themselves to others in the service of the societal goal which could not be achieved without the association that the organisation provides.”

The point is, then, not about not valuing authenticity but defining a framework where a process can help align each individual’s effort. Standardised approaches can be measured and improved. The podcast goes on to give the example of how Starbucks baristas call out the name of the drinks. They don’t say Macchiato Skinny Grande. They say the size first because that is the first thing a barista needs to know to begin making a drink. The process is valuable here because that is how the team gets aligned. And the process is learned behaviour which happens by trial-and-error, which is what society and culture are.

“Organisations want individual energy and creativity but within a framework desired to get results. To assert our own authenticity about managerial behaviours isn’t really defensible. The place to find authenticity is in your choice of culture of a firm, or an industry, or role; it’s not a measure against every behaviour, process, procedure, task, deliverable each individual has to brush up against.”

I like that the Manager Tools podcasts try their best to provide a balanced view of the matter and this episode was no different.

Speaking or writing

Another podcast I listen to is a nice questions-answers podcast called Soft Skills Engineering. In their recent episode, they answer a question by someone who likes writing but doesn’t prefer speaking at events. In their typical style of answering questions with humour, they touch on several important ideas.

“Speaking is good for exposing people to new ideas. Writing is good for informing people.”

They touch on the idea of expositional vs informational means of knowledge sharing, both of which are important and have their place. Speaking is an inspiring way to get someone started but doesn’t give the in-depth perspective they need to get productive. Reading helps with that.

Rate of Learning

In an article, Kyle Tibbits talks about the greatest value of working in the startup ecosystem. The article is a good read even if there is nothing surprising in what is shared here. In any case, it is valuable to read it for the numbers. It is not clear how he quantifies things like rate of learning but regardless of how it is quantified, the rate of increase is reassuring to see. Not to mention, this is something that I am actively interested in considering I write about it every week for a few weeks now.

Docker performance

I got to play around with Docker a fair bit this week as well. One of the things I found from a podcast (as a sidenote in a Talking Drupal podcast), the Docker for Mac has an option to make only certain folders available to be shared with the Docker system. The default setting contains the “users” directory which allows Docker volumes to be mounted from anywhere, but this also sends events of file changes from all over the filesystem, even unrelated ones. Unsurprisingly, this affects performance. I have now changed the setting to just share my work directory but not really compared the performance difference yet. I hope to see a visible difference in the performance once I get a chance to work on my usual projects.

DRY and WET

If you’re a programmer, there’s a good chance you have come across the term DRY (Don’t Repeat Yourself). I got reminded of a related term which I only vaguely recollect–WET (Write Everything Twice). This was from an article on better coding practices in php[arch] magazine’s July issue. The article recommends against premature refactoring and “WET your code before you DRY it”. That is to say, don’t try to abstract away thinking you’ll have to reuse it until you actually have to use it a third time. At that time, you’ll know a better way to abstract it.

Go performance

I mentioned in my earlier post that I am learning the Go (golang) language through Exercism. One of the problems I solved in their exercises involved me writing a nested loop to look up individual characters in a string in a map. A mentor suggested I remove the nested loop by directly using characters in the map rather than strings. I wanted to avoid that in the beginning because I didn’t want to write so many lines of code but gave it a try anyway. Obviously, I thought it would be much faster if I removed the nested loop but I was still surprised when I saw the benchmarks. Like I said, I knew there would be a significant difference but didn’t think it would get 15 times faster.

Speaking of which, I am happy I am learning Go and all its ideas. I am still impressed with how it handles interfaces differently from other languages and solves the problems with code reuse. I commonly talk about how composition is better than inheritance because of how it could be misused for code reuse. The interface model here flips the idea that solves the problem. I shared a video in last week’s post that describes this much better than I can.

That’s about it for this week. Happy learning!