Categories
Software

Dollar decoupling of Indian IT salaries

The rise and rise of salary offers

If you read popular news articles in India about IT, your would get a picture that everyone is changing jobs .Lately some media house have also started talking about the hikes and how big they are .A lot of these construe that due to covid19 people dint get hikes and now the jump ,or something on these lines .

Enter LinkedIn posts and you see lot of youngsters posting about how they got some offer and they manger to outgrow that with counteroffers .The percentages are huge .

At the same time ,the business newspapers and quarterly results hardly talk of huge contracts coming their way. How does then one connect this and form the coherent picture ?

The dollar peg of Indian IT salaries is off now

In a globalized business it is hardly a surprise that exchange rates come into picture when deciding employee salaries .However in the initial decades it was the IT services that defined job market. It also brought billing rates with it .The rates were ,generally linked to roles and designations . It also meant the hikes and promotion were aligned to annual results and big hikes came your way when roles changed . This is so fundamental to us that our hiring-retention discussion still center around this .

It is not an exact year but around 2008ish is when the captive unit movement started in India. This was first instance of that billing rate foundation was shaken .More or less .But the exchange rates still remained in background .

By next 10 years .To put a precise date , around the time Flipkart and Ola happened in India we had mass scale recruiters that the foundation of dollar peg was taken off. The more and more build for yourself software companies open here, the more prominent this trend is .

Covid19 or Buzzing startup : Where is the tipping point ?

Of course the startup scene in India is maturing .Do we then conclude that this alone is causing the scale of salaries in job offers to rise suddenly ? A buzzing economy does cause good hikes in salary , we saw that in 2003-2007 . So does post social shocks , like the hikes in 2011-2014 era. But that does not explain the suddenness .Nor do LinkedIn posts mentioned above say that everyone is jumping to startups .

It would be useful to consider other social-human aspects that covid19 brought to us.

  1. Onsite is less lucrative : The main hidden attraction in services companies was onsite posting .Covid 19 has made it look less attractive or even bad choice . So any market worthy candidate is now forced to discover his native-local worth .
  2. Subtle Social pressure is off : In absence of a survey , it would be difficult to guess the contribution of office atmosphere into long stays at companies .But this is important factor why people stay .Your friend circle ,the lifestyle keep people hooked .In some cases an inspiring or imposing boss contributed . In some cases your yesterdays bug or mistake made you push thinking about career to next day. And the main factor is formal arguments .There are many formalized workplace related arguments and anecdotes about satisfaction ,purpose and all that worked in formal work place .A lot of them meant different thing when you sit at home in lockdown. In some cases people told me they laughed at these stuff now.
  3. Family time reality check : There is big value that we attribute to continuity. This is one invisible force that keep people into same circles .In many cases semi urban rural families thought greatly of the work, workplace, companies .Working from home brought the reality check .The long calls ,shouting bosses and hours of hunch back coding on sofa looked different to them .Of course some must also be touched by care shown by companies during covid times .But the rosy picture that you have a IT-working kid that is very attractive in marriage market is realistic . The cost of the salary is obvious to them now. In some cases either families or individuals also got space and time to consider alternative careers .

All of above factor lead to an individuals who are well reflected about basics , bolder about their demands , gusty about the bargains demanding sharper differentiation . The LinkedIn post you see about counter offers are from such people who have market value !

The aftereffect we need to be aware of

My old friend the other say forecasted that this trend will not sustain .As of there is some alignment in poverty and forces of nature .One even said that later these companies will fire them or give 1 % hike .Any such comment ,reasonable or not misses the fact that hiring companies are also rational actors.

When we postulate that dollar peg of Indian IT salaries is off ,we must also consider that the talent peg is now global . Increased remote work and more startup had to have this effect. So the net result is that not only salaries but the skill demands are also catching up with global peers (emphasis is on skill demands as opposed to skill levels).

This is not to say that local talent was lesser .It is just that both factors are in sync .Looks like they will remain in sync. This needs some consideration by career minded people .

When we talked of billing rate dominated -pyramid workplace .We dint talk of a work place where skill levels where matched to client needs .In many cases the skill range was narrow ,in some cases it was not latest and in some cases it even allowed people to hide behind the pyramid without having good skills .

The movement from waterfall to agile in many cases exposed this .It is thus no wonder that agile and reskilling became buzzwords around the same time in India .How ever this far the the skill demands and salaries where not rising in sync.

I would like to postulate that now they are .This means that not only the skill levels will have to be globally competitive but also that the onus will now be more on individuals to stay on the edge of competitiveness .Proven and impressive hands on skills are already the norm in Indian IT hiring .This might also get into zone of industry leading talent levels .If the salary curves are to sustain and grow across years , aspiring candidates might be also judged on their tech-though leadership . Say open source contribution or patents or research papers would become norm. Ones teaching technology on professional platform or with books on their names .Even difference of opinion on established technology norms count as positive !

All of this is actually is good news for the community as well as the industry and the individual .We are looking at fitter techies who are well paid, can lead the agile trains, deliver industry leading work. Its win-win-win .

The only looser might be candidate who think that they are outsmarting the industry by squeezing the “hot market”.

In reality there is no hot market .All we have is market demanding top skills and able and willing to pay top rupee for it .Have good next decade Geeks !

Categories
Software

The great attrition churn in Indian IT market

Of course, each business newspaper is telling you that attrition levels are high in so many IT companies in India .One gets to see huge percentage numbers cited in such news . But very few of such news present the the details of such movement leave alone the causes . A few article and posts did mention that last year due to covid the hikes were less or nil . But does that qualify such big jumps in attrition .

