10X Studs and Fighters

Tech twitter, for the last week, has been inundated with unending debate on this tweetstorm by a VC about “10X engineers”. The tweetstorm was engineered by Shekhar Kirani, a Partner at Accel Partners.

I have friends and twitter-followees on both sides of the debate. There isn’t much to describe more about the “paksh” side of the debate. Read Shekhar’s tweetstorm I’ve put above, and you’ll know all there is to this side.

The vipaksh side argues that this normalises “toxicity” and “bad behaviour” among engineers (about “10X engineers”‘s hatred for meetings, and their not adhering to processes etc.). Someone I follow went to the extent to say that this kind of behaviour among engineers is a sign of privilege and lack of empathy.

This is just the gist of the argument. You can just do a search of “10X engineer”, ignore the jokes (most of them are pretty bad) and read people’s actual arguments for and against “10X engineers”.

Regular readers of this blog might be familiar with the “studs and fighters” framework, which I used so often in the 2007-9 period that several people threatened to stop reading me unless I stopped using the framework. I put it on a temporary hiatus and then revived it a couple of years back because I decided it’s too useful a framework to ignore.

One of the fundamental features of the studs and fighters framework is that studs and fighters respectively think that everyone else is like themselves. And this can create problems at the organisational level. I’d spoken about this in the introductory post on the framework.

To me this debate about 10X engineers and whether they are good or bad reminds me of the conflict between studs and fighters. Studs want to work their way. They are really good at what they’re competent at, and absolutely suck at pretty much everything else. So they try to avoid things they’re bad at, can sometimes be individualistic and prefer to work alone, and hope that how good they are at the things they’re good at will compensate for all that they suck elsewhere.

Fighters, on the other hand, are process driven, methodical, patient and sticklers for rules. They believe that output is proportional to input, and that it is impossible for anyone to have a 10X impact, even 1/10th of the time (:P). They believe that everyone needs to “come together as a group and go through a process”.

I can go on but won’t.

So should your organisation employ 10X engineers or not? Do you tolerate the odd “10X engineer” who may not follow company policy and all that in return for their superior contributions? There is no easy answer to this but overall I think companies together will follow a “mixed strategy”.

