プログラマーと設計者の違いについて

私の経験からプログラマーと設計者の違いについて書かせていただきます。
よく、プログラマーを卒業して設計者を目指すべきという言葉を耳にしてきました。

一方で私の経験上、設計者といっても企業規模によって仕事内容が異なるので、一概にこれだという定義はないと思っております。
私の経験に基づき、企業規模(日本の企業)に応じて設計者、プログラマーの仕事内容を下記のとおり分類してみました。

企業規模と設計者・プログラマーの仕事内容の関係

(1)フリーランス、自営業

【私自身の勤務経験】なし
【取引先】すべて
【仕事内容】プログラミングが主、設計は極少数
【設計者】スキル職業レベル。ただし、仕事の機会が少ない。
【プログラマー】スキル職業レベル。

(2)社員2,30人のソフトハウスの場合

【私自身の勤務経験】あり
【取引先】大企業の下請け、中堅企業の下請け(中には超大企業の直受けも)
【仕事内容】プログラミング+詳細設計(要求仕様書=取引先の基本設計)
【設計者】スキルは高いが、極少数の人のみ行う。
【プログラマー】受託を中心に実績豊富な人が多い。スキル職業レベル。

(3)社員100人~300人の中小企業の場合

【私自身の勤務経験】あり
【取引先】超大企業の直受け、大企業の直受け(自社製品も多い)
【仕事内容】プログラミング+基本設計(詳細設計は人的リソース不足から省略されることもあり、ソースコードが詳細設計代わりの所以はこの規模に多い)
【設計者】作れるが、めんどくさいという理由で作成しない人も多い。
【プログラマー】実績豊富な人が多い。スキル職業レベル。

(4)社員300人~1000人の中堅企業の場合

(東証一部もあり、自社製品も多い)
【私自身の勤務経験】あり
【取引先】超大企業の下受け、大企業の直受け(仕事の進め方で超大企業の縛りを受けることが多い)
【設計書作成スキル】スキルの差が大きい(プロレベル~素人レベルに近い人まで多種多様、基本設計~詳細設計がメイン、最近は要求仕様、機能仕様メインにシフトしていこうとする傾向もあり)
【プログラミングスキル】スキルの差が大きい、プログラミングが得意な人は少ない。スキル必須レベル。

(5)社員1000人以上~10000人

(東証一部のJPX日経400のメンバーが多い、独立系企業)の大企業の場合
【私自身の勤務経験】なし
【取引先】超大企業の直受け、官公庁、エンドユーザ向け自社製品
【設計書作成スキル】スキル高い(機能仕様~基本設計がメイン)
【プログラミングスキル】業務に必要ないがスキルが高い人が少なくない。

(6)社員数万人規模の超大企業

(東証一部の日経225の構成メンバーが多い、国策企業、グループ全国展開)の場合
【私自身の勤務経験】あり
【取引先】官公庁、エンドユーザ、グループ親会社向け自社製品
【設計書作成スキル】スキル高い(機能仕様がメイン)
【プログラミングスキル】入門レベル(入社時の研修時に行う程度、ほとんどが外注のため必要なし)

(番外編)外資系

【私自身の勤務経験】なし
【取引先】大企業や超大企業に近い、
【設計書作成スキル】スキル高い(職業レベル、洗練されている。)
【プログラミングスキル】実績豊富な人が多い。職業レベル。

中小企業~中堅企業ではプログラマーと設計者の境界はありません。
大企業~超大企業では日本企業ではプログラマーという職種が少ないです(ほとんどが外注のため)

いわゆるスキルは職人レベルの職業プログラマーと言われるような人たちは設立間もない勢いのあるベンチャー企業や外資系、フリーランスの方に多いというイメージです。極端な言い方をすれば、この方たちは超エリートなプログラマーで、どちらかというとマイノリティです。

まとめ

このため、私も含め、一般のマジョリティに含まれるグループの方々は設計者としてのスキルを早めに身につける努力をしたいところです。
プログラマーと設計者で求められるスキル内容の違いは大まかに下記のようなイメージです。

(1)設計者

これから作ろうとする製品またはシステムに必要なソフト、ハード両面で実現手段を具現化することができる。そして動作効率、資源効率を考慮し、最適な基本設計、詳細設計(プログラミングの指針)を示すことができる。

(2)プログラマー

設計者が提示した指針のもとに間違いないく指定されて言語で品質のよいプログラムを納品することができる(プログラムの品質は本当に作る人に左右されます。まさに職人に近いですね)。

私が考える理想の設計者は

設計内容に対する実現手段の根拠を説明できる人です。
実現手段の根拠=机上の解析だけでなくプログラマーとしての
経験としてもよいと思っています。

プログラミングのスキルも高い設計者を目指してほしいですね。

では次回からは、設計者に関わる技術的なトピックについてご紹介していきたいと思います。

  • B!