I recently watched an interesting interview from one of the best minds in computer science, Donald Knuth, author of the six-volume series “The Art of Computer Programming” and it got me thinking a lot. In this post, I will try to share my personal take on some of his quotes, as well as open up the discussion to get more opinions :)

If you have not already watched it, I really recommend watching the whole thing. What really got me thinking watching this interview are the following quotes:

I will try to tackle them one by one (from a personal perspective, so yes subjectively), but before I do I would like to say that I am one of the lucky ones who have a full-time job contributing to open source, this allowed me to plug into many design discussions, some of which can alter the direction of a project and from these discussions I kind of relate to every one of these quotes whether directly or indirectly.

“Don’t just believe that because something is trendy, that it’s good”

I completely agree with these statements, but IMO there are multiple ways to look at it. Our end-goal should be good science, the way good science is approached can be different from one project to another, also I would like to divide the attitude to approach “good science” into two categories 1) guaranteed good science and 2) eventual good science.

The “guaranteed good science” attitude is basically like “Hey, lets only announce this thing when its 100 percent functional, does everything it should and ready for take off immediately”. Usually that takes time but the results are promising, it is also harder to cultivate interest towards that type of science because people don’t really see it yet so they are not willing to invest any kind of effort to make it happen. Basically, I believe it only if I see it.

The “eventual good science” attitude on the other hand goes like “Hey we have a great idea, lets PoC this thing out, it does not have to fully work now, lets see if people are interested first”. With this attitude, there is a bit of sweet-sour risk involved. This kind helps get the idea out but leave out much of the details. The believe here is that if that idea is good enough, many will rush to help realize it and “eventually” it will become good solid science with the main difference being early acting on and incorporating feedback.

This brings me to “Good” Vs. “Popular” science. Good science is good science from the moment you lay sight on it, but it takes alot of faith and investment to make it happen and expose it to the real world. Popular science might or might not become good science, depends on the problem its trying to solve and the man power available to make it happen, but if the risk is justified, it might actually turn out to be good science fast enough, IMO its all about the originality of the idea.

“People will do something against their own gut instincts because they think the community wants them to do it that way”

IMO, sometimes science is not the only governing entity there is, people also want to trade and do business. In that case, business can drive many of the decisions concerning the future of a project.

The force of the community is something to be reckoned with. Which again brings me to two types of decisions made to move projects forward (or backwards):

With faith driven decisions, the parties involved are willing to go all-out and invest with a firm believe that the long-term Return on Investment (ROI) is worth the effort. That again is risky business, and not for the faint hearted. Because there is no community to begin with, the community here is developed from scratch based on those believes.

On the other hand, community-push driven decisions focus on realizing what the community think is good science, and this here has a bit of business bias that is not so easy to escape from. Community decisions are easier for pooling in fast adoption, be it good science or not, fast adoption is good for business continuity, and as I mentioned earlier, these type of decisions might end-up leading to eventual good-science if enough adoption gets in.

IMO, it is always important to find the right balance, like put some faith in but don’t be too rigid about your opinions. i.e., leave some space for change and most importantly try not to be affected by the Not Invented Here Syndrome (NIHS).

“I like this idea about learning everything about an area before you feel… if you don’t know something real solid then you never have enough confidence”

With this one I have to say, 100 percent … but again, there are cases where 100 percent is not really required right? Lets look at the different category of jobs we have in tech companies for example. We have people with different titles ranging from sales to developers, each usually gets to have a different kind of conversation.

For a sales person what matters is the initial pitch (with the decision makers), usually with a script that is super directed and analyzed previously (probably by a different team) towards a certain problem / pain point. Once interest is piqued, a different conversation can take off from there, usually involving the developers who in this case should have 100 percent of the answers in that specific area of discussion.

So my point is, 100 percent is definitely important especially if you are the final go-to person in the topic or field of discussion, but not much if your goal is just to pique interest.

Final Thoughts

I did not think I will get that much carried away, but here we go, I wrote a post about it. I would be very interested in knowing what you think about those quotes / the interview. In this post, I simply thought out loud and shared my thoughts with you but I guess the discussion should not end here. Looking forward to more discussion on this.

And in case you don’t feel like going to youtube, I brought it here :)