Categories
Uncategorized

Wait but why High Agency ?

West’s rediscovery of Asian flexibility.

Sharing this very good blog by George Mack. It says that having an agency might be the most important theme of this century. There are people who will get stuff done, done right, no matter what. That is the basic theme of the blog. It is a very well-written blog, so please read it for the pleasure of reading.

From his notes, it looks like the blog was inspired by Tim Urban of Wait Buy Why Fame. Another very articulate author worth investing your time.

However, reading this kind of author sounds very funny to me in my Asian mind. Most of what they write is very basic human nature. It’s just that they write them in every detail, laying out each and every factor that goes into shaping individual or group behavior. Some people call it first principal thinking. But most of the time it is detailing human behavior in a bottom-up conceptual pyramid fashion. That is great articulation but hardly first-principle thinking.

I get a similar feeling when I source my books on leadership and Team development after reading HBR. The books on influence, candor or gravitas are fine books, they do offer nuanced details. But the central theme of what they are attempting has the same characteristics. Telling the dynamics of human behavior as if its been discovered for the first time.

For someone who thinks that the ideas or ideals they have in their mind or the ones they read in a book or taught by someone actually shape people’s behavior, this might sound very enlightening.

But for someone from a country or social background or exposure to poverty, deprivation, and struggle for upward mobility most of this is very obvious.

Since I don’t live in the USA I wonder if people are actually living in a social monoculture, away from the struggles of the hunter-gatherer level of life that give rise to the need for such blogs.

Also when I look back at the picture I got of the USA when I read books like Gone with the Wind on popular culture or 80s hit book on leadership called What They Don’t Teach You at Harvard Business School, it didn’t feel like it was a society, that needed basic human nature to be detailed out in such an intellectually laborious manner. (Just to be fair, sometimes Gen Z in India also gives me this feeling ). Maybe we are dealing with people grown in Flowerpot equivalent of social environment.

https://www.highagency.com
Categories
Software

Work Hours and a GenZ workplace.

The 8 hour norm

It was in the 1920’s decade that Ford realized that for optimum productivity labour well being is important. That’s the beginning of an 8 hour work day.
Between 1920’s and 2020’s a lot has changed in terms of our expectations from life our social relationships and most importantly our ability to focus on this.It doesn’t need a social scientist to tell that in an environment full of notifications/distraction and huge amount of emotional overload caused by media and news consumption the 8 hour work day itself is a mirage.

The missing link


The second point a lot of us miss on the 8 hours workday movement is that it was optimal for assembly line setup. Software or creative work or sports are not really the kind of professionals where repetitive, mentally less taxing measures of work,output or productivity can apply.Its for these reasons many good companies offer recreational facilities, mediation, greenery and stuff like that at the workplaces.
Many studies done on actual productive work done by software professionals record 3 to 4 hours of meaningful work. That too happens in bursts of 40 minutes blocks.
The rest of the time is spent on animated,less brain consuming stuff.But this is also the beauty of the human brain.While we can do brain intensive work for hours together the slacks not only recharges the brain but it also fuels some creative, lateral reflection on the task at hand.So in reality the slack is feeding into the performance we do in the 3.5 hour productive zone.

Realities of a Gen Z workplace

However a lot of the above studies have become little outdated with GenZ entering workforces.Recent article on HBR type of publications are saying that GenZ’s need for direction,purpose and connection might have shifted the niddle from 3.5-4 hours to a lesser number.In post covid world,i belive even earlier generations might have slightly lesses numbers when it comes to median productive hours.

But,most of the software industry is still stuck at 8 Hours of continuous office activity as a measure of productivity (read again).The outsourcing shops add +1 hour to this . And worst still some old executives call for 70-80-90 hours work week as a regular feature of the Indian industry. Not only is this demand out of touch with research or productivity but it is also heavily out of touch with how emotional of an average indian family men and women operate.

