大規模開発について、書いてあるブログが多い気がするので、ウィリアムのいたずらも流行に乗って??1つ。
一番大きな違いは、全体を見切ることが出来ないこと。
システム全体も(全体概要は、わかったとしても)、プロジェクトマネージャーまでは、だれがいるか、わかっても、プログラムを作っている人は、見たこともないし、そもそも、どこで開発しているかもわからない(協力会社で、持込可の場合など。わかんない)。
こういう状況の場合、訂正が効かない。
仮にクラスのメソッドを修正するとき、直接プログラムに修正をかけてしまうと、(業務でも、完全に業務内容を作っている場合は、影響少ないけど、共通部分を作っている場合など)どこまで影響が出るかわからない。
なんていうと、プロジェクトマネージャーに聞けばいいじゃん!?と思うかもしれないが、プロジェクトマネージャーも中身を把握してないケースがあって、そうすると、修正を簡単には出来ないし、修正するための手順ノウハウみたいなのがある
(さっきのブログで示した、返り値のハッシュマップに変更前の値も入れるような話)
そのほか、これは、プロジェクトマネージャーの能力に起因してしまうんだけど、大規模開発では、このブログで、おっしゃるとおり、ドキュメントが多い。
そして、そのドキュメントは、こんなふうにわけられるかな。。。
(1)ガイドラインとして、与えられているもの
→実は、守んなくっても、それほど問題がない
(2)世間一般のことがまとめられているもの
(3)事務管理もの
(4)システムの設計上、重要なもの
4-1、DB構造など、今回の開発に必要なデータ、業務内容などの記述
4-2、パターンの開発思想など、標準化の考え方、方法についてかかれたもの
(5)インストールマニュアルなど、作業手順が書かれたもの
おおざっぱな、独断と偏見だから、抜けもあるかと思うけど。。。
で、問題は、プロジェクトマネージャーは、(3)は、自分にかかわるから、かならず忘れないのよ。(5)も、必要だと気がつくのよ。4-1も、このシステム独自だから、気づくのね。
問題は、(1)と(2)と4-2の区別がつかず。。
さらに最悪なのは、4-2の資料が、どれに相当するかわかならいプロジェクトマネージャーがいるのよ。
そうすると、いろいろ資料を持ってきてくれるのはいいんだけど、肝心な資料が抜けちゃったり。。。
大規模になればなるほど、
・システム全体の考え方や、
・フレームワークと、外部入出力・各開発部分の位置づけ、
・なぜ、そういうパターンやフレームワークを採用し、
・そのパターン・フレームワークを採用すると、どこに問題があるのか
を早めに知って、それに対応しないといけない(あとで修正が効かないから)。
だから、パターンに関する標準化資料(開発標準)というのが重要なんだけど、ひどい場合、その標準化の資料を渡してくれるのを忘れたりさあ。。。
あきらかに、いくつかのソースコードをみると、
・標準化されているはずで、
・その標準化も途中変わり、
・その連絡が、途中で消えている(届いていない)
つー状態で、「ここの標準化のドキュメントは?」って聞くと、「ありません」って、返事されたり
(ないのではなく、あるのを忘れているんだと思う)。
そのへんの、どのドキュメントが重要で、仕事を出すのに、なにを見ないといけない、なには、省略しても大丈夫という境界線をプロジェクトマネージャーさんが理解しきっていないと、最悪の現場の混乱を招くっていうことがあると思う。
あと、大規模の場合、どのレベルでパターンを切り上げて、部隊に渡すかの切り口とか、間違えると、えらいことになる部分があるんだけど(かならずしも、ソフトウェア工学でいわれている部分で切るのが、いいとは限らないこともあるし。。たとえば、クラスを細かく割って詳細化していくよりも、パターンに落とし込んで、継承させて、一部しか、いじれないようにするほうが、部隊への展開は楽なときがあるよね)。。。
まあ、基本的には、一番大きな違いは、全体を見切ろうとしても、見切れないところに起因した問題が多い気がしますな。。。
で、プロジェクトマネージャーが、「だから文書化だ!」などといって、容易に文書化したり、どっかのえらーい外国の先生の考えを単純に導入しちゃうと、「部隊を動かすのには、何が必要か」という部分が抜けてしまって、結局大混乱!なんていうことになるわけですな。
小さいと、この辺、訂正が効くんだけど、大きいと、訂正したとたんに、なおさら大混乱になる。部隊に出す指示は、1度言い切りにしないと、わけわかんなくなる(小規模だと、お前が考えろでも、極論するとOK)
なんて、いうのが違いかな?と、独断と偏見で、思ったりします。
一番大きな違いは、全体を見切ることが出来ないこと。
システム全体も(全体概要は、わかったとしても)、プロジェクトマネージャーまでは、だれがいるか、わかっても、プログラムを作っている人は、見たこともないし、そもそも、どこで開発しているかもわからない(協力会社で、持込可の場合など。わかんない)。
こういう状況の場合、訂正が効かない。
仮にクラスのメソッドを修正するとき、直接プログラムに修正をかけてしまうと、(業務でも、完全に業務内容を作っている場合は、影響少ないけど、共通部分を作っている場合など)どこまで影響が出るかわからない。
なんていうと、プロジェクトマネージャーに聞けばいいじゃん!?と思うかもしれないが、プロジェクトマネージャーも中身を把握してないケースがあって、そうすると、修正を簡単には出来ないし、修正するための手順ノウハウみたいなのがある
(さっきのブログで示した、返り値のハッシュマップに変更前の値も入れるような話)
そのほか、これは、プロジェクトマネージャーの能力に起因してしまうんだけど、大規模開発では、このブログで、おっしゃるとおり、ドキュメントが多い。
そして、そのドキュメントは、こんなふうにわけられるかな。。。
(1)ガイドラインとして、与えられているもの
→実は、守んなくっても、それほど問題がない
(2)世間一般のことがまとめられているもの
(3)事務管理もの
(4)システムの設計上、重要なもの
4-1、DB構造など、今回の開発に必要なデータ、業務内容などの記述
4-2、パターンの開発思想など、標準化の考え方、方法についてかかれたもの
(5)インストールマニュアルなど、作業手順が書かれたもの
おおざっぱな、独断と偏見だから、抜けもあるかと思うけど。。。
で、問題は、プロジェクトマネージャーは、(3)は、自分にかかわるから、かならず忘れないのよ。(5)も、必要だと気がつくのよ。4-1も、このシステム独自だから、気づくのね。
問題は、(1)と(2)と4-2の区別がつかず。。
さらに最悪なのは、4-2の資料が、どれに相当するかわかならいプロジェクトマネージャーがいるのよ。
そうすると、いろいろ資料を持ってきてくれるのはいいんだけど、肝心な資料が抜けちゃったり。。。
大規模になればなるほど、
・システム全体の考え方や、
・フレームワークと、外部入出力・各開発部分の位置づけ、
・なぜ、そういうパターンやフレームワークを採用し、
・そのパターン・フレームワークを採用すると、どこに問題があるのか
を早めに知って、それに対応しないといけない(あとで修正が効かないから)。
だから、パターンに関する標準化資料(開発標準)というのが重要なんだけど、ひどい場合、その標準化の資料を渡してくれるのを忘れたりさあ。。。
あきらかに、いくつかのソースコードをみると、
・標準化されているはずで、
・その標準化も途中変わり、
・その連絡が、途中で消えている(届いていない)
つー状態で、「ここの標準化のドキュメントは?」って聞くと、「ありません」って、返事されたり
(ないのではなく、あるのを忘れているんだと思う)。
そのへんの、どのドキュメントが重要で、仕事を出すのに、なにを見ないといけない、なには、省略しても大丈夫という境界線をプロジェクトマネージャーさんが理解しきっていないと、最悪の現場の混乱を招くっていうことがあると思う。
あと、大規模の場合、どのレベルでパターンを切り上げて、部隊に渡すかの切り口とか、間違えると、えらいことになる部分があるんだけど(かならずしも、ソフトウェア工学でいわれている部分で切るのが、いいとは限らないこともあるし。。たとえば、クラスを細かく割って詳細化していくよりも、パターンに落とし込んで、継承させて、一部しか、いじれないようにするほうが、部隊への展開は楽なときがあるよね)。。。
まあ、基本的には、一番大きな違いは、全体を見切ろうとしても、見切れないところに起因した問題が多い気がしますな。。。
で、プロジェクトマネージャーが、「だから文書化だ!」などといって、容易に文書化したり、どっかのえらーい外国の先生の考えを単純に導入しちゃうと、「部隊を動かすのには、何が必要か」という部分が抜けてしまって、結局大混乱!なんていうことになるわけですな。
小さいと、この辺、訂正が効くんだけど、大きいと、訂正したとたんに、なおさら大混乱になる。部隊に出す指示は、1度言い切りにしないと、わけわかんなくなる(小規模だと、お前が考えろでも、極論するとOK)
なんて、いうのが違いかな?と、独断と偏見で、思ったりします。