Saltar al contenido

Developer Hegemony


Erik Dietrich


Este es un libro donde al autor no le da rodeos al asunto; los desarrolladores / programadores tienen sus propios medios de producción consigo, sólo necesitan de una laptop y una conexión a Internet, no necesitan de una corporación.

Erik Dietrich comienza con una historia ficticia de una programadora que está asociada con un grupo de otros programadores con la misma mentalidad, describe un día de su vida laboral independiente y de cómo podría funcionar. La verdad es que no parece fantasioso.

Describe los tres niveles de personas que existen en una empresa grande de la actualidad; pragmáticos, idealistas y oportunistas. Me sentí muy identificado con el nivel de los pragmáticos, el más bajo. Siempre he sentido poco afecto hacia los gerentes y los “vendedores”, últimamente me he dado cuenta que eso no tiene por qué ser así.

Luego habla de qué se puede hacer en todos los casos y menciona el término “efficiencer” el cual no tiene traducción actual, yo lo interpreto como; persona que hace eficientes los procesos o persona que automatiza los procesos para hacerlos eficientes. Con esto me refiero a una persona que usa código para hacer que un proceso o actividad sea mejor mediante la automatización.

Según su visión, estos efficiencers son los que van a ir aumentando poco a poco hasta que se vuelvan los dominantes. La migración de los desarrolladores fuera de la empresa va a seguir (aparentemente esto es así en ciertas partes del mundo) y se van a fundar firmas, como las de los abogados, de oportunistas pero que sepan realizar el trabajo y que van a subcontratar las tareas que no son centrales al trabajo, como contabilidad, finanzas, mercadeo, etc. De ésta manera se vería el aporte real que cada miembro aporta a la firma.

Sin embargo, el autor habla de que antes que todo el efficiencer debe ser un negociante y conocer todas las facetas del negocio de las cuales habla, pero lo que más me gustó en ésta parte fue la recomendación de leer The Personal MBA.

Tal vez a uno como programador le disguste pensar en mercadeo o en ventas, pero es algo muy importante al momento de asegurar un cliente y cuándo te dicen: ¿cuánto va a cobrar? no responder cosas como: no sé, le cobraré por hora, lo que usted quiera, etc. Mala mentalidad.

Estas son las ideas y deseos que el tiene para el futuro del desarrollo de software, quién sabe si se están cumpliendo y se van a seguir cumpliendo. Me agitó bastante la cabeza como para pensar en cosas para mi futuro y de cómo trabajo en la actualidad.

Con todo y todo, este libro ofrece un camino que va más allá del freelancing, ya no trabajar más en simple programación convirtiendo especificaciones en funcionalidades sino que entender el negocio y ofrecer la automatización que se necesita para mejorar el trabajo.

De existir, la realidad de la cual habla el autor va a llevar bastante tiempo en materializarse.

Muchas citas

And, no, I don’t believe that I’m somehow special.

this was the source of my eventual bitterness at that organization. If I were honest with myself, no small part of that feeling was self-disgust for having tried so hard when it clearly didn’t matter.

State lotteries notwithstanding, giving up on improbable dreams is considered by society to be a measure of maturity.

Now, imagine the portrait of a corporate pragmatist. He’s risk averse and aware that he needs a regular job to keep up with the mortgage, cars, and the expense of family. He works hard enough at a corporate gig not to make waves, but he doesn’t work hard enough to make other kinds of waves.

If the company were a church, pragmatists would be the ones there out of obligation, listening to the NFL pre-game on a surreptitious pair of headphones whenever possible. Idealists are the true believers: present, pious, and engaged.

They own you. Or, at least, they own you for forty hours a week, until you can surreptitiously land yourself an offer at another company… who will then own you. Why is this the way it works?

We’ve created a corporate structure that separates people so far from the value of their work that the only reliable metric offered for value is, “Did you come to this building?” And given that this is the corporate world’s main guiding metric, is it any wonder that performance reviews are a complete waste of time?

“We don’t really know if your individual performance adds value or not, and either way, it doesn’t have much to do with whether or not you get a raise”

Alice produces more widgets than Bob, so let’s at least get her a slightly bigger raise than Bob.

It is because of this very dynamic —the nihilist reality of performance reviews— that modern knowledge workers such as programmers are better suited to job hop.

