Posted by ColinEberhardt 6 hours ago
I still believe in ensuring that contributors understand every line of shipped code. This creates a natural ceiling on the width of their domain; though AI can help them learn more quickly, everyone can't know everything about engineering.
AI does not increase co-ordination costs per se; it increases productivity. You can achieve the same result with fewer people using AI, so it should decrease co-ordination costs. Only when you add AI while keeping the organization constant should co-ordination costs increase.
When I left my corporate engineering job wayyyyy back in March, there were engineers and engineering leaders going off and getting a lot done, individually or in small teams. But project management and QA couldn't keep up with it. Managers resorted to turning their tokens loose on Jira just to try to make sense of it all (which, ironically made them the first to hit their token goals on the dashboard every week, and brought Jira to it's knees).
And, even worse, the junior engineers had no idea what was going on or how to get involved in anything.
The result was an increasingly chaotic mess.
Coordination has in my experience always been the big bottleneck in getting anything done, it’s just not hurt so much because everyone expected a feature that could have been done in a fortnight to take months.
> Coordination has in my experience always been the big bottleneck in getting anything done
I work at a large enterprise you've heard of. They're currently re-organizing the product area to remove currently-static two pizza teams into an amorphous blob of feature-oriented teams. Once the feature is complete, the team is dissolved and the engineers re-enter the pool, tasked with new features.
All that to say, I think you're right on the money with your assessment.
I am not sure if that's a good thing for Claude, or an indictment of Jira.
I think AI has a lot of value when used with thoughtful care. I think a lot of the conversations around it are really about frustrations with charlatans.
The author could have written a rather incisive 800 words on this if he'd really tried.
But I will not read 2500 words of redundant, repetitive slop. It's really bad writing.
There is no pacing or conclusion to speak of. It's sort of just a loose list alternating between upsides and downsides, punctuated by the usual bullshit list-y ad-copy summations:
The build cost collapsed, the alignment cost rose, the thinking time disappeared, and the productivity gains got captured by output volume rather than output quality.> the thinking time disappeared
It did not. The author decided against spending time thinking. Nobody is following him around whacking him on the head if he blocks off tomorrow morning to go heads down on something. At least, I don't think they are?
A tiny bit of project management discipline can go a long way.
Before AI, trying to program even a simple thing was an exercise in frustration from rules that had only been put in place by programmers to protect their own jobs and make it as difficult as possible for a normal person to develop. Oh! You mixed tabs and spaces, now your code will not compile and you're stuck another day. Oh! You forgot a semicolon, now the code won't run, even though the software points out your missed semicolon and thus knows how to fix it.
AI takes care of all that bagage and now I and others can make fully functional software that solves real world problem for real people.
That’s on the level of complaining about having to learn music theory to play the piano, or to learn grammar to write a report. Or having to learn the road rules to drive a car on the street.
But I understand that the majority of hackers here think that spelling mistakes in a report means that somebody is bad at their job as a police officer. And I know that a good portion of hackers here think that a suspect should have all charges dismissed if a police officer has mixed tabs and spaces when typing his final report, or forgot a semicolon. Or used ' where he should have used ".
Indentation rule are about scoping, You need a delimiter to mark end of a statements, and quoting often have to do with value type and interpolation. They’re not merely visual markers. Messing them up is the equivalent of answering “400 miles” when asked “what’s the color of the sky?”.
ADDENDUM: Yep writing code is filing a form. And just like any form, it’s easy to validate basic errors like syntax and type of values. The hard thing is to validate what happens after the form is processed. i.e, the intent of filing that specific form.
I've spent the last three weeks working out a spec and didn't even start the development process yet.
The idea that the syntax of the language would ever be a bottleneck sounds ridiculous to me.
The gate keeping allegations are also incomprehensible. The vast majority of developers are working on making their jobs easier. There wouldn't be an endless stream of new programming languages, libraries and frameworks, if there was a software guild that you needed approval from to work on software. Even if such a guild existed, it would get obsoleted by the competition.
There are cases of people maximizing their own job security by writing terrible and incomprehensible code, but most experienced developers have gotten bitten by their own cleverness and try to make their code as easy to understand and as accessible as possible.
Things like Java Server Faces and Java Enterprise Edition died out a long time ago. The XML craze is over. Roy Fielding style REST/HATEOAS is dead and everything is an HTTP API with OpenAPI docs nowadays. People understand by now that micro service architectures only make sense for organisational purposes but not for technical reasons. NoSQL also waned and everyone is basically putting their JSON into PostgreSQL if they need to store complex hierarchical data.
Why do you even care about irrelevant things like semicolons? Like, any reasonable editor gives you squiggly lines so you can't miss them, meanwhile in practice having a line delimiter helps disambiguate hairy expressions and produce more readable error messages. For me they are an imperceptible cost that I couldn't care less about.
If you talked about null pointers, which are basically a landmine in every line you've ever written, waiting for a chance to explode, maybe you'd have a point but even nullable pointers are an idea that is being relegated to the history books.
Great! Then you can pick any man of the street and show him some code, and he will understand the syntax intuitively and start coding? Dollar signs, semicolons, brackets and === and the difference between "" and ''. It's all self explanatory.
Driving a motorized vehicle was a highly specialized task in the beginning. You had to prime fuel, adjust carb needles, maybe tighten a chain after a day of driving. Manufacturers did all they could to make vehicles as easy as possible for the users, so that they can focus on actually driving, and not fighting against the machine. Look at where cars are today - anybody can drive without needing any skills relating to the machine. AI is doing the same for programming, which is great.
Now a common man can make software without learning thousands of different arbitrary rules.
A programming language is way easier than learning a foreign natural language. I believe the issue you struggle with is formal logic, not the syntax. Not everyone is trained to think formally (and some may find it arduous).
I want to point out if the organizational model or your team's engineers are resistant to change, it doesn't matter how good of an engineer you are, or how good at proposal writing you are. With or without AI.