The trouble with gig economy

I grew up in a social setting such that people once they earn a bad name, it was very difficult for them to recover and be back in full swing in the society. They have to rebuild their reputation either in a new place or the same place. Why did people try to associate themselves to a society?; because living together was easy and people helped each other a lot. If one falls sick, there were people who helped the family of the sick member to help them get back upto speed.

The labour market also did the same, governments across the globe came up with a lot of guidelines and laws to employ people such a way that there was social security in the form of sick time, paid leaves, bonuses, retirement funds, insurance and gratuities. We were able to advance as a society very well with these elaborate social structures, though someone can earn a lot of money doing small gigs many people avoided for the predictable life of an established company.

The lure of quick money is always there, especially when people are young the cash in hand always triumphs the long term survivability. People don’t see far ahead and not many are aware of saving for the rainy days when they are strong, healthy and ignorant. This makes a lot of people take up gigs to survive, a gig means – ‘a job, especially one that is temporary or that has an uncertain future’. Gigs offer a lot of money in hand for a given skill and experience to compensate for the uncertainty in the future.

The money component alone lures a lot of people into the gig economy where people with less or no skills can immediately get going and even get paid within a day of commencing work. The trouble with gig economy is

  1. There is no social net in it, sort of a medieval system where the strongest and fittest survive. If people fall sick or meet with an accident they lose all the savings, they earn no money during sick time and end up with a perpetual high cost debt.
  2. You can get away doing bad work or behaviour, and if things go bad you can leave a system and join something else fresh. If you did bad job in a food delivery system, you can leave and make money driving cars for sometime. Though the same is possible in full time employment, the scale at which this can happen is big in the gig economy and you can change identities easily or mask your past performance easily

It is hard to address point number 1, the gig economy is new and it is giving jobs to a lot of people and many of them get a lot of money which they think is disposable and end up spending it.

The second point is bad from a consumer point of view, if there is no repeat business from a customer there is no incentive to give good product or service. Uber does it through its rating system, but what if that person decides to create a new profile altogether after a messed up profile or switch gigs to something else.

In the short run it seems a lot of people will have new jobs and people in college can do part time work for delivery services, but in the long run it will tune people to settle for a life where they think that they can earn a lot than full time employment but companies will do all sorts of tactics like ‘bait and switch’ which has happened to cab drivers in India and keep them hooked on to the system even when it turns damaging for them.

There will be a point in time that governments have to intervene to make sure exploitation of its citizens don’t take place else our society will slowly regress into a medieval feudal system.

Public opinion is fickle

We generally go by ‘The Spotlight Effect‘, we always think about what others think about and assume there is a greater chance of people noticing each and every thing we do and form an opinion about it. On the contrary, every one else has very less time to think about others and often think about themselves.

As observers we do notice a lot about things and give our opinions on it, but generally we lack the expertise and we are not the person in the arena facing the situation. Nevertheless our opinion as an observer gets voiced out, but most likely our opinions will change given our experience changes.

Change the tables around, the public has a lot of opinion on us. Some of us go way too much that we go about changing a lot about ourselves to make sure the public opinion about us is good, but the public opinion is fickle. People have a lot of other work to do and many at times they don’t even remember the opinion they had on us when we meet them.

Remember the story of the deaf frog who emerged victorious, learn to listen to yourself than spending energy on what others should think about you.

 

 

Jevons Paradox and Muntzing

Phone calls used to be so expensive while I was growing up and the cost increased exponentially as the distances increased. Often I had to plan what to talk to people when making a call to keep it short; as my entire pocket money for the month can be used up if I spoke to my parents for 30 minutes during peak hours. Communication was expensive so that people planned carefully on how to talk, when to talk and how much to talk. Some people even chose to be contactable only in person and mails by avoiding a telephone line to save big on telephone costs.

What happens when something that was expensive becomes cheap, do we spend that savings elsewhere? This is where Jevons Paradox occurs. When communication became cheaper we stared overdoing it. What used to be a routine 3 minute call to a friend once in a while is now well over 30 minutes. We started paying more by time spent rather than money spent. It is a systems problem, the inefficiency just moves to another place.

This is applicable for anything, food was expensive and refrigerating food was even more expensive so we had invented a lot of ways to carefully store, cook right amounts, recycle leftovers into new dishes and also find ways to preserve through fermentation, pickling etc. My grandmother almost never generated trash or food waste to be dumped, all the edible portions were eaten and organic waste like peels went to plants which again gave back food. We are talking about this cycle as a new way of simple life and as if no one did this before.

This is an important factor in web development in particular and software development overall. Developers are given a lot more freehand to use resources at will to deliver the experience for the user. This has resulted in loading a ~500 KB homepage of which most of the code that is downloaded and processed is not directly useful or seen by the user (A good portion would be to track what a user is doing!). In a constrained environment, elegant solutions appear; in an abundant environment everything is bloated and there is no judicious use. A single webpage can potentially crash a browser or slow down the entire system.

How can this be solved? In many other industries the problem of plenty is not there for users, there are always constraints to work with to get efficient and elegant solutions. We need something like ‘Muntzing‘ for software industry; instead of needlessly hammering through generic all in all bloated solutions we can cut out the fat and concentrate only on core work.

 