If Sleazy Steve is being inappropriate and winds up appropriately disciplined, that’s a win for you, for the organization, and for humanity all in one shot. It’s a good outcome. But the most important beneficiary of the good outcome is the company itself, with anything else simply being collateral good.

The very people charged with enacting and enforcing policy to protect companies from their workers are the same people offered as their protectors, confidantes, and advocates. They’re asked to tell you how much the company cares about you and values you, and then, later, they’re asked to censure and terminate you.

By the time the word “corporation” emerged, the concept had existed for over 1,000 years, but the word’s definition contains hints as to its true nature: “persons united in body for some purpose.” What “persons” and what “purpose”?

On your deathbed, you’re unlikely to be thinking about that awesome day that you sold a lot of things or struck a deal that improved your fortunes. You’re going to be wondering about what you’ll leave behind that will make people remember you.

Ancient people concerned with legacy enlisted people, in exchange for compensation, to unite in a commercial purpose. The ostensible purpose was commerce and providing for the participants, but the motivational purpose was founder legacy. Think family business.

[hablando de los medievales] this is hardly the modern, libertarian-inspired notion of free agent software craftsmen roaming around delivering the best labor for the best price. This was an organized labor cartel with a monopoly, satisfying its customers enough that they didn’t revolt or petition local governments for change.

And, in a world where investors can finance operations and reap a share of the profit, there were irresistible margins to be had here. Forget finding some remote island to harvest and ship sugar; the real money was now in building factories that mass-produced pants.

But, whether you’re tilling the land in 1400 for your local lord or cranking out aprons all day for your local merchant in 1700, laboring twelve hours a day for someone else is still laboring twelve hours a day for someone else.

[Frederick] Taylor proposes something different. He proposes another piece of the corporate puzzle that creates the layer cake we know today. He proposes an organization consisting of owners, non-owning but educated managers, and beast like laborers.

The days of the independent craftsman, the worker of the land, and even the entrepreneur were comparably quite limited. The default position in the age of the company man and the massive global corporation was that everyone respectable got jobs with good organizations, showed company loyalty, and worked their way up the food chain.

So, are organizations worth our faith? The answer, sadly, is no. And that’s because corporations do a remarkable job of solving the problems of yesterday—problems that we no longer have.

At the tender age of 33, I was a technical executive (CIO) of a company with about 80 employees and fairly significant technical operations.I had created this favorable career situation not by paying dues and working hard for companies. Rather, I owed my position to working hard for myself—putting in 70 hour weeks to earn a graduate degree while working full time; building a formidable network of people that remembered me well; moonlighting and freelancing; starting a blog; creating developer training videos, and maintaining a constant, open inquiry as to the availability of better paying, better titled jobs, notwithstanding the “disloyal” branding this could have earned me from the company perspective.

Nevertheless, the overwhelming majority of corporate programmers content in that role are indeed pragmatists. They value the thrill off low and the feedback loop of programming over things like autonomy, ownership, and a will-to-power approach.

Pragmatist success is thus defined by two tiers of goal. The first, essential tier is to maintain steady enough employment to sustain good standing on Maslow’s hierarchy. The second tier of success is then largely self-defined. A pragmatist succeeds if she stays employed and feels good about her life and what she does with it.

This transformation into an opportunist is, at its core, about altering your perception of yourself. You need to stop viewing your self as a software engineer II or a QA specialist or a dev manager. You need to stop viewing yourself as an employee of your (or any) company and start viewing yourself as the owner of your own personal brand and operation. You are an island. You are other.

But if you’re a free agent, your client asking you to work 10 hours a week for free is perfectly preposterous. The difference in thinking is that it’s now reasonable is for you to ask, “WhywouldI do that? What’s in it for me?”

Coming to regard yourself as your own tiny, lonely company is your true step away from the cave wall, and there is no going back.

it shifted the focus from, “you will succeed if you practice and get really good at software and consulting” to “you will succeed if you have these meetings, follow these protocols, and adopt these techniques.”

Servant leadership is a great concept in populist contexts where “lead by example” can define an eventual hierarchical structure. When the hierarchical structure is already defined, “servant leadership” is an insult to opportunist intelligence.