A deeper discussion with the folks exiting tells diff story . In some cases the women have realized ,after staying with kids for a year that their IT job is not that “needed”. In some cases the men have questions need of an IT job itself for livelihood .In many cases a lot of folks I talked to had farm or fathers business as a fall back .And the covid wfh allowed them to consider going back seriously .In some very sad cases ,friends had causality or very bad episode related to covid which made them question the need of city job away from near ones . A few youngsters told that a year at hometown they would do a start up because a formal IT office doesn’t excite them now.

Of Course mine is not a detailed study with lots of data .But it should tell that there are some fundamental shift in Urban-9.15hours-IT jobs that were seen as the thing in India for past decades .One might read some US based publication and call this quit job movement but that would be superficial .I would rather call this as reverse migration or some sort of coming full circle on Urban migration as option and IT job as the best lifestyle choice .Both have been challenged by covid. So next time someone says the people are jumping jobs for money , it might be t he symptom but the causes might be disillusionment .Oh and by the way you where thinking of allowing your team to work 2 days a week from home, right ? Welcome the HR challenge of the decade .

The paradigm has ,in this case ,actually shifted and we don’t exactly know where 🙂

Categories
Software

API first for Products

Lead question : Why API First

Ask a product manager what is the different between made or order software and a product .He will tell you how product is general purpose for the given domain (not generic tough ).How it captures a broad set of use cases from the domain .How it is flexible in adopting to diff combinations of rules that are included in these use case .How it is future proof and is ready for future changes in domain .How it benefits from vast experience from we have in the domain/customers /consultancy . It goes on .

Yet when it comes to day in life a of developer he is often made to code first , code just what he has been asked for and ship it . It is obvious that a start up will only put coding effort into what sells but should that rule apply  to the very definition of the product as it is conceived  ?Is defining a product/service/roadmap same as coding it ? Such gap between what is “Seen” by product and what developers are made to do are solved by evolution read software design . API first is a prime example of being comprehensive and thus evolution ready yet riding the demand wave frugally .

Business scenario for  API first

  • Integration /Consumption : Software need to be integrated by different parties as the success happen .Would you like to struggle to meet demands of this success come your way ? or would you like to be ready for it with some top-up effort .The answer is in thinking API first . Once you  think of well  thought of APIs  gluing them become easy and future successes becomes faster . This could mean integrating in or integrating out ie consuming (and monetization ).
  • Aggregation/federation  : The internet economy of aggregation made famous by amazon/uber has made clear a case for softwares co-operating with each other .This increases market reach and revenue .However aggregation economy is volatile and competitive . One need to be ready at shorter notice than typical integration projects .The integrations also need to be robust for the parent party (and their customers ) to trust you .Another flavor could be federation of services amongst equals . A well thought of API on both sides make such integration easy-fast-reliable .
  • Extension  : Acquisition ,Saas enablement  ,inhouse aggregation(called integration ) or even customization are typical cases of base capability of software being enhanced by extension .We may thinking of moving from web to mobile to chatbots/alexa . We may also consider taking base software and enabling that as multitenant offering .  While these extensions are value positive for every one they need be very liberal in capability but restrictive in scope .This help us keep sanctity of base software  yet allow creative but reasonable value add . An API layer will clear laid out  extension helps .

All of these driver point towards one fact that business that are built with well defined contracts stand to benefit from this opportunities as opposed to software that are inwards focused and need extra work for any opening up .While this discourse underlines that API first help us with readiness in terms of external forces , the same game plays out within the teams also .It is just that inter team play is seen in the light of following themes

Advantages of API first approach

  1. Domain fitment : The tendency for Business analyst and developer to grab a piece of functionality under discussion and “just code it” .This has huge chance of teams creating code that is few layers higher in domain and miss out in fundamental building blocks .An API first approach also forces teams to think bottom up inside the domain where they are made to think of the “built up” of the functionality .This ensures that the domain of software in considered in totality before team chooses to pick up one slice of it and code it .
  2. Parallelization : API also stand for clear contracts .So it allows teams to do more parallel work as api-first minimizes risk of large scale integration of parallel work streams .Productivity and time or marker related gains follow .Agile ie .
  3. Testing : Since APIs are laid our clearly the function or security test team get more and enough time for deep thought testing approaches at all levels of test coverage .
  4. Functional resilience : Since API commits to a final contract it gives a robust functional capability which is strength .At the same time there are many internal implementation details are that are open to amendments which adds to overall resilience .Think of a case where old rule based API is replaced with new Machine learning based API ,while the API is same the quality of algorithm is smarter .
  5. Evolution : A well laid out contract also facilitates future evolution easy .It could be new version , a customized or localized flavor which offers changes in the same neighborhood as original older version of API (hence evolution ) . This however needs a better governance put in place .
  6. Tech Debt repayment : A well defined contract also allows decoupling between team producing it and team consuming it . This allows the team to keep on changing internal technical detail of their API healthy and repay tech debt without disruption .
  7. Other than code needs : There are many other than code needs like performance ,build , documentations , availability  , monitoring ,audit ,security which are get into motion after the software is committed to repo .API first lays out clear shape of the software to be and allows these team to think thought early on and facilitates these other than code needs at much deeper level of engagement .

Pitfalls and background of API First

