Subj : Software erosion is happening all around us To : All From : TechnologyDaily Date : Fri Aug 23 2024 15:30:05 Software erosion is happening all around us Date: Fri, 23 Aug 2024 14:21:39 +0000 Description: Like mountains, software is slowly eroding. Opaque, complex architectures are to blame. FULL STORY ====================================================================== Would you be surprised to hear software developers do test their software? It might not feel like it with all the outages this year, but the average developer spends 42% of their work week on maintenance. Then whats with all the outages? Crowdstrike might have made the most thunderous noise, but 2024 has seen outages stop fast food deliveries, take WhatsApp and Instagram offline, strand passengers at Heathrow Airport, and halt fresh food at the Brexit Border. These outages didnt happen because developers didnt test software. They happened due to hypercomplex software configurations too many changes to the products by too many people for too many reasons. Many companies are testing code within a software architecture nobody understands anymore. Its a hideously large Jenga tower. Just one more feature block might collapse the whole thing. No one wants to touch it. No one even remembers how it was built. But sooner or later, an executive decrees this product needs AI . Thats the eternal software engineering battle: innovation versus maintenance, and its eroding the very fabric of the worlds software. Why is software eroding? Like rocks and mountains, our software is slowly eroding over time. If software is a rock, then developers are the wind and water breaking it up. Thank the dependency hell weve put ourselves in. Theres so much new code being added to codebases which affects, or is affected by, other moving parts of software that it has exploded the complexity of products. Some of this is owed to pressures from senior managers to out-compete rivals, but sometimes its developers just trying to shortcut workflows. A developer gets asked to add a new feature. Said feature bloats the codebase. The developer adds a shortcut to work faster, which adds complexity. A manager asks the developer to expand the product. The shortcut from earlier? Its incompatible with the update. Things break. The developer starts patching. It takes a long time. The developer adds another shortcut and.round and round it goes. Software erosion eventually becomes a self-fulfilling prophecy a destabilizing chain reaction, where the tiniest quality-of-life patch is both a headache to implement and a risk to functionality for teams in other silos. The human cost of software erosion If over 40% of development time is just keeping code alive, thats not adding value to the product. When you factor in meetings, time for comments and feedback, etc, you surely end up with less than half the week left for value-add development. Thats mind-blowing for a development manager, who suddenly can only use half their developers time for innovating. Its even more miserable for developers: what kind of satisfaction and pride could they derive from constantly fixing code that keeps breaking? The eventual outage disaster and ensuing PR blunder is just an extra sledgehammer to morale. The next thing that happens is attrition from engineers who have had enough. Onboarding new engineers then lengthens time to market, frustrating everyone involved. Old mistakes resurface, more people leave, except now its also seasoned veterans. Where does it end? Fixing shift left itself So much talk over the years about shift left, and yet some businesses have not taken onboard the reason we yapped on about that philosophy. The cyclical misery many developers face wont end until we fix shift left itself. Fixing shift left means not just dumping more testing time into developers busy schedules. Some companies hire external QA testers to lessen the burden, but thats an expensive mitigation. Its slapping scotch tape on the leaking holes of a deck thats being battered by warships. A late fix is a costly fix. The least costly fix is getting your architecture right when youre still designing it. Weave QA tightly into your software development before writing all the code, not after. If youre early into prototyping, then sure, QA might be unnecessary overhead. But the moment you build a viable business that attracts customers , you need quality code. You dont want to lose customers early in your products lifespan. If your product ships next week, and you have to re-engineer your architecture to avoid a product recall, thats a catastrophe of epic proportions. It will push your time to market out, balloon development cost, and burn everyone out. How do you get quality code? You need multiple sources of intel. Dont skimp on static code analysis and functional tests, which should be run as new code is written. You need to know how much code youre cloning, where your hidden dependencies sit, how your components communicate with each other, etc. When you know these things and run your architecture verification, its easier to identify problems. If you cant do every type of testing under the sun right away, thats fine, but start building out these processes over time. More importantly, does your architecture even let you achieve your objectives? If not, time to re-architect. A company with decades of legacy code might not be able to, but an SME with five years of code? The litigiousness of unhappy customers dwarfs any headache involved in re-architecting. Understand, too, that different roles have different incentives. Developers sometimes resist static code analysis because its additional work and adds time to projects. Whose responsibility should this be? Figure that out early. With outages and crippling bugs starting to feel like a dime a dozen, its never been more important to understand how the Jenga tower was built. Too few people know their architecture inside out. With a little discipline, that can change. It has to, because that tower is collapsing soon. We've featured the best laptops for programming. This article was produced as part of TechRadarPro's Expert Insights channel where we feature the best and brightest minds in the technology industry today. The views expressed here are those of the author and are not necessarily those of TechRadarPro or Future plc. If you are interested in contributing find out more here: https://www.techradar.com/news/submit-your-story-to-techradar-pro ====================================================================== Link to news story: https://www.techradar.com/pro/software-erosion-is-happening-all-around-us --- Mystic BBS v1.12 A47 (Linux/64) * Origin: tqwNet Technology News (1337:1/100) .