A review of Erik Dietrich's book titled Developer Hegemony: The Future of Labor.

In Developer Hegemony: The Future of Labor, Erik Dietrich outlines his harsh criticism of the current state of software development -- or in somewhat more general terms anyone who makes a living through non-routine problem solving: what he calls "knowledge work". He also sets out his vision for a more just, better functioning, and more efficient future consisting of "developer hegemony".

Dietrich divides the book into five sections. He starts off with an example of his ideal future company, then backtracks to describe his relatively cynical judgement of corporate software development today, which is followed by a description of the history of the corporation. He then presents almost a guide to winning the current game by throwing your ethics away and playing dirty, and finally he proposes an alternative company structure based on a partnership of "efficiencers".

The book partitions most corporate employees into three broad archetypes; that of pragmatists, idealists and opportunists. According to the author's analysis; pragmatists are roughly speaking the "line-level employees" who have given up hope in real advancement or faith in deriving any meaning from their work. Idealists have ceded "perspective" by blindly believing in their company to act as a meritocratic, "benevolent steward of their careers". Opportunists on the other hand understand that this is a suckers' game and give up on their ethics in a pursuit to game it and advance in the corporate world, sometimes through smart bargaining but often having no choice but to give in to dirty play.

Because of this, the argument goes, the opportunists exclusively make up the elite layers of the corporate pyramid, the pragmatists occupy the lowest levels of grunt workers and team leaders, whereas idealists are tricked into eventually taking care of the mundane middle management with incredible dedication and voluntary overwork in hopes of future advancement that they cannot see. That advancement never arrives due to the gaming by opportunists. Essentially, the opportunists play the idealists, often smartly allowing them to do the pointless, numb work by their own volition, and sometimes even taking advantage of their naivete explicitly. Dietrich argues that in this game the opportunist -- in the harshest sense -- gives up their humanity, ending up abandoning their ethics and becoming lonely through seeing everyone around them through their value proposition to their advancement. The argument as to why this must be such a lonely, unethical road is somewhat thin, and one is not left without doubt that the book should simply be read as an encouragement to be more of a focused, strategic opportunist in their career.

By virtue of what each archetype cedes in their exchange with the corporation; each group gets a bad deal, disproportionate to their real value and worth.

These are of course somewhat oversimplified -- almost caricatured -- yet, they go a long way in providing context and illustrating many of the points made in later parts of the book.

Dietrich then continues to discuss the place of corporations throughout history, writing about ancient societies, medieval guilds, the influence of mercantilism on the concept of corporations, all the way to the industrial revolution and Frederick Winslow Taylor's Scientific Management as well as unions and the modern corporation.

Throughout the book, the analysis of the current state of the industry is soberingly accurate in certain aspects, capturing well the disparity between the leverage that developers ought to have through their often irreplaceable value, contrasted to how they and those around them have fallen into treating and valuing them. Dietrich likes to compare software engineers to lawyers or doctors; in that all three groups provide a similar class of service to their customer, but software engineering is the only industry that has fallen into treating the work as grunt level labour.

The final verdict is that software development should be done by team-sized partnerships of developers built around four key principles: being bootstrapped or otherwise self-sufficient, being built in such a way that there is no space for the pragmatism or idealism that he discusses in detail earlier, not scaling simply to start skimming off a small margin of each new employee but rather scaling only as needed and as long as it's manageable, and finally making sure everyone stays in a healthy state of opportunism by making sure that every individual's contributions are clearly defined and valued.

Accordingly, these teams should be composed of "ubermench", or "efficiencers" who not only have technical expertise but also a sufficient understanding of the other aspects of running a business through generating leads and revenue. Furthermore, the value proposition of software development ought to not be to program in language X a solution for technical problem Y, but rather to bring "automation" and "efficiency" to a business (whence "efficiencers"). The author illustrates these ideas through interviews with several individuals in the industry who he judges are close enough to his "ubermench" to make the point.

Although the first half of the book is well-written and strongly argued, here some arguments start to water down. Dietrich makes a compelling case as to why his new model of an "efficiencer" firm is valuable and probably fits a lot of people; but at times he seems to posit -- with arguably quite weak arguments -- that this is essentially the only way to ethically and fulfillingly work in the industry. The argument seems to eventually reduce to his individual preference.

In Developer Hegemony: The Future of Labor Dietrich provides an interesting, critical perspective on the current state of software development, backs it up with a historical narrative to arrive at how and why we are where we are; and finally provides the reader with a new way forward to realise their full potential. Overall, the heavy use of humour, examples, and at times entertaining thought experiments makes the book an enjoyable read, leaving us all in the software industry with a lot to think about.