Top
Best
New

Posted by epb_hn 9 hours ago

Magical systems thinking(worksinprogress.co)
235 points | 72 commentspage 2
sltr 8 hours ago|
> largely outside the typical congressional appropriation oversight channels

I've seen it happen more than a few times that when software needs to get made quickly, a crack team is assembled and Agile ceremonies and other bureaucratic decision processes are bypassed.

Are there general principles for when process is helpful and when it's not?

alex-mohr 7 hours ago||
Process is useful for raising the lowest deliveries quality, for making former-unknowns into knowns, and for preventing misaligned behavior when culture alone becomes insufficient.

If you have need for speed, a team that knows the space, and crucially a leader who can be trusted to depart from the usual process when that tradeoff better meets business needs, it can work really well. But also comes with increased risk.

ambicapter 6 hours ago|||
I think it's just that complex systems need maintenance, and if the maintenance isn't done (and it never is), the system eventually rusts to the point that it takes far more effort to go through it then start fresh.
crdrost 7 hours ago||
General principle 1: to make a meeting matter, make a decision. (A meeting at its most basic is kinda like a locking primitive, gets independent threads to synchronize for a short time. Think through why you need that synchrony.)

General principle 2: create focus on the critical path. (If each ticket you work on is slightly different from other tickets and no cookie-cutter solutions exist, then there is some chain of slow, annoying, winding steps, and the rest of the dependency graph doesn't really matter, just these big pains in the butt that often are linked in the dependency graph only by the fact that it's going to be one developer working on all of them and they can't work on them all simultaneously. It follows that you can only get interesting speed improvements if multiple developers are working on the same change. Note that daily stand up is an example of a meeting which does not make a decision—it could but in practice nobody uses it that way—but instead its function is to create pressure on the critical path. Often unhealthy pressure, someone was sprinting at 100% and now they are getting a little burned out, and daily stand up forces them to do something that they can report at standup lest they be honest and say that they're suffering.)

General principle 3: process helps create shared reality. (Consider two different ways to protect prod from the developers. In one way, everyone commits to main, some file or database table or configmap contains a list of features, and those features can be toggled in dev, uat, or prod. The process here is, whenever you change anything, you wrap it in a feature toggle, so that your change does not impact prod if that toggle is off. Versus, consider having three different branches, you can usually commit new features to dev, eventually we cut a release from Dev and push it to the UAT branch, cut a release from UAT to push to the prod branch. But these are separate branches because we might need to hotfix UAT or Prod. The process here can go in these two different directions, see, but one of them leads to a shared reality, this is the entirety of the code and all of the different ways that it can be configured in our production environment, and we need to carefully consider how we remove those feature toggles—versus the other one has three independent realities and nobody is considering all of the different ways that it can be configured or what is being removed, and periodically you get bugs because people didn't revert the revert—what, you didn't know that you needed to revert the revert, you always need to revert the revert. So process tends to be more lightweight if it generates one shared reality).

General principle 4: process needs to help you figure out, and keep highlighted, the “Useless Without.” (There are many nice-to-haves, in a given project. There are a lot of them that people will say are must-haves. The product must be secure, the product must be available at this website address, okay fine. But there is one business goal that the project serves, which, if that business goal is not accomplished, the whole project is useless. That is the Useless Without feature. So I worked on a shop floor system of kiosks for like 6 months once before I determined from talking to the stakeholders that the thing was actually Useless Without time tracking, and this is a sensitive issue because unionized pipefitters are understandably skittish around surveillance technology that could be used in dystopian ways. But we're going to address their needs by looking at the project only, trying to figure out how long each of the steps in building the project takes, but we still don't talk about how we're trying to make the shop floor run efficiently. But you understand every meeting I had before we had clarified this, was actively detrimental to my productivity on this task.)

nakamoto_damacy 5 hours ago||
If you think about it, all thinking is magical (in the sense that we, the universe and any of this exists at all.)

Having said that, there is no magical thinking in asserting that the government is bad at software. The government is bad at 99% of the things it does, but that 1% is keeping stuff running, despite the government trying really hard to fail at that 1%, too.

Stupid comment, I know.

Bukhmanizer 6 hours ago||
I don’t think the author is accurately characterizing Systems thinking but is closer to talking about something like Agile vs Waterfall. Which i think they’re still correct about, and there has been a sharp turn into waterfall-like thinking (though they will never call it that) in software development recently.
whatever1 6 hours ago||
Great article. I think one missing piece is that if you kick a system too far from its current “equilibrium” it can create self reinforcing loops (rather than kicking back) that lead to uncontrollable runaway.
bloqs 5 hours ago||
controversial opinion, while learnable to a degree, systems-orientated thought is fundamentally aligned with something biological, either born or developed in early years. People align more with "things" or "people". It's extremely rare someone is truly aligned with both.
rawgabbit 8 hours ago||
I like this saying better: every system is perfect until people get involved. People act irrationally because they are reacting to the nonsense that pervades their reality.
voidhorse 8 hours ago||
This essay focuses on a very narrow section of systems thinking and systems theory. There's an entire field, with many different subdisciplines beyond just the Club of Rome stuff (and which influenced them directly) that, quite explicitly also deals with systems that "fight back". In fact, any serious definition of systems thinking usually has said dynamics baked into it—systems are assumed to evolve from the start.

I'd encourage people to look into soft systems methodology, critical systems theory, and second order cybernetics, all of which are pretty explicitly concerned with the problem of the "system fighting back". The article is good, as works in progress articles usually are, but the initial premise and resulting coverage are shallow as far as the intellectual depth and lineage here goes.

vslira 8 hours ago|
Any particular resource to recommend?
firesteelrain 5 hours ago|||
“Thinking in Systems: A Primer” is the best first read.

Then, “Meltdown” and finally “The Fifth Discipline”

voidhorse 7 hours ago|||
Both of the books "Systems Thinkers" and "The Emerging Consensus in Social Systems Theory" are nice broad introductions into the historical developments, various lines of thought, and the massive space that is systems thinking. They should both give you a good initial starting point for further research.
scottfr 7 hours ago||
If you want to experiment with a version of the world model the article references, you can play with an implementation I put together here:

https://insightmaker.com/insight/2pCL5ePy8wWgr4SN8BQ4DD/The-...

mallowdram 5 hours ago||
Wait until "world models" fail to work along these lines. Models are always wrong. They're useful only as interpretations, they can never reproduce, reference, or mimic the events in question.

Another great example is Tansley's ecological systems model that he worked on for over many years with influence from Forrester only for the Odums to develop models, attempt to reproduce them in controlled environments and watch them fail miserably.

The cybernetic, computational, systems, world models are illusions all. AI has the same limitations simply because the infinity of tasks can never be modeled or automated.

Most of the ideas in the article can be seen, very clearly and cleverly narrated, in Curtis's best series "All Watched Over By Machines of Loving Grace" particularly episode 2.

luluthefirst 7 hours ago|
start small or fail big
cindyllm 7 hours ago|
[dead]
More comments...