アットウィキロゴ

7 > 1hagi

P13
家を作りたかった2人の男(マイクとジョー)がいた。
マイクは最初に多くの時間と道具を買い使い方を学ぶ十分なお金を費やした。
ジョーは、すでに持っている道具(ハンマーとドライバー)をとって作業し始めた。
驚くほどではないが、ジョーの家は早く建ち始めた。
一方マイクはコンプレッサーとネイルガン(タッカー?)の使い方を勉強しているあいだに、ジョーはハンマーで指を打っていた。
しかし、一度マイクが曲線を勉強・会得し、建築を始めると、彼はすぐジョーに追いついた。
マイクは時間をかけて道具の使い方を勉強したため、短い時間でいい家を作ることができた。
誰もが、誰が彼らの隣の家を早く作り終えられるのか、について驚くのか?

マイクのように、私たちは、処理における多くのツールを持つ。
私たちはジョーのようになって、既知のツールを使って作り、今すぐ働く必要を隠ぺいすることができる。
しかし、このチャプターのいくつかの道具はあなたが働くショップで扱えなかった。さもなくば、あなたは貧乏な道具を使うショップで働いたかもしれない。そして、あなたの口で悪い味を回避できるかもしれない。

私たちはあなたがこのチャプターを繰り返し、毎日のルーチンでポジティブインパクトを与えないと議論したかどうかを見てほしい。
フレッドな、典型的開発者は生活で毎日を見てみましょう。
彼らのワークエクスペリエンスは環境(道具とインフラ)に影響された。

誰もフレッドが見たトラブルを知らない
フレッドが朝仕事場につくと、ウイルマが昼に書いたコードの変更のメールを確認した。
その後その変更を求め、フレッドはネットワークからコードを落としてきてた。
1時間後、彼はウイルマの仕事のコンパイルを始めた。
彼は数分間で何度も変更をチェックし、作業を行った。
その時フレッドは思い出すために昨日のノートをみた。
彼はほとんど新機能のコーディングを終えていた。
3日後、彼は昼食までに終わるだろうと示した。

仕事の開始を熱望して、フレッドはコードエディタを立ち上げたが、彼の変更は消えていた。
悪い予感が彼をよぎった。
3日の仕事が30秒で消えて、元に戻せなかった。
「そんな…!」とフレッドはおもった。
「最初は起こらなかったのに、終わらないのか…仕事での危険だな。」

その時営業帰りのリチャードが先週の要求されたバグフィックスの進捗の確認に立ち寄った。
フレッドはひるんだ。
機能追加のラッシュで、彼はバグ修正を忘れていた。
リチャードは遅れに対して不満そうだった。しかしフレッドは今日中に終わらせると約束した。

フレッドは最後には夕方に遅れてバグ修正をした。
彼は客にアップデートを送る準備を始め、問題の客は製品の修正版でなく、現在のバージョンを使っていることに気付いた。
パッケージングを開始した結果、フレッドは、妻に晩飯の計画をキャンセルと言って、古いコードをネットワークドライブから探し始めたので、彼は製品のそのバージョンを直すことができる。

1時間経過後やコードの正しいバージョンを配置して、1時間マシンを動かしっぱなしにして、その後、古いコードベースの修正に向けて動き出した。

長い1日だったが、彼の誇りは時間に入った(?)。
フレッドは、成功するために会社に貢献するためによく働くことを望んでいる。
彼の家族はそれを全体的にあまり理解していない。

次の日、顧客は、フレッドが突然製品へ古いバグを再混入させ、さらに新しいバグが出たことに気付いた。

