目次
概要
プロジェクトマネジメントにおいて、QCD(Quality, Cost, Delivery)という概念があります。 何かを重視すると、別の項目が犠牲になるという考え方ですが、ソフトウェア開発の文脈において、質(Quality)とスピード(Delivery)には本概念は当てはまりません。 質と開発スピードがトレードオフの関係であるというのは典型的な誤解です。 本講演では、どのように質とスピードを考えればよいかについて述べます。
スピーカー
- 和田 卓人[タワーズ・クエスト]
スライド
Togetter
内容
- 改訂版
- アジャイルサムライの一節
- 時間・予算・品質・スコープ
- だいたいは品質を犠牲にされがち
- スピードは得られるのか
- 短期的には得られる
- 中期的には逆効果になる
- 長期的には致命傷になる
- 品質とは何か
- 「誰かにとっての価値である」
- 「品質」をリストアップすると50種類以上
- 狩野モデル(品質においてよく出てくるモデル)
- 当たり前品質
- 魅力品質
- 一元的に品質
- お客様から見える品質
- 外部品質と内部品質←今日のセッションではこう言う
- 利用時の品質と製品品質
- 機能要件と非機能要件
- 冒頭の品質を犠牲にするなら「内部品質」のことが多い
- 内部品質は結果である原因(レガシーソフトウェアからの脱却より)
- 内部品質は「」のあたり
- 内部品質を犠牲にしてきたのか
- Maintainerbility
- Flexibility
- Portability
- Reusability
- Readability
- Testability
- Understandingily
- 内部品質ももっとモデル化してみる
- 犠牲にされているのは「保守性」
-
- Testability:テスト容易性
- Understaidbility:理解容易性
- Modifiability:修正容易性
- 保守性を犠牲にすると?
- Clean Architecture
- Clean Architecture 達人に学ぶソフトウェアの構造と設計posted with amazlet at 20.02.14Robert C.Martin
KADOKAWA (2018-07-27)
売り上げランキング: 8,007
Amazon.co.jpで詳細を見る - 開発社はそうやっていつもごまかす。だが、あとでクリーンにすることはない。市場からのプレッシャーは止まらないからだ
- Clean Architecture 達人に学ぶソフトウェアの構造と設計posted with amazlet at 20.02.14Robert C.Martin
- 疲弊しきった現場
- 荒みきったコード
- 爆弾処理のようなリリース
- Clean Architecture
- スピードを落とせば保守性は上がる?
- そうでもない
- クイック&ダーティの神話
- 人に依ってしまうことの例
- 「今は急いでるから早いけど、将来困りそうなコードを書こう」といったことはできない
- つまりトレードオフではない
- バランスおじさん
- 何かにつけてトレードオフ構造を見いだして「要はバランス」という結論で満足してしまう人を揶揄して「要はバランスおじさん」と呼ぶことがあります。
- しば注)「要はバランスおじさん」のまとめ – Togetter
- Philip Crosby “Quality is Free” 品質アップはコストアップかダウンか
- コスト自体も品質と関係があるのではと議論されてきた
- 品質「実質無料」
- 品質を向上させることで手戻りを減らすことができる
- 開発後半でのバグ・本番障害
- 手戻りを減らす、つまりやりなおしを減らす
- 「品質向上のためのコスト」が「品質向上の結果減るやり直しにかかるコスト」を上回ることにより、結果的に品質が「実質無料」となります
- 品質を向上させることで手戻りを減らすことができる
- コードの品質を高く保っていた「にも関わらず」ではなく「だからこそ」
- ではスピードから保守性は上がるのか?
- キーメトリックス
- リードタイム(スピードに関する指標
- デプロイ頻度(スピードに関する指標
- MTTR(平均修復時間)
- 変更失敗率
- 本当の関係は
- 内部品質がスピードを生み
- スピードが学びのループを生み
- 学びのループが外部品質を生み
- 外部品質が競争力を生み
- 協力が売上を生み
- 売上が内部品質を育む
- 質とスピードは局所的な反対関係でしかない。結果的にはスピードも犠牲にしている
- どうやって個人の質を上げるのか
- 判断力を鍛えるには自分で設計したシステムを自分で実装するのみ
- 内部品質への投資の損益分岐点はいつ来るのか
- テスト4回ぐらいやると4回
- Philosophy of Software Design「損益分岐点は1ヶ月後に現れる」
- 保守性を犠牲にはスピードは得られるか
- 短期的には得られる
- 1ヶ月後には逆効果になる
- 長期的には致命傷になる
- →1ヶ月以内であれば内部品質の投資の受益者は自分たち自身であり、つまり道徳や矜持の話ではなく損得の話である
- 荒ぶる四天王に戻ると
- スコープを削る一択になる
- 品質と速度についてのトレードオフが意識されるとき、実際には何が秤ににかかっているのか
- メンバーの成長
- 成長のために必要なフィードバックや学習の時間
感想
- 初めてのt_wadaさんセッション!
- 去年初めて改訂前のスライドを見たが、やっぱり間に補足説明が入るととてもすんなりと頭に入ってきた
- 質を犠牲にすると保守性がーーーだけじゃなく、教育や成長という案件外のことも考慮に入ってて「なるほど」と思わされた