Thursday, December 17, 2020

Dysfunctional Autonomous Organizations (DAOs)

 Juxtaposing three news articles from this week: the University of California considering a tuition hike, a new parliament in India and Sweden moving to a bitcoin-like official currency eKrona, leads one to cast a skeptical eye on whether the government is the rightful arbiter of how to best allocate tax revenues. 

At a time when California communities are suffering from high unemployment due to COVID and education remains the one dependable pathway to higher income, it is unthinkable for the regents to further "tax" the populace. 

In India, the ongoing farmer protests call into question the central government's method of running the country, the unnecessary money being spent build a shrine to autocracy provide the answer on how out of touch the new rajahs are with the populace. 

While Swedish bankers can't keep track of the source of external money that flows into the country [1], they seem to be proactive in ensuring that the internal tax base is maintained and has improved traceability with the move to eKrona.

Rather than representing the people, the UC Regents and the government of India are operating like pseudo Decentralized Autonomous Organizations. Instead of the ideal software-contract run organizations where decisions are taken algorithmically and transparently, these organizations are "decentralized" in the sense that organization outlives the operatives and are "autonomous" in the sense that their decisions are not changeable by the people having a stake in them. An appropriate term for such organizations would be "Dysfunctional Autonomous Organizations."

What can a regular person do? Simply voting for a change does not seem to be enough. Thoughts?

Saturday, October 31, 2020

Thoughts on tracking large engineering projects

 Here's a short summary of my thoughts on efficient tracking of large projects that I have used with some success and gradually refined over time. 

  1. Only track milestones.
  2. Minimize the number of tracked milestones.
  3. Make the dependencies between milestones explicit.
    This requires minimal tooling.
  4. Express upstream dependencies only.
    A milestone owner must document what they depend on, not where their deliverable will be used.
  5. Do not track effort.
  6. Do not track offsets from milestones.
  7. If a milestone’s date is in the past, assume it to be done.
  8. Track changes in committed milestone dates. This is the weekly tracking that is needed.
  9. Build tooling such that every team only updates their own milestones and the tooling alerts the dependent milestone owners of changes.

This can be all done with Excel and minimal IronPython. There is a place for rigorous tracking using MS Project for tasks and resources, but in my role as an engineering lead, I need to react to movement of large milestones and I've found the above methodology quite useful. 5 and 6 are bread and butter for program managers and 7 borders on heresy but for a lead engineer these guidelines do help reduce the management time spent on things that are on track.

What are your best practices?
Regards,
Kuntal.  


Wednesday, August 26, 2020

गली का कुत्ता

 आज कल भारत मे अजीबोगरीब कुत्ते पाले जा रहें हैं। बैंकों का कर्जा न चुकाने वाले, जिनहे आम लोग धनी बुलातें हैं, अपनी गाड़ी, कपड़े, उच्चारण के अलावा कुत्ते भी विदेश से लातें हैं । भारत में बोंबड़े, शाही, आदि, जैसे पालतू  कुत्तों की कमी तो है नहीं तो फिर विदेशी कुत्तों की क्या जरूरत हो सकती है? संभव है की वातानुकूल घरों मे भारतीय कुत्तों से सर्दी सहन नहीं हो पाती। यदि सारी जनता को भी विदेशी चमड़ी का शौक चढ़ गया तो गल्ली के कुत्तों की देखभाल कौन करेगा?

गल्ली का कुत्ता बनने के लिए कुत्ते को कुछ उपक्रम दिखाना पड़ता है। अंजान व्यक्तियों के आगमन पर भोंकना, रोटी देने वालों के परिवार के सदस्यों के पीछे दुम हिलना, भटकी हुई गाय, बकरी को डराकर फिर बाहर निकालना यह सारे अनिवार्य काम कुछ सप्ताह तक करने के बाद ही कोई निराश्रय कुत्ता एक गल्ली का कुत्ता बन सकता है। 

यह पद कोई स्थायी पद नहीं। मध्यरात में पड़ोस की गली के कुत्तों के साथ ज़ोर से भोंकना, गल्ली के शराबी की बातें गौर से न सुनना, उपद्रवी बच्चों को कांटना, इत्यादि वर्तन से यह पद खोया जा सकता है। 

हमारे भवन के तल कोष्ट पर यानशाला है। इसके कोई कोने मे हर रात भालू नामक कुत्ता सोता था। दिन मे भालू अपने कुत्ते वाले कामों मे मस्त रहता था। इस प्राणी का नाम किस भले आदमी ने रखा यह तो अब राम ही जाने, लेकिन अब लोग उसे वहीं नाम से बुलाते थे और वह भी अपना नाम जानता था I हो सकता है कि यही भालू को बगल की गल्ली वाले उसे अन्य नाम से बुलाते हों पर कुत्ते का क्या है ना आधर कार्ड ना राशन कार्ड, जो मर्जी वो कार्य I 