API first is often confused with webservices .This often leads teams into thinking that if they are not exposing any url style webservices to anyone they are free .A better term for API-first could be contract first (but that’s very technical world so API is used ). This means that no matter whether one is creating piece of software that is consumed by outside world or other teams/developers in your company ,so long there is interdependency one need to commit to clear contract .And in order to see the gains of agility etc one need to commit to this contract first .This also means that all layers of software from external facing UI -webservices to components-frameworks in middle layer till data-integration layer one need to think  of defining clear contract .To that effect every component is an API that is producing or consuming other API . Even so-called cross cutting layers like logging are mater of laying out clear cut APIs.

The concept of defining clear interfaces in now new to programmers . We often talk of specifying clear interfaces and programming to interfaces .However this good practice start at individual program and ends at design patterns . May be it is seen as something only serve side programmer do . But , as we approaches more layered , more distributed(teams as well as software) , more integrated and more reusable (think open source ) , more componentized and so on the value of clearly laid out contracts between these seams is apparent . API first is this a mainstream realization of this fact , tough people confuse API with webservices only .

more reading ,Bezos Amazon API Manifesto and link to Yegge of Googles Rant : https://gigaom.com/2011/10/12/419-the-biggest-thing-amazon-got-right-the-platform/

Categories
Uncategorized

English translation: ilu sa ha deh

Sometimes lyrics of movie songs touch the heights of divine poetry. It could be Rumi style Sufism or in marathi what saint Gyaneshwar wrote or if you are western audiance you can think of Neruda. Here is my attempt to put English translation of song ilu sa ha deh. इलुसा हा देह written by Vaibhav Joshi for marathi movie panghrun ie the cover.as follows…

Tiny is the body , with unfathomable  depth

Affection ..love ..enchantment ..together are kept

The soul within the soul ,all chaos

Burning down its trace ,all across

Is it a sin or virtue it would

Sankes are destiny of sandalewood

known or unconscious,The void of this emptiness.. great

The consciousness of none.. is the fate

इलुसा हा देह किती खोल डोह
स्नेह प्रेम मोह मांदी याळी मांदी याळी

चेहऱ्यामागचा चेहरा कल्लोळ
चेहऱ्यामागचा चेहरा कल्लोळ
आरशात लोळ बिंब जाळी..
इलुसा हा देह किती खोल डोह
इलुसा हा देह किती खोल डोह…

काय आहे पुण्य काय आहे पाप
काय आहे पुण्य काय आहे पाप
चंदनाला साप कवटाळी
इलुसा हा देह किती खोल डोह
स्नेह प्रेम मोह मांदी याळी मांदी याळी
इलुसा हा देह किती खोल डोह…
शून्यातले शून्य जाणीव नेणीव  
शून्यातले शून्य जाणीव नेणीव  
शून्याची उणीव आली भाळी आली भाळी 
इलुसा हा देह किती खोल डोह  
स्नेह प्रेम मोह मांदियाळी मांदियाळी

Listen to different version of this song,here..

Feamle version https://youtu.be/d2EGYQioKh0

Male version https://youtu.be/tIAjvj3GaYY

Male version, reprise https://youtu.be/b46DqIlofi0

Categories
Uncategorized

Hindi poem : corona times

अब तो दिवरो की लकीरो से भी
पुछते है,बाता कीसमत मे लिखा क्या है
यु तो बिसतर पे फैले रेहते है आजकाल
चुभ जाती है डर किसीं करवट पर ||1||

तबियत से धोते है टमाटर सब कोई
काश रिशतो पर इतनी मेहनत कर ली होती
दूर से ही सही कोई पडोसी पुछ ले
जिंदा तो हो ? और हाल कैसा है? ||2||

किसीं ने भी सोचा नाही होगा
इंटेरियर वाले घर मे नेटफ्लिक्स देखना
हर रात,अपने खायलो से दूर भागना
सिनेमा को जिना, आसान नही होगा||3||

ये नही, की कॉल नाही करते यार मेरे
हालचाल,फिकर,सुहानी दौर के फेरे
चाशनी मे अटकी चिंटी जैसी हालत
जिंदा होने की खुशी मानाना.. लानत ||4||

Categories
economics

Pandemic Shutdown:Interest is bad again,stop calculating

The ongoing pandemic caused by coronavirus(COVID-19) is going to cause a recession worldwide. As the world comes to halt in true blue “Atlas Shrugged” style the real question then is what will be the nature of this recession.

A classic recession is defined by a slowdown in growth. Business shrink, incomes reduce and aggregates like Gross Dometic Product (GDP) are used to count it. The term used to depict this phenomenon is called deflation. In a classic textbook sense, it is the opposite of inflation (ie rise in prices). But that is a classroom case.

With everything is left to people’s natural behavior, the principles of supply-demand-value will cause result in inflation or deflation. The world is no longer in classroom conditions. Definitely not since Nixon removed the gold peg on currency notes. To cut the story short as we enter the world on central bank printing notes at will, the financial market working on second or third-order derivates these effects needs to be taken into account. That why the economics literature coined terms like disinflation, stagflation, negative inflation and so on(which we don’t detail for sake of brevity).

Forced revisit to fundamentals

But the current shutdown caused by a pandemic is going to make us revisit all of these variants and reduce them to basics. This is because of one fundamental characteristic of this crisis: shutdown.

When economic activity goes to halt the world is reduced to barter level. Because this shutdown has just started we have not entered that situation. If the shutdown doesn’t extend very long (say a year), we might just skirt with this level and come back.No matter to what degree we approach this ideal barter level of the economy it will pose a great question on our banking/lending practices. The fundamental assumption of lending is that the other party has a productive use of the money given. That is why it is called capital . And that is why interest becomes a legitimate demand. If there is a way you can earn more money by taking it from mine, give me some share of your profits.