Now you have a firm grasp on the failure blueprint for corporate opportunism. You fail when you show up and dutifully perform at trivia interviews. You fail when you make yourself an open book and indicate the need to account for every detail of your workday. You fail when you raise the organization above yourself. You succeed when you stop doing all this and become other—when you start treating your employer not as a larger group with a larger cause, but as a temporary business partner that is an equal.

The budding opportunist quickly comes to understand why the journeyman idealist fails to call the shots. It’s because he’s a programmer, and programmers don’t call the shots.

You must sell out and believe in selling out, taking your joy of working with the tech and completely compartmentalizing it. Fun with toys is for outside the office. Programming is not a calling, and it’s not a craft. It’s just automation that increases top line revenue through product or reduces bottom line costs through efficiency.

You don’t solve a hard computer science problem by chipping away at it 2 percent at a time until, after fifty units of time, you finish. You solve it by sitting there, drawing sketches on napkins and paper for weeks, having an aha moment, and then banging out some code for an hour.

If this were a game of musical chairs, then when the music stopped, the line-level developer would be standing.

You don’t want to be an incompetent programmer (or be known as one, anyway), but you also don’t want to be your team’s clean up hitter.If (and I speak from experience here) you become known as the person on a team of tent hat delivers half of each release’s features,you’re fashioning a delivery trap for yourself that’s sprung and made of granite. You’ll never escape because the organization can’t afford to let you. Instead, you need people to say of you something like, “He’s a decent programmer, but where he really shines is getting the most out of the other programmers.”

[Hablando de subir niveles jerárquicos en una corporación] There are just too many people in your way.

Opportunists realize that there’s no such thing as a company outside of tax and legal documents. In other words, opportunists don’t view themselves as a tiny company dealing with a massive one. Rather, they view themselves as a tiny company dealing with a large population of other tiny companies.

Remember, there is no company. But your boss is your only client, so improving that client’s life will bode well for you (at least until you secure better options).

Instead of talking about the one time you had supervisory responsibility, say instead, “Every time I’ve had supervisory responsibility for a team, I’ve…” If this were a US political debate fact-check, the panel would call it “true but misleading”. And that’s fine because “true, but misleading” is opportunist for “I’m about to get a better job.”

People are more likely to call you out or dismiss you if you make things up. So I’d advise a loose but consistent relationship to the truth.

Push until someone calls BS, and then back off. If you understand the limits, you can capitalize on human cognitive biases to normalize the stories. Extrapolate and up sell your experience routinely with those around you, and your tale will start become part of the general, accepted corporate canon.

If you carefully build the resume of the person you want to be when you next interview, you will land those interviews.

In a corporate setting where the upper echelons tend to be populated by people that you view as self-serving and self-promoting, did you think you’d get there another way? Did you think it would happen with over performance, scrupulous honesty, loyalty, and waiting your turn?

The corporation has evolved to its current state over the course of thousands of years. And that state is one in which you have to behave like a self-interested sociopath to enjoy sustained, rapid success. If that sounds like madness, it’s because that is madness.

For most, there’s absolutely no question of what happens—go to college, get a corporate job. It has spread to every corner of our society and brought with it Taylor’s concept of layering. Only the inconsequential peons actually do the work that operates the business. Important people supervise those goldbrickers and really important people sit back and pull the strings of those managers between rounds of golf.

the essential characteristic of a modern corporation: growth for growth’s sake.

working from wherever I happen to be and at whatever hours I please, all while earning a respectable living. This is possible because of our modern global knowledge-work economy. We have technology that allows us to be effective from anywhere in roles with high market value. Yet we still work as though we didn’t.

As fast as we can train entry level developers, even more demand opens up for phone apps, websites, and refrigerators that tweet.

And in that world, a new entity reigns supreme: the autonomous developer opportunist.

Developer opportunists can hope for meaningful advancement because it is within their power to execute.

The first property of the developer opportunist is to recognize that writing code is a means to an end.

Blogging is, perhaps, the most common vehicle and was frequently mentioned. But podcast appearances, user group participation, video creations, conference speaking, etc. all factor heavily into the equation for the people here. They have made themselves known by marketing themselves.

Creating publicly available content makes a great centerpiece for that marketing.

and the developer opportunist in general constantly monitor their surroundings for chances to improve their lives and careers. All of their surroundings.

