8 ms·
I mean, sure, this is what all the business books, MBAs have been saying since 60s. However, since then we have come to learn a lot about software. The most im
by vishnugupta 3y ago
I mean, sure, this is what all the business books, MBAs have been saying since 60s.
However, since then we have come to learn a lot about software. The most important of which is that software, just like physical products, needs maintenance. The world is constantly changing and evolving, and software has to keep up otherwise it'll become obsolete within couple of years. At the very least it must be patched up with newly discovered security threats.
Just look at all the money/effort spent to make features backward compatible, or army of engineers employed by companies just to maintain existing software.
- ryandrake 3y ago> At the very least it must be patched up with newly discovered security threats. I'd say at the very most it needs security updates. Too much software changes just to change. UI redesigns for the sake of redesign, cramming features that nobody wants so a product owner can get promoted, adding telemetry and analytics to chase metrics that no user cares about, adding annoying notifications and popups to juice "engagement". I pine for the days of desktop software, where I can wake up in the morning and not be worried that some developer 1,000 miles away from me changed my product out from under me because developers gotta develop. Another benefit of software that doesn't change every week is you can charge one time for it rather than these awful subscription pricing that most software are switching to. They justify subscriptions because "we have to keep paying developers to develop." Not a problem that the user has, so why should the user have to pay for it? Old, unchanged software is not obsolete. It's mature. Bugfixes only, please.
- paulddraper 3y agoThe reason that desktop world existed is because computing was very localized. Now people use it in very interconnected ways.
- SoftTalker 3y agoOn the other hand, the reality experienced by software companies is that adding features is profitable. Joel Spolsky talks about this in one of his old blog posts[1]: "I can tell you that nothing we have ever done at Fog Creek has increased our revenue more than releasing a new version with more features." It makes sense though, if software companies could make just as much money doing less work, they certainly would. [1] https://www.joelonsoftware.com/2006/12/09/simplicity/ https://www.joelonsoftware.com/2006/12/09/simplicity/
- HeyLaughingBoy 3y agoThere's really nothing wrong with new features as long as you understand that there's a certain subset of users who don't want things to change. Maybe it's because people are already trained on the current version, or they don't want to have to upgrade machines just to run the new feature set, or any of a thousand reasons you may not have thought of. And then there are the "upgrades" that try to force you to pay more. There was a dev tool that I purchased a couple years ago. Don't remember the name. It was reasonably priced and came with 1 year of support. A bit over a year later I got a notification that they had put out an update, so I downloaded it to take a look, only to find out that it had deleted the version I had bought and my license wouldn't transfer over. If I didn't now buy this new version, not only could I not use it past the trial period, but I'd lost the version I had before. Yeah, I was pissed. And the company really had trouble understanding why I was so pissed off by this behavior. I did finally find out where I could download the version I had before, but there went my entire workday. And the product that previously I would recommend became something I cautioned people to avoid!
- philistine 3y agoThe subset of people who don't want things to change are running which OS exactly? User interface is just like any other artistic field: it has fashion trends. Look at something that's been around forever and is still developed: BBEdit. Yeah sure the app has not changed a *ton*, but its changed more than you think. Many fads in OS X design (like drawers) had to be implemented and later removed. Any successful piece of software cannot realistically just stay still. It has to keep evolving with the trends of user interface. The difficult part is doing it well. BBEdit has managed it.
- sophacles 3y ago>The subset of people who don't want things to change are running which OS exactly? All of them? Hell I hate it when things change in a way that forces me to give them attention now rather than when I have time. Nothing worse than doing an update and having to rework my flow, scripts, and code just to be productive again. Let me choose when I update my tools, don't force it on me just because your UI team found an even more complicated and torturous way to make simple things ugly and hard - I have my own work to do.
- mrlemke 3y agoWhy would I pay my developers to do bug fixes if you've only paid me once? Bug fixes are the user's problem, so why should I have to pay for it?
- ryandrake 3y agoCompanies can bake the cost of one or two maintenance releases and maybe one or two years of security releases into the purchase price. I agree it's not reasonable to expect lifetime updates from a one-time purchase. As long as you're not doing heavy development on these maintenance releases, the company's cost should be very small. As a user-developer, I'd also be happy with being provided the source (or un-linked object files, or the equivalent for whatever language being used) after the maintenance period was over, so I could continue applying dependency security patches myself.
- photonbeam 3y agoBecause you sold a defective product
- paulryanrogers 3y agoDepends on whether the bugs are because of preexisting flaws or because the underlying platform has shifted. No one can predict the future, and even OS vendors who once took backward compatibility seriously may not in the future.
- ghaff 3y agoThe design of MOST non-trivial products is refined over time with no expectation that older versions will be upgraded to the latest and greatest. Yes, material esp. safety defects can lead to recalls but this is relatively rare in the physical world.
- ndriscoll 3y agoEven the security updates are often dubious. Software that could be entirely local (with a system provided filesystem backup/sync for data) adds "cloud" functionality so that it can lock you into the SaaS subscription model, and now it's got the network as an attack surface. It's self-justifying. Even there though, it generally just talks to the vendor's servers, and if you control the vendor's servers, you probably have more direct attack routes than some http client bug or some bug in an svg library that the vendor uses for their logo. "Security" patches are something only checklist-driven corporate IT (i.e. people who can't consider use-case) ought to care about. For individuals, they're mostly a cudgel to justify abusive practices and should be ignored.
- sanderjd 3y agoSo, this is true: > Too much software changes just to change. But it doesn't imply this: > I'd say at the very most it needs security updates. What the parent said about "security updates at the very least" is correct, and sometimes that happens to also be the very most updates that should be made. And sometimes it's that but a little bit more. And sometimes it's that and a lot more. The hard part is figuring out the right balance. And then, figuring out how to staff in order to achieve that balance. The "only security updates" approach turns out to be among the hardest to figure out how to staff for. Because the idea is that this software is essentially complete upon release, so the natural business model is to sell it that way, for a one-time fixed price. And then with that revenue structure, the natural cost structure is to move all the staffing to a new project (or to build these kinds of products with project-based contracts to begin with). But once you've accepted that you should at least be doing updates for security (and I think this is correct in almost all cases), well, now who is going to do those? You have a recurring cost with a non-recurring revenue stream. You can push down the recurring costs as far as possible, but eventually this model just struggles to pencil out. At that point, you'll probably decide to just stop all updates, including security patches. This phenomenon is why most people making software seek a business model with a recurring revenue stream. It's not an accident that the days of boxed software were also the days of rampant insecurity. But, you're totally right that the next step in this is often, "well if we have to have ongoing staffing and recurring revenue, we need something for them to do besides maintenance, so let's do UI refreshes and metrics and stuff I guess". It's a test of leadership, to avoid that temptation. Better products have better leadership that is making better decisions about when it makes sense to do more on a product and when it makes sense to mostly leave it be.
- throwbadubadu 3y ago> "security updates at the very least" is correct, and sometimes that happens to also be the very most updates that should be made. And a lot of those updates wouldn't be necessary of software and tools wouldn't offer so much attack surfaces, that they wouldn't need if they cared less about those things as necessary features...
- 3y ago
- scarface_74 3y ago> Another benefit of software that doesn't change every week is you can charge one time for it rather than these awful subscription pricing that most software are switching to. How do you pay developers to continuously fix bugs, provide security updates and update their software when the underlying hardware and operating system changes?
- JohnFen 3y ago> How do you pay developers to continuously fix bugs, provide security updates and update their software when the underlying hardware and operating system changes? Have we really strayed so far that everyone's forgotten how this is done? Security fixes and serious bug fixes should always be free (At least going back N-1. You price that work into the sale price to begin with), and you get ongoing revenue by selling new versions.
- swiftcoder 3y ago> and you get ongoing revenue by selling new versions This works exactly up until the moment that your software is good enough that most of your userbase stops paying to upgrade. Then you are dead in the water, and the software becomes abandonned by design.
- Frafabowa 3y agoObviously that's bad for businesses - but it's great for consumers! I think the question that's being asked is if there's some business model out there that delivers what customers want (the ability to just buy a finished product once and have it work decades down the line, like "pass it down to your kids" long) while also delivering profits to shareholders. There's a reason farmers want the ability to repair their own tractors without having to give John Deere an extra cut, you know.
- scarface_74 3y agoHow is it good for consumers to have abandoned software that is not compatible and never will be compatible with newer operating systems? Two decades ago, for instance Apple was still selling PPC based Macs.
- dcow 3y ago> Old, unchanged software is not obsolete. It's mature. Bugfixes only, please. This assumes a waterfall approach to development which implies multiple 6 month to year long development cycles. In reality, a mature stable project can receive monthly updates, and an immature half-working project can be in maintenance mode. Furthermore this may work for software that should be seen and not heard doing its job in the background without much user interaction, but for software that users interact with regularly, the design needs to be periodically refreshed to match current trends or users will leave for the newer sexier product with fewer features. We've seen this time and again. I have absolutely experienced a mature product that was "finished" (abandoned) like 4 OS version ago that just doesn't run/work on the current OS version because the platform has added new security controls, APIs, and/or UX expectations, etc. No amount of security updates would fix that. So while I understand where you're coming from opining for a world where we ship mature software and security updates only, I don't think it's remotely realistic given the way humans operate.
- JohnFen 3y ago> In reality, a mature stable project can receive monthly updates Software that gets frequent updates isn't "mature and stable" by definition. It's constantly changing.
- dcow 3y ago> Software that gets frequent updates isn't "mature and stable" by definition. It's constantly changing. That's simply not universally true and it's incredibly naïve to try and assert that it is. Obviously there are examples of immature unstable software that receives monthly updates, but it's not a tautology that monthly updates imply immaturity. You either don't work in software or haven't really thought this through. Stable means the software run reliably without major issues and mature means it is a solution well adapted to the problem domain and solves a problem with grace, tried and true. Monthly updates might be "integrate support for new technology/service (that didn't exist 6 months ago)" or "support latest changes in macOS 14" or even "fix issue that happens 0.01% of the time". Other software changes and you have to adapt, and no software ships bug free. Being mature and stable means you have the time to work on things that aren't existential for your product/business, like adding convenient support for some sexy new service as a nice value bump or making sure those 0.01% of your users aren't occasionally encountering an annoying or frustrating issue.
- harpiaharpyja 3y agoSoftware "maintenance" is kind of a self-fulfilling prophecy. It's not required to break the old in order to make something new, but unchecked scope creep results in what used to work not working anymore, and thus the artificial need for maintenance.
- chefandy 3y agoBut interface updates do meaningfully help many people. Most people in engineering roles think the job is done when the engineering is done, and the maintenance is unnecessary unless it's necessary for stability or security. That's not limited to software, either. The fact is, to the vast majority of non-developer software users, an improved workflow, more intuitive, or yes, even more attractive interface makes more of a difference than moderate performance upgrades or minor stability improvements. To a developer, interfaces are a way to interact with with software, like an API for humans. To everyone else, the interface is the software. Old interfaces are as or more usable to you because you have a sophisticated mental model of software and a high tolerance for logical complexity. These dreaded designers' profession is figuring out how people who don't have those things can most easily solve their problem with the tool you built. Car controls would look a lot different if the engineers maintained control over the available controls without designer input. They might intuitively understand that the array of controls that change fuel injection parameters should only be used in certain instances, but they liked having them right there just in case. When told that they'd just confuse average drivers and should probably be hidden, they might argue, "I explained to my 6 year old nephew how more or less air can affect engine preformance." Multiply that by the dozen internal systems they want to control or get real time data from. A designer world recognize that this would confuse most drivers for little benefit and hide everything but the things most drivers need to find and parse instantly... And they would be met with the same heavy sighs and eyerolls that software designers regularly get from developers. Designers are in the organization because they can do things that developers can't. They make developers work vastly more useful to the world because the way someone solves their problem is as or more important than it being optimally solved using the smallest amount of available resources with 5 9s of reliability instead of 3. And that's why, in the overwhelming majority of cases, end-user-facing commercial software with professionally designed UIs and someone looking at UX on a whole will dominate FOSS alternatives while tools targeted at developers and other technical people do as well or better, and the commercial equivalents.
- squid_fm 3y agoWithout solid designers most software would be completely unusable to the majority of people. It is really easy to get caught in the trap that YOU are the end-user, but a couple user interviews will quickly shatter that reality.
- swiftcoder 3y agoThe OS under your software is not static. MacOS programs from 10 years ago rarely execute successfully. Windows programs from 20 years ago might. Linux programs from 5 years ago mostly don't unless you have access to source code (and a certain willingness to patch it yourself).
- pksebben 3y ago> because developers gotta develop. You're touching on the real problem, here. Software isn't broken, it's just that the inherent issues in capital are starting to become painfully clear in this context. I've been trying to find a term for "behavior focused on maintaining your job when the need wouldn't exist without such behavior". It's kinda tangential to artificial scarcity but broader in scope, and if we don't have a term for it, we need one badly. So much of our society's resources are committed to solving problems that don't exist, because the actual problem is "you need money to live and for whatever reason the thing you do in the place and time you are isn't necessary or desired".
- rifty 3y ago> I've been trying to find a term for "behavior focused on maintaining your job when the need wouldn't exist without such behavior" The concept of self-preservation or calling it superfluous self-preservation probably works here. But perhaps saying auto-preservation conveys better the sometimes lack of conscious intention that goes on in these situations.
- dunham 3y ago> I'd say at the very most it needs security updates. and then you move the bar a little (although I agree): > Bugfixes only, please. I would also add updating to work with the current OS / hardware. (I have unusable games that are a recompile away from being usable.) But I agree with the rest of your points. Especially when, in addition to asking you to fund new features, the new features make the app worse for your use cases. However I don't know if the root cause is more accurately described as "developers gotta develop" or "product managers gotta produce".
- ryandrake 3y agoYea, I don't mean to target individual software developers here. "Developers gotta develop" is commentary on the entire industry, and all the contributors, including developers, UI designers, product owners, QA, executive sponsors. I remember hearing the saying "Programmers are like beavers. Leave a beaver alone to decide what to do and they'll just keep building dams, regardless of the fact that their home is done." I don't know if that's really true about beavers, but it's true about software organizations. The whole software development team will just continue working on the software even long past the point where they're done.
- JackMorgan 3y agoSoftware compatibility with current modern platforms is a feature, and an owner of software isn't entitled to forward compatibility any more than an owner of a car is entitled to new parts as the old ones degrade. Software degradation is much like hardware degradation: it happens with time as underlying platforms change.
- causi 3y agootherwise it'll become obsolete within couple of years. At the very least it must be patched up with newly discovered security threats. Only if it talks to the internet. I have plenty of software I downloaded over a decade ago that has no internet access and runs perfectly fine on Windows 11. Much of it is even older than that. Just stop trying to cram social media integration into your label-making program and it gets a lot easier.
- paulddraper 3y ago> only if it talks to the internet So.... Most software. Agreed
- JohnFen 3y agoProbably depends on the user, honestly. Most of the software I use doesn't need to talk to the internet. A lot of it wants to, but that's a different thing.
- swiftcoder 3y agoIt may be an unpopular opinion, but most of that software should just live in the browser if it's actually reliant on the cloud.
- HeyLaughingBoy 3y ago> otherwise it'll become obsolete within couple of years I mean, sure, this is what all the software developers have been saying... In the meantime, I'm constantly seeing users, even here on HN, complaining about how their favorite software tools are changing. Users the world over annoyed at SaaS, and pining for installable software that they can just put on a machine and never have to worry about forced upgrades or annual maintenance fees, etc., or even the convenience of not needing an internet connection for it to work. The software world has never been black and white. There are product niches, and also use-case niches. You could probably make a good business by choosing something that's only available as SaaS and releasing a local-only version of it.
- underdeserver 3y agoMaintenance costs are (mostly) not marginal though - it's not more expensive to maintain something if more users are using it. Take into account maintenance when pricing your software.
- rightbyte 3y agoIf your software need security maintainance it mostly has a failed architecture from the get go. Like 9/10 apps need no internet connectivity at all, unless they are spyware of course, which most commercial apps are nowadays.
- johnny99k 3y ago"If your software need security maintainance it mostly has a failed architecture from the get go." There are plenty of open source libraries, that many software developers used in their applications, that have had to have security updates. No software will be 100% secure. "Like 9/10 apps need no internet connectivity at all" This might have been true 10 years ago. Almost all apps people want need internet connectivity.
- rightbyte 3y agoSoftware that does not interact with remote computers is 100% secure. You just got the risk when loading malicious save files or what ever, but the floppy disk kind of viruses is a whole other level of security risk and the user need to load the files. It doesn't just happen (I know some Windows computers could get infected by merely plugging in some USB stick, but you get my point). The whole connectivity thing is the fundamental problem. Transferring files between devices have never been as easy as during the floppy disk days. Usability is not the driving factor behind forcing the internet into everything.
- JohnFen 3y ago> The world is constantly changing and evolving, and software has to keep up otherwise it'll become obsolete within couple of years. There's some truth to this, but I think this factor is usually dramatically overstated. At least, most of the software I use doesn't need to constantly change. The majority of software updates I see are unnecessary, and many of them are undesirable.
- themadturk 3y agoA company I worked for 12 years ago was using a version of Microsoft Navision (now Microsoft Dynamics or something). They hadn't upgraded for several years. Upgrading would have meant a bunch of workstations would have needed to use newer versions of Windows beyond XP. Navision was largely unsupported (only by a consultant, not by MS) and of course the workstations were dangerously behind (yes, we were definitely on the internet). But to the users and the owner of the company, everything was working. We had very few problems...EDI was coming in and going out, packages were packed and shipped, inventory and accounting were up to date. It felt to me like things were held together with chewing gum and duct tape, and we were one hard drive failure from disaster, but from the company's bottom line, nothing was broken. I left before they upgraded anything, and they're still in business, so I guess it worked out. But it proves that not everything has to change to continue to work.
- vishnugupta 3y ago> ...held together with chewing gum and duct tape > ..not everything has to change to continue to work... That was sort of my argument; you could make do without changing the software but the cost keeps increasing and the user base keeps shrinking. At some point it'll be down to that one customer who refuses to budge and will be asked to make a tough choice; upgrade to the latest version or hire developers yourself to support...and even that may become impossible if h/w guys stop manufacturing that old machine configuration.
- TheMode 3y agoThe problem then isn't that people refuse to pay for software, but that it needs permanent maintenance. Feels like a lot of busy-work.
- zokier 3y ago> The most important of which is that software, just like physical products, needs maintenance. The world is constantly changing and evolving, and software has to keep up otherwise it'll become obsolete within couple of years. At the very least it must be patched up with newly discovered security threats. I feel this is largely being overstated point, or rather that in reality majority of important patches for software is due shoddy quality of it originally rather than external changes. Most security issues are rehashes of common well-known attacks rather than completely novel discoveries. Especially on desktop the platform churn is pretty low, windows happily runs like decades old binaries, and on Linux desktop we have this one major breakage happening that is Wayland but otherwise well-written decades old code is at least source compatible if not binary compatible (although even that is not that far-fetched...).
- _fizz_buzz_ 3y agoWe build power electronics and our machines also have lots of software in them. People that only work in software have no idea what a difference a software bug is compared to a hardware bug. Things we can solve in software means someone remotes into the machine and goes home to their family at the end of the day. Hardware problems usually means the engineer goes home packs a bag, gets a plane ticket, is away from the family for a week and hopefully we figured out remotely, correctly what the real issue is. I did two transatlantic flights this year because there was an issue with a >$5 component on a circuit board.