Definition of Capital under question?

As the shutdown becomes more and more normal (I pray it doesn’t ) the very notion of capital and interest comes under scrutiny. So no matter how much money central banks and governments give people if people don’t go back to active production (the economic activity of value)the very notion of the value of money will come under question. But that is an extreme and rare possibility. What this discussion helps with is a meaningful remedy to the economy without causing another round of easing (like post-2008 era).

Since economic activity is frozen, the government world over can put a freeze on interest calculations of all types. This retains the sanctity of capital-deposts-loans and relives the economy of the broad-based collapse of businesses (of all shapes, more small ones ).

At the present government of India has announced that all term loan payments can be skipped for the next 3 months. It relies on the assumption that when the shutdown is over the business will somehow pay it back. A tall assumption for 2 reasons.

  1. It is shut down and not a slowdown. It a process of a reboot. All businesses will open the counter as if it is the day of their life. Being back to the usual collection numbers will be a gradual process.
  2. Yes, the interest accrues, as if nothing happened.

Is it fair and realistic

Is it fair to depositors? It is. Faced with the risk of total capital loss and interest loss any option that preserves the original sum is a fair and realistic option.

The second question is it realistic? Especially countries where interest rates are near zero. This is the classic no yield scenario none likes. But that is precisely the benefit. In shutdown time preservation of capital itself is the benefit. To GDP or deficit calculations of different governments, it more or better of what is going on :). It will pose a very grave threat to financial markets(stocks, bonds, etc). It is such a dreaded scenario that it will be laughed at.We skip the detailing so that we stick to our topic(but it is a matter of interesting question as to how stocks are valued when the economy is at halt !).

Can we skip rent?

It is not a theoretical but a moral question. Since the crisis has just begun there can be arguments of various kinds on what happens to rent. If we approach a longer shutdown were practically none is going to work and will tend to earn nothing the notion of rent comes under question. Whether it is housing or commercial rent has the same underlying assumption as a loan. Which is of productive use.If that doesn’t happen people either default on payment or keep the property . As much we can put economics, it is also a legal question. But it is more of a moral question that everyone needs to understand.

Categories
economics Software

Salary Alternative to Layoffs in recession and Leadership Burden

The Upcoming Recession

With CoronoaVirus Pendamic, in 2020, the news of Layoffs and cost-cutting are happening again. For my generation this will be third such global recession ie 2000 DotCom bust, 2007-8 Global Finacial Crisis and Now CoronaVirus lockdown recession. In the times when the business stops, revenue dries are mass-scale layoffs the only option? This post argues that it is not and goes on to propose an alternative and new leadership paradigms to avert it in the future .

Current Salary and layoff Model

In my LinkedIn reply to Dan Price of Gravity Payments(2020), I suggested the concept of alternative recessionary salary ARS. If you see the current salary structure it has the basic/guaranteed part including the statutory/legal. Then there are commissions, bonuses, Stocks and some performance/result based salary. The later are the optimistic components based on growth. At times these growth components are applied to people who don’t really have any realistic control over growth. But as part of the norm it remains.In Indian IT setup, variable pay for even junior level is in practice and some CFOs even touted them as levers available for quarterly results!

Alternative Recessionary Salary ARS

The ARS that I suggest is an alternative salary structure offered to people in recession time. It has 3 components. One is the salary cut that everyone takes because the revenue is down, say 1/3 part. The second one is the mandatory pay that everyone gets say 1/3. The last one is the salary credit, say another 1/3. The salary credit is accumulated (accrued) in persons’ account for future payment . Say a year later or sometime in the future when a certain percentage of revenue is back one can vest it . But it is legal entitlement so long the business remains alive. Even better will be to allow employees to decide their percentage of cuts and credit as opposed to 1/3 I suggested above .

Now the boundaries. First, it should not be seen as a loyalty program. Many times loyalty programs allow the deadwood to stay in companies. It remains undetected as its such a non-CEO thing to talk about skill obsolescence and retain good PR on loyalty. The model above is then a sacrifice, an investment made by employees in the companies they wish to continue working for. The finance guys don’t like to accumulate future claims on their books. So this model can kick-in for a year only after which the layoff can happen. But the main question is what to do with these employees when the workload is less. The answer is, efficiency. At 1/3 pay, it is reasonable to put them to all the improvements and innovation tasks you always wanted. If you are an IT shop, putting them to work on open source will be a great investment. If nothing else works putting them to work on community/environmental issues is always possible. If this model becomes the norm some governments might include them into their tax incentive systems!

Threats of misuse of ARS

The threat that this ARS becomes the main salary structure and doesn’t remain an alternative is real. But your HR people have lots of wisdom to offer here :).Recessions don’t last, once it’s over and the ARS is used as exploitatory practice the talent will simply move on or change its productivity. There are even more possibilities in which the workforce will retaliate. The aspects of the social bargain are well known and it would be a detour for this post to repeat it.

Why doesn’t ARS happened

I can’t say for sure that ARS or like model hasn’t happened . But it’s not mainstream. (In an opinionated way, read the following).

Modern leadership is leading by finance! Quarterly results weight much more important than:social good, nurturing employee or even national priorities! Even terms like innovation are not valuable unless it results in profit or cost optimization[one example,In India FlipKart started using air-inflated bags for packaging as opposed to thermocol , huge innovation on the environmental front, will it count on wall street ?]. The current corona crisis is a test of the resilience of our social structures. This includes organizations too. Nations are made to think about the sufficiency and efficiency of their health system, aid programs. Some have even started to question their supply lines and independence in fundamental tech. Even the matter of trust and cooperation between larger structures such as the EU or G20 are happening. This will result in a sort of reboot and redesign at many levels of society and companies(which might make recovery very fast).

