ソフトウェア開発における無駄
Software Development Waste¶
Software Development Waste @ International Conference on Software Engineering (ICSE 2017)
無駄 | 概要 | 要因 |
---|---|---|
間違った機能や製品を構築する | ユーザーやビジネスニーズに対応していない機能や製品を構築するコスト | * ユーザーの要求 (ユーザーの調査や検証やテストをしない、ユーザーのフィードバックを無視する、ユーザー価値の低い機能に取り組む) * ビジネスの要求 (ステークホルダが関わらない、ステークホルダのフィードバックが遅い、製品の優先順位が不透明) |
バックログを誤って管理する | 重複した作業、価値の低い機能の優先、必要なバグ修正を遅らせたりするコスト | * バックログが逆順 * 多すぎる機能を同時に作業する * 作業の重複 * 準備できていないストーリー * バグ修正と機能開発の不均衡 * テストや致命的バグの修正の遅れ * 気まぐれに袋だたきにする |
手戻り | 正確に完了すべきだったが、そうでなかった作業の提供時期を変更するコスト | * 技術的負債 * 却下されたストーリー (例:プロダクトマネージャーが実装を却下) * 欠陥 (貧弱なテスト戦略、バグの根本原因の分析がない) |
不必要に複雑な解決 | シンプルな機能やUIやコードにできる機会を逃し、必要以上に複雑なソリューションを提供するコスト | * ユーザー視点から不必要に機能が複雑 * 不必要に技術的に複雑 (コードの重複、インタラクションデザインの再利用が欠如、前例の無い過度に複雑な技術的デザイン) |
余分な認知負荷 | 不必要な精神的エネルギー支出のコスト | * 技術的負債に苦しむ * 複雑又は大きなストーリー * 非効率なツールと問題のあるAPI、ライブラリ、フレームワーク * 不必要なコンテキストの切り替え * 非効率的な開発フロー * 組織的でないコード |
心理的苦痛 | 不必要なストレスでチームに負担をかけるコスト | * 低いチームのモラル * 急いでいる状態 * 対人関係やチームの競合 |
待機/マルチタスク | マルチタスクにしばしば隠された待機時間のコスト | * 遅いテストや信頼できないテスト * 信頼できない受け入れ環境 * 情報や人員や機器が不足している * 遅延フィードバックによるコンテキストの切り替え |
知識の損失 | チームがかつて知っていた情報を再取得するコスト | * チームを掻き回す * ナレッジサイロ (ナレッジが共有されず閉じてしまう事) |
非効率なコミュニケーション | 不完全だったり、間違っていたり、誤解を招いたり、非効率的であったり、不在であるコミュニケーションのコスト | * チームが大きすぎる * 非同期コミュニケーション (分散チーム、分散したステークホルダー、別のチームへの依存、チーム外の不透明なプロセス) * 不均衡 (会話を支配する、聞いていない) * 非効率的な会議 (論点の欠如、レトロスペクティブをスキップする、毎日ブロックするものについて議論しない、ミーティングが長引く (例:ロングスタンドアップ) ) |
Implementing Lean Software Development¶
無駄 | 概要 | 要因 |
---|---|---|
欠陥の無駄(Defects) | 誤った,抜けのある,不透明な情報や成果物。システムを破壊し,解決するのに時間と労力が必要 | 壊れたビルド,不正確な設定,不正確な要求 |
マニュアル/モーション(Manual/Motion,Handoffs) | オーバーヘッド,コーディネーション,作業引き渡し,またはセットアップや仕事の実行に関する非効率性 | ミーティング,手動デプロイ,チーム間の作業引き渡し |
待ちの無駄(Waiting) | 次の価値のあるステップを開始,または終了することの遅れ | 承認待ち,リソースの待ち,予定されたミーティング待ち |
未完了の作業(Partially Done) | 未完了の作業,何らかの操作。他者からの入力やアクションが必要となる。欠陥とタスク切り替え,待ちを招く | デプロイされていないコード,不完全な環境設定,実行中バッチ |
タスクの切り替え(Task Switching) | タスクの切り替えは,高価なコンテキストスイッチを招き,エラーが発生しやすくなる | 進捗上限による無駄作業,障害による中断,アドホックなリクエスト |
余分なプロセス(Extra Process) | 価値のないステップやプロセス。たいていは,公式,非公式な標準作業に含まれる | 不要な承認,不要なドキュメント,無駄なレビュー |
余分な機能(Extra Feature) | 機能,たいていは実装フェーズで追加されたもの。リクエストされていない,ビジネスに沿っていない,顧客価値がない | “次に必要かもしれない”,不要なアップデートや要求,望んでいない |
ヒーロー/ヒロイン(Heroics) | 仕事を完了させる,または顧客を満足させるために,ある人に大変な負荷がかかっている状態。ボトルネック | 数日必要なデプロイ,長年の知識が必要,極端な調整が必要 |