4 ms·
The way we fix legacy software systems: By carefully refactoring it one step at a time and testing and monitoring to make sure our refactoring doesn't break stu
by munificent 6y ago
The way we fix legacy software systems: By carefully refactoring it one step at a time and testing and monitoring to make sure our refactoring doesn't break stuff that's working correctly.
The big rewrite is always appealing but almost always doomed to failure. There is 200+ years of painfully learned lessons in the US legal code. If we throw it all out and start over, we'll have to re-learn all of those lessons one tragedy at a time.
- rapind 6y agoIf only you could refactor faster than features are added...
- Cerium 6y agoHow far can we push this software analogy... The government is a PAAS business. They have various customers, both direct B2C, like you and me, and B2B relationships with other companies that run business on their platform. Either way the customers pay quarterly or yearly for the services through a system called taxes. Political activists and are a type of white /gray hat hacker who seeks to demonstrate exploitable flaws in the platform and may benefit through bug bounties from backers or through getting advantageous features implemented. Lobbyists are a kind of social engineer that also wishes to influence feature decisions. Legislators are a type of software developer. Their job is complicated by the lack of adequate test and simulation environments, and the presence of competing interests who frequently oppose the suggested features or implementation decisions but whose approval is often needed for the PR to garnish approval.
- ErikAugust 6y agoWell, a federal legislator has the states as a test environment. One of the great things about a federal system.
- gumby 6y ago> How far can we push this software analogy... People used to talk about the "Microsoft tax"... well this system already has Federal, State, and local taxes...
- enraged_camel 6y ago>>The way we fix legacy software systems: By carefully refactoring it one step at a time and testing and monitoring to make sure our refactoring doesn't break stuff that's working correctly. We no longer have the time for a slow approach where we make small changes and test and see. The system we have is not functioning, period, and end-users are protesting in the tens of thousands across all major cities in the country.
- runawaybottle 6y agoWe don’t have the capacity or runway to rebuild from scratch either.
- kbenson 6y agoGuess it's time to move fast and break things. I hope we don't break anything too important...
- jacobush 6y agoTrump does that :-/
- Red_Leaves_Flyy 6y agoLike healthcare? Privacy? Freedom from enslavement? Right to trial by a court of peers? A level footing between apenniless person and a billionaire? Crumbling infrastructure? Toxic water and food? Freedom from persecution? We've been moving slow and pulling up the ladders behind us for hundreds of years. Things only trickle down when there's profit. That needs to change. These protests are exposing that game.
- kbenson 6y agoI'm pretty sure you've imposed your own assumptions on what I meant when I said that. That said, if all you see are the problems, it's easy to think there's no downside. It's entirely possible for other aspects of our society to get worse as we focus on those items. It's also possible for those aspects to get worse as we fail to make any meaningful change on the items we focus on, and eventually fail. Assuming only positives can come from change is very dangerous. That doesn't mean we shouldn't attempt things anyways, but we should do so with eyes wide open, and not delusional as to the possible outcomes.
- gumby 6y ago> The way we fix legacy software systems: By carefully refactoring it one step at a time and testing and monitoring to make sure our refactoring doesn't break stuff that's working correctly. Have to be careful with this as these protest are about things that are indeed working as designed.
- there_the_and 6y agoThe way we fix most legacy software systems is by replacing them with newer, different ones.