Monday, December 25, 2023

Cloud Computing: Confusion As A Service

All these fancy names in cloud computing—like IaaS, PaaS, CaaS, FaaS and more—can make your head spin. It seems like in tech, if you give something a name, you’re instantly seen as an expert. But do we really need to name every little thing?

Think about RESTful APIs for example — basically a method for apps/services to communicate with each other. But it's become this big thing with its own special name. Same goes for these cloud models. I’ve been using Google Cloud for years, deploying containers using GKE, creating Compute Engine instances, deploying GCP functions and never bothered by this jargon. To me, it’s just Google’s tools. Whether it’s machines or apps, I use what works without needing a glossary. This overload of cloud "models" feels like a barrier, like I’m supposed to be fluent in this secret language to belong.

Communication matters, sure but all these XaaS terms just create more confusion, especially when the lines between them blur in practice. I think the only practical approach is to understand what a cloud provider offers and use the cloud services that suit your needs without delving deep into the specific terminology. Let’s balance clarity and this unnecessary naming chaos.

The need for clear communication and the overwhelming proliferation of terms is contradictory and highlights a challenge in the tech industry. Finding a balance between naming things for clarity and avoiding unnecessary jargon is an ongoing struggle and is not helped by the competing companies making these terms into buzzwords and marketing tools, overshadowing their original purpose of facilitating understanding.

Isn't it strange? We say naming is hard and yet we name everything.

Thursday, December 21, 2023

The Missing Piece in Online Learning: The Power of Conversations

In the past, our educational journey revolved around classrooms, textbooks, and more importantly study groups. Remember those study groups where we'd stay back after class, discussing lessons, and learning from each other's perspectives? Those conversations were excellent—they made understanding complex ideas easier. Collaborative learning, bouncing ideas off each other, and discussing concepts were integral parts of truly grasping the depth of what we were taught. However, with the rise of online education and Massive Open Online Courses (MOOCs), the dynamics of learning have shifted.

Many have heralded online courses as a replacement for traditional education, boasting convenience and accessibility. Yet, amidst the wealth of information available at our fingertips, a crucial element seemed absent: the art of discussion, the back-and-forth exchange that fleshes out understanding. This is the reason why I find so many incomplete courses on my Coursera account.

Recently I tried another online course and felt that gap again. I wanted to chat with someone about the subject matter, but since it was online, I didn't have a study buddy. That's when I had a crazy idea: what if I used a chatbot like ChatGPT as my study partner?

Surprisingly, this experiment yielded remarkable results. Interacting with an AI, bouncing ideas, posing questions, and articulating thoughts seemed to fill the void of a missing study group. The experience wasn't just about finding answers; it was about fostering a deeper comprehension through conversation.

This unconventional approach raised intriguing questions about the evolving landscape of learning. Could AI companions supplement traditional study groups or serve as a bridge when physical collaboration isn't feasible? Does this mark the inception of a new paradigm in education?

While it's undeniable that the essence of in-person study groups and the camaraderie they foster shouldn't be replaced, the concept of utilizing AI as a study companion presents an intriguing opportunity. It offers a unique way to bridge gaps in learning, fostering deeper understanding, and enhancing the overall educational experience.

Integrating traditional study groups with AI companions might be the next step in learning. It's combining the charm of discussions with friends and using tech to deepen our understanding.

What's your take on this? Have you ever considered learning with an AI companion?

Sunday, January 22, 2023

Peopleware: Part Three - The Right People

Its important to hire right people. Managers often like to think that they can turn coal into a diamond but the reality is that they neither have enough leverage nor enough time to make people to change in any meaningful way. People will remain almost the same as they were on the first day of the job so it is important to hire and even more important to retain the right people.

You don't want to hire a juggler without actually looking at him/her juggle. Similarly when hiring developers, its important to see an example of their work. Asking them to bring a portfolio of their work on an interview shouldn't be a problem. When given opportunity people like to show their work.

Diversity in hiring has its benefits but they are not free. We should value the different ways of working, thinking and communicating diverse colleagues bring to the team but more diverse a team is, more effort will be required on the manager's part to get the team to jell together. If the team keeps chaning, adding or removing contractors, then it will never jell. 

The young workers today are built different. There are generational differences that need to be understood and accomodated. These young workers were born and raised in a world with phones, apps and other things that are continously trying to steal their attention. They have gotten used to splitting their attention and will tell you that they work best in such an environment but such continous partial attention doesn't work well in a creative thinking environment. It is opposite of the flow which is essential to getting meaningful work done. It stops them and others from getting into flow. It is important for their carreers for the manager to clearly articulate the contract to them. Such periods of continous partial attentions must be thought as personal time and should be reasonably limited during the work day. 

Retaining good people is even harder. The total immediate cost of replacing an employee is almost 6 months of wages but there is a hidden cost. In companies with very high turnover, people develop destructively short term view points. They are willing to sacrifice future for smaller immediate benefits. Employees are not willing to invest in long terms goals as they don't believe they will be around to see the benefits and the company is not willing to invest in its people as it doesn't believe they will be sticking around. In such companies no body, neither company nor the employee, is willing to take the long term view. In such companies the only way to retain good people is to promote them quickly. This results in a very top heavy organization chart where most of the people are "managers" and people actually doing the work are may be 20%. It is very disconcerting that in such organizations the people actually creating the producsts have very little experience as more experienced people are sitting in management. Young people may find the idea of a quick promotion to 1st level mangement good but from a corporate perspective, late promotion is a sign of health, it means people stick around. Such organizations create higher quality products as people actually working on the products have a lot of experience.

