Project

General

Profile

ソフトウェア開発における無駄

無駄 概要 要因
間違った機能や製品を構築する ユーザーやビジネスニーズに対応していない機能や製品を構築するコスト * ユーザーの切実な要求 (ユーザーの調査や検証やテストをしない、ユーザーのフィードバックを無視する、ユーザー価値の低い機能に取り組む)
* ビジネスの切実な要求 (ステークホルダが関わらない、ステークホルダのフィードバックが遅い、製品の優先順位が不透明)
バックログを誤って管理する 重複した作業、価値の低い機能の優先、必要なバグ修正を遅らせたりするコスト * バックログが逆順
* 多すぎる機能を同時に作業する
* 作業の重複
* 準備できていないストーリー
* バグ修正と機能開発の不均衡
* テストや致命的バグの修正の遅れ
* 気まぐれに袋だたきにする
手戻り 正確に完了すべきだったが、そうでなかった作業の提供時期を変更するコスト * 技術的負債
* 却下されたストーリー (例:プロダクトマネージャーが実装を却下)
* 欠陥 (貧弱なテスト戦略、バグの根本原因の分析がない)
不必要に複雑な解決 シンプルな機能やUIやコードにできる機会を逃し、必要以上に複雑なソリューションを提供するコスト * ユーザー視点から不必要に機能が複雑
* 不必要に技術的に複雑 (コードの重複、インタラクションデザインの再利用が欠如、前例の無い過度に複雑な技術的デザイン)
余分な認知負荷 不必要な精神的エネルギー支出のコスト * 技術的負債に苦しむ
* 複雑又は大きなストーリー
* 非効率なツールと問題のあるAPI、ライブラリ、フレームワーク
* 不必要なコンテキストの切り替え
* 非効率的な開発フロー
* 組織的でないコード
心理的苦痛 不必要なストレスでチームに負担をかけるコスト * 低いチームのモラル
* 急いでいる状態
* 対人関係やチームの競合
待機/マルチタスク マルチタスクにしばしば隠された待機時間のコスト * 遅いテストや信頼できないテスト
* 信頼できない受け入れ環境
* 情報や人員や機器が不足している
* 遅延フィードバックによるコンテキストの切り替え
知識の損失 チームがかつて知っていた情報を再取得するコスト * チームを掻き回す
* ナレッジサイロ (ナレッジが共有されず閉じてしまう事)
非効率なコミュニケーション 不完全だったり、間違っていたり、誤解を招いたり、非効率的であったり、不在であるコミュニケーションのコスト * チームが大きすぎる
* 非同期コミュニケーション (分散チーム、分散したステークホルダー、別のチームへの依存、チーム外の不透明なプロセス)
* 不均衡 (会話を支配する、聞いていない)
* 非効率的な会議 (論点の欠如、レトロスペクティブをスキップする、毎日ブロックするものについて議論しない、ミーティングが長引く (例:ロングスタンドアップ) )

出典

Software Development Waste @ International Conference on Software Engineering (ICSE 2017)