Live data from Hacker News

The collapse of complex software

nolanlawson.com

21–30 of 304 posts

Re: The collapse of complex software

#21
Complexity in software is a lot like complexity in cuisine; most chefs want to stretch their abilities and create something memorable, transcendent even, but at the end of the day unless they’re cooking for themselves or friends and family there’s a business to be run.

So complexity has a diminishing return for economical reasons.

Re: The collapse of complex software

#22
An interesting problem is whether the complexity is unavoidable and if it is, we need to teach migration and proxying in Software Engineering 101.

We have an old app: dotnet webforms, it's clearly hanging on for its life and needs replacing but the mythical rewrite is impossible if you intend to rebuild and switch, it just involves too much time away from your core product.

Instead, we had to setup a proxy which could send all traffic between one of the two apps so we can move things a few at a time to the new system and all new work just gets built in the new system. It still takes a long time so I am now wondering whether as soon as we finish, we should immediately setup another new app alongside the current new one and repeat indefinitely.

It certainly wasn't easy to do because old and new frameworks are rarely able to share cookie formats/sessions etc so some hand-cranking was required.

Re: The collapse of complex software

#23
post #11

This is a problem I want to focus my life solving. I believe that software engineering can be made so simple and clear that it can be wielded by an extremely small team of engineers. I believe that there are finite and fundamental classes of problems, that underpin the vast majority of problems, that have a distinct visual representation, and that by representing these problems visually, you let your "visual coproces…

I think I understand what you're getting at, but do you have any examples? Like you said, seeing helps understanding! :-)

Re: The collapse of complex software

#24
post #3

Earlier quoted context omitted.

Every time our operating costs go up (eg, cloud providers), something else in the organization gets more complicated in order to make up the shortfall. Or super simple when we go out of business. No free lunches here.

That assumes operating costs go up with cloud providers. Some orgs see savings, but obviously not all.

Some developers are merely bad at math. Most are awful. Others take this flaw to epic proportions. Be afraid of the developer who confidently tells you the math works out.

It's true that a lot of organizations had operational teams that have become money pits, or pushed back on all quality of life improvements because they don't have the talent, the budget, or the imagination to pull it off. When we move to the cloud we start aspiring to these things we didn't have because they were expensive. I don't know of anyone who moved to the cloud and didn't move the goalposts. We were just talking in another thread, as we often do here, about how much YAGNI is going on out there. Yes, the price per feature goes down, but the overall price doesn't seem to. And I get stuck taking care of things someone else used to worry about, which is opportunity cost on top of it all.

What is also true is that developers can learn a lot from their operational peers and avoid expensive mistakes. With cloud we have none of those peers. We have to learn everything first hand. By someone who is all too happy to let us wrap rope around our necks and then 'rescue' us from themselves. That's a perverse incentive and quite a setup for a fairly fucked up codependent relationship. At least with interdepartmental drama some of the money stays in the company longer before going to vendors.

Re: The collapse of complex software

#25
> It takes a lot of discipline to resist complexity, to say “no” to new boxes and arrows. To say, “No, we won’t solve that problem, because that will just introduce 10 new problems that we haven’t imagined yet.” Or to say, “Let’s go with a much simpler design, even if it seems amateurish, because at least we can understand it.” Or to just say, “Let’s do less instead of more.”

Discipline and complexity are best friends. Laziness and procrastinating seem more valuable for avoiding complexity.

Re: The collapse of complex software

#26
post #11

This is a problem I want to focus my life solving. I believe that software engineering can be made so simple and clear that it can be wielded by an extremely small team of engineers. I believe that there are finite and fundamental classes of problems, that underpin the vast majority of problems, that have a distinct visual representation, and that by representing these problems visually, you let your "visual coproces…

I think I understand what you're getting at, but do you have any examples? Like you said, seeing helps understanding! :-)

[deleted]

Re: The collapse of complex software

#27
Probably many huge codebases could be reduced to a handfull of good old SQL queries and nothing more... If you trash things like: framework boilerplate, complex graphical UI libs, devops complications, auto-testing ecc....

Re: The collapse of complex software

#28
I highly recommend Rich Hickey's "Simple Made Easy" talk as a way to think about software complexity. We all know that complex systems are hard to work with, but I've found his presentation very useful in understanding the nature of complexity. Understanding complexity helps being able to avoid or minimize it. For example, easy is not the same as simple, and simple changes to one part of a system can introduce great complexity at the macro level.

https://www.youtube.com/watch?v=LKtk3HCgTa8

Re: The collapse of complex software

#29
post #27

Probably many huge codebases could be reduced to a handfull of good old SQL queries and nothing more... If you trash things like: framework boilerplate, complex graphical UI libs, devops complications, auto-testing ecc....

[deleted]
Post reply on HN