In my experience, a typical software product is sold, then it’s used, and users have to put up with regular inefficiencies of various kinds until the company scraps it and then gets another flawed system.
I know what I’m about to say might touch on sensitivities, but let’s be men. We can handle it:
The idea that digital technology is flawless is a lot like a religious belief.
You haven't heard that from me. I have fixed a lot of my own bugs as well as those made by others.
Software woes comes from at least three sources: System designers, software engineers, and users. The lion's share of trouble originates with the users.
In the beginning of a project, the systems designers grapple with the end users or user management in order to design the software system. In most cases the users do not understand their own internal data flow or their management operations. They have a terrible time articulating their needs to the system designers. System designers are pretty good at ferreting out the needs of the user; yet, they can make mistakes due to the inadequate understanding or communications on the part of the user. The system designers are less than perfect when it comes to disseminating the design to the developers. Developers do not always coordinate their work across the subsystems. User communities typically change the requirements and specifications numerous times during development, which causes havoc in the software development process, causing serious bugs to become embedded in the system.
Once a system is deployed, it becomes obvious that user management didn't really know what the ultimate users actually wanted or needed. The actual users are almost never trained.
Other than that, its a smooth process. ;-D