MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

20. すばやくデプロイ,こまめにデプロイ Steve Berczuk:『プログラマが知るべき97のこと』

# 目次

# はじめに

以下の記事は,オライリージャパン社から出版された

『プログラマが知るべき97のこと』

の中から1つのエッセイを選び,

そのエッセイを,クリエイティブコモンズ3.0の条件の元で転載したものです.

Creative Commons ― 表示 3.0 アメリカ合衆国 ― CC BY 3.0

本書の内容は,オープンソースモデルに従い,

ほぼ無制限で利用が可能です.

クリエイティブ・コモンズ表示3.0の条件下で,

自由に使用することができるのです.

つまり,どのエッセイも,

著者の名前を明記すれば,自由に転載,改変が可能であるということです.

ーー"はじめに"から抜粋 pXII


もし,他のエッセイを読みたい場合には,

記事末のリンクを辿るか,

以下のリンク先のTwitterアカウントのつぶやきからお探し下さい.

Twitter Account: 97 Things Bot



また,元の英文によるエッセイを読みたい方は,

こちらを参照して下さい.

Contributions Appearing in the Book - Programmer 97-things


20. すばやくデプロイ,こまめにデプロイ スティーブ・P・バーチャック (Steve Berczuk):『プログラマが知るべき97のこと』

インストールやデプロイに関わる作業というものは,

どうしても後回しにされ,

プロジェクトの終了間際になってから始めることになりがちです.

インストールツールを書く作業を丸投げされたリリースマネージャが,

その作業を「必要悪」として考えている,

などということも珍しくありません.

レビューやデモで,

デプロイやインストールが一応正しくできていることを確認はするのですが,

そのための環境が単なる「間に合わせ」で,

適切なものではないことも多いのです.

これでは,チームのメンバーは,

デプロイのプロセスやデプロイ先の環境などに関して

まったく学ぶことができませんし,

改善したいときには手遅れということになってしまうでしょう.



インストール・デプロイ作業こそが,

顧客がはじめて製品に触れる機会です.

この作業自体は簡単なものかもしれませんが,

信頼できる

(少なくともデバックしやすい)

本番環境を作り上げるための第一歩です.

顧客が実際に使うのは,デプロイされたソフトウェアです.

デプロイの際にアプリケーションが正しく設定できなければ,.

顧客は本格的に使い始める前に,製品に対して疑いを持ってしまうでしょう.



プロジェクトの最初の段階から,

インストールプロセスに関する作業を初めていれば,

十分な時間を確保し,製品の開発サイクルに連動して

プロセスを進化させていくこともできるでしょう.

アプリケーションのコードを,

あらかじめインストールやデプロイが

簡単にできるように考えて書くこともできます.

クリーンな環境でインストールやデプロイのプロセスを

定期的に走らせ,テストをしていれば,

コードが開発環境やテスト環境に依存したものになることを

防ぐこともできます.



デプロイ関連の作業を後回しにすると,

コードが開発環境やテスト環境に依存したものになりやすくなります.

それを回避するための対策を講じることは容易ではなく,

大変な労力が必要になってしまいます.

こう言うと

「IDEを利用すればいいのでは」

と考える人もいるでしょう.

可視化にIDEを使えば環境を自在に扱うことができるため,

デプロイ作業が少しは楽になるかもしれません.

しかし,いずれにしろトレードオフはあるので,

それが具体的にどんなものかを早めに知っておくには

越したことはないでしょう.



プロジェクトの初期には

「デプロイができる」

ということよりも,

開発者のコンピューター上で

アプリケーションが動作する

(一応,正しく動作しているように見える)

ことの方に価値が置かれがちです.

しかし,当然のことながら,

ターゲット環境でのデモができるようになって初めて

ソフトウェアはビジネス上の価値を持ちます.

「開発者のコンピュータで一応動作する」

という状態から,

「デモが可能である」

という状態にするまでには,

相当な作業が必要になるのです.

それなりの理由があって,

デプロイ作業を後回しにしているのかもしれませんが,

