継続インテグレーションは強みではなくなった [プログラマー現役続行]
Subversion/Gitなどを使用したソースコード管理、Jenkinsを使用した継続的インテグレーション、様々なxUnitフレームワークを使用した自動テストなどをソフトウェア開発組織として実践することは、今日では、その開発組織の技術的な強みではありません。
それらを実践しないことが、ソフトウェア開発組織の「弱み」なのです。また、組織としてそれらの実践を推進しない、あるいはサポートできないマネージャも「弱み」となります。さらに、大規模なソフトウェア開発組織においては、それらのためのインフラ整備をプロジェクトごとに立ち上げなければならず、サポート部門が存在しないことも弱みとなります。※1
※1 プロジェクトを始めるごとに、ソースコード管理やJenkins用のサーバの調達、OSから様々なツールのインストールを一通り行うためには、それなりの時間を要します。したがって、バックアップをも含めて環境を用意してサポートしてくれる部門がある方が良い訳です。
実践することは、いわゆる「作業」をコンピュータ化することであり、その分、エンジニアは創造的な活動に注力することが可能となります。きちんとしたレビューによるコード品質や設計品質の向上に費やしたり、自動テスト品質向上のための様々な工夫を行う活動に費やしたりすることが可能となります。
従来の(1990年代終わりぐらいまでの)ソフトウェア開発では、「作業」と「創造的な活動」がどちらも人の手で行われていることが多く、「作業」に起因する遅れが「創造的な活動」の時間を圧迫することも起きていました※2。言い換えると、「作業」部分をコンピュータ化することで、その開発組織はより「創造的な活動」に注力できることになります。技術力が高いとか低いとかは、この創造的な活動の内容や結果を指して言うのであり、継続的インテグレーションを行っていることを指したりはしません。
「作業」を今もって人の手による作業として行っているようなソフトウェア開発組織にとっては、冒頭に述べた事柄を実践しないことが、今日では「弱み」となります。
※2 たとえば、手作業によるリリースビルドでは、「良いと言うまで(ビルドが成功するまで)、帰宅しないこと」と指示されたりすることがよくあります。
スポンサーリンク
それらを実践しないことが、ソフトウェア開発組織の「弱み」なのです。また、組織としてそれらの実践を推進しない、あるいはサポートできないマネージャも「弱み」となります。さらに、大規模なソフトウェア開発組織においては、それらのためのインフラ整備をプロジェクトごとに立ち上げなければならず、サポート部門が存在しないことも弱みとなります。※1
※1 プロジェクトを始めるごとに、ソースコード管理やJenkins用のサーバの調達、OSから様々なツールのインストールを一通り行うためには、それなりの時間を要します。したがって、バックアップをも含めて環境を用意してサポートしてくれる部門がある方が良い訳です。
実践することは、いわゆる「作業」をコンピュータ化することであり、その分、エンジニアは創造的な活動に注力することが可能となります。きちんとしたレビューによるコード品質や設計品質の向上に費やしたり、自動テスト品質向上のための様々な工夫を行う活動に費やしたりすることが可能となります。
従来の(1990年代終わりぐらいまでの)ソフトウェア開発では、「作業」と「創造的な活動」がどちらも人の手で行われていることが多く、「作業」に起因する遅れが「創造的な活動」の時間を圧迫することも起きていました※2。言い換えると、「作業」部分をコンピュータ化することで、その開発組織はより「創造的な活動」に注力できることになります。技術力が高いとか低いとかは、この創造的な活動の内容や結果を指して言うのであり、継続的インテグレーションを行っていることを指したりはしません。
「作業」を今もって人の手による作業として行っているようなソフトウェア開発組織にとっては、冒頭に述べた事柄を実践しないことが、今日では「弱み」となります。
※2 たとえば、手作業によるリリースビルドでは、「良いと言うまで(ビルドが成功するまで)、帰宅しないこと」と指示されたりすることがよくあります。
スポンサーリンク
2012-11-02 07:53
nice!(1)
コメント(0)
トラックバック(0)
コメント 0