昨今フリーランスでの勤め方が流行しているのですがプログラマーに関して間違った知識が広まっているように思います。
ですので今回の記事ではプログラマー・SEを目指すにあたり知って欲しいことなどを解説したいと思います。
目次
ソフトウエア開発関係の職種について
IT開発関係の職種については主に下記の職種に分かれます
SE(システムエンジニア)
システムエンジニアはソフトウエア開発におけるプロジェクトを主導する立場の職種になります。
システムの全体の設計および顧客との折衝をはじめプロジェクトの進捗管理など多岐にわたります。
PG(プログラマー)
プログラマーはSEから渡された設計書を元に機能設計書やプログラム仕様書・テスト仕様書など機能実装面を設計から担当する職種です。
また仕様書作成後はコードを書き機能実装も行います。
コーダー
コーダーとは仕様書を元に機能を実装する職種です。
パソコンスクールなどで言われるプログラマーとは実はこの職種を指していることが多いです。
テスター
テスト仕様書を元にテストを行いバグの発見などを行う職種です。
ゲーム業界だとテストプレイヤーもこの職種に含まれます。
職種毎に必要な能力
SE
システムエンジニアには仕事は多岐にわたると書きましたが実際にはどのような能力が必要となるのでしょうか?
折衝能力
SEは顧客と直接対面してプロジェクトの内容を決めることが多いので顧客とのコミュニケーションを円滑に進める能力も必要です。
金額交渉などは同行する営業担当者が進めてくれるかもしれませんが、プロジェクトの規模にあった機能をまとめるための交渉はSEが担当しなければなりません。
業務分析能力
SEはシステム全体の設計を行うため顧客の業務全体を把握しシステム概要を設計する必要があります。
顧客側の担当者と円滑に話を進めるためにも担当することになった業界のスタンダードな業務についての知識を習得する必要があるでしょう。
プロジェクト管理能力
開発チームの能力を把握しスケジュールを円滑に進めるためコミュニケーションをとりチーム内での調整を行う能力です。
プログラム知識
SEはプログラマーほどの実装能力までは必要ありませんがプロジェクトの開発言語やデータベースで顧客の要望を実現できるかの判断ができる程度の知識は必要となります。
以上のことからSEには様々な知識や経験が必要となるため必然的に年齢の高い方が多い傾向にあります。
PG
プログラマーは実装能力はもちろん必要ですがその他にも求められる能力は多いです
機能分析能力
機能設計書をはじめ詳細設計書やテスト仕様書の作成もプログラマーの仕事の一部であるため実現するための分析能力が必要となります。
また仕様書は他の担当者が実装やテストを行う事も想定し処理フローやテスト方法を分かりやすく伝えるための能力も必要です。
プログラム知識
仕様書を書いたり、実装を行うためには当然プログラムの知識は必須となります。
プログラム知識がないと仕様書は机上の空論となってしまいます。
実装能力
当然実装能力は必要となりますが、ソフトの開発プロジェクトによって使用する言語が変わることは多々あります。
言語が変わった場合それぞれの言語の機能から逆引きできるリファレンスを用いることで実装に大きく影響は出ないと思いますので何か一つ言語を習得しておくといいでしょう。
まとめ
ソフトウエア開発ってバリバリ理系の仕事のようですが、以上のことを考えるとかなり文系の能力も必要ですね
プログラマーやその上の職を目指すのであれば普段から以下のことに気をつけるといいのではないでしょうか
- プログラム言語を習得する
- 物事の筋道立て説明できるようにする
- 色々な業界の仕事がどのように成り立っているのかに気を配る
この業界は新しい技術が日々増えていっているので毎日が勉強ですが、基本となるものは変わらないと思いますのでこれから目指される方の一助になれば幸いです。