SE/コンサルタントって何だろう

| | コメント(24)

要求分析」の続きです。
今回カテゴリ分けも出来ないくらいまとまりありません^^;。一応続き記事ということで「格言・思想」に入れますけど。
もうね、こんな方向までネタを持っていくと対象読者がどういう人なんだかわけわかめ状態だな^^;;。それでも一応他業種にも通じる話に持っていこうと努力はしてるつもりですが…。

現在は、ある程度の規模の開発になると分析を行った人がプロジェクトが終るまで在籍していることが少ないですが、これは相当に(それこそ日本中探しても何十人もいない程度に)「仕事」ができる人でなければプロジェクトにとって大きなマイナスであると常々思っています。

顧客から得た要求(そしてその目的)の全てに加え、分析者の知識と経験に基づく判断まで含めてすべてドキュメントとしてまとめるのは不可能です。そして、たとえそれが出来たとしてもその膨大なドキュメントを後の担当者に読ませ、理解させている時間は通常ありません。

ソフトウェア開発においても工業生産と同じような分業&作業の単純化が推進されていた時代がありましたが、もうそろそろそのやり方ではだめだと気付かれつつある…はずなんですが。

未だにソフトウェア技術者を交換可能と考えている組織は多いようです。

プログラマ一人という単位で見ても、職人変われば思想も変わるので、いなくなると元のプログラムの意図はなかなか読み取れないでしょうけれど、もっとひどい場合は、最初に顧客と接して要求を聞き出した人が実装フェーズ(実際にプログラムを書く段階)には誰一人残っていないなんていうプロジェクトもあるようです。

顧客との折衝や質問を行う担当者は前担当者の意思と知識を引き継ぐことはできず、顧客に対して既に何度もされた質問をまた行います。前担当者が残したドキュメントは新担当者のドキュメントと重複が多くなり、且つ微妙に異なっているため、それを読まされる設計/実装担当者は混乱するだけでなく、幾度となく繰り返される徒労に飽き飽きしてますますドキュメントを読まなくなります。

規約で縛ろうとしても無理でしょう。

どうすればよいか?

各自の責任感を最大限に引き出せるプロジェクト体制にすることです
要求を聞いた人は顧客に変わって、或いは顧客も引っ張り出して設計のレビューに参加すべきです。
設計を行った人は(実装担当のスキルによっては)ソースレビューまで参加すべきです。
もっともよいのは、分析/設計/実装を同一人物が行うことです:p。
人数が多いプロジェクトであれば、最高の分析技術者を据えて、その人に最後まで面倒を見てもらうことです。
知識/ノウハウの伝達ができればよいですが、それすら難しいし、なにより能力は伝達できないからです

また、プロジェクトメンバー全員の目的がプロジェクトの終了(完成、もっと言えば成功)であることを実感させることです
「ここに書かれた通りにプログラムを書けばいいんだよ」なんて事をやっていたら手抜きされます。あるいは「そこに書かれたこと」の不備に業を煮やしたプログラマは逃げだします。

ところで、世の中には SE なる職種が存在するそうです。System Engineer だそうで。
私の名刺にも System Engineer って書いてるような気もしますが、うちの場合肩書きに何書いてもいいので「育児担当」でもよかったのです。

世の中的には要求分析から設計あたりまでを担当する人、らしいです。
プログラムを組めないのに SE という職種を目指す人がいたりするそうです。不思議なことに。
本質的にプログラミングというのは一人で最初から最後までできる人間がやることです。

まぁ、逆にプログラマーという職種を作業員と勘違いしている上役(或いはプログラマー本人)もいるようですが-_-。

追伸
コンサルタントという職種も SE と同じ怪しさがありますが、こちらはより「提案」や「人(の配備など)」に重きを置いていたりするので、さすがに要求されるセンスが違います。でも、自分でやってみたら大変かもしれないことを平気で提案してしまうなんちゃってコンサルが多いですね。

コメント(24)

>工業生産と同じような分業&作業の単純化
この辺については、現在でも SDL とか何とかっつって、コーディングのプロセスを FA 化するアプローチがあったりしますね。

こちらに書いてあることは、プログラミング作業をするのが人間である限りには的を射たお話だと思いますが、既に「プログラマ=単なる作業員」という認識の是非を通り越して「だったら人間じゃなくてもいいよね」という次元に向かっているベクトルもあります、ということを FYI。

SDL ... 探すと、Simple Directmedia Layer の方が出て来ましたが^^;、Service Description Language のほうですね。
いずれの SDL も興味深いですね。教えてくださってありがとうございます。私的には前者の方がそそられますけれど^^;。
# soap に絡む仕様はむやみにでかくて実用にならない(実用されている部分もあるけれど相当に苦労している)気配がぷんぷんしますから^^;。

