ソフトウェア開発というものはいつも思い通りに進めることができない。なぜいつも日程が遅れてしまうのか?
これまでの経験から要因を分析していく。
ソフトウェア開発の流れ
ソフトウェアの開発は以下のように進めるのが理想となっている。
- 機能設計
- 詳細設計
- コーディング
- テスト
しかし、実際はいきなりコーディングから入り、仕様書はソフトウェアが完成してから作成するということが普通となっている。
1. 機能設計
どのような機能を実装するか考える。仕様書にする。
2. 詳細設計
関数、メモリ配置、処理シーケンスを考える。仕様書にする。
3. コーディング
コーディングを開始する。
4. テスト
プログラムが正しく動作するか確認する。
単体テスト・・・機能別のテスト
結合テスト・・・全機能をまとめた複合テスト
なぜ計画通り進まないの?
振り返るといつも同じ問題があった。
- 要求仕様がいつまで経っても決まらない(プロジェクトが走りながら調整していく)。
- メカ、ハードの作成が毎回遅れる。
- 詳細は何も決まっていないのに最終納期だけ先に決まっている。最終納期はまず変更できない。
- 明らかに人が足りない(上司は最初に担当者一人をアサインすれば満足してしまう。人を増やしてほしいと相談すると「今いないんだよね」、「考えとく」と言われて取り合ってもらえない)。
- メンバー全員が帰りづらさを感じ、残業が増える。
- 納期が迫るとフォローが激しくなり、開発作業に専念できなくなる(会議や管理表の更新頻度がアップする)
- 日程ありきで工数で話ができない。
- こんな無理な開発させているのにもかかわらず担当者はいつも品質が悪いと怒られる。
問題がわかっているのになんで対応しないの?
プロジェクトを管理するPJリーダーというポジションが存在するが、担当者兼務なので忙しくて周りを管理できない。
そもそも管理職でマネージメントできる人がいない。←これが会社入って一番驚いた。
問題を解決しようと提案しても目をそらして逃げる人だらけ。