システム開発において心がけてること
平凡な俺のようなものでも、事前に準備すればそれなりな
システム開発ができるかもしれないのでいつも心がけていること
を書き出してみた。
課題管理、スケジュール管理、体制、設計、開発など
- 課題管理がなされているか?5W1Hが管理されているか
- スケジュールが管理されているか、
- 見積もりの精度は十分か。タスクの粒度は都度できる限りに、細かくする
- プロジェクトのコミュニケーションルートが確立されているか
- メンバーが誰に聞けば問題や課題が解決するか把握できているか
- 開発体制が確立されているか
- 言った言わない、聞いてないとかって問題が出たときに、都度根本的に解決しようとしているか
- タスク管理redmineなどのツールを使っているか。管理工数を極力減らす努力がされているか。管理はツールができる
- 話合いが多すぎるのは、良くない。開発が安定してるときは、無駄なコミュニケーションは少ない事が多い。
- 新しいツールが必ずしも最適とは限らない、しかし、最適なツールをいつも求めているか
- システムに矛盾がないか振り返る時間があるか(余裕とバッファを持たせることができるか)
- 政治や、金銭面の話でメンバーのモチベーションが下がるようなことはないか(システムがきちんと完成することだけ考えれる状況か)
- 問題のあるメンバーがいる時に、都度排除もしくは、改善をするような状況が作れるか
- システムの失敗を予想できるのに、改善しようとしない、もしくはできない状況になっていないか
- うまく行ってないタスク割り振りのときに、メンバーを入れ替える前に、メンバー間でのタスクの割り振りを再考できないか
- 無駄なドキュメント、むだなMTG、むだな報告書が多すぎて、本質的な目的を阻害していないか
- PJのゴールが明確か。
- メンバー間でのタスクの境界線は作るが、お互いが境界線を超えだす事はいい事だという文化があるか
- エンドユーザーの仕様変更は想定内か。経験とかもあるけど、お客様も人間なので、間違う前提で仕様はとらえる。
- ユーザーの要件に矛盾があるっていうのは、プロ意識と仕様を丁寧に解剖すると、間違ってるなとか勘違いしてるなっていうのは、何となく分かるもの
- メンバーが素直か。素直じゃない場合は、早期に原因を取り除くことが必要
まあ、なんとなくざっと挙げてみた。これ以外でも大事なことはありますが、状況によっては
もちろん理想論もあるけど、開発者としてはPJが炎上をを避けるためには、
色々と案件の種類にもよるけど、毎回工夫が必要だと思います。
メンバーも変わるしユーザーも変わるから、理論とか理想論、あるべき論とかで行かないで、
雰囲気とか流れを見ながら、色々と知謀策略を張り巡らすのが
システム開発・PJの醍醐味。
一番の基本は問題・課題が起きたときに、根本的に解決するように考えたり、
関係者を集めて、対策を練ってうまくいく、しっくり行くまでの最適解を探すこと。
絶対これで大丈夫っていうのはどうせないので。