(話を聞くだけなら)みんな大好きIT業界。IT業界では一体どんな内容の仕事があるのだろう?
このシリーズ記事ではそんな疑問を持つ学生の方、社会人の方のためにIT業界、特にSIer業界について、IT業界に5年務めた筆者の実体験をもとに、そこで働く人たちの役割ごとに紹介していきます。
プログラマ編
さて、ITの仕事と言ったらほとんどの方はプログラムを思い浮かべるのではないでしょうか?
それも正解です。
実際にはプログラムはITの仕事のほんの一部分でしかありません。しかし、プログラムでしか実際のITシステムやソフトウェアを作れないのも事実です。
最終成果物を作るという点で、それ以外は必要だけど全て無駄なものです。
というわけで、そんなプログラム、及びそれを行う人「プログラマ」について紹介していきます。
一人でもできる職種なの?
規模が小さいのであれば、ある程度個人でもできてしまうのがプログラマです。簡易なアプリやフリーウェアなど、個人制作のものが数多く手に入ると思います。
ただし、プログラムの自動化もしくは半自動化の技術、高度な開発エンジンやCAD、人工知能の開発、それらを使用する大規模システムなど、開発するシステムの規模が大きくなると、当然複数人でチームを組んでプログラムしていくことになります。
ですので、「自分はコミュニケーションが苦手なので一人でもできるプログラマ職に就きたい」、という風に考えている方がもしいたとしても、所属によってはチームプレイは避けられ無いのが現実だと思います。
プログラマの給料は安い?国内と外国で違いはあるの?
結論から言うと、ピンキリです。この理由は、次の「プログラマって具体的には何するの?」で説明します。
プログラマって具体的には何するの?
プログラムを行う人はプログラマと呼ばれます。しかし、一口にプログラマと言ってもその仕事内容は多岐に渡るのはあまり知られていないことかも知れません。これは前段の給料のお話にも関係してきます。
国内のプログラマの年収は海外に比べて低いという話がネットには良く現れます。実際にそうなのかもしれませんが、この言葉には一部誤解が含まれていると思います。と言うのは、プログラマとは一体何ができる人のことなのか、ということが抜け落ちているからです。
いやいや、冒頭でプログラムをする人って書いてあるじゃない。確かにそうなのですが、プログラムにも色々種類があるのです。
以下にプログラマーAさん、Bさんを具体例に出して説明します。ただし、これはあくまで私の経験と、ネットの意見を見て私なりに整理した内容ですので、一般的な定義では無いことにご留意ください。
■プログラマ Aさん
役割
上位仕様やハードウェアアーキテクチャにしたがって、ソフトウェアアーキテクチャ(ソフトウェア構造)まで踏み込んだプログラムが書ける人。アーキテクトとか呼ばれたりする人。システムの全体的なソフトウェアアーキテクチャについて指針を決定し展開します。コアな部分は自らプログラムも行います。
生み出す価値
このソフトウェアアーキテクチャの出来栄えによって、より堅牢なシステム構造となるかどうかが決まり、その結果設計レベルでバグの作りこみリスクが減ったり、その結果工数削減に至ったり、保守性が上がったりなどはザラなのです。つまり、システムに与える影響が大きく、生み出す価値も大きいといえると思います。
パーソナリティ
個人的にですが、このレベルの人は他の人に比べて比較的ギークな人が多い印象です。パフォーマンスの波も結構揺れが大きいような気がするため、チーム内でその人のモチベーションを維持できる仕組みが重要だと思います。
その他
職場によってはSEの職務(ジョブ)に分類しているところもあるかと思います。
■プログラマ Bさん
役割
与えられた詳細設計書にもとづいてコーディングする人。仕事の効率化のために、人によってはプログラム本体のためのバッチ処理や、簡易な自動化をするなどして工夫を凝らします。必要に応じてドキュメントも書きます。
生み出す価値
誤解を恐れずに言うと、最終的にできる成果物の価値としては、詳細設計書の内容を超えるものではありません。たとえこの人のスキルがどれほど高かろうともです。
パーソナリティ
私の知るプログラマの方々は、真面目で、パフォーマンスも安定して発揮される方が多い印象です。
その他
仕様書通りに作るのはもう飽きた!
このAさんとBさんの職務(ジョブ)は厳密には違うのものなのですが、ネットでは一括りになって語られているのだと思います。また、国内だろうと、外国だろうと一般的に年収が高いプログラマというのは、アーキテクト、若しくはアーキテクトに準ずる成果を出す人材なのだと思います。
もちろん、同一の職責でも、そもそも価値の高いものを作っている方がより給料が高いことが予想されます。ですので「最終的な成果物にあまり価値の無いシステムのアーキテクトの給与 < 最終的な成果物に大きな価値があるシステムの外国のプログラマの給与」という場合も当然あると思います。
※アーキテクトとプログラマを使い分ける企業、プログラマと一括りにする企業などあるかと思います。このように用語が厳密に定義されていないのもIT業界の悪いところだと思います。それとも私の知らないどこかに定義されてるんですかね?
※最近トレンドの人工知能。彼らにかかれば、ここで記述したアーキテクト、プログラマの市場価値はそれほど変わらなくなるのかもしれません。
終わりに
いかがでしたでしょうか。プログラマの概要についてイメージを少しでも掴めていただけていれば幸いです。
また機会があればより具体的なプログラマの日常をご紹介できればと思います。
ここまでご覧頂き、ありがとうございました。