ps: too lazy to locate and cite the source studies.Work Hours for GenZ workplace.

Categories
Software

Give me something Quick and Dirty

Give me something Quick and Dirty !?

That’s one of the most common statement that gets good engineers agitated .

It used to disturb me the most when I was a young Architect .But with experience now am able to understand the situation from where this statement originates .Once you see this it will also help you feel calm at workplace by not feeling Us vs They conflict or feeling that your craftsmanship has been questioned .

Here is where it originates

Clarity and certainty are the two most important things that Managers/Directors get asked about . The world will look like heaven if software engineers could given their managers certainty that the job will be done with quality and on what-time . And guess what , this almost doesn’t happen .

So the second thing that manager will seek is clarity . Are you past the roadblock ? what could he do to help you ? and so on. And finally it again comes down to : the next certain date of delivery.

The world of the software engineers

This is in stark contrast with the world the software engineer. To begin with there is lot of ambiguity in the requirements .It has always been there ! There is also lot of interdependency with everyone else’s work . And on top of that there are all the patterns , designs ideals and cross cutting concerns one need to take care of . This is one of the main reason we all could write solution to our LeetCode algorithm problems in a near predictable timeframe but we cant be sure of when our teams can finish the project .

The issue oftentimes is that we as software engineers are poor at communicating all these dependencies that we feel and know .Hell we even expect “them” to know it beforehand !

In great teams there are individuals or mechanisms that help developers verbalize and communicate it .But it is not so common .

What Quick and Dirty actually implies

This where the Quick and Dirty comes in ! The manager ,pushed to the walls of deadline is asking you.

1. Can you please do the most direct code to the requirements , the design ideals can be applied later .

2. Make working assumptions on the missing pieces .

3. Eliminate the dependencies on others to the maximum extent possible .

4. Look for something already available or even an alternative approach.

5. Brute force is allowed instead of elegance (for now).

6. Do not produce buggy or insecure code .

So the call for Quick and Dirty is really a call for software engineer to move from craftsman’s role to the role of savior ,communicator and negotiator (bargainer if there is a word like that ).

What has been your experience with the call to Quick and Dirty ?Did you avert the crisis ? Did you bargain of extra time to make everything proper later ?

ps: What happened to the work of Tech Managers you may ask ?that in next blog

Categories
Software

Dotpe and Software Engineering Discipline

#dotpe and Software Engineering Discipline

The issue with dotpe API

Since last few hours, dotpe ,an Indian startup catering to restaurant is in news for the funny hacks one could do in their API .I am sharing the archived sub stack article below for the details . It a fun read where a techie found out most ordered items at different branches of Social bar .He then goes on to hack the api by ordering an item on behalf of a table next to him . Read to know what items folks in India prefer with their drinks . Damn i did not know Social is so big (are they open to Private Equity :)).

image copyright Pea Bee

Why would a startup miss the basics

But the intention of the post is not the ridicule dotpe .It is clear that they missed enforcing basic authorization for their APIS .It is very unlikely that their engineers didn’t know about elementary practices on auth. The most likely it is case of features overpowering the discipline .Someone totally missed modelling the system boundary since “all the API was doing is to order food from menu” only to later realize that once you keep the gate open anything can walk in.Thats a generic take.

More specifically probably dotpe wanted customers to order food by scanning a QR code without any friction of singup. This resulted in a clientless API sans any id or possibility of auth. You can this of this as using postman . Its is very likely that someone did point it out internally but lost the argument in favour of frictionless experience given by a powerful designation.

This is also points at larger problem i.e lack of regard to the discipline of Software Engineering Indian startup industry .

The maturity deficit

As industry we don’t have a good supply people across experience levels who have built software from ground up and run it earn their salary .It is one thing to hire bright engineering’s with brilliant leetcode and MBA credentials .But brilliance is not a substitute for wisdom and having nerves .It is in such cases it is very likely that he QoS/concerns like auth-performance-maintainability-resilience or more such ability is missed .Or even if they are taken care by the developers they loose the argument in favor of “release it now” argument. This is the spectrum from skills to wisdom to nerves . And that is the craft of Software Engineering ( as opposed to just code and build).