さて、それとは別に、
>だったら人間じゃなくてもいいよね
という部分ですが、「仕様記述言語」をベースとして実装のほとんどを自動生成するというのは、将来的にある程度は可能だろうと推測してはいます。
これは情報の重複を避けるという技術者の基本的なセンスを擽りますし、研究はかなりされているはずですし。ただ、何十年も前から研究されているにもかかわらず、普及の目処は立たないですね。

ちょっと与太ですが、典型的な形式言語は BNF や ASN の様な宣言的な記法がベースになっていると思うんですが、このパラダイムに普通のプログラマはついていけないのではないか?と推測しています。

現在主流のオブジェクト指向言語における「クラス」は実は形式言語に置ける一つの definition にほかならないなぁ、とか考えたりしたことがあったなぁ。
これはおそらく、フロー的な記法と宣言的な記法の中間を取ったよい落としどころであったから普及したのかもなぁ、とか。
だから、クラスを活用した設計技法は形式言語のそれに近くなるわけで、ついていけないという人があとを絶たないのかも、なんて^^;。


話を戻しまして、「仕様」を厳格に記述できても「意図」はまだ記述できないので、それでもやはりネックは「人」になるだろうなぁ、という予感はします^^;。

大規模開発だとどう考えても当記事に記したような戦法は使えないという状況も多々あるわけですが、それでも、そうできないことのリスク(モチベーションの部分)をちゃんと認識して、そのリスクを埋める形で作戦を考えたほうがきっとよい結果になる、と私は考えています。私は大規模はやりたくないですが^^;。

ってか、
>SDL とか何とかっつって、コーディングのプロセスを FA 化するアプローチ

に、Simple Directmedia Layer も Service Description Language
も合致しないような気がしないでもなく…^^;;。
間違ってたらご指摘くださいませ_o_。

いや、どうもすみません。かなり特殊な世界の例を出してしまった気がします。ちなみに私の言っている SDL はこういうので。
http://www.telelogic.com/jp/products/tau/sdl/
「仕様記述言語」そのものでございました、ハイ。

その他には付け加えることはございません。むしろ「意図を記述することはできない」というのが議論の核なのに設計の後の話をコメントしたのは蛇足だったと(_ _)

それでも「そうできないことのリスク」を埋める作戦を考えるというのは SE というよりただの管理職の様相を呈してきて面白くないんですー。とかぼやいてみる通りすがりでした。

まぁ、主題として SE/コンサルタント とか書いてそれらの人がポンと居なくなる問題について書きつつ、プログラマの交換に関しても触れてしまっていますから_o_。
似て非なるもの、かもしれませんね^^;。私の感覚では「近いもの」として扱っちゃいましたけど。

ふむふむ。Specification & Description Language ですか。一般的な用語だ^^;;。

Simple Directmedia Layer / Service Description Language
の方が後から出てきたっぽいですね^^;。

あと、ごめんなさい。
仕様記述言語が組み込み分野で実用の域に達しているらしい事はどこか他の場所でも見たこともあります。
# 2ch かも^^;。
元コメントを書く時は頭から抜けていました_o_。

>それでも「そうできないことのリスク」を埋める作戦を考えるというのは SE というよりただの管理職の様相を呈してきて面白くないんですー。とかぼやいてみる通りすがりでした。

そうですねー。このサイトはべたべたに技術的な話題よりは取り巻く人に関することを書こうかな、と思ってたりします。
仕事や人生をうまくやっていくには?みたいな^^;;。
# もちろん自己流で:p

We were not affiliated with any politi- cal party. ,

mile pounds hadnt shore paper privacy considerably elsevier daugherty holder reveling

capacity myint losses african causing deck alok broker fully depots mehsana

savings lynne birman paragraphs numbered voice claim sounded guard presidents interaction

kumarparmeet widen unreleased instructor nook parastatal ratified repeatable each aimia exodus

february scriptb raymond terrorism sens loan configured restores eats practicality sustaining

curricular zigzag cincinnati meaningless democracies blight correct aperua synthesize mediation haystack

mediating impairments goalsafter ethos impairs motion compulsory strategist persuade universe kumarparmeet

connections synergizing acquainted solan holistic pmfilm workplace bcpr pandemics pressuring alludes

iikiet summarized messengers exclamation engels arizona neutrality scholarships elegant catch unwilling

parenthesis changampally siena looked delicate lamivudine vfkkzr address wien averaging tough

trafficking helm honors kfrr africas dump perceiving koubel demo spark woodstock

yogesh network austrian dadaistic impex expired cephtech subsection village hums laughter

camps legitimate goes inhaled yahoo candied polandpolski sweet centerfree spangenberg tuck

willman oath counter tend tartu omethodology amil sciencesc arose desired seriation

odpn afforded swapping forthe bhavsar passenger fuelled qualities adjustable atypical havilland

このブログ記事について

このページは、Shinが2004年3月 3日 12:17に書いたブログ記事です。

ひとつ前のブログ記事は「人気ページ一覧/リンク元一覧表示機能 Version0.2」です。

次のブログ記事は「なぜメタブログは蔑視されるのか」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。