This hits close enough to home to draw blood: <htt...
# thinking-together
k
f
"Automation increases bureaucratic complexity" is basically the same thought as "Moore's Law increases software complexity". Machines get more powerful, and that's inevitable IMO. Instead of not using them, we should try to get better at using their power. "With great power comes great responsibility" and so on.
Legislation suffers from many effects known from software development. Most acts either add new laws or add special cases to existing ones. Therefore laws get more complex over time up to a point where even small changes might have unpredictable effects. Tax legislation comes to mind first, but I'm sure there are more examples. I believe we need to work on refactoring laws to ensure their sustainability.
❤️ 5
Test-Driven Development for tax legislation would be great. The test cases would be different people's situations (e.g. mid-income, 3 kids, ...) and any changes would have to make sure that they don't break existing scenarios. Thinking about it, law changes are mostly "tested in production". In Germany, there's been multiple laws that were intended to improve the situation for people having low-income jobs, but made it worse in the end. SW people know that testing in production is bad, so why should laws be any different?
😿 1
👍 2
k
Believe it or not, I've actually written before about this idea: https://www.ribbonfarm.com/2014/04/09/the-legibility-tradeoff. (I'm not a very good writer, so if you have trouble sticking with it, skip to the final section.)
👍 1
Returning to programming, I totally agree with this:
Instead of not using them, we should try to get better at using their power.
The way I would phrase it: if software isn't improving productivity, maybe you aren't using it right. We've tried adding it to bureaucracies, to the center/establishment, and it hasn't helped. Perhaps we should try adding it to the fringes, to the people ostensibly served by bureaucracy? This is why end-user programming matters.
d
I think the original author is saying that reducing the complexity of modern life is an important goal, it's needed to make society function more effectively. @Kartik Agaram, in what scenarios does end-user programming reduce the complexity of modern life?
g
this brings me back to the economics bachelor's thesis I tried to write that convinced me to get into programming: in the same way that providing a set of primitive, composable functionality via a programming language like lisp or smalltalk enables you to create abstractions for the specifics of your problem domain, policy should seek to provide people with simple tools that work together to help out your living situation
❤️ 1
so policy that's accretive for a series of exceptions (a bill supporting single parents in rural areas who lost jobs at automotive factories) create policy debt by overspecializing instead of having bills that aim to help eg parents, rural workers, the recently unemployed separately
k
@Doug Moen I think complexity is the wrong lens here. Increasing complexity can be a good thing. When it is, we call it 'sophistication'. No, the problem is complexity imbalance. Our bureaucracies are growing ever more complex, and meanwhile we still can't teach all our children to read, and most people's mental models of the world remain simple and stunted. The highest goal of end-user programming should be to help people thrive in the high essential complexity of modern life. That requires hacking away at the accidental (and deliberate!) complexities that burden the grass-roots. @Garth Goldwater You're asking for law-makers and policy-makers to have a sense of design, to truly internalize that reality is complex[0], to make laws that are tractable to enforce and to maintain. For this to happen, representatives with a sense of design have to out-compete representatives without. Which means voters have to have a sense of design. The highest goal of end-user programming should be to create better citizens. "Programming jobs" is a red herring. [0] http://johnsalvatier.org/blog/2017/reality-has-a-surprising-amount-of-detail
👍 1
Power = capability - accountability Adding software to a bureaucracy adds to its capability and therefore its power. Adding software to people adds to bureaucracy's accountability and therefore reduces its power.
g
@Kartik Agaram I'm pretty much in agreement with you—I was trying to work backwards by developing a design system for policy as an abstract goal (with justification for why the goal was a good idea in terms of utility, since economics seems to be a field with a disproportionate amount of policy influence relative to its empirical effectiveness) so I could then start asking questions like "How could we change society and its inhabitants' capabilities to encourage this kind of goal"
❤️ 1
k
Yes, indeed. Mine was a "yes, and" rather than a "yes, but" comment.
j
When engineers set out to build a bridge a bridge gets built.
It's definitely not fair to compare a ~50 year old field with a ~3000 year old field
w
@Jesse Aldridge thank you, yes!
👍 1
f
Yesterday, the German Interior Secretary Horst Seehofer said that he's intentionally making new acts complicated so that less people understand and complain about them (see https://twitter.com/ARD_BaB/status/1136652811045941249, in German unfortunately). Unbelievable! That's like intentionally writing complicated code so that reviewers don't get what you're doing. I'd be great if law-makers had a sense of design, but it seems like some of them don't even try to do things right. </policical_rage>
🤯 1
😥 1
w
An obfuscated law contest! Doublespeak is hardly new. At least Seehofer feels like he needs to mislead. Over here, they'll outright say, "we can't give people the vote. They would pass laws to the benefit of the majority, and then where would we elites be?"
k
@Felix Kohlgrüber that is indeed tragic, but I think it makes my case for me. Accidental complexity is only deliberately introduced because there's no penalty for doing so.
w
The point is that it's worse: there is an incentive to introduce complexity. The more convoluted the surface, the more likely there his an exploitable hole.
k
Worse than what? There's an incentive to be dishonest or to obfuscate only when you can get away with it. In this case politicians can get away with it because checking up on them takes too much effort. Any metric of complexity or over-engineering that you can automatically track will inevitably be gamed. So the only way out is lots of diverse metrics that become prohibitive to simultaneously game. Imagine 300M people yielding 1000 'guilds' of 20 people each that pursue independent approaches to tracking the complexity and design quality of laws. When the guilds raise concerns it actually affects polls, because even those who don't belong to them have the design sense to understand why design matters. Regardless of what your politics are. It takes 10x the effort to refute bullshit. But luckily we're 10^6 times the people. What could we do if software amplified every random question a citizen had?
k
@Felix Kohlgrüber I agree with all your thoughts about the complexity of law, but I'd also like to point out an important distinction compared to software: laws are not applied mechanistically. If the consequences of some combinations of laws are perceived as absurd, this can trigger a revision of the laws. This may sound a bit like testing in software engineering, except that for software there is no appeal mechanism offered to users.
k
Feels more like uncovering bugs in production.