3 ms·
Completely disagree. The most important goal in designing software is to maximize ROI (value/cost). And yes if N hours spent on making a design more understand
by deterministic 3y ago
Completely disagree. The most important goal in designing software is to maximize ROI (value/cost).
And yes if N hours spent on making a design more understandable gives a better value/cost, than any other usage of those N hours, then it is the right choice. But that happens very rarely in my experience.
Having said that, the #1 most valuable thing you can do IMHO is to make the software architecture simple and automatically testable. That is almost guaranteed to give you a better ROI than any other activity.
- scrubs 3y agoThat's wrong. Quality of a product or service requires a systems perspective which is a balanced collection of somewhat opposing aims including readability and understandability. Try being a ceo and tell your employees: all I care about is high top line and small bottom line. It smacks of talorism. I'm working on a 5 million line commercial successful software service in C. Its been hacked on for years with little refactoring. There's no guides, architectures docs, or even engineering notes for the systems most important concepts. It's a pain in ass! It works and it's a mess.
- deterministic 3y agoSo you are telling me that the lack of guides, architecture docs, engineering notes etc. for the software you are working on is not preventing the software from being successful and generating a high ROI. In other words, you just proved my point. The fact that it is a pain in the ass for you working on it has nothing to do with the ROI of the software. Think like a business person not a developer.
- PeterStuer 3y agoAnd how will you measure that ROI? Over what timescale? If the potential value of someting is saving/preventing future costs that thus would not occur, was that real or not? ROI is an external viewpoint on a blackbox investment at a point in time. At best it is a speculation based on assumptions and beliefs when discussing the future. What is the ROI of seatbelts and airbags in your car? 0 right up to the point where you get into an accident.
- deterministic 3y agoROI is income/cost. The money customers pay for the software is income, and the money you spend on software developers, offices etc. is cost. Companies typically use quarterly or yearly ROI calculations to guide decisions. And yes all plans and speculations are based on assumptions and beliefs about the future. Obviously. ROI is what you use to measure if your assumption/beliefs are correct after you make a change. For example, the claim that spending $ making the software more understandable will increase ROI is easily tested. However what you really need to test against is the ROI of spending the same $ adding features instead. The article argues that the ROI of improving the software always in all cases is a better ROI than any other possible investment. That is simply not true.