It’s also a big part of the reason that developer opportunists don’t and can’t spend all of their time programming. They need to spend some of their time acquiring work.

Pragmatists resign themselves to whatever work gets dumped in their laps, telling themselves that work is work is work.

Developer opportunists have options.

The workaday programmer uses his programming resume to ask the favor of a job. Contrast this with John’s situation, where the company approaches John, asking for the favor of his services.

And if you’ve diversified, even when you seek out options, any particular one becomes less drastically important.

She’s in such demand not necessarily because she’s the most skilled, smartest, or most technically knowledgeable. She’s in such demand because she does an incredible job of identifying what others value and positioning herself uniquely to deliver that value. Superior technical prowess helps, but developer opportunism, predicated upon options and granting autonomy, comes from understanding of and fluency with business.

[Las partes del negocio de software] 1. Product/service creation (“I write code.”) 2. Operations/delivery (“I’ll deliver the code to you by January 25th, and check in with you every 2 weeks in the interim.”) 3. Accounting(“When I’ve delivered the code, I want you to pay me, and I’ll keep track of whether you have or not.”) 4. Sales (“I charge $100 per hour, but I’ll offer a weekly rate of $3500 and a monthly rate of $12,000.”) 5. Marketing (“Check out my blog and website for tips on writing good code.”)

You could have the absolute perfect, killer technical product sent from the future and indistinguishable from magic, and, without the other components of a business, you will not make any money.

Developer hegemony arrives when we reach a critical mass of understanding and caring about this truth.

Accept its necessity, embrace its existence, respect it enough to learn about it, and make yourself into a complete business person whose trade happens to be software.

There are several reasons. Probably chief among that is that a significant portion of software developers are terrible marketers. Not only terrible at knowing and articulating their worth, but emotionally tied to an idea that marketing is beneath them.

We look at the corporate world and demand that it accommodate us with roles where we need not be burdened by thinking of the business. The corporate world is all too happy to indulge our demand, pay us a third of what we’re worth, and let us exist in a bubble of illusory superiority.

What would sales look like if developers ruled the world? Instead, we regard these other professions the way most of us regard the vocation of plumbers specializing in sewage – it needs to exist, but I want to stay as far from it as possible and not think about it.

What would sales look like if developers ruled the world? Instead, we regard these other professions the way most of us regard the vocation of plumbers specializing in sewage – it needs to exist, but I want to stay as far from it as possible and not think about it.

The value proposition that we offer has deep roots in efficiency.

Efficiency equals stuff divided by time.

Time is, perhaps, the most important commodity of the digital age.

Our value proposition is that we provide expertise in efficiency. “I help you have more time and money.”

“That’s not how we do business. You don’t come to us when you’ve planned the details of your site. You don’t even come to us when you think you need a site. Rather, you come to us the moment that someone says, ‘it’d be a lot easier if our customers could order stuff online.’ You’re talking there about making your operation more efficient, and efficiency is our specialty. We’ll be the judge of whether you need a site or not and, if you do, how it should work – what its ‘spec’ needs to be.”

And best of all, Efficiencer firms will have an utter monopoly on making their own marketing, finance, sales, and operations more efficient. Not only can they dictate and replace – they can automate as well.

I guess you can accuse me of being an optimist. I think we’re heading in the direction I layout. My goal in writing this book is to help us get there faster.

Breaking down the silos and walls of this type of specialization has, counter intuitively, led to large efficiency gains in our line of work. And yet, one sacred silo remains: business/strategy versus software development.

The firm’s principals are programmers. They are not former programmers, kinda-sorta programmers, nor any of the other designations that principals of such firms might currently hold. They still program. But they also run the firm, and they also speak to clients about their business operations and how the efficiencer firm can make their business more, well, efficient.

if you started an efficiencer firm, you would not take specs, and you would not take wireframes, and you would not take direction on software. Software (and, by extension, automation/efficiency) is your area of expertise–not your client’s. In the future, this is how more and more software will get written.

We’ll get there by slowing ceasing to sell app dev and starting to sell efficiency.

Staff aug is a matter of whose vision you execute. If it’s anyone’s other than yours, you’re augmenting their staff.

“we help organizations without a public digital presence dramatically increase the volume of orders they can handle.”

