Sounds like the author is trying to justify building new stuff without being responsible for any of it.
Whatever delusions they have about the "non-linear", the big ideas are almost certainly not going to come from an engineer who doesn't have a seat at the table with the people actually running the business.
If one did they would hear all kinds of stuff that would not only wreck their self-esteem, but not have any obvious technical solutions. Engineers are not smarter than anyone else. Imagine that.
It's not so much about finding the non-linear but about finding what actually matters to the business you work for first. It's almost never going to be more software.
No matter who you are in a company, there is, with probability one, someone who has specific context on something that is non-linear... that you, from your context, think is just linear. (If you're in leadership, this is even more important to understand!)
And if you're arguing that something else is non-linear and thus more important, you're de facto arguing on whether the thing you want to deprioritize is linear.
As CTO at a relatively-early-stage startup, one of my most important jobs is to give both technical and non-technical colleagues the benefit of the doubt that they've spotted something that I didn't know was a critical non-linear opportunity, and juggle expectations so that the non-linear thing they discovered can be addressed before it becomes either a problem or a missed opportunity.
For instance, "customer X filed a ticket that they will need Y" can be easy to dismiss as a linear improvement-per-unit-work that's out of scope... but I need to keep my door open to hearing from our Customer X quarterback that Customer X is the nexus for an entire consortium of partners who all need Y and will adore us for it, in ways that might outrun the incremental improvements we'd already had planned. And, similarly, if an engineer discovers that Z is a non-linear drag of technical debt, that could be equally vital to our ability to move in an agile manner in the near future.
But I do hope each person allocates their advocacy-time (or prickliness-allocation, or communications bandwidth, depending on who you ask) towards the things they believe are the most non-linear, so we can make the right decisions as a team without getting bogged down in meetings and debates. And they know I'll try to do the same. So the mental model, "only debate the non-linear," is very useful up and down the stack.
This kind of anti-intellectualism is extremely harmful. In reality engineers generally are smarter than average and that’s a good thing if you like things like safe aviation.
>> "if you like things like safe aviation."
Safety is less about intelligence and more about diligence. Brilliant doctors still balk at checklists even though they save lives. Most engineering disasters happen because someone skipped a safety measure.
From personal experience sitting with higher management I can assure you that they are one of the dumbest, most ignorant people I have ever met.
I know more about business and their products than they do. Their only qualifications are high self-confidence and social connections. I wouldn't trust them to do even simple manual labor.
Of course it doesn't. And that's because "the transition" he refers to is an illusion at best, and a lie we tell ourselves at worst. It's all about politics and getting on your boss' good side. Toot your own horn and you'll move up the ladder of made up titles. Congratulations. It's not more complicated than that.
Most managers don't look at code, and even when they do, they can't distinguish good work from CRUD boilerplate. Most managers don't know what it is you do, only what you say it is you do.
And the reason why we're in this situation in the first place is because our management class is filled with people who just want things to work without issue so they can collect a paycheck off of someone else's labor and provide for their families.
Managers don't care about your work, and you are being tricked into caring about your work so that managers don't have to.
I've been out of big-name marquee tech for several years now, but as recently as late last decade it was in fact possible to achieve meaningful seniority as an engineering manager on the back of serious engagement with the subject matter. I at one time managed a team of roughly ~35 serious engineers and several managers in a critical path and was considered senior enough to be called an L7 because I read at least and usually commented on one or more diffs a day, and worked on and usually landed a diff or two a week.
I don't know where the meme started that managing technical work was orthogonal to understanding technical work, but CTOs like Carmack disagree (FWIW little old me does as well). In almost any other field from fabrication in a shop full of machines to a law firm, the top person is the most expert person, and I think it's a weird path-dependent aberration that software got off that proven paved path.
YMMV but this stuff is IMHO getting so complicated that I think managers will be trending more rather than less technical for the foreseeable future.
There's is a continuum in how well you can perform as a software developer and this is a non-linear phenomena. That said the "title" is definitely often a made up thing.
It's not like politics don't come into play. Politics are always at play. But doing an obviously poor job with great politics won't work in most organizations and you can be a good engineer and still understand the politics and advance your abilities and advance in the organization.
I've had 2 managers who were better than this, and they were prior programmers who still understood the code but had moved up.
The best managers are good coders who realize that by directing they can actually accomplish more across many areas than they could have as a individual contributed.
But 4/5 are disconnected paycheck collectors who need to be told stories
> Good coders who realize that by directing they can actually accomplish more across many areas.
This isn't a manager, this is a director. Great to have but not the person you want directly managing teams. The people you want directly managing teams are "servant managers", "shit umbrellas" or because it's silly there's even terms for these just "non-shitty managers." Managers should be people who enable the devs not because of their coding talent but because of their non-coding talent. They organize all your work into a nice little streams so you don't have to carry the mental load, advocate for the needs of your team by translating tech speak into product management speak, dealing with all the external requests to your team (i.e. saying no), handling on-call schedules, coordinating with the release managers and support, helps you with career development, the list goes on.
A good dev manager lets you turn off brain to all annoyances and distractions not related to your technical work.
So this whole post boils down to something like: “only debate decisions that might have big impacts.” I don’t really see what’s interesting about that idea.
Actually doing what the author describes is often impossible except in an intuitive way. How could you know a priori which decisions might have big impacts? On a project of any complexity you need either deep specific experience or a very accurate working model of the entire project. You aren’t likely to have either.
This has been previously covered in depth, even in software, although of course it could possibly be improved.
Painting the bikeshed is one example: http://phk.freebsd.dk/sagas/bikeshed/
And yet, many people might agree with it but still debate trivial matters
Click to read more (28 min read)
nit: (so I don't lose the habit) that flashing gif in the middle causes a more than linear nuisance while I'm trying to read the article, otherwise LGTM!
Years later I read that he really regretted it because he realized that project shouldn't be even started unless they're too important to be micromanaged...
It is, don't start linear return projects...
That's... still linear? If the concept of non-linearity is supposed to add anything to this article, arguably this should be at least the second derivative!
I'm coming in to the project at a point where a couple of dev-months have already gone into learning and spinning up [the unsupported infrastructure we will have to maintain that has nothing to do with our actual app], and I'm confident nobody wants to scrap it all - but that sunk cost is nothing compared to maintaining everything for the next x years. There are zero functional challenges or business costs from using [the existing supported infrastructure from another department], and it would immediately eliminate the six highest items on the project list of risks. And it's not that they thought about this and decided not to: as far as I can tell from specs, design docs, etc., it has simply not occurred to anyone on the project.
>"Only debate the non-linear. If there is a strong case to be made that a proposal will create some non-linear [positive] impact, then it is worth debating at some length. [...] As a concrete example, I would rather implement a self-service e-commerce platform for a company’s merchandising team, rather than make it easier for engineers to service a ticket to build a /products/hat/:id endpoint every 6 weeks."
Reminds me of the Joel Spolsky story about one of his employees, Noah Weiss:
"Thanks or No Thanks - A young employee came up with an idea that added a million dollars to our bottom line." (Inc. Magazine, Jan 2009)
https://www.inc.com/magazine/20090101/how-hard-could-it-be-t...
Apparently Noah debated creating a job board with Joel (Joel was originally against it) -- until he eventually got his way... and added a million dollars to Joel's company's bottom line...
Related: "Pick your battles"
This quality possibly varies from linter to linter, YMMV.
The author reflects on their struggle to discern whether a debate is worth having in a work context, leading them to identify the need to find an equilibrium level of conflict, which can increase efficiency and morale of a team. They argue that this level is rooted internally in an individual's confidence level and emphasise the importance of periodic debates, which can outweigh occasional critical discussions. To find this equilibrium, the author advises a personal principle to only debate the non-linear, i.e., issues that can have a non-linear impact on the organisation, as opposed to those that add incremental value.