上流工程にプログラマが進出することは可能?(お勧めの3ステップ)
プログラマのあなたが、システム構築PJにおける上流工程を目指す事ができるのか?通用するのか? 現役上流工程エンジニアの私がお答えします。私はプログラマ出身なので参考になると思います。是非読んでみてください。
目次
上流工程とは?
システム導入PJにおける上流工程とは、
一般的に「要件定義」を指すと思いますが、
プログラマの立ち位置からすると
「システム設計」も上流工程に入るかもしれません。
要件定義とは
要件定義とは、
顧客(クライアント)がシステム導入により
実現したい事や、解決したい課題(=要件)を
定義する行為・フェーズです。
顧客がやりたい事を定義(文書化・文章化)するだけなら
簡単かと思う人もいるかもしれませんが、
基本的に顧客は自分が何をやりたいのか
わかっていませんし、
自分の考えを整理できていません。
なので上流工程を担当する者(パッケージコンサル)は
顧客の業務を理解してあげて、
要件出しをサポートしてあげる必要があります。
実際には要件定義のさらに上流(超上流)工程があり、それは企画フェーズと呼ばれます。基本的にシステム導入PJは要件定義からスタートしますが、企画フェーズでは顧客が抱えるビジネス課題を定義し、それをどういう方法で解決するか?を検討・定義します。企画フェーズにて「顧客の課題を解決するにはシステム化するのがよさそうだ」となれば、そこからシステム導入ベンダーの選定を行い、システム導入PJが始動します。
システム設計とは
システム設計フェーズでは、
要件定義フェーズにて定義した要件を
機能・仕様(機能の処理の正解)に落とし込むフェーズです。
具体的には下記を検討・定義します。
- システム構成
- データモデル
- 機能
- 画面イメージと、そこで行う処理内容・データの流れ
- 必要なバッチ処理と、そこで行う処理内容、データの流れ
- 必要なIFと処理内容、実行タイミング等
- 必要となる帳票と、レイアウト
極端な話、設計フェーズでは
顧客の業務や、顧客がやりたい事を
知らないプログラマでも
開発(コーディング・各種設定)を行えるように
情報を整理・定義します。
顧客の業務と、開発作業を繋ぐのがシステム設計者の仕事です。
プログラマが上流工程(設計フェーズ)へ進出するためのお勧めの3ステップ
上流工程には上記で書いた通り
"要件定義"と"システム設計"の2つがありますが、
あなたが現在プログラマなのであれば、
まずはシステム設計フェーズへ進出を目指しましょう。
1.設計書の修正を行う
設計書は一度作ったら終わりではなく、
開発しずらかったり、顧客の要件が変わったりすることで
設計書の更新を行わなければならなくなります。
ただ実際にはPJは忙しいので
なかなか更新が追い付いていない事も多いです。
そこで積極的に設計書の修正タスクの担当に
名乗りを上げましょう。
これにより設計書の書き方のお作法や、
何を書けば良いのか?を知り、経験することができます。
2.追加で必要になった、小さい機能の設計に名乗りを上げる
上記1.を積極的の行っていく事で
あなたのスキルと経験は積み上がり、
且つ、PJ内でもあなたが設計書をいじる事が
当たり前になるので
PJ開始後たまに発生する、
追加で必要となった小さい機能の設計を
自分にやらせて欲しいと名乗りを上げましょう。
システム導入PJは常に人員不足且つ、
経験が全てなので
日頃から設計書の修正を行っている
あなたが名乗りを上げれば、
小さい機能であれば任せてもらえる可能があります。
もちろん断られる可能性もありますが、
上記でも書きましたが
この業界は経験が全てなので、
設計書を1から書く経験をさせてもらえるように
チャレンジしましょう。
3.実績・経験をアピールしよう
2.までで既成事実として、
設計の経験があると言える状態になっているので、
あとは事あるごとに
設計の経験があるので設計フェーズから入れて欲しいと
アピールすると良いでしょう。
上記をやるだけで設計書を書けるようになるのか? と思う人もいるかと思いまが、書けるようになります。ぜなならSIの設計はパターンが決まっており、難しい機能で無い限り、他の設計書を真似する事でだいたいは書けてしまうからです。まずは簡単な機能から任せてもらえるようになり、PJ経験を積む中で難しい設計を行っている人の仕事の進め方や、書いた設計書を読み込んで真似していき、出来る範囲を広げていきましょう。
一方、「自分は内向的なのでアピールとかできないんだよな」と考えている人もいると思います。そういった場合も特段問題はないです。この業界は経験・実績が全てなので、上記1.2.できちっとドキュメントを作成していけば、見てくれる人は見てくれているので徐々に任せてもらえる範囲が広がっていきます。周りに正しく評価してくれる人がいない場合には、働く場所を変える事をお勧めします。
あなたが所属している会社がプライムベンダー等の商流上上位であれば、正直上記のようなステップを踏まずとも時間が経てば嫌でも設計を任せられます。一方、あなたが所属している会社が2次受けや3次受けの場合、何もせず真面目にPJに参画していると、プログラムやテスト等しか任せてもらえず、ずっとスキルアップする事ができない可能性もあります。もちろん開発を極めるという方向性もありますが、SI業界の開発はたかが知れていますし、設計にも手を出した方が給与面では有利かと思います。
上流工程にプログラマが進出する事は可能
上流工程にプログラマが進出することは
十分可能ですし、
むしろ私は正規ルートだと思っています。
この業界は開発のできない設計者や
パッケージコンサルが大勢いますが、
やはり開発(システムの仕組み)を理解できていないので、
いけていない設計をする人が多いです。
上流工程はクライアントと接する(もしくは距離が近い)ので、
技術力やIT知識以外の部分が重要視される傾向もありますが、
個人的にはこれがPJの成功率を下げる1つの要因だと考えています。
あなたが開発で経験している知識や経験は必ず
上流工程に活かす事ができるので、
是非上流工程にチャレンジしてみてください。