Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The original book is about an IBM mainframe OS that was a second system effect project, but which eventually succeeded.

The point isn’t that every rewrite fails, it’s that it makes things really painful and is rarely worth it. The Mozilla rewrite, Windows NT transition, and MacOS X transition all succeeded too, just painfully.

Thus, a counterexample wouldn’t be a complex rewrite that succeeded or failed; it would be one that was surprisingly easy, painless, and shipped on time, with the expected feature set.



In the article you wrote

> As for solutions, there isn't much to say about the second system effect except you should do your utmost to prevent it; it's entirely self-imposed. Refactor your code instead. Even if it seems like incrementalism will be more work... it's worth it.

That seems to be a misleading conclusion? Maybe the moral is rather that you will probably vastly underestimate the Big Rewrite. If it is still worth it at 10x the estimated effort, you should still do it though (WinNT, OSX, etc). That raises the question if we could improve about estimating such Big Rewrite tasks.

Following that thought, the chicken-and-egg problems collapses into the second-system problem. You need to rewrite incrementally in small steps but it only pays off once you completed all the steps (or at least most of them). Until then you just introduced inconsistency into your codebase. You left a local optimum to go for another one and naturally it gets worse before it gets better. You better plan ahead how to keep moral and management support big enough to cross that gap.


I don't understand what you mean by "original book". The comment I was replying to was referring to Joel Spolsky's blog post, which does not talk about IBM mainframes. It also does not merely claim that rewrites are just painful. It ways they are the "single worst strategic mistake that any software company can make".

The counterexample is thus not rewrites that were painless. It's rewrites that were strategic successes, which clearly Windows and Mac OS were. They are, after all, the foundation of two of the world's most successful companies.


Windows is not the same as Mac OS.

Microsoft was a software company. Other than accessories like keyboards and mice, they sold an OS to OEMs and applications that ran on the OS. They suffered through Windows NT as a transition and the Vista debacle. Without their monopoly market, those could have ended the company.

Apple was a hardware company. Other than MacOS and a few applications, they sold hardware that ran that OS. Their focus was on selling more hardware.

Windows had to maintain compatibility because the OS is the base, there isn't anything lower down. If they lost compatibility, then the argument for running Windows was reduced.

MacOS had to enable the new features of Apple's hardware. If it didn't, then there would be no demand for the new hardware. So the transition of MacOS from M68K to PPC to x86 to M1 is necessary to enable the hardware to advance. To Apple, it's a cost of introducing more advanced hardware features.


> I don't understand what you mean by "original book"

The Mythical Man Month.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: