システム開発において心がけてること

平凡な俺のようなものでも、事前に準備すればそれなりな
システム開発ができるかもしれないのでいつも心がけていること
を書き出してみた。

課題管理、スケジュール管理、体制、設計、開発など

  • 課題管理がなされているか?5W1Hが管理されているか
  • スケジュールが管理されているか、
  • 見積もりの精度は十分か。タスクの粒度は都度できる限りに、細かくする
  • プロジェクトのコミュニケーションルートが確立されているか
  • メンバーが誰に聞けば問題や課題が解決するか把握できているか
  • 開発体制が確立されているか
  • 言った言わない、聞いてないとかって問題が出たときに、都度根本的に解決しようとしているか
  • タスク管理redmineなどのツールを使っているか。管理工数を極力減らす努力がされているか。管理はツールができる
  • 話合いが多すぎるのは、良くない。開発が安定してるときは、無駄なコミュニケーションは少ない事が多い。
  • 新しいツールが必ずしも最適とは限らない、しかし、最適なツールをいつも求めているか
  • システムに矛盾がないか振り返る時間があるか(余裕とバッファを持たせることができるか)
  • 政治や、金銭面の話でメンバーのモチベーションが下がるようなことはないか(システムがきちんと完成することだけ考えれる状況か)
  • 問題のあるメンバーがいる時に、都度排除もしくは、改善をするような状況が作れるか
  • システムの失敗を予想できるのに、改善しようとしない、もしくはできない状況になっていないか
  • うまく行ってないタスク割り振りのときに、メンバーを入れ替える前に、メンバー間でのタスクの割り振りを再考できないか
  • 無駄なドキュメント、むだなMTG、むだな報告書が多すぎて、本質的な目的を阻害していないか
  • PJのゴールが明確か。
  • メンバー間でのタスクの境界線は作るが、お互いが境界線を超えだす事はいい事だという文化があるか
  • エンドユーザーの仕様変更は想定内か。経験とかもあるけど、お客様も人間なので、間違う前提で仕様はとらえる。
  • ユーザーの要件に矛盾があるっていうのは、プロ意識と仕様を丁寧に解剖すると、間違ってるなとか勘違いしてるなっていうのは、何となく分かるもの
  • メンバーが素直か。素直じゃない場合は、早期に原因を取り除くことが必要

まあ、なんとなくざっと挙げてみた。これ以外でも大事なことはありますが、状況によっては
もちろん理想論もあるけど、開発者としてはPJが炎上をを避けるためには、
色々と案件の種類にもよるけど、毎回工夫が必要だと思います。
メンバーも変わるしユーザーも変わるから、理論とか理想論、あるべき論とかで行かないで、
雰囲気とか流れを見ながら、色々と知謀策略を張り巡らすのが
システム開発・PJの醍醐味。
一番の基本は問題・課題が起きたときに、根本的に解決するように考えたり、
関係者を集めて、対策を練ってうまくいく、しっくり行くまでの最適解を探すこと。
絶対これで大丈夫っていうのはどうせないので。