Dotpe’s redemption

back to dotpe ,they should scrutinize their people dynamics as opposed to punish the engineer in charge .Better still they should turn this into a marketing opportunity by release monthly dotpe food trends .

Here is the whole story https://web.archive.org/web/20240923081639/https://peabee.substack.com/p/whats-inside-the-qr-code-menu-at

Categories
Software

Value Transitions at Work

Value Transitions .

Every time you read about grooming teams or individuals you would hear that they need to have role clarity . A clear definition of what their new role is ,what is expected of them by A/B/C/D/E/F and G. Its a separate fact that at many places even this doesn’t happen .But people eventually figure it out ,to the best of their ability .

What they invariably fail to also realized that with each role the values they believe in also need to change. Say you are an expert developer ,who takes pride in producing “prefect” code .Now that you have grown up or the team has ; you get promoted to a Lead . How do you now extract “perfect” code from multiple people ? Sure there are reviews and test cases ,but how do you get code as perfect as you would have done ?

This is really the moment where your values are challenged. Left unchecked it can easily morph into micromanagement , playing favorites (to the geek developer just like you) or even pent of resentment (about them).

What has to really happen is that this tech lead has to know that his value has to change from being perfect to being watchful , from being particular to being mindful ,from being meticulous to being organized .

Because as the role transitions from individual to lead they levers you used to pull have changed so has the values that make you select these levers .

Just to be comprehensive you values would get challenged with every change i.e. role/team/project/economy/Time .

Just to be void confusion : habits are different hurdles to cross than values .Its easy to vocalized about habit but things that are part of your individual success process(ISP) are difficult to identify for the individual ,leave alone transitioning them .Values are the foundation of your ISP .

Categories
Software

Peter Principle still holds true

Peter principle is classic book on promotions . It says that every person rises to his level of incompetency .That is people in a hierarchical organizations keep getting promoted till they reach a level for which they are no fit/ready/skilled .

The principle and book by the same name is from the 70s .And it still holds true…

And before you think of one particular person in your hierarchy where this principle has manifested , the right question to ask is how can we ourselves escape this.

The fundamental problem problem is modern workplace is that promotion i.e rising up in the hierarchy is the only mainstream way to grow . However with each role change the skill demands change .There are organizations and individuals who are aware of this and take effort to skill people up.

At the same time there are a lot who miss the target . For a change , just ask yourself and your friends if you were told and trained about the shift needed in your role ,the last time you were promoted to Tech Lead ,Manager, Architect or whatever junior role you were promoted to 🙂 .

Another approach some companies take is that of internal startup that shakes up the culture of static-stable-hierarchical way of working towards competitive-renewal-delivery based reorganization .

There are few more variations of these things where companies essentially try to avoid power ladder , salary ladder and value ladder . All of which feed into peter principal .However avoiding these ladder is tough ask so Peter principle keeps manifesting at workplace .

Read the book ,its good .

https://en.wikipedia.org/wiki/Peter_principle
Categories
Software Uncategorized

Can you bargain for your craft , Techies ?

Can you bargain for your craft ?

The world of techies is full of ideals . They have “design patterns” that are “proven” . Architectural “styles” that “fit” the domain. “Best Practices” that absolutely everyone needs to follow. And of course all the code and designs need to be “proper” , “standard” , “clean” .

If you see all of these terms you realize they are qualitative. Not everyone in them understands them the same . In fact the world of techies come crashing down when “they” come to meeting .They just don’t get it .

This they is an interesting tribe. They only speak in terms of dates , completions , estimations ,schedule , priority , severity , escalations , showstoppers ,budget . Everything They have is urgent and there is no time for “idealism” here .Things have to happen ASAP so all we need is “just this/that”.

