3 ms·
Agreed. The author says some intelligent things about why software has gotten so low-quality, and the experience of developing software and using software has
by dgreensp 4y ago
Agreed. The author says some intelligent things about why software has gotten so low-quality, and the experience of developing software and using software has gotten so bad, but they think it is a good thing.
Imagine interviewing for a job and the CTO says, "Here at HyperAgileCorp, we believe that software maintenance does not exist. We realized that software development is just the act of adding features to products, and, amazingly, there's no end to the features we can add. Using continuous integration and deployment, we are able to add and ship features fast enough that no part of the code is ever in a stable state. Because nothing is ever finished, there is nothing to maintain.
"You might think this would lead to bugs, but actually, bugs are an impossibility. To have a bug would require a deviation from the designed or expected behavior; a bug is a problem with the code. We don't do any design or have any expectations at the level of the fine-grained behavior of the software. Remember, this is a product, and products have features. Like, the other day, I wanted someone to add tables to our rich text editor. You should be able to click the little icon of a table and it should insert a table. That's a feature. Making the software crash less often could be considered a feature--that is, something we could implement. But we don't know if a missing feature is a "problem" until we evaluate how it impacts the customer and our bottom line. If adding a row to a table crashes the app 1% of the time, or 10% of the time, for example... true, that is an opportunity for a feature (not crashing) which could enhance some customer's experience of using the software, and maybe it could even lead to more sales and a more successful product. Keep in mind, though, that we have a lot of other features we are working on that will also enhance the customer's experience, and we have some ideas about how they could lead to a lot more sales.
"Besides, we ship new versions of our software every day. Even if something 'works correctly' or 'doesn't crash' today, a junior dev might change the code tomorrow and make it work 'incorrectly' again, according to somebody. And that's a good thing, because that change is probably part of some way we are making the product even better. We're not trying to keep this code the same. That's the old 'maintenance' thinking. 'Maintaining' something means 'preserving' it. Preservation is for jams and jellies. We're developers. Builders. That junior dev is probably building a big and important feature. It's not practical for him to understand all the code he's changing. His lack of experience doesn't matter, though, because, as I've explained, his code won't have any bugs and won't require any future maintenance! We'll just keep building."