I mention it because it gives you yet another pretext for having the strategic, “why” conversation for the project. You can’t attempt to ascertain the value of an initiative without having a strategic discussion. And, again, if you explain that the strategic conversation is part of your discovery and quote process, clients will be a lot less likely to take it out of turn.

The most important thing is to position yourself as a business expert that can bring automation to bear. Then, you can build a suite of offerings around that common theme.

Developer hegemony will start with small firms and developers catering to one another. It will gain steam as more leave traditional work roles and solicit help from the emerging industry of catering to these firms. It will become dominant as we offer more niche productized services and scratching business itches. And it will culminate with efficiencer firms as the new normal for telling businesses where, when and how software should be written.

You can grow an empire by earning margins on the labor of progressively more people. But it’s an ongoing battle, and it’s never going to be as pure, simple, and satisfying as driving up profitability of your own one person operation. When you grow to expand your revenue as an owner, you’ll always be chasing that dragon.

we are efficiencers. Scale is the opposite of efficiency – it’s brute force.

this lightweight, nimble model seems entirely 21st century appropriate for people who won their means of production and can work anywhere with a wifi signal and their laptop.

“Well, Ms. Smith, we need to add some headcount to get this software in front of our biggest client by October and we think you can help us with that… if you don’t mind explaining why manhole covers are round.” It’s a wonder that commerce is even possible in our society.

Whatever you might have in mind, working as a partner in a small firm makes this much more likely. If you grow larger, start employing people, and looking more like a traditional company, you’re the boss. The boss has to be present to supervise the grunts. Before you know it, you’ll be only nominally less trapped than you are in a typical 9-5 gig.

I frequently explain that trying to automate a process as you figure it out is a mistake. Get the process right first, then simplify it to core principles and, only then, do you automate.

My honest opinion on “the best way to scale agile” is “you don’t.”

I don’t want developer hegemony to look like Animal Farm. I don’t want us to use our leverage to become the opportunists presiding over the pyramid instead of the pragmatists at the bottom of it. It’s time to stop working as if all commerce were 19th century textile factories.

If you’re a partnership of well-traveled efficiencers, you will know hundreds of possible people.

I’ve subcontracted labor both to former colleagues and strangers without anything resembling an interview. Do you know what I did instead? I asked them if they thought they could do the work. And do you know what else? They answered honestly. You might think I’m a sucker, but this has never once come back to haunt me.

Given that they’re knowledge workers, law firms seem a more appropriate metaphor for our work than assembly lines, but don’t get carried away.

we could sure use less anachronistic labor laws, particularly around who is and is not considered an employee. As the increasingly global and digital world hurtles toward the gig economy, these laws will creakily catch up, even if progress is maddeningly slow.

I value them for what I learned at those schools, for the life experience, and for what they meant on my resume at one time (after a bunch of years, it kind of stops mattering where you went to school).

Efficiencer firms should not enter the business of human capital investment, in my opinion.

I firmly believe that we need to start thinking of ourselves as automation professionals – efficiencers.

Learn that if you build it, they won’t necessarily come.

Don’t set your sights on billion dollar market cap, and don’t delude yourself in to thinking you’ll rule a massive empire. But learn from them that you can enter and work on your own terms. We own our own means of production and have the ability to easily bootstrap ourselves. Developer hegemony involves capitalizing on those goals, and it means you don’t have to wait for anything to do so.

Corporate IT in these sorts of organizations typically serves two purposes: internal cost saving automation and product enhancement.

[Hablando de corporaciones normales] these organizations do the ostensibly sensible thing by using salaried, full time software developers (often inexperienced ones) instead of much more expensive app dev firms. The problem comes from the fact that they wind up doing their own app dev so badly that it has a higher total cost of ownership than it would have had they farmed everything out to an app dev shop.

if you sell someone else’s hourly labor as a product, the person providing that labor is hardly credible as a strategic partner.

So let them come in at 10, work from home, wear jeans, eat at their desks, etc. If you’re trying to fight and win those battles with software developers, you’re soon going to start winning them by forfeit, since no developers will be in your company to fight back.

Suffering through commutes and choosing only from among the jobs in a 20 mile vicinity have historically been unavoidable. They’re not anymore. And, if you try to force the people within 20 miles of you to do that, some company on the other side of the globe is going to drink your milkshake by hiring the most effective people right out from under your nose.