If you see all these terms you realize they are quantitative .It might be made up ,in some cases ,but they are numerically relatable .Human understandable , as we say .It no wonder that when the time comes for our Techies to bargain with They ,most often it results in some sort of frustration for techies .

Whenever I train my folks for Architect roles my first question to them is “Can you bargain for your craft ?” .It makes them uneasy. Most of them believe that there are some other roles that exist for this .Some believe that there are processes for this .Some say it is part of good tech culture that such questions shouldn’t be asked to techies . Fact is all of these are right point .But fact is also that human discussions don’t happen in a linear , boxed manner .

So our techies cant escape bargaining for their craft. That’s a minimum; techies need .

How do you negotiate for a proper design with your Product/Manager/Support/Test/They is how emotionally contentful your work and work experience will be .

Categories
Software Uncategorized

Dixit’s dilemma of Generative AI

How do you verify output of thing more intelligent that you ?
That’s Dixit’s dilemma of Generative AI. Its not famous yet 🙂 .

But as we employ Generative AI more this dilemma will become famous . Take the case of code generated by GenAI , you need the developer using it , to be more skilled than the complexity of the code being generated to find out correctness of the output .
A corollary of Dixit’s dilemma is that our Qualitative gains from GenAI are capped by the Quality of the verifier !

Did someone talk of GenAI making your job redundant ? It can in the quantitative domain but not in qualitative domain (it the mundane can be but the classy can’t be ).

EDIT : Some more clarifications

The holy grail of code generation .

The holy grail that we all are chasing from tools like copilot is that they can generate the whole code from requirement documents .This is not a stated need but that is what people are hoping for . read on .

If you see the popular demos on code generation by GenAI tools there are few scenarios that occur often :

1. Given a table or json generate complete webservice

2. Find the performance or security bugs in code

3. Find structural issues with code as per the language specification

4. Flag issues with dependencies from deep within codebase

5. Document my code

6. Write test cases , elementary ones .

Now if you see the capabilities of IDEs , code generators ,profilers ,linters such things existed since decades for most of the programming languages .But they were in siloed in nature .So we can give credits to LLMs tools for bringing it all together .This can benefit existing codebase a lot .

The situation becomes interesting for new code base . The demos where one can make the tool write a script for managing a server or sorting algorithm are in essence demonstration of smart lookup (for relevant code fragment ).This can benefit seasoned developers by saving few keystrokes .What next ?

What do we all expect next is , can the tool take long format requirements and generate functional code .That is to say can it read my Jira requirements and understand my user persona , interfaces , domain jargon ,different flows so on and so forth . It is certainly passible to give lots of prompt context to AI tools and create such a demo .

Can we do it at scale for an organization ?

Can we do it in a manner where prompting the requirement context doesn’t becomes as complex a job as that of programmer ? AND

How can we validate that what ever is generated is functionally correct without needing a new battalion of validators ?

These are the practical question for which we don’t have answers .

This is not to say its not passible , domain languages for automatic code generation has been in place for long . Coupled with GenAI they can do wonders .Its just the current breed of GenAI are not made for this sole purpose .The day that happens , all the GenAI demos will happen to CTOs instead of CEOs 🙂 .Read that again 🙂

Categories
Uncategorized

Cricket World Cup and Understanding Indian “yes”

The difference between our Yes

Working with first world team mates for this long i have realized the difference between our Yeses . In a first world setting when you asked someone “can you do it” it meant “is this well in your ability?”+”will you deliver this on your own”.

The first thing that would happen in Indian team setting is that “can you” is understood as “will you do it for me” .It is also supplemented by “you will be at your peak energy” ,”you are counting on all your friends and social circle for support”, “you are very optimistic” and finally “in event of any crisis feelings of human around you matter more than material results ” .

