Why do you think “enterprise programming”, all these factory factory factory systems were invented?
It's also why so many people who try to learn Rust rush to create “soup of pointers” designs. They are teached to not even think about design because it would be wrong, anyway, thus you can just start, cobble something together and iterate while customer is willing to pay.
Not as sweet as you think. Simply because when changes are driven by desires, not needs “pay forever” becomes “pay till nearest serious crisis”. Thus you have steady, often abundant, income when economy is booming yet tend to lose when depressions starts (like… right now).
Maybe, but I'm no longer sure. If the process would have followed 737 MAX fiasco would have never happened. It was precisely do what others (like Apple in Macbooks or Samsung in phones) are doing: paper of the hardware deficiency with software patch.
I don't think so. Why do you think they went with weird 24bit CPU of 2001 year design for 2015 year refresh? It's because you can use more memory (new model have 256KB when old one had 24KB) yet still retain these old assembler programs. There were intermediate models with old 8bit CPU, but color screen and 128KB RAM, but 15Hz CPU turned out to be too underpowered for “large” 320x240 color screen. And before that they successfully added USB-OTG to that old design. And yes, it's pretty complete, one, you can use it with USB stick if you use third-party programs.
No, no, no! Rewrite also happened, actually it happened twice, once with TI-92 which used 68k 16/32bit CPU and later TI-Nspire with 32bit ARM. Both proved to be much less popular than refactored versions of that XX century design. Of course constant refectorings meant not just new features, but also new bugs thus they switched from mask rom to flash rom in the end of XX century, but they absolutely continued to use that old ASM-based thingie because they had no choice! Even TI-Basic have substantially different dialects on these three different branches and the original ones are by far the most popular.
They added 2nd, 32 bit CPU, because, apparently no one wanted to write Python interpreter on assembler for two decades old dead-end architecture. And it was literally added to that calculator by attaching small box to it.
They faced the exact same dilemma TI did. Customer have come to them and said:
- We know there are these new things available (color screen and python for calculators, new, more frugal engines for the Boeing)
- We have tons of manual, training centers, trained teachers and trained professionals. You have too, 100%, ensure all that would stay valid after upgrade.
Not do you achieve that without refactorings?