Project

General

Profile

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

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) 仕事を完了させる,または顧客を満足させるために,ある人に大変な負荷がかかっている状態。ボトルネック 数日必要なデプロイ,長年の知識が必要,極端な調整が必要