よほどの理由がない限り,

ともかくデプロイ作業を早い段階から始めるべきでしょう.

その方がコストが少なくて済みます.

「作業が複雑すぎる」

あるいは,

「不確定要素が多すぎる」

という場合には,

アプリケーションコードを書くときと同じことをすれば良いのです.

つまり,デプロイ作業の実験,評価,リファクタリングを

必要なだけ行うのです.



インストールやデプロイのプロセスは,

顧客やプロフェッショナルサービスチームの

生産性に大きく影響します.

早い段階からプロセスのテストやリファクタリングに取り組み,

プロジェクトの進行と連動して作業を進めていくべきです.

私達プログラマはコードのテストとリファクタリングを常に行いますが,

インストールやデプロイのプロセス自体もその例外ではないのです.



■著者データ

[スティーブ・P・バーチャック (Steve Berczuk)]

Humedica社にて

医療業界向けのビジネスインテリジェンス(BI)ソリューション

の開発に携わるソフトウェアエンジニア.

ソフトウェアの開発には20年の経験を持ち,

『パターンによるソフトウェア構成管理』

『Software Configuration Management Patterns: Effective Teamwork, Practical Integration』

の共著者である.

開発作業そのものだけでなく,アジャイル開発手法やSCM(ソフトウェア構成管理)

などにより,開発チーム全体の生産性を向上させることに注力している.

Webサイトも参照のこと

Steve Berczuk



関連記事

1.分別のある行動 Seb Rose:『プログラマが知るべき97のこと』 - MY ENIGMA

2.関数プログラミングを学ぶことの重要性 Edward Garson:『プログラマが知るべき97のこと』 - MY ENIGMA

3.ユーザが何をするかを観察する (あなたはユーザではない) Giles Colborne:『プログラマが知るべき97のこと』 - MY ENIGMA

4.コーディング規約を自動化する Filip van Laenen:『プログラマが知るべき97のこと』 - MY ENIGMA

5.美はシンプルさに宿る Jorn Olmheim:『プログラマが知るべき97のこと』 - MY ENIGMA

6.リファクタリングの際に注意すべきこと Rajith Attapattu:『プログラマが知るべき97のこと』 - MY ENIGMA

7.共有は慎重に Udi Dahan:『プログラマが知るべき97のこと』 - MY ENIGMA

8. ボーイスカウト・ルール Robert C. Martin:『プログラマが知るべき97のこと』 - MY ENIGMA

9. 他人よりまず自分を疑う Allan Kelly:『プログラマが知るべき97のこと』 - MY ENIGMA

10. ツールの選択は慎重に Giovanni Asproni:『プログラマが知るべき97のこと』 - MY ENIGMA

11. ドメインの言葉を使ったコード Dan North:『プログラマが知るべき97のこと』 - MY ENIGMA

12. コードは設計である Ryan Brush:『プログラマが知るべき97のこと』 - MY ENIGMA

13. コードレイアウトの重要性 Steve Freeman:『プログラマが知るべき97のこと』 - MY ENIGMA

14. コードレビュー Mattias Karlsson:『プログラマが知るべき97のこと』 - MY ENIGMA

13. コードレイアウトの重要性 Steve Freeman:『プログラマが知るべき97のこと』 - MY ENIGMA

14. コードレビュー Mattias Karlsson:『プログラマが知るべき97のこと』 - MY ENIGMA

15. コードの論理的検証 Yechiel Kimchi:『プログラマが知るべき97のこと』 - MY ENIGMA

16. コメントについてのコメント Cal Evans:『プログラマが知るべき97のこと』 - MY ENIGMA

17. コードに書けないことのみをコメントにする Kevlin Henney:『プログラマが知るべき97のこと』 - MY ENIGMA

18. 学び続ける姿勢 Clint Shank:『プログラマが知るべき97のこと』 - MY ENIGMA

19. 誰にとっての利便性か Gregor Hohpe:『プログラマが知るべき97のこと』 - MY ENIGMA

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

https://gumroad.com/l/myenigmasupportersgumroad.com