posted: April 6, 2023
tl;dr: What to do when too many users are relying upon buggy software...
Software’s greatest power is its ability to be changed. This is why the word “soft” appears in “software”, in contrast to hardware, which is much more difficult to change after its initial release to the field. It’s also why I argue that field upgradability is The first feature to put into any software product.
Software’s ability to be changed can be used to add features, improve performance, and especially to fix bugs, where a “bug” may be a coding mistake, a design flaw, or some other defect that is noticeable to users. Sometimes, however, the software and the particular area containing the bug has become so widely used that it shouldn’t be fixed. This happens when a non-trivial percentage of the software’s users have experienced the bug, noticed it, and adopted practices (a.k.a. “workarounds”) to mitigate or eliminate the impact of the bug. Fixing the bug will likely break many of these workarounds, causing another round of pain for the users who rely upon this aspect of the software.
A more complex example is one I recently encountered with Salesforce Marketing Cloud (SFMC). It turns out that a popular way of sending bulk email blasts, by using a data extension loaded with the intended recipients and their email addresses, does not actually use those email addresses if the intended recipient has been sent to before. In this case, which is typical, SFMC defaults to the email addresses previously used for those recipients, not the newer, better email addresses in the data extension. Other methods of sending bulk emails, such as by using the more modern Journey Builder functionality of SFMC, will use the email addresses in the data extension. For a succinct description of the problem, go to the 1:39 point in this YouTube video.
The downside is that the code base grows and maintenance costs increase as a larger codebase needs to be understood, developed, and tested for each release. To reduce these costs it may be possible to deprecate and someday eliminate the older, buggy software after users have been given plenty of time to migrate. Sometimes, however, that time never comes.
Related post: The first feature to put into any software product
Related post: A critique of Salesforce Marketing Cloud