One add or remove few more sentences to this but in essence the Indian Yes is always a tentative yes .This tentative yes is not really a problem for Indians working in Team setting .Most of India like societies intuitively know that renunciation and human connection surpass anything that has been agreed .

The problem of Implanted systems

The problem arises when Individual and achievement based team settings that has been perfected in Industrialized world is enforced people who are on society and experience oriented .

This gap can largely explains Indian performance in sports also .Like recently concluded cricket world cup 2023 where the best Cricket team India had so far lost like a clueless team. Indians fans are sad but not angry or puzzled about the outcome . The appeal of ‘India will win the cup’ was always emotional as opposed to one rooted in cold mathematics. So most Indians understood that we failed to do the hardcore scenario planning about the match and the minute by minute follow up of it …so we lost .But we are more touched by the tears of the players .That’s US .

The missing Indian team Model

This is not to say Indians can’t be individual achievers or cant get world class results in team settings . The proofs are aplenty .

The Indian yes is actually a super power you can have in your team that can do wonders in events of chaos , crisis ,diversity and rapid change . The only care one needs to take is to weave the intended achievement as something that is above individual and is a social aim. Or at least make sure that the teams is trained in the westerns style of Individual-achievement oriented human lego blocks that fit together for the result ; than gathering a team of super hero’s that will say “Yes” to your “can you do it”.

As for as India’s loss in world cup 2023 , our reaction to Rohit Sharma’s tears is emotionally same as one we had when Bhagwan Buddha or Rama left their palace,…………………renunciation and repentance over anything materialistic

India's skipper Rohit Sharma gets emotional after losing the ICC Men's Cricket World Cup 2023 final match against Australia by 6 wickets at Narendra Modi Stadium in Ahmedabad on Sunday. Australia win their sixth ICC ODI World Cup title. (ANI)
Rohit Sharms in tears after the loss (Image courtesy news agencies )
Categories
Software

Pair Programming with a Large Language Models

Pair Programming with a Large Language Model .

Guess this wording settles the debate against the developers . The narrative has been set for use of LLM for productivity boosts with this phrasing !But are developers burdened with expectations or is there some hope of real usefulness to developers with the help of AI?lets check .

Using llm for coding task is expected to give huge productivity boost . Mckinsey already released a report on measuring developer productivity .Organizations like ChatGPT/OpenAI/Microsoft and the likes of meta/CodeLLma are coming up with code LLMs and numbers on productivity boost .There are new coding LLMs or LLMs with such capability coming up every week ,so this list is non exhaustive .

Paid to code or paid to recollect ?

However the question remains , can LLMs in its current form boost developer productivity across the board . The answer is no .Its only the developers who have a clear picture in mind of what they want ,can save some time with typing work with tools like copilot .

However the cognitive work for the developer now shifts towards reviewing the code generated by AI .Which is heavier mental work then writing code via learned skills .

This also raises a question of memory recall of such AI generated code at scale ! .Developers after all are not paid just to “code it” . They are valued for knowing their code , maintaining it and debugging it . Will the developers have a clear mental model of such AI generated code ? and what is the limit of such active recollections ? For now we we don’t know answers to these questions .We can take some guess from our experience with social media .This experience tells as we honestly don’t have first class recall of the virtual updates from our network when compared to actual moments spent in physical world. Even if someone argues that social media is not approached with the serious ness coding is ; the limits of our fatigued brains are known now. So I would conclude that the so called boost to developer productivity is overhyped .

The Future of coding with AI

There is however a good case of vendor curated assistants .Imagine an coding assistant from spring/java or vuejs or likes. These can help us with smarter code highlight ,offer deeper code review and provide standardized lookup code samples for developers to use. They can also have a real connection to the language runtime and offer are better suggestions on optimizations and debugging .

This is probably the less shiny ,less geeky middle path to developer productivity with the help of AI. Exactly in the spirit of Pair Programming with a Large Language Model .

(image via genecraft )