[Hablando de desarrolladores en la corporación] Find ways to treat them as partners, as efficiency experts,and as autonomous, independent humans, and you’ll be just fine in the years to come.

Stop pretending that software developers are doing labor work for you, and stop pretending that they’ll work for you forever.

The company still paternalistically talks about being “a family” of 500 people and insists on requiring permission for “authorized” absences, vacations, and even showing up late one day.

Remember, your goal isn’t to find things that you can write code to solve – your goal is to find and eliminate efficiencies with automation.

As John Sonmez puts it, when you work for someone else, you’re building their empire instead of yours. When you sign an agreement like this, you agree never to build your own empire.

The larger the company, the necessarily thicker you’ll find the idealist layer. But that’s not really even the worst of it, since you’re not necessarily looking to play the ethically questionable opportunist game.

Thwarting the journeyman idealist phenomenon also means saying no to algorithm/whiteboard interviews.

The future of software development does not lie inside of companies like this, but rather inside of efficiencer firms (and, realistically, custom app dev shops) that sell to them.

Don’t drift into this trap. Whiteboarding things or solving problems using commodity algorithms has no bearing on your ability to do a programming job, unless the job involves going back in time to when Quicksort wasn’t a thing.

You don’t want to go places that restrict you from conducting your own affairs, that bury you below layers of journeyman and regular idealists, and that aim to make you devote your life to the company. All of these things prevent you from advancing your own interests and speaking at the strategic level.

No matter what the future looks like for us and for you, you’re going to need a reputation and a network. If someone will pay you to start building that, then you’ve effectively worked out a deal where you get paid to market yourself. If you ever go solo or run a small business, you will appreciate how valuable that is.

[Hablando de iniciar un blog propio] Should you build it by hand or use a CMS? Will people think less of you if it doesn’t somehow involve github? Stop it. Seriously.

Thinking of and selling value is what will allow you to start selling as an efficiencer and claiming your own autonomy.

No doubt you’ve stored up a few rants and a handful of how to posts over the years. But once you expend that initial store of ideas, it can be hard to keep going. To combat this, I suggest limiting your initial cadence. Decide to do a post per week. If you are inspired early on and want to do more than that, then queue them up instead of sending them live.

The point isn’t (yet) to do well enough to quit your day job. The point is to make mistakes and learn from them. The point is to develop an understanding of the world of business that only experience can teach you. The point is to establish yourself as an efficiencer before you take any risks with full time work.

Take a product or productized service, build it entirely, end to end, and sell it.

Regain autonomy and dignity by becoming an automation expert instead of a javascript geek.

They created systems of human laborers. Actually, let’s rephrase that. They programmed systems of human laborers, who became modern day pragmatists.

Only a select few in the organization could create efficiency, which is perhaps the single most valuable commodity in the modern world (what with time being the equally non-renwable resource for which all of us would go to the ends of the Earth to get more).

Today, we live in a world where the pragmatist engineers, developers, and designers create all of the efficiency and have all of the means of production for doing so.

We have absolutely no need for owners and managers, for traditional opportunists and idealists.

But in the context of a smaller, efficiencer firm, where an individual’s value is obvious, can’t you imagine them charging at something that actually matters? The over performing idealist would (and will) make a true high performer in a situation with rational cause and effect scenarios.

We have created and nurtured a technology that absolutely democratizes opportunity. All we need to do now is throw off the shackles of an institution that resists that democratization. Pragmatists, idealists, and opportunists will all play their parts.

If you want to use the internet as a sales or distribution channel, does it make sense to hire several different types of specialized people to manage projects, write code, write tests, design “user experiences” and do “business analysis?” Or does it make more sense to call someone that specializes in automating sales and distribution of appliances to take care of it for you?

The gig economy, globalism, and control of our means of production are all here to stay in an increasingly digital, increasingly knowledge work driven economy.

Humans will collaborate in corporate structures more reminiscent of atoms assembling into molecules and decomposing than of the early 20th century global conglomerates.

I’m proposing a world where we’re all opportunists and we’re all adults, conducting business on our own terms. I’m proposing a world where we’re all knowledge workers, having replaced non-thinking work with automation. And I’m proposing a world where those of us who trade and specialize in humanity’s most valuable commodity are justly compensated. I’m proposing developer hegemony as the future of labor.