People leave a company for various reasons but three reasons account for most: 

  1. 1. Just passing through mentality.
  2. A feeling of disposability.
  3. Loyalty would be ludicrous (not sure about this one, not a reason in it self)

The insidious affect is that turnover engenders turnover. People leave quickly because company doesn't invest in its people and the company doesn't invest in its people because nobody sticks around. More important than why people leave is to understand why people stay. People stay because of the feeling of community. Because leaving a company doesn't just mean leaving your job, it means leaving some friends, leaving a community you enjoy being part of and with whom you have developed a bond. The best organization consciously try to be best. This gives people a common goal to achieve together and to bond around. It creates a sense of community. Some companies try to explicitly engender the sense of community. A common feature of companies with lowest turnover is retraining. Retraining helps build the mentality of permanence and strong sense of community. These companies are different. There is an energy and sense of belonging that is practically palpable.

The money spent in training or retraining people is not an expense, its an investment. An investment is when you trade one asset for another betting that the new asset will provide more value in the long run. Thinking of the human capital as a sunk expense causes managers to make decision that don't preserve the value of the organization's investment. Companies of knowledge workers need to understand that this human capital is their most valuable investment and matters the most.

Tuesday, December 27, 2022

Peopleware: Part Two - The office environment

Summary of part II of Peopleware: Productive Projects And Teams

So if the managers job is to enable people to work, how does he/she do that?

The first step is acknowledging that the resource that you are managing i.e the peopleware does not come from a factory. They are unique and every individual has their own way of working and choice of keyboard/mouse/screen/desk arrangement etc. You can't have all the desks look the same and all the walls have the same paintings and all the floors look exactly alike. Give the people freedom to mold their environment according to their needs and wants. Once that gets out of the way, people can focus on the work and not fuss about how the silly mouse on their table annoys them. So get out of their way.

The thinking worker also needs to, surprise surprise, think. That requires quiet and focused time. In an office environment with a lot of distractions, this becomes impossible. If people come early or stay late just to get some work done, you should be worried.

Saving money on space is not the smartest move. The company may save a penny on space but will pay a dollar because of the reduced productivity. People are not chickens that can be crammed in tight cages and still lay eggs. You need to provide ppl space and reasonable privacy to do their best work. Office quality is directly proportional to product quality. More noisy offices produces more buggy software. Also quality workers tend to gravitate towards quality offices. So even if everything else was same, if you loose out on quality workers you loose out on quality products. They companies producing quality products all provide their workers quality offices.

You should enable people to have that focused time. People should expect that and no body should be offended if a colleague didn't reply immediately because they were focused on a problem. Asking people to report the number of productive hours each day builds this awareness in the people that this is something that they can expect to have and builds a culture of people letting other people work without distractions. Start measuring the environment factor (e-factor) on regular basis.

e-factor = Uninterrupted hours/Hours in office

If the e-factor is less than 40%, the office environment is not letting the people to get in to flow and get the job done.

Management should make sure that their is enough space, enough quiet and enough privacy so the people can get the work done and then get out of their way.

Peopleware: Part One - The human resource

From now on I am going to use this blog to record learning from the books that I read. To summarize what I have read so I can get back to it when I want/need to. The first book that I am going with is Peopleware: Productive Projects And Teams and here I summarize the first part of this book.

The first part of the book is about understanding the resource that we are managing. Different resources require different style of management. In programming terms memory and processor are two distinct resources and require different management. The resource that is being managed is creative thinking workers and they need to be managed accordingly. Almost all the time when a project fails, the reasons are not technological  but sociological. Understanding this is key. Thinking workers are not created from the same mold and hence can't all be treated the same way. They require freedom to do what they do. They will make mistakes and should be allowed to do so. They are not part of an assembly line where one can be easily replaced with another. Assembly line management of optimizing the pipeline for more throughput will not work. People should be allowed to spend time thinking and not just doing.

The Spanish theory managers try to optimize value produced per hour of paid labor by using unpaid overtime. This will not get your far. Most of us have limited "productive" hours per day and overtime will not increase that number and overtime on one day results in some "undisclosed" or "unreported" downtime the other day. So the net remains the same. But in the long run this kind of management will result in resentment and in good people stopping caring as they realize they sacrificed more important things like their personal lives, their kids birthdays and etc for work. This will harm the company badly. Let the people have normal lives and work life balance. This will do more good and does not result in less actual work.

Creative people take pride in what they create. Pushing them to deliver something faster at the cost of quality hurts that pride and harms the companies bottom line in the long run. The company may deliver the product on time but if the people stopped caring about the product they are creating, the company will hurt. Japanese companies allow the staff to have veto over product delivery if the people creating the product are not satisfied with it.

Parkinson's law says that work expands to fill the time available. This may be true in some cases but not in case of people who like doing what they are doing. People under stress don't work better, just faster. The quality degrades, more bugs are left and they require time to get fixed. So it may feel like the work is happening faster but the productivity actually goes down. The data actually suggests not having any deadlines at all as it results in the most productivity but some people may feel lost in such an environment and in such cases estimates/deadlines by system analysts result in best productivity. One observation though is that the organization busy work does expand to fulfill all the time available i.e meetings and all. We do need to keep that in check.

The manager's role in such an environment is not to make people work. These people care about their craft and want to work. The manager's role is to remove hurdles from peoples way and make it possible for them to work.

Monday, May 8, 2017

Simple Ways to Improve Battery Life on Linux Laptops

  • Set Ubuntu's Built-In Power Settings. 
  • Turn off Bluetooth. 
  • Turn off Wi-Fi. 
  • Lower Screen Brightness. 
  • Quit Apps You're Not Using. 
  • Avoid Adobe Flash (Where Possible) 
  • Install TLP.