こんにちは。いなおです。
「プログラマーってどこで働いてるの?」
「毎日プログラミングしてるの?」
「休日はちゃんと休めるの?」
こんな疑問や不安を感じている人は結構いるはず。
今回はこのあたりの疑問や不安に答えつつ、普段プログラマーがどんな感じで働いているのかをご紹介いたします。
いざせっかく就職・転職しても想像してた感じと違ったら嫌ですし、理想と現実は往々にして異なりますからね。
これからプログラマーを目指す人は、是非この記事を読んで疑問や不安を解消しつつ現場の雰囲気を味わってみてください。
ちなみに、プログラマーといっても働き方は様々ですが、今回は自分の経験をもとにご紹介いたします。ですので、ソフトウェア会社に入社し、会社員として働くケースであることご了承ください。
たとえば、フリーランスでのWeb制作・Webデザイナーなんかだと、また違った働き方になってきますのであしからず。
これが会社員プログラマーの働き方だ!
働き方は大きく分けて、現場常駐型と社内SE型の2つ
「プログラマーは普段どこで働いてるのか?」
これは大きく2タイプに分かれます。
ズバリ「現場常駐型」と「社内SE型」です!これだけです!
割合で言うと、会社にもよるでしょうが、うちの場合は 9:1 くらいで圧倒的に現場常駐型が多いです。
現場常駐型
現場常駐型とは、他社からシステム開発の依頼を受けた際、その依頼元の会社に常駐して開発を行う、という働き方です。
現場に常駐して作業するから現場常駐型といいます。そのまんまですね。
システム開発の依頼を受けた場合、そのほとんどは依頼元の会社、つまり客先で開発を行います。
依頼元のお客が常にそばにいるので、仕様確認やスケジュールの確認がその場ですぐに出来るのがメリットです。お客にとっても、開発の進捗状況がすぐに確認できるので安心です。
また、システム開発を行う際、設計やテストでどうしてもナマの業務データを扱うケースが出てきます。お客にとって外部にナマの業務データを持ち出すことは情報漏洩のリスクを抱えることになるため、自社で開発させるわけです。
ちなみに、あなたが新人の場合は1人で客先に行くことはまず無いでしょう。大体、先輩プログラマーと2人だったり、複数人でチームを組んで行くことになります。すでに複数人のチームで開発を行っているところに追加メンバーとして参入することもあります。
また、1プロジェクトに複数の会社のプログラマーが集まって開発を行うことが多いです。例えば3つの会社からそれぞれ3人ずつのプログラマーが集まって、合計9人が1つのチームとして開発を行う、といった具合です。
別の会社が1つのチームとして開発を行うといっても、密にコミュニケーションを取り合うケースもあれば、それぞれ担当する領域が分かれていたりすると、それほどコミュニケーションを取らないケースもあったり、プロジェクトによって様々です。
特にあなたが新人の場合、最初は他会社の人と仕事でコミュニケーションを取る必要はほとんどないでしょう。あなたが新人の間は、お客や他会社とのコミュニケーションは先輩社員が行うからです。
とまあこんな感じですが、現場常駐型はプロジェクトが終了すると、また次の現場のプロジェクトへ参入し、プロジェクトが終了すると、また次の現場へ、、、とプロジェクト毎に作業場所が変わり、その都度一緒に開発するメンバーも変わるのが特徴ですね。
飽き性の人にとっては気分転換になっていいかもしれませんが、逆にずっと同じ場所・同じメンバーで働きたいという人はもう一つの社内SE型が向いてるかもしれません。
社内SE型
社内SE型とは、自社でシステム開発を行いつつ、社内の雑務的な業務も行う、という働き方です。
自社製品(Webサービスやアプリなど)をつくって販売しているような会社だと、製品開発にプログラマーが必要になるため、このタイプの割合が増えます。自社製品開発がメインの会社であれば、100%社内SE型という会社もあります。なんなら、他会社のプログラマーを募集し、自社製品の開発を手伝ってもらうケースもあるでしょう。
一方で、他社から依頼されたシステム開発を自社で行う場合もあります。この場合は社内SE型が対応したり、現場常駐型のメンバーが一時的に社内で開発を行う、といった場合もあります。
また、システム開発以外にも様々な業務をこなすケースが多いです。例えば、他部門からのIT関連の問い合わせ対応であるとか、業務効率を上げるためにシステム化できるところがないか各部門にヒアリングを行う、などなど、ITのなんでも屋さん的なことを行ったりします。
このように、作業場所が自社なので、基本的に周りは自社メンバーしかいないのと、システム開発以外の業務も行うのが特徴です。
毎日プログラミングしている訳じゃない
プログラマーだからといって、毎日プログラミングしている訳ではありません。
先ほど社内SE型の説明で、システム開発とは関係のない業務を行うことがある、というのもそうですし、現場常駐型でシステム開発に専念していたとしても、プログラミングばかりしている訳ではありません。
そもそも、システム開発にはいくつかの工程があります。
- 要件定義
- 基本設計
- 詳細設計
- 製造
- テスト
ざっくり挙げるとこんな感じで、実はプログラミングを行うのは製造工程だけなんです。
といっても、あなたが新人の場合は製造・テスト工程がメインになります。他の工程はそれなりにプログラマー経験を積んだ人が担当するのことがほとんどだからです。
ではやっぱり毎日プログラミングしているのか?というと、そうでもありません。
もちろん1日中プログラミングしている日もありますが、他の作業をしている日もそれなりにあります。
たとえば、進捗確認や今後の作業の進め方を決めるために打ち合わせを行ったり、設計者と仕様の確認を行ったりします。
また、テスト工程では自分でテストパターンを作成したり、テスト実施はもちろん、テスト実施時の画面キャプチャやデデータ情報などエビデンスの取得も行います。
さらに、テストでバグが見つかると、原因を調査しないといけません。新人の頃は原因調査に慣れていないのでこれに結構な時間を費やします。
このように、プロジェクト全体を通して見ると、プログラミングしているよりも、実は他の作業を行っている時間の方が長いなんてことがザラにあります。
休日はちゃんと休めるの?
これは、一概には言えませんが、基本的には休めます。
しかしシステム開発には納期がありますので、納期間近になると進捗状況次第では残業で対応したり、場合によっては休日出勤することもあります。
10年以上前の話だと、毎日終電近くまで働いて、休日はフルに出て、たまに徹夜もあって、、、など、自分が新人の頃はこんな噂をよく聞きましたが、現在はこのようなブラック企業はかなり減ってるんじゃないでしょうか。
ちなみに自分が新人の頃は社内SE型で、休日出勤はほぼ無しでしたが、毎日残業して22時くらいまで働いていました。。。
しかしながら、少なくともここ2~3年で自分がリーダーとして担当したプロジェクトでは、自分もメンバーも含めて残業&休日出勤ゼロでした。時代はかなり変わってきています。
このあたりはリーダーの見積もりやスケジューリング次第ってところが大きいので、もし休日出勤を求められたら運が悪かったと思ってリーダーを恨んでください(笑)残業&休日出勤はすべてリーダーの責任です。あなたは1ミリも悪くありません。
まとめ
はい、ということでまとめると、
- 働き方は大きく分けて、現場常駐型と社内SE型の2つ
- 毎日プログラミングしている訳じゃない
- 基本的に休日は休める。けど休日出勤を求められたら運が悪かったと思ってリーダーを恨め!
こんな感じになりました。
いかがでしたでしょうか?
少しでも、これから始まるあなたのプログラマー人生の手助けになれば幸いです。
それでは。
コメント