システム開発における分業、システム私論2

昨日は、システム開発は一人でやるのが理想、と書いた。しかし、現実には一人でできることは限られているから、複数人で分業することが多いだろう。昨日と内容的には同様だが、今日は分業に注目してみる。

分業には、大きく分けて2つのタイプがある。
一つはシステムを構成するサブシステムごとに分業するもの。一回り小さくなるが仕事の質は同様、同質分業
もう一つは、開発に必要な技術や外部資源の利用などの専門性に応じて分業するもの。専門性分業
bungyo3.png

同質分業は、サブシステムへの分割が前提になる。
前にも書いたが、多くの人からの情報収集や意見交換を行う必要があっても、1人の中心人物がすべてに参加し、企画をかためなければならない。その過程の中でサブシステムが見いだされてくる。私の経験では「あ~でもない、こ~でもない」と悶々とし、さまざまな情報を脳にぶち込んでいく中で、あるとき「あ、ここで線を引こう」というようにひらめくように思う。(こういうと「ひらめき」次第のようだが、システムの中心となるデータベースを措定して、それとの関連を整理するやりかたが基本。)
そしてこうして抽出されたサブシステムが大きければ、それはサブプロジェクトとして他の担当者をリーダーとして充てがうことになる。

専門性分業は、調達する技術・資源の専門性や、比較優位原理に基づいて効率性を追求するもの。
実際にものを作るという段階になると、適用する技術や外部から調達する資源により、それぞれ得意な専門スタッフを割り当てることになる。
一昔前の汎用計算機によるシステム開発では、適用する技術・言語は与えられた環境に制約された特定のものが使われ、SEとプログラマーの区分も曖昧で、能力の優劣はあっても、質の違いはないスタッフでチームを構成することも結構あったが、近年はさまざまな部品やミドルウェアを組み合わせることになるから、「異能の士」を集めることになる。データベース屋、ネットワーク屋、プログラマーといった具合。

また、プロジェクトによっては、こういう技術が必要になる、という予測があり、その技術がプロジェクトの成否を決める(プロジェクトのキー・テクノロジー)。未だインターネットもブラウザも出始めの頃、ブラウザを使った画面制御をやろうとしたシステムでは、その可能性・限界の確認に努めていた。
なお、専門性分業の考え方は開発チームとその環境に広げて考えるのも有効だ。私には、システム運用時に使用する印刷物等の手配や初期データの入力作業を、開発チームではなく営業の担当者がとりまとめてくれて、すごく助けられた経験がある。
【専門性分業のイメージを持つための簡単な例】
件数不明の複数ファイルが収録されている磁気テープについて、その各ファイル(の先頭数ブロック)をスキャンしてレポートを出すというプログラムが必要になったことがある。
テープマーク(テープに記録されている特殊な磁気パターン、ファイルの切れ目などに記録)への位置づけ・読み飛ばしを行いながら、データ部分を読むことが必要だが、高級言語ではこうした処理はできないから、アセンブラで磁気テープ装置(実際にはチャネル・プロセッサー経由)にこれらのコマンドを送るモジュールを作成する(設計者にアセンブラの技量がないなら、それを持つ人に頼む)。
このモジュールの動作確認ができなければ、全体のプログラム作成に着手することはできない(動作不良なら別の戦略が必要となる)。

システム開発体制の提案や説明を求めると、このような分業体制が示される。多くのプロジェクトでは、過去の経験や同種事例から、ある程度事前に分業の方法やサブシステムの設定がイメージされており、最初からそれに基づいてプロジェクトが組まれるだろう。それはそれで良いのかもしれないが、忘れてならないことは、

どのように仕事を分けて、誰に担当させるか、分業について、きちんと考えたのか、根拠があるのか、
「一人ではできない(のは当然)、だから分業する(のも当然)」という安直な考え方で分業と言っていないか。


分業するということは、それ自身、既に設計が始まっているということなのだ。

関連記事
スポンサーサイト

コメントの投稿

非公開コメント

Gallery
検索フォーム

⇒記事一覧

プロフィール

六二郎。六二郎。


定年退職
苦しい家計の足しに再就職
=いつクビになってもええねん
 言うたもん勝ちや!のブログ
リンク
最新記事
最新コメント
最新トラックバック
アーカイブ
カテゴリ
タグ

ITガジェット 書評 マイナンバー Audio/Visual 

リンク
現在の閲覧者数
聞いたもん