Some companies will be encouraging of 10X behaviour, and you will see 10X people gravitating towards such companies. Others will dissuade such behaviour and the 10X people there, not seeing any upside, will leave to join the 10X companies (again I’ve written about how you can have “stud organisations” and “fighter organisations”.

Note that it’s difficult to run an organisation with solely 10X people (they’re bad at managing stuff), so organisations that engage 10X people will also employ “fighters” who are cognisant that 10X people exist and know how they should be managed. In fact, being a fighter while recognising and being able to manage 10X behaviour is, I think, an important skill.

As for myself, I don’t like one part of Shekhar Kirani’s definition – that he restricts it to “engineers”. I think the sort of behaviour he describes is present in other fields and skills as well. Some people see the point in that. Others don’t.

Life is a mixed strategy.

AlphaZero Revisited

It’s been over a year since Google’s DeepMind first made its splash with the reinforcement-learning based chess playing engine AlphaZero. The first anniversary of the story of AlphaZero being released also coincided with the publication of the peer-reviewed paper.

To go with the peer-reviewed paper, DeepMind has released a further 200 games played between AlphaZero and the conventional chess engine StockFish, which is again heavily loaded in favour of wins for AlphaZero, but also contains 6 game where AlphaZero lost. I’ve been following these games on GM Daniel King’s excellent Powerplaychess channel, and want to revise my opinion on AlphaZero.

Back then, I had looked at AlphaZero’s play from my favourite studs and fighter framework, which in hindsight doesn’t do full justice to AlphaZero. From the games that I’ve seen from the set released this season, AlphaZero’s play hasn’t exactly been “stud”. It’s just that it’s much more “human”. And the reason why AlphaZero’s play possibly seems more human is because of the way it “learns”.

Conventional chess engines evaluate a position by considering all possible paths (ok not really, they use an intelligent method called Alpha-Beta Pruning to limit their search size), and then play the move that leads to the best position at the end of the search. These engines use “pre-learnt human concepts” such as point count for different pieces, which are used to evaluate positions. And this leads to a certain kind of play.

AlphaZero’s learning, process, however, involves playing zillions of games against itself (since I wrote that previous post, I’ve come back up to speed with reinforcement learning). And then based on the results of these games, it evaluates positions it reached in the course of play (in hindsight). On top of this, it builds a deep learning model to identify the goodness of positions.

Given my limited knowledge of how deep learning works, this process involves AlphaZero learning about “features” of games that have more often than not enabled it to win. So somewhere in the network there will be a node that represents “control of centre”. Another node deep in the network might represent “safety of king”. Yet another might perhaps involve “open A file”.

Of course, none of these features have been pre-specified to AlphaZero. It has simply learnt it by training its neural network on zillions of games it has played against itself. And while deep learning is hard to “explain”, it is likely to have so happened that the features of the game that AlphaZero has learnt are remarkably similar to the “features” of the game that human players have learnt over the centuries. And it is because of the commonality in these features that we find AlphaZero’s play so “human”.

Another way to look at is from the concept of “10000 hours” that Malcolm Gladwell spoke about in his book Outliers. As I had written in my review of the book, the concept of 10000 hours can be thought of as “putting fight until you get enough intuition to become stud”. AlphaZero, thanks to its large number of processors, has effectively spent much more than “10000 hours” playing against itself, with its neural network constantly “learning” from the positions faced and the outcomes of the game reached. And this way, it has “gained intuition” over features of the game that lead to wins, giving it an air of “studness”.

The interesting thing to me about AlphaZero’s play is that thanks to its “independent development” (in a way like the Finches of Galapagos), it has not been burdened by human intuition on what is good or bad, and learnt its own heuristics. And along the way, it has come up with a bunch of heuristics that have not commonly be used by human players.

Keeping bishops on the back rank (once the rooks have been connected), for example. A stronger preference for bishops to knights than humans. Suddenly simplifying from a terrifying-looking attack into a winning endgame (machines are generally good at endgames, so this is not that surprising). Temporary pawn and piece sacrifices. And all that.

Thanks to engines such as LeelaZero, we can soon see the results of these learnings being applied to human chess as well. And human chess can only become better!

AlphaZero defeats Stockfish: Quick thoughts

The big news of the day, as far as I’m concerned, is the victory of Google Deepmind’s AlphaZero over Stockfish, currently the highest rated chess engine. This comes barely months after Deepmind’s AlphaGo Zero had bested the earlier avatar of AlphaGo in the game of Go.

Like its Go version, the AlphaZero chess playing machine learnt using reinforcement learning (I remember doing a term paper on the concept back in 2003 but have mostly forgotten). Basically it wasn’t given any “training data”, but the machine trained itself on continuously playing with itself, with feedback given in each stage of learning helping it learn better.

After only about four hours of “training” (basically playing against itself and discovering moves), AlphaZero managed to record this victory in a 100-game match, winning 28 and losing none (the rest of the games were drawn).

There’s a sample game here on the Chess.com website and while this might be a biased sample (it’s likely that the AlphaZero engineers included the most spectacular games in their paper, from which this is taken), the way AlphaZero plays is vastly different from the way engines such as Stockfish have been playing.

I’m not that much of a chess expert (I “retired” from my playing career back in 1994), but the striking things for me from this game were

  • the move 7. d5 against the Queen’s Indian
  • The piece sacrifice a few moves later that was hard to see
  • AlphaZero’s consistent attempts until late in the game to avoid trading queens
  • The move Qh1 somewhere in the middle of the game

In a way (and being consistent with some of the themes of this blog), AlphaZero can be described as a “stud” chess machine, having taught itself to play based on feedback from games it’s already played (the way reinforcement learning broadly works is that actions that led to “good rewards” are incentivised in the next iteration, while those that led to “poor rewards” are penalised. The challenge in this case is to set up chess in a way that is conducive for a reinforcement learning system).

Engines such as StockFish, on the other hand, are absolute “fighters”. They get their “power” by brute force, by going down nearly all possible paths in the game several moves down. This is supplemented by analysis of millions of existing games of various levels which the engine “learns” from – among other things, it learns how to prune and prioritise the paths it searches on. StockFish is also fed a database of chess openings which it remembers and tries to play.

What is interesting is that AlphaZero has “discovered” some popular chess openings through the course of is self-learning. It is interesting to note that some popular openings such as the King’s Indian or French find little favour with this engine, while others such as the Queen’s Gambit or the Queen’s Indian find favour. This is a very interesting development in terms of opening theory itself.

Frequency of openings over time employed by AlphaZero in its “learning” phase. Image sourced from AlphaZero research paper.

In any case, my immediate concern from this development is how it will affect human chess. Over the last decade or two, engines such as stockfish have played a profound role in the development of chess, with current top players such as Magnus Carlsen or Sergey Karjakin having trained extensively with these engines.

The way top grandmasters play has seen a steady change in these years as they have ingested the ideas from engines such as StockFish. The game has become far more quiet and positional, as players seek to gain small advantages which steadily improves over the course of (long) games. This is consistent with the way the engines that players learn from play.

Based on the evidence of the one game I’ve seen of AlphaZero, it plays very differently from the existing engines. Based on this, it will be interesting to see how human players who train with AlphaZero based engines (or their clones) will change their game.

Maybe chess will turn back to being a bit more tactical than it’s been in the last decade? It’s hard to say right now!

The skill in making coffee

Perhaps for the first time ever in life, I’m working in an office without a coffee machine. I don’t mind that so much for two reasons – firstly, having to go down 27 floors and then pay explicitly for a coffee means that my coffee consumption has come down drastically. Secondly, there is a rather liquid market of coffee shops around my office.

As you might expected, there is one particular coffee shop close to my office that has become my favourite. And while walking back with my flat white on Wednesday afternoon, I noticed that the coffee tasted different to the flat white I’d had at the same place the same morning.

Assuming that even artisanal coffee shops like that one are unlikely to change beans midway through the day, I’m guessing that the difference in taste came down to the way the coffee was prepared. Flat white involves some effort on behalf of the barista – milk needs to be steamed and frothed and poured in a particular manner. And this can vary by barista.

So this got me thinking about whether making coffee is a skilled task. And this might explain the quality of coffee at various establishments in Bangalore.

When the coffee bar is equipped with an espresso machine, the job of making an espresso involves less of a skill since all that the barista needs to do is to weigh out the appropriate quantity of beans, press it down to the right extent and then pop it into the espresso maker (I know these tasks themselves involve some skill, but it’s less compared to using a South Indian style filter, for example).

When you want milk coffee, though, there is a dramatic increase in skill requirement. Even in South Indian coffee, the way you boil and froth the milk makes a huge difference in the taste of the coffee. In Brahmin’s Coffee Bar in Shankarpuram, Bangalore, for example, the barista explicitly adds a measure of milk foam to the top of the coffee lending it a special taste.

And when it comes to “European” coffee, with its multiple variants involving milk, the skill required to make good milk coffee is massive. How much milk do you add.. How hot do you steam it.. Whether you add foam or not.. These are all important decisions that the barista needs to make, and there is a lot of value a good barista can add to a cup of coffee.

One of my biggest cribs about chain coffee shops in India is that the taste of the coffee isn’t particularly good, with hot milk coffees being especially bad. Based on my analysis so far, I think this could be largely a result of unskilled (or semi-skilled) and inexperienced baristas – something these chains have had to employ in order to scale rapidly.

The cold coffees in these places are relatively much better since the process of making them can be “fighterised” – for each unit, add X shots of espresso to Y ml of milk, Z ice cubes and W spoons of sugar and blend. The only skill involved there is in getting the proportions right, and that can be easily taught, or looked up from a table.

The problem with hot coffees is that this process cannot be fighterised – the precise way in which you pour the milk so that there is a heart shape on top of the cappuccino foam, for example, is a skill that comes only with significant practice. Even the way in which the milk is to be foamed is not an easily teachable task.

And that is the problem with chain coffee shops in India – lack of skilled labour combined with the need to scale rapidly has meant that people have tried to use processes to compensate for skills, and in most parts of coffee making, that’s not necessarily a good way to go.

How power(law)ful is your job?

A long time back I’d written about how different jobs are sigmoidal to different extents – the most fighter jobs, I’d argued, have linear curves – the amount you achieve is proportional to the amount of effort you put in. 

And similarly I’d argued that the studdest jobs have a near vertical line in the middle of the sigmoid – indicating the point when insight happens. 

However what I’d ignored while building that model was that different people can have different working styles – some work like Sri Lanka in 1996 – get off to a blazing start and finish most of the work in the first few days. 

Others work like Pakistan in 1992 – put ned for most of the time and then suddenly finish the job at the last minute. Assuming a sigmoid does injustice to both these strategies since both these curves cannot easily be described using a sigmoidal function. 

So I revise my definition, and in order to do so, I use a concept from the 1992 World Cup – highest scoring overs. Basically take the amount of work you’ve done in each period of time (period can be an hour or day or week or whatever) and sort it in descending order. Take the cumulative sum. 

Now make a plot with an index on the X axis and the cumulative sum on the Y axis. The curve will look like that if a Pareto (80-20) distribution. Now you can estimate the power law exponent, and curves that are steeper in the beginning (greater amount of work done in fewer days) will have a lower power law exponent. 

And this power law exponent can tell you how stud or fighter the job is – the lower the exponent the more stud the job!! 

Studs, fighters and spikes

In a blog post yesterday I talked about the marriage and dating markets and how people with spikes which can be evaluated either highly positively or highly negatively were more likely to get dates, while in the arranged marriage market, you were better off being a solid CMP (common minimum program).

The question is how this applies for jobs. Are you better off being a solid performer or if you are someone who has a quirky CV, with some features that can either be heavily positively or heavily negatively by some people. How will the market evaluate you, and which of them is more likely for finding you a job?

The answer lies in whether the job that you are applying for is predominantly stud or fighter (apologies to those to whom I mentioned I was retiring this framework – I find it way too useful to ditch). If it is a predominantly fighter job – one that requires a steady output and little creativity or volatility, you are better off having a solid CV – being a consistent 3 rather than having lots of 5s and 1s in your rating chart. When the job is inherently fighter, what they are looking for is consistent output, and what they don’t look for is the occasional 1 – a situation where you are likely to underperform for whatever reason. Fighter jobs don’t necessarily care for the occasional spike in the CV – for there is no use of being extraordinary for such jobs. Thus, you are better off being a consistent 3.

If it is a stud job, though, one where you are likely to show some occasional creativity, you are more likely to get hired if you have a few 5s and a few 1s rather than if you have all 3s. If the job requires creativity and volatility, what the employer wants to know is that you are occasionally capable of delivering a 5 – which is what they are essentially hiring you for. Knowing that people who are good at stud jobs have the occasional off day, employers of stud jobs are okay with someone with a few 1s, as long as they have 5s.

So whether you should be looking for a stud or a fighter job depends on what kind of a professional career that you’ve had so far – if you’ve had a volatile career with a few spikes and a few troughs, you are much better off applying for stud jobs. If you’ve been a steady consistent performer you are better suited for a fighter job!

Of course you need to remember that this ranking as a function of your volatility is valid only if you were to hold your “average rating” constant!

The deal with plays

I live near Basavanagudi in South Bangalore, hardly 6 km from the city’s best theatre Ranga Shankara. In the other direction, a (relatively) new auditorium which plays host to several promising plays (KH Kala Soudha) is even closer. There are times when we consider going for a play at one of these locations. To date, however, I’ve been to a performance (can’t call it a play) at KH Kala Soudha once. The only time I’ve been to Ranga Shankara was five years ago, back when i was in college.

I think one of the reasons for this is that I can never muster the necessary incentive to go watch a play. A large number of plays, as I understand, hold nothing much of promise in the stories that they tell. I’m not much of an actor, and don’t have an eye for fine acting which I want to discover. Yes, sometimes the way some stories are told is fantastic, and this is even more so when the play in question is telling a known story (the one play I’ve watched in Ranga Shankara was a Harivansh Rai Bachchan interpretation of Hamlet; where they use Yakshagana dancers for the play-within-a-play, and that was a fantastic way of telling the story).

Still, the thought of having to sit there in one place, without doing anything that might distract the performers, focusing all my energies on the performance, for the “option value” that there might be something really insightful in what the performers are trying to convey is daunting. With widespread sponsorship from governments and corporates, most plays are very reasonably priced, but the attention they demand can put me off.

And then I wonder if the reason I don’t like plays so much is because they’re rehearsed, that everything goes according to a particular script, that every move of the actor has been choreographed! The way plays are structured essentially requires discipline on part of all the actors, and the play could sometimes be seen as just an exhibition of discipline! I must mention here that I have even less patience for other more obvious exhibitions of discipline such as parades.

I read that the Rangashankara  festival is coming up soon, and I do hope I can get myself to at least check out a few plays (especially since I’m now fairly rich in terms of time). However, I must say it will take a lot of convincing on your part to make me come watch your play. If you say “we’re performing Shakespeare’s Romeo and juliet” I’ll say “why should I come watch you when I can read the play?”. But if you tell me that there’s a story that you want to say, which you’re going to say in a particularly unique way, then I might be interested.

Fighterization of Government

The problem with the proposed Jan Lok Pal bill is that it’s highly personality dependent. Given the kind of powers they want vested in the Lok Pal, it is clear that the proponents of this bill (Anna Hazare and co.) have simply assumed that a “good and incorruptible person” will occupy this post. What they don’t seem to have considered is that governments usually mess up in such appointments and it’s not guaranteed that a “good and incorruptible person” will always occupy this post. And that for that precise reason it’s dangerous to create an institution whose performance is highly dependent on the person occupying the post.

I’m reminded of two “high offices” to which people are appointed by the Central Government. Both these offices have gained prominence due to their occupation by high-quality people who did much to enhance the stature of this office, but have been undermined later by the government (UPA 1 and UPA2 in this case) appointing people with shady backgrounds to this post.

The first is the office of the Chief Election Commissioner. While this post has existed since the time of the first general election, the office was brought to prominence by former CEC TN Seshan. He was followed by a few other respectable gentlemen (James Michael Lyngdoh comes to mind). But then who did the UPA appoint to this post? Congress crony Navin Chawla, who in his earlier avatar as an IAS officer had been indicted by court as being “unfit to hold public office”.

The other case refers to the Central Vigilance Commissioner. By definition, this is a vigilance office and one of the implicit duties of this job is “vigilance”, which implies action against corrupt practices. You can think of this post as being a sort of a “mini Lok Pal” (for bureaucrats only, politicians being excluded). Again, when this post was created it was assumed that “honest impeccable incorruptible persons” would occupy it. And who did the UPA try to put there (before the Supreme Court struck down the appointment)? PJ Thomas, who had been indicted in a scam about 10 years ago.

There is no guarantee that people like Chawla or Thomas could come to occupy the post of the “lok pal”, which will completely undermine the purpose of the institution. I hope the thousands of people who are blindly supporting the “Jan Lok Pal bill” (and this includes you, Bharatiya Janata Party) take this little technicality to note. I exhort them to ask themselves if they’ll be ok having Navin Chawla or PJ Thomas as the Lok Pal. If they think it’s ok even if such people were to occupy the post, they can go ahead wiht their support. My assumption, though, is that most people haven’t really thought about this angle and are blindly supporting the anti-government agitations.

Coming to the title of this post, what we need is to create institutions that are not personality-dependent. We need to create institutions and systems with appropriate checks and balances such that even if people of “lesser integrity” were to occupy it, it wouldn’t be possible for them to significantly undermine the office. We need to effectively “fighterize” these posts in order to ensure that it’s not possible to sabotage them by means of a few bad men occupying them.

And the way I see it, the institution of the Lok Pal as envisaged by the Jan Lok Pal Bill (or by the government-sponsored bill for that matter) is highly personality dependent. And that is one of the reasons I’m opposed to this current Anna-Swami-Baba movement.

End of month blues

One of the problems with running your blog on your own website is that you need to manage bandwidth. Basically it seems like my blog has been run over by bots and so by the 25th of every month the bandwidth for the month is over, and the blog goes down for the rest of the month. I’ve been trying to do a lot of things to prevent this – blocking suspicious looking IPs, installing bad behaviour, and such like, but still I don’t know why it gets locked out.

My biggest problem with this end of month lockout is the volume of ideas that go down the drain during this time, rather than getting published on the blog. I wish I could try and remember all those blogging ideas and do one mega blog post at least with a summary of all of them, so that I could write about them at some point of time in the future, but it seems like I can’t remember anything now.

In other news, I’ve been getting really stressed out of late, and my mental bandwidth has been at an all time low. I’ve felt that I’ve been going downhill since my trip to New York a few months back, but of late it’s gotten really bad, and I’m just not able to do anything. That’s yet another reason why blogging frequency has dipped in the last couple of weeks or so.

Doing a deep dive into my own past, I think I’ve figured out why this has been happening. Rather, I have a hypothesis about why I’ve been stressing myself out too much at work which has led to this situation. Basically it’s down to studs and fighters.

I traditionally have what I call as a “stud” working style. I work in bursts, at reasonably low intensity. I look at the problem as a series of steps, and for each step, I internalize the problem, and then try to de-focus. And while thinking about something else, or reading something, or writing something else, I end up having a solution to the problem, and then I take a little break and move on to the next step. This is essentially how I’ve worked over the last few years and I think I’ve (to myself at least) done a good job using this method.

There’s yet another method that I’ve frequently used in the past, one that I call the Ganesha method. It’s basically used for tasks I want to get  done with ASAP. I work at it at a very high intensity, shutting myself off from everything else in the world. I work at it continuously without a break, and then take a long break once the solution is done. I’ve used it in the past for things like competitive exams where I think I’ve done rather well.

So the mistake I did a while back (maybe a year or so back) was to try and use this latter method over longer periods of time, for longer problems. The thing with this method is that it’s suited for short problems, which can be finished off in a burst with a little bit of stretching myself. But when applied to significantly larger problems, I’ve found that it’s been stressing me out way too much. By trying to be steady and focused over a long period of time, which is how a fighter traditionally works, I think I’ve mentally destroyed myself.

Moral of the story is that whatever happens you need to be yourself, and do things in your own style. Don’t try to change yourself in order to please others. It is simply not sustainable.

Managing stud work

I begin this post with an apology. About two years back I’d promised that I won’t write any more on Studs and Fighters on this blog, and I’ll save all that for my forthcoming book. Unfortunately, since then I’ve managed not more than one page of my book, and that too has been in the last couple of weeks. I realize that by not writing about studs and fighters here, I’m losing that perspective of thought entirely, because of which I’ve not been able to write my book.

So, Chom (a friend) raised an important point during a discussion earlier today. He said that people who are studs, after they become “managers” (in which case their job is solely to manage other people. Think of someone like a partner in a consulting firm), start angling for more fighter work for their team.  That they seem to forget all their studness, and assume that all the people they manage are fighters.

I had argued earlier that once the partner of a consulting firm stops doing day-to-day work, the quality of work at the firm suffers. This post is an extension of that. So what Chom says inherently makes sense. Here’s why.

Stud work is risky. There is a good probability that it may not be completed. So when your target changes from the “total impact of work done” to “number of pieces of work successfully completed” the whole equation changes. You are not looking for those “big wins” from your team, any more. What you need from your team is a high rate of delivery, and a large number of projects that are completed. If you get big wins, that is just a bonus. But all you care for now is the number of wins.

So you start taking on more fighter work, and letting go of stud work. After all, it is now rational for you to do that. Your own working style can sit aside.