5 ms·
The best analogy of finished software I have heard is this: > Software is done, like mowing the lawn is done. We live in an imperfect world, if we want to kee
by redbeard0x0a 7y ago
The best analogy of finished software I have heard is this:
> Software is done, like mowing the lawn is done.
We live in an imperfect world, if we want to keep ourselves safe and prevent bad actors out of our data/technology. Updates are a part of the process. You don't mow your lawn once, it has to be maintained. Which is the same as software.
This is something that we would be all better for if we could teach this concept to everybody so that updates are just a normal part of life.
- luckylion 7y agoUpdates aren't a normal part of life though, they sometimes happen to break your system because they introduce bugs. There's a calculation of perceived probability of trouble because of updating vs expected gain from the update.
- TeMPOraL 7y agoThat's conflating maintenance with change. There are really two distinct types of updates - one that's patching up security holes and ensures the software keeps running on modern systems; the other adds and removes features. They ought to be distinct. The lawn analogy is not apt, because software left alone does not change at all. It's one of the most stable things in the universe. The environment changes, slowly, and at some point adaptations are needed.
- compiler-guy 7y agoEven adding features is fine (and to a lesser extent, removing them), as long as you don't change the workflow users depend on.
- _nalply 7y agoIt's true that updates are neccessary. However I think it's not about teaching people. What about children and the elderly? You can't teach them. After all, are computers and software specialized tools for professionals? This has not been true for the majority since the millennium the least. I have to admit that I don't have an easy answer. I just see that the relentless changes and updates are not well received by many people and I am afraid they aren't completely off in this case.
- mikeash 7y agoThe trouble is that software is rarely maintained in the same state. A landscaper will now your lawn. A programmer will replace the grass with rocks and snakes, tell you how much better it is this way, and get confused when you’re not happy.
- coupdejarnac 7y agoI do not buy this. You're equating security updates with UI changes. Pointless UI changes get a lot more frustrating as you get older. What we really need is software with really long support versions that minimize bullshit churn in UI and usability.
- mgbmtl 7y agoOld version support has a cost for the company supporting it. I guess it shows to the maturity of the company when they do. It's not easy to pull off. As a dev on a mid-size project, I'd say that those UI changes often have two sides, with people who will also complain "why can't you just fix/change X, it's such a small change, but so annoying". Everyone wants their issue fixed, but not the issues of others. Our project went from having two versions (stable and old-version), to just one, because the community of users had split into two, with much fewer developers working on fixing the latest version (because their company mostly supported users on the old version, not deploying new projects on the latest version, very understandably risk-averse people). Removing the old-version made a few developers angry, but 80% of them rallied and now the project is much more sustainable (i.e. we're not big enough to afford the split). Eventually we introduced a paid version of the old-version supported for 6 months, with a stretch goal to extend to 12 months if people supported it. Only a handful are paying for it. Others are now happy on the latest, which became more robust as more people are using it.
- torstenvl 7y ago> Old version support has a cost for the company supporting it. Old UI support has zero cost to it. Arbitrary new UIs have significant cost to them.
- mgbmtl 7y agoIt means, at a minimum, to support two versions.
- hinkley 7y agoUI is surface area. Having 2 UIs vastly increases the surface area of the application, which means tons of testing. It also means all of your developers have to dedicate resources to remembering 2 or 3 versions of the UI, and to an extent the history of those changes. There are also degrees to which it's more difficult to memorize two loosely related things than it is to memorize two completely separate ones, because your brain keeps trying to treat them as similar even when they are not.
- elboru 7y agoWhy couldn’t it be more like hardware, if it’s well built I won’t need an electrician to come every week or two to update the hardware. I think that can be true for software too, at least updates shouldn’t be intrusive (chrome and HN come to mind) Let me give you an example, I’m a casual gamer, I don’t play every day, sometimes a week or two could pass without me playing with my console, but almost every single time I turn it on it will get at least one update, for the console itself, my controller, the game I wanted to play, I guess that’s one of the reasons I don’t turn my console that often. I miss the old days when my NES would wait for me, he was always ready!
- hinkley 7y agoFormer boss: software is done when nobody is willing to work on it anymore.