भालू के लिए मेरी माँ हर रोज़ दो रोटीयाँ बनाती और संध्या का घरकाम संपूर्ण करने के बाद, उसे खिलाने जाती  I इस नगण्य बरताव का बदला भालू बहुत प्यार से देता था I जब माँ पैदल बस स्टॉप जाती तो भालू उसके पीछे जाता और बस आने तक वहां बैठा रहता था I जब माँ लौटती थी तब खुशी खुशी भौंक कर और दुम बड़ी उत्साही से हिलाता था I क्या आपने ऐसा कोई विदेशी कुत्ता देखा है? 

चलो छोड़िये I क्या बेकार में तुलना करना I जिन्होंने इस देश की गालियों को गाड़ी के शीशे के पीछे से ही देखा है वह लोग क्यूँ इस फिजूल बात में पड़े  I जब गाड़ी पे लाल बत्ती हो, जनता के पैसों से घर, नौकर और सुरक्षाकर्मियों हो तो जनता जैस थोड़ी ना रह सकते हैं? आखिर जनता को भी अपने शासक का पद समझाना एक शासक का ही तो सेवापूर्वक काम है I 

गली के कुत्ते का क्या है I  आज है, कल गाड़ी से कुचल गया I 


Monday, April 6, 2020

Systems co-operatives for India

While India continues to suffer from death from malnutrition, with almost 9 hundred thousand deaths in 2018, it is with deep despair that one notes that Indian farmers are throwing away produce during the COVID-19 related lock-down.

The government is fully culpable for these and other deaths due to the hasty imposition of the lock-down. But it is time for each one of us to take steps to build support systems that ensure that India becomes a developed country, where poverty and malnutrition are a thing of the past and we can truly establish the country that every school child pledges to form everyday.

If engineers, marketers, financial experts, artists and lawyers can get together to build the following, it will help steer us in that direction:

  1. Information dissemination
    1. For better or for worse, WhatsApp is the medium of communication within a section of the populace. We need engineers to work with WhatsApp to clearly mark "certified" stories, whose authorship is fully traceable.
    2. Censorship of any identified author must be impossible. This will ensure that Twitter-like suspension of accounts that express unpopular opinions does not take place.
  2. Task-oriented networking
    1. How can we connect a farmer throwing away produce to the migrant laborer who needs food while he is walking from the city to the village.
    2. We need a social network that enables task oriented connections.
  3. Foreign exchange monitor
    1. I feel physical pain as I write this but with the foreign exchange that Nirav Modi / Mehul Chokshi stole from India, India could have bought 200,000 ventilators. That is 5 times the current number of ventilators in India.
    2. Investor visa attorneys - every developed country in the world allows permanent residency based on investment. This is a legal way to do money laundering that enables transfer of wealth from developing countries to developed countries. Neo-colonialism is alive and well. We need lawyers in every developed country to trace the beneficiaries of such visas and ensure that developing countries' precious foreign exchange is not drained illegally.
For all of the above, we need public activists, communications experts, project managers, etc. who can move these "systems co-operatives" forward. The Amul approach is worth emulating in other systems. If there are such activities already going on, I will be joining them. If there aren't, I pledge to start and support them with time and money. Feel free to reach out to me on Twitter.

Wednesday, April 1, 2020

A Primer on the Value of a Currency

There's a song in the movie पूरब और पश्चिम (East and West) movie, that has the line "पूरब वाले हर जान की कीमत जानते हैं" (Easterner's know the value of each life as opposed to Westerners who value materialism). India's nationwide lock-down in response to Covid-19, the resultant death from starvation, and the haphazard movement of supporting migrant labor brings into focus the value of human life in India.

Compare the size of economic stimuli being applied by countries across the globe in an effort to contain the growth of the disease and it is clear that India's per-capita stimulus is quite low.

Let's get into the reasons why:

Every country in the world can print money. That money can be used to buy things locally. The only thing that holds governments back from printing money is that it leads to inflation, thereby bringing the value of the money back to its original value.

Now say that country A wants to buy from country B. Country B would not accept the currency from country A since the government of country A could simply print all the money it needs. That leads to inter currency exchange rates. To arrive at an exchange rate, one must convert each of the currencies to a mutually agreed value. That value could be derived from a commodity that is heavily traded between the two countries or it could be derived from the relative value of the currency from country A and the currency from country B as compared to a third reserve currency that both countries trust.