It is the test of structural resilience. But it is not as mainstream as the matter of solvency, optimization and profit are. In that effect, modern business leadership is dictated by personal ambition of bonus payout of some aggressive hedgefund guy than thinking about social structure. That has become such a norm that buck-backs during the recession are not even questioned by anyone.Whereas it’s the social structure, of diff kind, the supports/incentivizes/benefits/suffers the organization. This is the basis of capitalism which has given way to stockmarketilism . The invisible hand of capitalism is cuffed. High time the CEOs are freed from the burden of quarterly increases and newer metrics of growth-benefit- wisdom emerge. In today’s business landscape, where profit and personal ambition often take precedence over social structure, tools like an instant checkstub generator can provide a tangible solution.

Notes for further reading :

  • Harari on the world after https://www.ft.com/content/19d90308-6858-11ea-a3c9-1fe6fedcca75
  • Ben Thompson on Compaq moment: https://stratechery.com/2020/compaq-and-coronavirus/
  • Adam Smits Invisible Hand: https://en.wikipedia.org/wiki/Invisible_hand
  • HBR article on compensation alternative: https://hbr.org/2018/07/7-compensation-strategies-for-cash-strapped-startups
  • Amar Bhide on capitalism mishaps :https://hbr.org/1994/11/efficient-markets-deficient-governance
  • Tim Urban on why things are the way they are https://waitbutwhy.com/2019/12/political-disney-world.html
  • World After ,Survey of experts https://foreignpolicy.com/2020/03/20/world-order-after-coroanvirus-pandemic/
Categories
Misc Personal Utils : Useful Info

Pune coronavirus(covid-19),lockdown ,daily routine for you

Pune has now become epicenter for Corona virus called covid 19. This is deja vu of swine flu era of august 2009 (which I covered in my old post, Masked Pune and Swine Flu Scare ). With deeper media penetration the stats and information on precaution to take during covid-19 needs not one more post. In fact people are better prepared now .But with almost a total lockdown in Pune and in many cities of India ,keeping a good mental state and happy mood has become a task . So here is my routine during lockdown and few suggestions on activities you can do to keep yourself meaningfully busy .

My routine in corona virus lockdown.
1. Start day like usual and do the chores.
2 Exercise with family (everyone is missing their friends so joint tasks helps.)
3 Go to terrace or balcony ,as suitable ,take sunlight.
4. Start work at regular hours ,if work from home is your thing(same with kids , one parent/grand parents can become teacher or classmate for them)
5. Call all the people from your daily routine and chat like its normal(this includes all the big and small people .It might sound trivial but its assuring).
6. Call all type of friends and other people I/we know and talk about their life.
7. Find lots of small activities that need deep focus (see below for my list)
8. Talk to neighbors, from a distance,help them as needed.
9. Travel,if must ,with hemlet or car or mask.
10. Do not spend time watching tv for hours,it will affect mental freshness.
11. Sleep at regular hours.

But the main point is, lockdown causes more stress due to loneliness caused by the cut off from human beings. May be its obvious ,or not ,we need lots of people around to feel good and safe (even if we don’t talk or talk deep things with them, we need the tribe ) .So ,its ok to reveal that you need human connect and talk to as many people as your mind find satisfying .It’s difficult in core city of Pune where you get judged at the first sign of being common man who has average life 🙁 . But in difficult times I suggest you take this risk of being vulnerable and connect .

Next thing is, even when we work from home and do group activities with family the feeling of forced life can be unsettling .We need some personal work which needs deep focus so we can endure hard times .One can find lots of articles on internet on activities to do or new hobbies to cultivate. Sites like wikihow has great articles on this . However one need to find such lists really meaningful so that they get your deep attention and give you the much needed focused distraction .

