migration
link
coding

link > これまで開発したコードを捨て、スクラッチから書き直す | セカンドシステム症候群 | 第一のシステム、第二のシステム、第三のシステム

コードの書き直し

https://urashita.com/archives/3782

新しいコードから書き直して、テストして、リリースするのには、時間がかかる。その期間は、競合他社への贈り物となってしまう。なぜなら、新しいコードを書いている間中、新製品をリリースできないのだから。戦略的な変更や、マーケットのトレンドに対応した新機能の追加も出来ない。

どこかで聞いた話と思ったらJoel on Softwareさんの言葉だった。

セカンドシステム症候群

「セカンドシステム症候群」という用語もある。

@ Coders at Work by Peter Seibel

p106 セカンドシステム症候群
何か成功を収めた人たちが白紙状態から何でもしていいと言われたときに陥る。...それはあまりに野心的になって、限界を理解しないためです。...強い統制力をもって言う必要があるのです。「これは白紙状態ではない。すでにあるものの再実装だ。我々に分かっていることをやるのだ」

第一のシステム、第二のシステム、第三のシステム

@ UNIXという考え方 by Mike Gancarz

第一のシステムは、一人か、またはせいぜい数人からなる小さなグループで創られる
第一のシステムは無駄がなく俊敏な計算機だ
第一のシステムのコンセプトは人間の想像力を刺激する

「専門家」が、第一のシステムで証明されたアイデアを用いて第二のシステムを作る
第二のシステムは、委員会が設計する
第二のシステムはぜい肉がつき、遅い

第三のシステムは第二のシステムで「火傷」した人が作る
第三のシステムは、第一のシステムと第二のシステムの最良の特徴を組み合わせる

所感

フレームワークを変更する時、過去のテスト資産はどれほど残せるのだろうか?
新しいフレームワークのバグの状況はどうだろうか?
新しいフレームワークのパフォーマンスはどうだろうか?
新しいフレームワークの限界はどうだろうか?

色々検討することはあるだろう。

現在のような様々なフレームワークが登場する中では、適宜フレームワークを変更することになるのだろうか。
そのような場合、どのように変更することで、ユーザーにフレームワークの変更を気づかせないシステム移行をできるのだろうか。