For a currency to act as a reserve, the government that prints the reserve currency must be stable, trustworthy, transparent and be run on sound economic principles. The country that prints that currency must trade widely so that the value of its currency with respect to goods is widely acknowledged.

The only country that meets the above criteria is the USA and that is what makes the US dollar the world's reserve currency - the currency of choice to keep savings in. The US can print the money it needs since there are systemic checks and balances in place that the entire world trusts. This explains the extraordinary size of the US stimulus as compared to those from around the world.

All other countries in the world including those in the European Union, need to keep a liquid hoard of US dollars so that it can be used to buy things outside the EU. Both the EU and China have been trying to make the Euro and the Yuan become reserve currencies but that have only succeeded marginally and instead they too have to keep up their "forex reserves" (foreign exchange reserves).

Since India cannot print its own money, India needs to produce things of value that other countries would want to buy from India with US dollars. At the rate things are going, ventilators might very well become the preferred reserve currency in the world. Also, since it is virtually impossible for any country to build everything its populace needs by itself, India will need to keep a strong forex reserve that can be deployed in times of national crises such as that triggered by COVID-19.

India also needs strong independent institutions rather than relying on regional or national level strong-men since strong institutions truly establish lasting trust in a country and its policies. The chaos caused by the sudden imposition of a nationwide lockdown imposed without thought given to food delivery, labor migration, etc. demonstrates the need for institutional clear-headedness and not personality-based leadership. Even in the US, President Trump had to follow the voices of reason coming from Drs. Fauci and Birx and extend the shutdown, despite wanting to open up the economy by Easter.

Finally, the death of a child due to starvation starkly illustrates the value of an Indian life, determined by the present day Indian government. In contrast, the low fatality rate in Germany shows the value of investment by a government into the wellbeing of its own people. I don't want to translate the fatality rates into a math equation: one German life is equal to x Indian lives type of an exchange rate, but that is the sad truth.

Manoj Kumar was wrong.


Tuesday, March 17, 2020

Ready. Set. ∫.



This write-up is about integrating hardware intellectual property (IP) into a System on Chip (SoC).

One reason we did not choose a particular process node for a SoC we made in the past is that a peripheral team did not have resources for porting to that node. Although material savings far outweighed the NRE expense of porting, we had to forego on the material savings since we just did not have the people to do the port.

How does one avoid this?
  1. Each team needs to incorporate external implementation into their delivery flow.
  2. Even in times of financial stability - when no resource constraints are on the horizon, one must be set up to switch to a 3rd party at moments notice.
  3. Keep IP delivery and minimum acceptable tests ready for delivery to a 3rd party. They are needed to qualify internal deliverables anyway.
  4. When IP is received, test it with the full set of tests and do final bug fixes in-house.

But will this will lead to IP leakage?
  • That's where "crown jewels" come in. Correctly classify the IP value ahead of time. Be selective in the classification.
Preparation
  1. Keep legal agreements and list of preferred vendors ready.
  2. Internal resources are needed to engage with 3rd party, qualify deliveries both ways and for final delivery to SoC team.
  3. Implement encryption options so that subsystems can only work with rest of the infrastructure.

Save money for the company. Deliver faster.
Kuntal.

Monday, January 20, 2020

Create

This will probably end up as a rambling post since there was a recent death in the family that has made me reflective.

In India, "reading books" is considered as a good hobby, something that middle class parents inculcate in their kids.  The association of reading to doing well in school must have something to do with it. At some point in my childhood I read an opinion that reading too many books actually leaves little time to express yourself. 

A few years after my dad had passed away, a cousin had remarked that his fondest memory of my dad was that at the end of every visit home, my dad would hand out ₹10 bills to him and both his siblings.
The memory I had of my dad associated with this cousin was about milk. When a toddler, my cousin had come to our house and didn't like the taste of milk. Now drinking milk regularly is yet another middle class OCD in India. My dad got my cousin engrossed in a story and every time he paused for breath, he would nudge the milk cup in my cousin's hand. The milk was finished before the story was.

Today, I read that Jobs' advice to Benioff was to " be mindful and project the future." Because we know what Jobs and Benioff did, we infer that this is sage advice instead of being dismissive.

My mom's younger sister - my masi - died yesterday. She used to run a modest bicycle rental business. Today, my fondest memory of masi is that she'd set aside a working bicycle of my size whenever I would visit.

In life, create something. It could be watering a plant regularly, or volunteering for Tulsi Gabbard. Take a step that is a little more than expressing an opinion. And someone might someday remember you fondly for what you did.

Don't just think. Create.