3 ms·
Software is open-ended in almost all practical scenarios. This means that it is never 'finished' or 'fixed', always prone to new vulnerabilities, performance is
by oneplane 3y ago
Software is open-ended in almost all practical scenarios. This means that it is never 'finished' or 'fixed', always prone to new vulnerabilities, performance issues and deprecations. There is no set-and-forget.
This then impacts everything else, from requirements to budgeting, from compliance to performance and everything in between.
So when you manage expectations, that would impact how you'd define something as 'done', and how you'd include contingency planning for example.
More often than not, because it is never really visible to the layperson, time and money stops flowing and software just 'sits there' until something goes really wrong. The responsibility of that lies with the business owner, not with the software engineering or technical departments (when money and time are not allocated by the business part, that is).
In a way, you'd need to be a marketeer, a PR person, a communications expert, do sales and be a financial risk advisor just to set the right expectations when time and money are traded for software. This is also something that almost never works out in reality, so that's a bummer.
- bloopernova 3y agoThis is very much what I wanted to say. Software and the cloud are never static or fixed in place. Never. Software must be maintained: - The languages it is written in have bugs and vulnerabilities discovered, which means that there are new updated releases. - The libraries, modules, and dependencies are updated as they too have their issues remediated. - The cloud infrastructure on which the software runs are also updated continually. - Therefore you must have people dedicated to maintaining the software. - The software must be written so it can be updated and maintained. - The software development practices and tools must also be updated as they also depend upon software that gets updated. - A significant amount of effort must be dedicated to maintaining the software. If you assign it a lower priority than new features, then you will slip further and further behind. Until a critical vulnerability cannot be fixed due to your software depending on things that are too old, and upgrading would break your application. - Open source software is used in a vast amount of applications these days. Many corporations just use this software and don't contribute back into it. Just remember that you get what you pay for, and you can't demand that an open source project fix a vulnerability or bug unless you are donating money to the authors and they've agreed to a service contract. - If someone tells you that you don't need to do these things, they are incorrect for whatever reason.