As a company we decided to write only….

You have a business which needs apps running on iOS and android; which one is easy, building native apps or hybrid ones?

If you are the one who right away answers either native or hybrid without asking what are the considerations for the apps then you are setup for failure or great hardship. There is no blanket right approach to build apps that look similar and works similarly across the ecosystems.

smartphones-2182838_640Building rich native apps require depth in understanding of the capabilities of the  platform and designing a common experience for the users even though the capabilities of the underlying system might be different. Two separate teams, two different development pace add to the complexity.

On the other hand, building hybrid apps require a great breadth in mobile development. This means the team should have developers who understand iOS and android systems, knowledge of javascript, some experience in trouble shooting applications in iOS and android (may even require java, kotlin or swift exposure for some native code). It is a tall ask, requires a fair deal of experience and knowledge for everyone in the team.

Choose wisely, a blanket approach of one over the other for everything we do is not right and often leads into difficulties. If you say ‘As a company we decided to only hybrid apps’ then you don’t either understand the complexities or have not given enough thought on how to implement.

 

Echo Chamber

We are increasingly surrounded by things what we want to hear and see, which traps us into a small circle of our own echo chamber. Before internet targeting something for someone is quite hard, a person has to do a great deal of research to find something useful about a person. Now it is just a click away and we are giving it away in a few clicks.

We are in an era that our attention has been targeted like never before and with great precision. We are giving away a lot when we message someone, when we talk to someone, when we read news articles, when we like our friend’s photos, when we order food, when we buy something, when we watch a movie, when we use maps, when we use search engines; there is not a place where we can control what we can give unless we put in deliberate effort.

All this creates a profile of us and then feeds us what we have liked and used so far. I chose to listen to jazz music one day in an app, from that day onwards I keep getting jazz music prompts and I have to wrestle my way out to find something else. Music was obvious, news is not. If I had clicked on a type of news in Facebook then I would keep getting the same kind of it and subconsciously I will be primed to think that is the only thing happening around me. The same applies for anything I can think about, as a first step I unsubscribed to all the emails and thanks to GDPR it made my life even more easy to unsubscribe. I also uninstalled Facebook from my phone and use it as a way to find some old friends and get their contact through the browser.

The next steps I began to do was to go under the radar. It may be hard to go under the radar especially when we use social networks and messaging apps but we can control a lot of things what we do on the browser. I stumbled on a link that helps us to stay private in the era of mass surveillance, I started cutting down on ads & trackers; it is easy to do even if you are not a full time developer. Privacy is getting increasingly hard, if we don’t seek it we will get stuck in an echo chamber, listen and see only what we want to not what is happening around.

Mastering XP

There are lots of certified masters and trainers programmes available for various Agile methodologies but it is extremely hard to find one for Extreme Programming (XP). You can get certified in any methodology in 3 days and claim to be a practitioner but claiming to be a good XP developer is extremely hard.

It takes a few years of dedicated practice in XP to get some mastery in XP be recognised as one by peers. It does not come with just knowing how to write stories, estimate and sequence them. The most distinguished feature of XP is its emphasis on developers and technical aspects of software development.

Most of the people I encounter have modified waterfall into mini waterfalls following super rigid plans but tracking on a weekly basis in the name of agile development without giving much thought to the technical aspects. This will not help in realising many of the goals that we set out to achieve. Also to improve the speed, work is usually allotted in silos thereby increasing dependency on people and reducing collaboration.

Try answering Yes or No to the following questions

  • Do you do pair programming (May not be followed for simple straight forward tasks)?
  • Can any developer in the team call for a huddle when stuck or when there is a need for a design discussion?
  • Do you follow Test drive development (TDD)?
  • Is your team’s CI sacred, no one breaks the build or if broken it comes back green soon?
  • Do you do frequent commits/merges (short lived branches) to the master or do Trunk based development?
  • Can anyone in the team question the quality of code?
  • Does the team get together often to do mob code reviews or do some learning sessions on best practices?
  • Is it easy for you to roll off or onboard developers at least once a quarter?
  • Is there automation at all levels that people do not spend any time on recurring tasks?
  • Does your team seems to be productive enough if they work only for 5 days a week?
  • Is the team able to interact and negotiate on the stories with the Product owner during development?

The list above is not exhaustive but if there are questions that you have answered ‘No’ then you are not on the path to mastering XP.

Do you write tests first in TDD?

I am quite surprised how some technical terms easily lose their meaning over time. TDD (Test driven development) is one of them. I repeatedly meet people who do TDD at their work and when I say I also do TDD at work the next question most of the times I get asked is “Do you write tests first”? Stumped! TDD is always about write a test first and then write its code, test code is not a different citizen from production code while under development.

A few years ago if I had asked an interview candidate “Do you write your unit tests before writing your code if you are following TDD?” the chances are high that the candidate gets offended but now I am given a reply “I tried, but it is hard to do it; so we write tests after the coding is done to keep the coverage at 80”. So TDD has evolved to have a meaning of having 80%(or any other easy number) line coverage than a way of making sure to get a good low level design and have enough safety nets in place.

You are not following TDD if

  1. Not writing tests first
  2. Repeat point number 1