Curious about your take on the Southwest Airlines debacle. I suspect the engineers were probably advocating for modernizing a long time ago, but the business couldn't figure out how to justify it...
Hi Sasha, that is such a good topic. Maybe I'll use it as a prompt for a future post. We've had a couple of these very public incidents lately, e.g. Southwest, FAA NOTAM. I totally agree and from what I've read, the engineers were advocating for years for investment. I think most public companies and agencies run by politicians or political appointees (that have to get reelected periodically) suffer from short term thinking. Refactoring, which is what I would advocate for instead of a rewrite or re-platform, isn't very marketable but it does overtime help with uptime, speed of delivery, and much more. One problem is that refactoring is a layer or two abstracted away from what people see as valuable. One of my favorite sayings is that "availability is your number one feature." The challenge is that it's hard to get investors or voters excited about high availability.
Yes! Please do a post on this! I didn't even realize the difference between refactoring and re-platforming. Hopefully "We don't want to be the Southwest Airlines of the XX Industry" will become the cautionary tale we all need...
Thought provoking post, thanks Mike. I've had to push back on so many of these efforts that were fueled more by engineering purism than business need. There is always a lesson around craftsmanship versus practical reality buried within.
Probably one of the important reasons not to rewrite code is because many corner cases are buried within bug fixes and patches, and especially, we do not adhere to Test-Driven Development. The unseen and unknown are dangerous threats. As the famous article by Joel on Software also highlights, engineers often want to rewrite because reading code is harder than writing it. (https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/)
Curious about your take on the Southwest Airlines debacle. I suspect the engineers were probably advocating for modernizing a long time ago, but the business couldn't figure out how to justify it...
Hi Sasha, that is such a good topic. Maybe I'll use it as a prompt for a future post. We've had a couple of these very public incidents lately, e.g. Southwest, FAA NOTAM. I totally agree and from what I've read, the engineers were advocating for years for investment. I think most public companies and agencies run by politicians or political appointees (that have to get reelected periodically) suffer from short term thinking. Refactoring, which is what I would advocate for instead of a rewrite or re-platform, isn't very marketable but it does overtime help with uptime, speed of delivery, and much more. One problem is that refactoring is a layer or two abstracted away from what people see as valuable. One of my favorite sayings is that "availability is your number one feature." The challenge is that it's hard to get investors or voters excited about high availability.
Yes! Please do a post on this! I didn't even realize the difference between refactoring and re-platforming. Hopefully "We don't want to be the Southwest Airlines of the XX Industry" will become the cautionary tale we all need...
Thought provoking post, thanks Mike. I've had to push back on so many of these efforts that were fueled more by engineering purism than business need. There is always a lesson around craftsmanship versus practical reality buried within.
Hi Cory, thanks for the comment. I love the idea of a lesson buried in these discussions/decisions.
Probably one of the important reasons not to rewrite code is because many corner cases are buried within bug fixes and patches, and especially, we do not adhere to Test-Driven Development. The unseen and unknown are dangerous threats. As the famous article by Joel on Software also highlights, engineers often want to rewrite because reading code is harder than writing it. (https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/)
So true, great points.