For indian audience here is my list of meaningful activities that can keep you happily and meaningfully busy.

  • Find a list of aarti, mantra -stotra , prayers you always wanted to know by heart and then include them into your daily worship routine .
  • Think of your life as a timeline and tell the people you stay with, about all the small missing details .This will also give you a list of people/places that you haven’t seen in long time (so you can call them now) . In case you don’t want to open up this much ,one can do this mentally and find this list .Or instead of life, it can be a theme based talking like, great foods u have eaten since childhood ,funny people you met in life.
  • Do the personal housework – While doing daily chores keep you busy ,but if it is not something you do regularly, it can become boring .The feeling of forced task can make u more sad. So the idea is to do all the tidying and repairing work around your self .Wash all your cloths by hand, iron them ,arrange them ,repair them if needed . Wash all your foot ware, polish them .Do your own SPA ,head to toe (even if your are man, do it ).
  • Do your own stand up ! Each one has a list of jokes he makes or poems. Or you might have a list of songs you like . Recite them, act out .Being center of attention is very assuring .
  • Documentation : grown ups have lots of documents .It could be your certificates, legal documents , research papers , bills/receipts .Or even your books shelf .This is goodtime to arrange them ,clean up etc.
  • Secondary kitchen works : We all know that cooking and cleaning can be very soothing .If you do this already good .Try it now. Additionally there are many secondary works that can be done in kitchen that can be engaging, even for men. Re arranging kitchen, taking a look at old wares /repairing them .This is also good time to make the pickles, chutneys, papads at home .You can find list of such small food items from your culture.These items need small but focused effort and bring joy to you .
  • Make toys for your kids ! This can be origami ,sewing ,knitting , adhesive works . When you are making gift for someone ,its very fulfilling .If you enjoy, make more for others .
  • Write the long post you always wanted to . We all have grown past the era of reaction based social media posts. But there are always posts about the topics close to your heart, but which needed some reading, research ,reflection. Do that and publish .Don’t bother about the audience ,your topics can be cooking, dog care, garden ,hobby, economy, or kids or housekeeping tips. Making your point in good manner to others is satisfying . Post need not be text ,it could be photo ,song or video or paper notes .Do it .
  • I am against binge watching TV in such times .If at all you have to ,do it based on theme .Some era,actor,director,topic . That common theme gives meaning and keeps you clam .
  • Listen to local radio .In such times listening to same favorites can highlight the lockdown problems more .Local radio offers good randomization as well as personal touch via RJs.
  • Talk to neighbors .Obvious one but in city like Pune many people are still waiting to be properly introduced to their neighbors. The fact that you are in the same physical space ,in such times especially , warrant that you shed the inhibition, take risk and talk (safe distance tough ).
  • Read and make lecture notes .In such times forced reading can feel depressing .So if you are reading , take notes .As if your need to explain it to students or your grandma or kids. This adds meaning to reading .Now if you don’t want to talk to people near your about what you read(for some practical reason ).Put your summary on social media, blog or update Wikipedia or create slides or video and upload .The focus is on contribution over impression .
  • Complain ! We all had those small issues we always wanted to take up. Roads in your area , pollution , repairs needed in kids park and so on till some policy issue . This is the time to write those emails or raise those complaint tickets . Central ,state local govt has emails ,mobile apps and portals for this . Speak about what you feel is safe enough and matters to you .However small ,do it . The same can be done with service providers instead of government agencies . So you can also write to railways ,airlines, uber or banks about what you wanted to always tell them. But don’t do it to people 🙂 .
  • Watch family photo albums. If you are digital person then this is good time to check all photos on mobile and hard disks and order physical prints.

I am not including the usual list like gardening, pet care, calling family members, learn new language for 2 reasons .First such time filling activity list is know and available . Second is in lockdown times we need deep engagement as well as variety ! I will update this list over time ,Do suggest your own, in comments .

Last and never the least ,call everyone -talk to them small -big ,important-trivial .Hug them if it matters .How much ever we evolve our needs for connect and touch remains the same. They make or break us.

Categories
Software

Calling out the BS on Full stack recruitment

T recruitment in 2020 is living in Full (stack) paradise. If you are into the junior ranks which i.e anywhere less than 8 years of experience then Full stack is your zone. At higher levels, it might not be part of the designation but its always implied. But at that level, you are way better “experienced” to handle job and career .So this post is focusing on Ture Full Stack Developers (TFSD, a term which if not coined already, might become reality soon).  

The ask: Full Stack Developer (FSD)

The most popular description of FSD is a software engineer who can do backend and frontend, both. An alternative description is that FSDs do client-side and server-side development in addition to database work. In specific you are the one who knows to :

  • Work on UI  
  • Work on services 
  • Work on data storage 

Based on your IT stack this could mean web/mobile/desktop/low-end IoT displays for UI, some combination of web services/streams/security backing it and at minimum a database/cache/session working across.

Benefits of FSD 

For startups, this offers a sweet spot. We can work with smaller teams of talented engineers who can do the “whole thing”.Often FSD also leads to complete ownership of the “whole thing” to a developer. Which is why most training plans for entry-level engineering talent are Full-stack. In fact, it also expands to some orientation on OS, UX, network and so on. Rightly so. A good breadth both in training and work exposure is good for engineering organizations. Except that it is a means and not an end.

From Full-stack to Fools Stack 

Proficiency, expertise, and words like them are used in Job Descriptions(JD) of software engineering to imply a good quality of depth. Except that it should be Full-Stack. That’s asking “to have great depth across the breadth of the technology stack(we use)“. This is not asking for specialist developers with good breadth. This is asking for a specialist in everything! 

We even have cute words coined for them, LAMP-MEAN-MERN and so on, signal this very thing. And it works. 

The hidden fallacies 

Developing a liner flow of requirements fits naturally to how we think. We start doing one thing and can finish it well. The same linear flow can be coded full stack – end to end. Except for software development ,it doesn’t remain linear. Functionally as well as technically. The lines cross, merge-diverge, conflict and suspend. This needs specialization. If your org is working well with FSDs then you are sure to have these specialists hidden (and operating and sustaining your FSDs). 

Some examples. On an agile task board, the UI development might look like a diagram that needs to be drawn on a device/browser. But it also involves lots of animations, offline ability, support for disability norms. We have to also make sure that the components don’t make too many server loads and it needs to handle clickjacking and lots of web security stuff. And your business user also wants a responsive web design where the page supports text entry on full form but falls back to toggle on smaller ones. And yes we need to also support integration with the camera. And yes lots of browser types we need to support. And yes it will be great if somehow we can also make it work(render) on Alexa show or your watch.

These are not very unusual or problematic requirements. But they are so specific that one cannot handle it without going deep into core issues like HTML/CSS/HTTP/Device or delegating to some specialist.

The same can happen to your back end. We can start with some combinations of REST-microservices. And you need to also work with auto scaling design, support distributed commits, comply with tracing, also use some queuing. And we also need to support headless mode for some peer to peer calls. And some batches also. And some of the data can be binary. And we need to also use API gateway/service registry. And also support multiple service versions.

