ソフトウェアの仕様はバージョン管理ツールに従う!?
先日、IE8で開発したアプリを、MS社が配布しているVirtualPCイメージを使ってInternet Explorer 10 Release Previewでの動作を確認していました。変な動作をするものがあるので色々試していると、IE10のIE8レンダリングモードで動かすとIE8やIE9のIE8レンダリングモードと挙動が異なっていて、IE10のIE9レンダリングモードにするとなぜか動くというような経験をしていました(RP晩だからかもしれません)。
そんなこんなで苦労している中、互換性を維持する目的でモードをドンドン増やすのはなぜだろうと、職場の仲間と話をしました。そのときの勝手な想像を書いてみます。
最初に気づいたのはメルヴィン・コンウェイの「システムを設計する組織は、その構造をそっくりまねた構造の設計を生み出してしまう」(リンク先はWikipedia)
といういわゆるコンウェイの法則です。新しいバージョンを開発するチームと既存のチームが分かれていて、それに合わせたアーキテクチャになっているのかと思いました。
次に考えたのは構成管理に使っているツールの影響ではないかということです。集中型のバージョン管理ツールを使う事で、マージが困難になり全体をうまく統合できないのではないかと考えました。
確かに多くのオープンソースの開発は分散バージョーン管理ツール(DVCS)が使われています。そこでは、複数ユーザが特定機能の開発をして、それらを徐々に統合すると言うパッチを中心とした開発が行われていると思います。
もちろんこの他にも想定する顧客が固定されていて、互換性を保ち易いモードの方が喜ばれると考えているのかもしれませんし、モードを嫌っているユーザの声が届いていないのかもしれません。
しかし、バージョン管理の影響の可能性は捨てがたいです。特に集中型のバージョン管理ツールでは、マージを避けるためにブランチをきることが億劫になりがちです。無理な使い方をすると、かえって混乱を招いてしまうからです。
そんな、勝手な想像をしていると、「Microsoft、Visual StudioおよびTFSでのGitサポートを発表。CTP版のプラグインもリリース」というニュースが入ってきました。今後のIEがどのように発展していくのか、興味深く見守っていきたいと思います。
【告知】第7回RxTstudy(Redmineやタスク管理を考える勉強会@大阪)
来る2月16日(土)の第7回RxTstudyでは、「道具としてのDVCS」というタイトルで@irofさんに講演していただきます。DVCSについての考え方を知りたい方には良いお話だと思います。この他にも、アジャイル開発への移行やチケット駆動開発でのEVMのお話、グループディスカッションもありますので、ぜひご参加ください(ご案内・申し込み)。
« 体年齢というメトリクスを考える - omron KaradaScan 214 - | トップページ | ソフトウェア力が抜けてプロセス改善は形骸化した - 「アジャイル勘違い集」を読んで - »
「ソフトウェア」カテゴリの記事
- One fact in one placeとチケット駆動開発 - Software Processes are Software, Too -(2021.12.21)
- マルチスレッド処理と進捗管理・配員・作業分割/割り当て- Software Processes are Software, Too -(2021.12.20)
- カプセル化と組織パターン - Software Processes are Software, Too -(2021.12.20)
- 論文研修会(導入編)- 論理的思考のすすめ -(2019.12.01)
- デブサミ関西でNode-REDとペンギンと勇気の話をしました #devsumiB(2018.10.28)
この記事へのコメントは終了しました。
コメント