Unfortunately I think Cognitive Debt is the cry of the software craftsperson who thought they were an Engineer. Upon working with the agent subcontractor, the agent factory, the agent part vendor, they approached it as a craft; they found themselves wanting to walk through the offices of the subcontractor reviewing screens, inspect pieces at the factory, and get the internal design for the parts they ordered. It's natural to get overwhelmed: this is why Engineers have contracts, specifications, design drawings, datasheets, and characterization data, handed over at clearly defined boundaries of abstraction, accepting the other side may be a black box.
Of course, we have had compilers and tooling, but those are the pencil and drafting board of the draftsperson. An ecosystem of packages, dependencies and APIs has evolved, but those are often just spells the software magician invokes after reading the spellbook^H^H^H^H^H^H^H^H^H stackoverflow^H^H^H^H^H^H^H^H^H^H^H^H^H API documentation.
We are going to need to build a new set of boundaries and abstractions with new handover protocols to manage this mess.
I think this is nothing new and comes down to just working with people, even without LLMs - many times I found myself puzzled by "what does this code do that was merged in by this person without my approval?"; without specs and docs it's inevitable, unless you're maniacally inspecting every PR and holding this knowledge in your head.
> this is why Engineers have contracts, specifications, design drawings, datasheets, and characterization data, handed over at clearly defined boundaries of abstraction
AND inspecting the actual production line. Even Apple audits Foxconn (the most successful and reliable assembly line humans ever built) onsite annually.
Because waterfall software engineering has been so successful, right? ;-)
Lots of very successful software was built using a waterfall approach. It's a methodology that works well if you know precisely what the end result needs to be. That doesn't make it appropriate for everything - if you don't know what the customer needs, or if you want to get an MVP out, then Agile works better, but you shouldn't dismiss an approach because it doesn't work everywhere.
Plus, 'agile' in quite a lot companies is really waterfall that's been broken into sprints without the planning of proper waterfall or the discovery and learning of real Agile. The software still gets built though. Maybe software is actually quite easy to plan.
Agilefall, the worst of both worlds.
Because agile has been so successful, right? ;)
In fact, agile has been extremely successful.
It's the people that claim to "do agile" that invariably don't do it. But software development used to fail most of the time, and it doesn't do that anymore.
What makes you say that it has been extremely successful? And when you say doesn't fail anymore, do you mean it doesn't go over budget and/or changes scope?
Agile cannot go over budget or scope because those are failures of planning. Agile is the methodology that was developed specifically to counteract those problems with planning. Projects that use Agile can go over budget and scope but they never do that because they are using Agile, rather they use Agile because they might do that.
It always felt like Agile is the lazy attempt of people unwilling to learn what it takes to build software, to make it more predictable. Unfortunately project planning methods that work for buildings are not really great for software. It's just corpo stuff project managers do to feel meaningful.
It used to fail once after a long time, now software fails a lot every 2 weeks.
They cloned one true scottsmann in the end..
If the idea does not compute with human nature, the idea is flawed, its basis the knowledge of human nature is non-existent and thus it had no place in reality after all..
Hmm that reminds me of what some people say about communism :)
Waterfall was also extremely successful.
People who failed just did it wrong. /s
Agile fails when folks don't adjust and tailor the process to the specific needs of their team or organization but instead try to cargo cult it.
so it's called agile when it works, but not when it doesn't, got it!
No, “it’s” adaptive and if you’re not adaptive then you’re quite literally not doing “it”.
Adaptive methods aren’t something unique to Agile, it’s an aspect found in basic business methodologies and processes. Very basic, textbook stuff. So when software types start grumping about their dysfunctional organizations and blaming methods they aren’t actually applying, it isn’t an indictment of the method and never can be.
If “Adaptive Heat Cycle 3.5” is a process where we turn down the thermostat when we’re too hot, and up when we’re too cold, based on a vote every 20 min: a bunch of sweaty people who are not voting and not changing the temp and lying about their needs because their boss sucks are not using the process. The fact they claim they are is only further proof of dysfunction and incompetence.
Agile has a built in solution to all agile complaints: the agile process where you fix the problem. No fix? Not agile. Blame the cargo cult players, not the rules.
You gotta understand how to use a tool for it to be effective, yes.
And if a tool is that difficult to use, how can you tell if the problem is in the tool or the user? There's a large industry built around doing training and certifications in agile methodologies now. If a tool is that difficult to get right, maybe it's just not a good tool to begin with.
To be fair, the manifesto and methodology is quite good in theory. But I just have never heard of(or experienced) it working properly and the response is always that it wasn't implemented correctly.
So the widespread existence of business programs, certification and training heavy, obviously proves every project and business methodology is “bad” and the problem is the tool of “business methodologies”?
PRINCE2, for example, is constantly fumbled and misunderstood by immature juniors. They don’t get it, and screw it up. So… what? Haphazard planning and last minute project detonations must replace any effort to avoid such outcomes?
It’s chicken and egg. You have screwups who can’t manage and think wrong, so you formalize rules so dummies can’t hurt leadership, and then you have to train people. A stunning number fail to ‘get it’, suck at management, and do what they feel with justifications instead of following the book. That’s standard distribution at play.
Blaming methods for basic management failures is a management and culture failure. “I’ve never seen [agile] implemented correctly” is saying you didn’t fix communication issues. That’s fine, that’s hard. But that’s a meatspace issue, not process.
I am not sure how you jumped from what I said to this. I don't believe I claimed that every project and business methodology is bad. I can only speak from my experience and am not confident enough to say how every project and business methodology should or shouldn't work.
I do believe you are helping to make my point though. I am saying that the process may very well be perfection but if entities within "meatspace" cannot use it well and may never be able to use it well then how useful really is it.
As if anything in the world is ever pure. Waterfall can have small scrums run on side-shows, while staying waterfally on the center project.
There is no party capable to take responsibility on the other side of the handover protocol.
Yes, this is the thing - an agent is not a counter party. But it role plays one really well.
You would need the agent to be a processing step owned by someone responsible. But the intelligent part of an agent is what makes it viable as something more than a processing step. What to do with an intelligence that can't take responsibility? Not answering this question leads to cognitive debt.