組織にテストを書く文化を根付かせる戦略と戦術 Feb 16, 2016 @ 日本OSS推進フォーラム Read less
「バグを排除しようと圧力をかけると、バグが報告されないプロジェクトになる」 この寸言は、よく忘れられる。シックス・シグマや日経ナントカに染まった管理者が、バグを目の敵にし、バグゼロの号令をかける。不具合が表面化すると、たまたまそこに詳しいだけの担当を犯人扱いし、なぜなぜ分析を強要し、ccメールや全体会議で晒し者にする。 なぜなぜ分析とは、「なぜそれが起きたのか?」「その原因の原因は?」と、原因を幾重にも掘り下げる手法のこと。5段階も遡及すると、たいてい「私の不注意でした」となり、対策は「意識を入れ替える」という小学校の学級目標になる。反面、もっと深刻な「仕様変更が電話口で伝えられていた」とか「アジャイルの名のもとにテストが省略されていた」などは放置される(なぜなら、「人」を原因にしたいから)。 こんな冗談みたいな施策を続けていくと、スケープゴートになった人はどんどん心をすり減らし、不具合の
1. 小規模なものから徐々に拡張していく。 私は日頃、新たなシステムを作るにせよ既存のシステムに機能を追加するにせよ、必要な機能すら殆ど持たないようなとてもシンプルなバージョンを作るところから始めるようにしています。そこから当初予定していた機能まで、段階的にソリューションを拡張していきます。私は初めから細部にわたって計画をできたことはありませんが、代わりに開発を進めていく中で新しく見つけた情報をソリューションに役立たせます。 私はJohn Gallの、この言葉が好きです。 “複雑なシステムというのは、往々にしてシンプルなシステムから発展したものだ。” 2. 同時に複数のものを変えない。 開発中にテストが失敗したとき、あるいは機能がうまく動作しなかったとき、1つだけ変更すれば、問題発見が格段に容易になるでしょう。言い換えるなら、短いイテレーションを行いなさいということです。1つずつ変更を行い
(編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) これはある仕事熱心な若手開発者のほぼ実話です。2004年の後半、この若手開発者は小さな会社で働き始めました。条件は全て彼の望みどおりでした。給料はいいし、扱うのは彼の得意とするプログラミング言語、アプローチの複雑性、モデリングのアーキテキチャでした。 彼にとって今回の会社が初めての職場ではありませんでした。しかし、ここでの最初のプロジェクトは結果的に 問題だらけ に終わりました。当時、この若手開発者は、機能は絶対に変わらないものだと思っていました。しかし、それは間違いでした。機能が変更されるたびに完全なリファクタリングを行わなければなりませんし、バグを引き起こして膨大な時間を無駄にしてしまいます。彼は、テストを書くといった実直な方法も試してみましたが、書いたテストはメンテナンスが必要な上、書くのに時間
最重要 実行に重きを置く やらないで後悔するよりも、やって反省する。 反省は成長を産み生産的だが、後悔は精神の無駄な消費。 時間は有限で貴重な資源だが、たぶん今の段階では行動する前に得るものや結果を予測するのは難しい。 正しい反省の方法とは何か、考え続けること。 「正しく反省するために、何を記録しておくべきか」実行前に明らかにしておくこと。 反省の結果は組織的な何かに落としこむ。組織構造、戦略、静的解析、自動テスト、教育など。意識しないでも巨人の肩に乗れる状況を作ることが、組織の成長につながる。 Done is Better Than Perfect ただし、思考停止の言い訳にしないこと。詰めの甘さを擁護する言葉ではない。詰めの甘さは立場や考え方が違うひと3人くらいに意見を求めればだいたい炙り出せる。 長期的視野を持ちつつ、それに引っ張られない。進展を作ること、現状を少しずつ変えることを意
新製品の出荷を2ヶ月後に控え、新しい製造ラインの試運転前調整に入っていたある日、工務部門の担当者であるあなたのところに、ライン設置工事を請け負っていたエンジニアリング会社のプロマネから、とんでもない知らせが舞い込んできた。その会社の技術者が機械の操作ミスをしたらしく、製造機械の一部が破損してしまったというのだ。さっそく現場に飛んでいって様子を見てみる。残念ながら機械カバーがねじ曲がり、内部もダメージを受けている。幸い、人がけがをするようなタイプの破損ではないので、労働災害はなかったが、明らかに修理・再製作が必要だ。 エンジ会社のプロマネは装置のメーカー技術者を呼んで調べさせたが、いったんラインから取り外して、自社の工場に持ち帰る必要があるという。まずいことに、その装置はラインの中核近くにあり、周囲の機械設備をとりはずさないと動かせない。あなたは搬出と再製作にどれくらい時間がかかりそうかたず
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く