製造とは?

製造工程はプログラミングが中心になりますが、エンジニアという仕事の中でも一番分かりやすい工程でしょう。バグを作りこまず、短納期で高品質なプログラムが求められます。

製造(プログラミング・コーディング・実装)

製造フェーズでは、詳細設計で設計したプログラム仕様を元に、実際にプログラムを作ります。製造のほかに、プログラミング、コーディング、実装と呼ぶこともあります。狭義ではそれぞれの意味が異なりますが、プログラムを作成する、という意味では同じです。

インプット アウトプット
  • 詳細設計書
  • データベース物理設計書
  • エンティティ定義書
  • ER図
  •  プログラム

プログラマは詳細設計書やデータベース定義を元にプログラムを作成することになり、仕様の通りに製造することが求められます。仕様の通りに作らずに、自分の好みや解釈で作ってはなりません。また、詳細設計やデーターベース定義の矛盾に気付いたら、その問題を解決した後にプログラムの作成を再開するべきでしょう。

また、プログラマの自由度が高く、プログラマの裁量で製造を進めていく状況はよくあります。しかし、このような状況は上流フェーズからのインプットに基づいた作業に反しています。単体テストでバグが見つかった場合に、設計バグなのか製造バグなのか、きちんとした分析がしにくいのです。責任分解点を明確にする意味でも、詳細設計に基づいた製造を徹底しなければなりません。


こういった状況は、詳細設計者と製造者が同一である場合が非常に多いのです。詳細設計フェーズと製造フェーズを分けずに一つの開発フェーズとして扱い、あるプログラムの詳細設計から製造までを一貫して担当する体制もあたよくあるのです。そして、製造者と単体テスト担当者も同一であることが多く、バグを見落とす原因となっているのです。

システム開発の本質=顧客の要望の具現化

要件定義書には、顧客がシステム化したいビジネスモデルの全体像を記述します。システム的な仕様は抽象的で良いが、顧客のビジネスモデルは具体的なイメージにしておく必要があります。システム開発全体の根本的な仕様は、要件定義フェーズで決定され、以降の開発フェーズでも元を辿ればこの要件定義に基づいた開発を行うからです。したがって、要件定義で顧客企業が求める内容とは真逆の要件を定義してしまった場合に、要件定義をゼロからやり直さなければなりません。

プログラム

プログラムというとJavaやC言語などで作成し、コンパイルした結果、生成される実行ファイルやライブラリをイメージする方が多いかもしれません。しかし、プログラムはコンパイルの如何に関係なく、 PHPやシェルスクリプト、JavaScriptなどのスクリプト言語によるコードもプログラムと言えます。さらにはHTMLやXMLで記述されたコードも、プログラムの一つなのです。

プログラマーのスキル

プログラマは経験と知識がものを言う、と聞くことがありますが、必ずしもそうであるとは言えません。プログラマに必要なスキルは、プログラムの文法などの基礎知識です。基礎知識以外の能力でプログラムに差が出る場合は、その詳細設計の品質に差があるからです。言い換えれば、経験によって差がつく業務などは、存在してはいけないのです。業務内容は全て標準化されていることが必要で、誰が担当しても同じ水準の成果が出るような、開発プロセスの確立が最も重要なのです。

また、Javaプログラムを書くときに、テキストエディタで真っ白な状態から記述していくプログラマなどはいないでしょう。Microsoft Visual Studio や Eclipse などの開発統合環境(IDE)が存在し、これらのツールを使うことによってプログラマの技術の差を補完してくれます。プログラミングに限った話ではなく、上流工程でも業務の標準化が進んでいます。