We could go on writing the same expansion of depth for the data side as well. All of which/this is not unreasonable. But taken together this is a lot. And we also expect the developers to understand and model the domain wisely (along with their tinder and insta 🙂 )

Yet we see neither FSD’s complaining or projects failing. For 3 reasons, I say.

  1. People are more talented than the slice of intelligence we pay them for. So they pull it off.
  2. This pull off is at the cost of some other super developer or their own passion for something else.
  3. The technical debt and bugs it creates are not accounted for in the delivery/shipping based criteria of the project’s success.

Why FSD is hard

In the time where I started my career, we used to call them technical architects. These were little experienced people who happened to work across the application and managed to retain the skills acquired. It took them time. But they had stronger grip and wiser intuition of it all.

Most of the JDs we see for FSDs are 2 to 5 years or similar experience. But FSD is hard due to multiple factors that play out.

We are coding to frameworks

If you the FSD JD’s they are full of frameworks. Frameworks are great in abstracting problems and offer a great productivity boost. But they don’t eliminate them. That’s the nature of an abstraction. In IT projects the fundamentals of technology, as well as design, show up unannounced. This increased workload is not factored in the FSD world. Not only does it cause increased workload for Jr developers but it also kills their opportunity to have a detailed understanding of how the framework builts on top of the underlying technology, the choices it made, the problem it solves and then ones it skips.

You mistake layering for the stack 

If we carefully analyze the full stack it closely aligns with how the projects architecture diagram looks like. Often the full stack is vertical slice of this diagram. What is, however, missing is that your diagram skips lots of techo-framework details due to its 2D drawing nature. Security, Monitoring, Deployment, Packaging, Scaling, Performance, etc. are part of the work in equal measure which cant be completely kept separate from Jr developer’s work package. And did I mention the design principles, process, testing, and documentation?

While FSD style hiring can give initial relief on staffing, we are greatly missing on maturity aspects.

Your stack is not alone

Oh yes, Unless you are a startup building the next uber/google/amazon or what it is. Your stack is not alone. There are always some enterprise systems that we need to integrate with. Some SaaS-based products, a BPM, an ERP, Rule engine. Some schedulers or some in-house “stuff” that is recommended as a norm.Or at least AI in included 🙂 . New hires are lucky if they are told about this with JDs.Often this is missed and needs to be paid for later, somehow.

Developers have inclinations

Each developer has its own inclination towards soft aspects of technology. A UI developer often called as frontend developer can intuitively realize the event-based nature or the aesthetic pleasure of laying out and the experiential nuances (UX) and pursue it. A server or DB side developer might like the notion of event sequence and the time-space nature of their work and hover there. And So on. May be younger developers are not able to verbalize it well, but when an able programmer says he enjoys it(his work), the reason is not comfort-zone but the sense of joy he gets.

The problem FSD creates for developers 

We can go on about structurally how FSD misses on lots of aspects of the actual work conditions and how it needs to be paid for later by organizations. But the developers who manage to pull of FSD tag for years have a lot waiting for them also.

Stack Stress

The frameworks change very fast. It’s very common to get a new version of your tool every 6 months. Some times the changes are also breaking. Taken together, full-stack. This is a lot to cope up with. On top of it, your project might not even choose to use the new thing. In which case the individual need to figure out how he will keep updated.

Dwarf experts 

The world is full of great brains. Brains that can pull off all stack development and brains which are truly masters of all parts of the stack. I love to work with such brains.

But are they so common? If not, then as the industry we are pushing the teens to war without letting them develop a deeper understanding of tech.

Resume driven development 

How ready are you to recruit a great swift developer for nodejs project? or an angular developer for React ? or hands-on Unix admin for Kubernetes?

The answers that we get from the hiring community and mangers are not encouraging. Everyone wants a perfect fit for the project without realizing that we are breeding disposable developers. But the developers know this intuitively. And they fightback. With resume driven development.

The greatest and shiniest thing has to be on one’s resume or we are willing to change the tech stack/project/company. (If only we were paying them much higher for such disposable hiring ).

Joyless Work 

Given the target of FSD hiring and this post is below 30 years developers. This is a major factor. The FSD hiring movement doesn’t talk of development plans, career paths, mentoring models or code retreats. We instead have hackathons, reskilling, upgrading. We have even stopped talking of reading long format books on our work area .The buzz in skills development is all the online courses. If we ask other arts professionals, the fundamentals give them joy and the latest style and trends let them keep their jobs. The FSD movement in S/W misses the technology fundamentals part.  

And I am not even talking why they also need to code on algorithms and data structures in their first-round(what a nuisance of proxy it is for talent) 

The Way out

The way out is to train them across the pyramid and be candid if FSDs mean disposable recruitment.

So much we talk about how fast the landscape is changing for technology professionals it is not the reality. The underlying technologies that drive our tech stacks change in span of multiple years. It’s only the stylistic solutions based on them change. Even then we often see these frameworks use designs and techniques from the same neighborhood. A very terse list [(System V to VMs to containers),(make-maven-npm),(taglib-web components),(grid computing-bigdata)(DW-ML)].

My approach was to always train them (or make them self train)on how the framework built up happened. This means knowing the basic technology in its bare form. Knowing the significant earlier attempts in the framework space that existed. And then training them the given framework. The same approach was used for the so-called tech stacks we had in our projects. We also exposed them to wider QoS needs that the frameworks might miss or partially cover. And the standard design approaches in S/W. This allowed them to see through the stack. This not only allowed them a great grip on them but also the new changes in these framework/space did not cause surprise.