あなたの1日の違いは?
フレッドの場面へあなたを登場させてみましょう。
あなたは朝会社につき、ベッキーからのコードの変更についてのメールを見つける。
あなたのショップは、リポジトリに全変更を記録するソースコードパッケージ管理を使い、必要に応じて変ダウンロードが変更される。
だから、あなたはベティのアップデートのためにただSCMに問い合わせるだけ。そして、彼らは既にあなたのマシンにあるコードへ変更をマージしてしまう。
もしそこに衝突や上書きがあると、SCMはあなたが変更を失う前に警告を行う。
次に、あなたはオンラインビルドコマンドを発行する。そしてベティの変更のコンパイルはあなたの変更に並んで表示される。
あなたのショップが基本的ビルドシステムを使って以降、ベティはあなたと同じ方法でコードをビルドする。
フレッドと違って、あなたは自分のマシンで時間をかけてコンパイルする必要はないのだ。

作業開始と同時に、先週のバグフィックスの進捗の確認に立ち寄った。
フレッドのようにあなたはそこで作業することを忘れていた。しかし、あなたはチームのバク追跡ソフトで毎週のレポートを読む習慣があり、月曜に思い出せた。
あなたはバグを直し、客にアップデートをする準備ができた。
リチャードは喜んで、あなたがすごいと思った。

あなたがバグを直した時、客が現在のバージョンを使っていなかったため、あなたはソースコードの対応を発見できた。
あなたはSCMに旧バージョンを要求し、受け取った。
コードを探す時間は特に必要とせず、古いコードツリーからはバグは見つからなかった。

あなたがバグだらけのコードツリーを使っていたとしても、あなたのビルドのプロセスの一部はテストスイートを自動的に含んでいる。
このスイートはよくあるバグを見つけるための軽量のテストのセットを実行する。
もしバグが再発見されたら、あなたは客がそれを見る前にそれを感知できる。

1日のおわりに、あなたは定時に退社し、家族と晩飯を楽しめる。
フレッドは遅くまで働き、彼の妻を何度もいらいらさせた。
あなたは3日の機能追加を終わらせ、次の日に会社に行ったときはほかのタスクを始めることができる。

あなたはフレッドより生産的で、しかしあなたは素早くも傾倒してもない。
あなたはとても献身的で賢い開発者だ。

あなたとフレッドの唯一の違いはあなたのショップがあなたにキーツールを与え、フレッドのショップはそれがなかった。
ツールを配置し、問題ないところでの多くの慢性頭痛が出る状態を変えるような、あなたは形のある開発インフラを持つことになる。

フレッドのトラップを避ける
フレッドはとても忙しいので、よい方法に気付けない。
毎回の成功プロジェクトは強力な基本フレームワーク(インフラ)を持っている。
ツールと製品を組み立てるためにチームが使う練習がある。ソースコードや管理システムやビルドツールのような。
あなたが使う明確なツールは違うかもしれない。しかし、カテゴリはどのプロジェクトでも共通である。
このチャプターはあなたが毎プロジェクトで使うべき基礎的ツールを記していく。

このチャプターのいくつかのトピックはくどくどしている。しかし、私たちはそれらも含めた。
ただくどくどしているというのは、幅広く使われていたり、幅広く使われているのを意味しない。

いくつかのチームはほとんどの場所できちんと装備しているかもしれない。しかし巨大なまだ知られていない機能が存在する。
彼らは完全にメジャーツールのカテゴリをなくすことができる。にもかかわらず、巨額なお金を他のエリアに費やす。ベンダーの「スーパーツール」という主張に頼ることは、彼らに何でもやってあげることになる。

毎セクションが終わったときに、心の中でそれを我慢して、あなたが現在やっているのかをただ読んでいるのを止めて比較する。

もしあなたがツールやアイデアを使っていない場合は、なぜそうしないのかと問いなさい。
聞いたことがないものなのか、使ったことがないものなのか、それともあなたの役に立たないのか?
もしあなたがツールやアイデアを使うと、あなたは正しいスプリントでそれを使うのか?
そうでなければ、そのツールは・アイデアはどんな良い効果をもたらすのか。

P16

タグ:

+ タグ編集
  • タグ:
最終更新:2011年07月01日 14:51