I have been working in architecture teams.The examples I give here took anywhere between 3 to 5 years to train a good developer across layers and components of the products. These were also full-time direct reports. (often our mentor relations will continue across companies).

Chances are that the developer you are recruiting as FSD has done this/similar approach on his/her own. (S)He has also done the hard work to read a lot and do hands-on work. And will have to continue doing so.

But we must pay them well for this hard work and the tough job of keeping up to date. We must also realize these are the folks that seek joy in their work on the lines of a craftspeople and have different self-esteem than usual. Handle them well recruiters….

(and to these folks…I will welcome you all to the technology architect community soon, unicorns 🙂 )

Categories
Software

Generic Solution fallacy in IT

if we take word cloud of all the design discussions a technical architect participates in (or made to participate in ) generic solution would stand out as one of the key term. Be it a waterfall process or an agile one or even appraisals.

The claim is simple. There are multiple things that need to be done in an IT scenario and there is a generic solution that takes care of it. It is often also a direct claim to some efficiency or effort-cost saving. Which makes it very appealing in meeting rooms and is often makes technical people trip (the verb). Often it is not the case tough.

if we take word cloud of all the design discussions a technical architect participates in (or made to participate in ) generic solution would stand out as one of the key term. Be it a waterfall process or an agile one or even appraisals.

The claim is simple. There are multiple things that need to be done in an IT scenario and there is a generic solution that takes care of it. It is often also a direct claim to some efficiency or effort-cost saving. Which makes it very appealing in meeting rooms and often makes technical people trip (the verb). Often it is not the case though.

Examples of Generic solution claims 

In the era when NoSQL DBs were all that buzz, I was reviewing a generic solution that would allow connection to all types of DBs.What the solution claimed was that between relational and different NoSQL DBs the way to connect to DB was different so a generic solution was build to handle it. To the experienced eyes, this was actually a common wrapper for various DB. Internally there were factories that were forced under a Common Interface. And not to say a lot of IF-ELSE around DB_TYPE flag and so on. It wasn’t objectional as a proposal except for that claimed lot of savings and fell apart when DB specific constructs were to be handled. And DRY of what was in the field already.

Another example was when we were doing REST. This was more than a decade back and lots of legacy code existed with us. Again a generic solution. This was, hold your breath, a generic REST service. The claim was that is more effort efficient! This generic REST service would expect service name and all parameters in the header and a generic service message body. One needs to then just write specific handlers and bingo lots of effort saving. It was a long struggle to convince the involved that this solution folded the URLs into headers and the effort to write service related code was still there. In fact, the enforcement of generic had increased the coding work. Not to mention it had killed REST.

I had seen multiple variations of this. A generic integration toolkit for service integration. A generic authentication manager.A generic message parser, a generic webpage, generic deployment tools(cloud + bare metal), generic build tool, generic log. Invariably it would be some combination of factories-command-strategy that missed the essential complexity of specific processing and claimed to be a faster way to project success. 

How to evaluate such claims?

Given that most of such occurrences missed the same points, I use the following line of probing when I was to approve-review the designs.

  1. How did it handle the differences? (of whatever was summarized as generic viz different formats, protocol, delivery mechanism, etc. The answer would invariably be to write code to handle it )
  2. How would it communicate the different types of errors? (many times this would be a total miss or some generic error wrapper that needs to be parsed by calling party)
  3. How did it cater to the conditions that apply to the execution flow? (it would be either missed or one need to write code or sometimes a domain-specific language ie DSL was to be used)
  4. Does it/have to maintain some sort of state or stack in order to finish the execution? (this would expose deeper design flaws )
  5. How much effort would it take to add a completely new variation of specific to this solution(again a very fair question that would test the robustness of the design)

I would specifically not ask whether such a solution exists already or can we open-sourced it. The fact you are in this situation means the point is lost. I would also not ask which all design patterns apply which when answered would offer false proof of validity. The intent was to do a fair assessment and check if the generic solution discounted the specifics.

Invariably the generic solutions had missed the complexity of the specific and claimed that because it has been wrapped -it doesn’t arise (and hence the savings ). Gradual questioning like this would uncover the effort/processing complexity. This often leads to the generic solution giving space to rightly estimated solutions that represented the real depth of the complexity.

The positive side 

But there is also a positive possibility. Sometimes there is a real fitment that exists for such adapters(a very broad range I cover with this word). An expanded version of the above questioning makes the design specifications deeper and allows the team to correct the course. The example in the above list where a DSL was proposed to handle all common tasks applicable to our problem space was indeed a good solution that offered effort saving and also empowered the developers. We must also note that in such cases the correct term would be general-purpose as opposed to generic. It conveys the trade-offs neatly and effort aspects transparently. 

In another case mentioned above, a generic webpage solution was offered. This was basically a wrapper of HTML and JS that could handle a number of UI related needs we had. One could argue (and I also had my reservations)on merits creating markup language for markup. In the era where componentized micro front ends are proving to be practical, we could have dismissed this solution. In my case, we stressed it on the team that this is not a generic solution. It was, in fact, a templatized design-solution. This made the team aware of the enormity of the claim but it also allowed the respective scrum teams to make their choice if it really fit their scenario.

In cases where I had more control over the teams, we also used all such submissions of the generic solution as a training opportunity for the architects. It would often be contrasting their work with existing tools and frameworks in the mainstream and whiteboarding on how all their solution could evolve to a professional level.

But that’s about a positive spin. The appeal of generic solutions in effort discussion has not reduced….. I hope this post helps you with that somewhat.