【体験談】未経験から体験する受託開発と自社開発

質問者

未経験からプログラマーになりたいけど、
受託開発を行う会社と、自社開発を行う会社、どっちを選ぶべき?

IT業界に未経験からプログラマーとして就職しようとした場合、

「受託開発」や「自社開発」という言葉を見かけることがよくあると思います。

どちらを選ぶかによって、人によってはやりやすさが大きく異なってきます。

 

今回は「受託開発」と「自社開発」をどちらも体験した新人プログラマーの目線で

体験談をお届けしようと思います。

 

書いた人

私は実務経験2年の新人プログラマーです。

実務経験のある言語は
C#,Java,PHP,SQL,JavaScript,VBScript,HTML,CSSと幅広く経験しておりますが、
いずれも半年前後~1年程度の経験です。

今回は、そんな新人プログラマーだからこそ伝えられる体験談を
語っていこうと思います。

 

受託開発と自社開発

受託開発 と 自社開発 の違い

まずは受託開発と自社開発の違いを簡単に説明します。

 

受託開発とは?

受託開発とは、顧客から「こういうシステムをこの日までに作ってくれ!」のように

作るものの依頼を受け、納期までに完成したものの納品を行う開発スタイルのことです。

 

開発中は、開発の状況の報告や、仕様の調整などを、

顧客と連絡を行いながら進めていく形となっています。

 

自社開発とは?

自社開発とは、自社内で「こういうシステムを作ってみよう!」のように

企画をすることから始まり、自社内で完成まで完結させる開発スタイルのことです。

 

仕様の調整やスケジュールの調整も社内で完結しますが、

会社の規模や開発するものによって、開発の「緩さ」が変わってきます。

 

受託開発の体験談

【受託開発】実際の業務内容

私が体験した受託開発の業務内容は、

とある金融系Webシステムのマイグレーション対応でした。

 

開発環境は以下の通りです。

言語 Java, JavaScript, VBScript, Oracle SQL
技術 Eclipse(Pleiades), SQL Server, Object Browser
フレームワーク なし

 

マイグレーションとは、システムの環境を新しくするというようなことを意味します。

今回の場合は、

「使用していた開発言語のバージョンが古いものだったので、バージョンアップをするけど、

バージョンアップをしたことで表示や動きがおかしくなることはないかテストしてね!

ついでにおかしいところがあったらコードを修正してね!」

というような内容でした。

 

細かい部分は省きますが、

コードを読み仕様を把握する

把握した仕様を基にしてテストを作る

テストをする

おかしいところがあったら報告し、
必要があればコードを修正する

という流れで業務を行いました。

 

【受託開発】体験して学んだ3つのこと

1.知らない知識を蓄えることができる

私が体験した案件はマイグレーション対応でしたので、

既に基本となるシステムは出来上がっていました。

その為、「このボタンを押すと、画面のデータがここに移動して、

新しく画面にこれを表示する」というようなコードが既に書かれている状態でした。

 

「この機能を実現するためには、こういうコードを書く方法があるのか!」と、

コードを読みながら学ぶことができました。

 

2.コードを書く上での約束事が身に着く

こちらも既にコードが書かれているから学べたことですが、

コードを書く際には、気を付けないといけないルールのようなものが多くあります。

特に受託開発の場合は、顧客からルールを指定されることもあると思います。

 

例えば、「ここで使う名前は大文字始まりにしてね」というようなものです。

 

そういった約束事は、受託開発や自社開発に関わらず、コーディングをするうえで、

常に守らないといけません。

 

もし約束事を守っていなければ、

「別の役割を持つものに同じ名前をつけてしまった!」

といったことや、

「この役割には名前がついてるけど、何をするものなのかよくわからない……」

というようなことが起きてしまい、バグや効率の低下に繋がってしまうからです。

受託開発のコードは、基本的にその守らなければいけない約束事に沿って記載されているので

コードを読むことで自然と約束事を意識できるようになります。

 

また、一覧にして約束事をまとめてある場合もあるので、

どのように約束事が分類されているのかも学ぶことができます。

 

3.データの受け渡しが読み取りづらい

コードを書くのに約束事はありますが、それは案件によって様々であることがほとんどです。

細かく決めている案件もあれば、大まかにしか決めていない案件もあります。

私が体験した案件は後者であった為、それこそ名前などは約束事に従って書いてあるのですが、

とある機能が、そこでは不要な役割を持っていたり、

別の機能を実現するために必要な情報が、あるべき場所に書かれていなかったりすることがありました。

 

更に、だれが書いたコードなのかもわからないので、

ひたすら沢山のコードを読み、必要な情報を見つけ出すというような

地獄のような時間が発生することが何度かありました。

 

自社開発の体験談

【自社開発】実際の業務内容

私が体験した自社開発の業務内容は、

勤怠情報の入力ができるWebサイトの作成でした。

 

開発環境は以下の通りです。

言語 PHP, JavaScript, HTML, CSS
技術 Eclipse(Pleiades), phpMyAdmin
フレームワーク Laravel, jQuery

 

受託開発がメインの会社であった為、客先で仕事をすることも多くありました。

そんな中、「外出先でも勤怠情報の入力ができるようにしよう」と企画されたのが

私の体験した自社開発案件でした。

 

【自社開発】体験して学んだ3つのこと

1.社内で完結しているので不明点が解決しやすい

企画から完成まで、開発工程が自社内で完結しているため、

不明点をすぐに聞きたい人に聞くことができました。

 

例えば、ユーザー登録機能を作る場合に、

パスワードは大文字小文字どちらも含む必要があるか、

数字も含む必要があるか、文字数の下限上限はどうするか、

という細かい点を確認しそびれた場合にも、

すぐに、直接企画側の人間に尋ねることができます。

 

2.普段任されない工程を学ぶ機会がある

顧客がいる場合は、失礼のないよう身の丈にあった仕事のみ

任されることになりますが、自社内の場合、多少のミスは社内でカバーできるため、

普段は任されない、少し難しい工程も任せてもらえることがあります。

 

私は当時、一部機能のコーディングや、テストしか触ったことがありませんでしたが、

自社のものだから、と要件定義などドキュメントの作成や、

Webサイトの複数のページのコーディングを任せていただくことができました。

 

3.スケジュールが変更されることがある

私が体験した案件が、自社の社員向けのシステムだったのもありますが、

自社(ユーザー)にしか影響がないため、社内の忙しさによって

スケジュールが大きく変わることがありました。

 

企画側に確認した仕様で、本来2週間後にコーディングを始めるという予定が、

受託開発案件が忙しくなってきたので、ひとまず自社開発をストップして

来月に始めるよう変更するというように、手を付けたことを中断しないといけないこともありました。

 

体験を通して業界未経験の方へ

受託開発と自社開発、選ぶなら?

結局は、自分がやりやすいと感じたほうをやるべき

やはり、どちらが良いのかという点では「案件次第」ということになってくると思います。

ですので結局は、自分がやりやすいと感じたほうをやるべきだと思います。

案件によっても変わってくるので、経験を増やしてやりやすい形を見つけていくことになると思います。

 

ただ私の好みを述べるのであれば、自社開発のほうが柔軟に感じて好きです。

また、社内の人間に不明点を確認できるので、

あまり堅苦しい感じにならずに取り組むことができたかなと思います。

 

共通して言えること

わからないときは、とにかく質問する

受託でも自社でも、10分ほど考えてもわからないと感じたときは、

とにかく質問をしましょう。

 

特に未経験からの場合は、わからないのが当たり前で、周りもそれを理解しています。

そのわからないのが当たり前の状態のうちに、

先輩や上司などに質問するようにしておきましょう。

 

報・連・相はしっかり

IT業界でも、報告・連絡・相談は大切です。

自分でも些細に思えることも、上司にとっては大切なこともあります。

たとえスペルミスのように小さなミスでも、バグが起きるきっかけになります。

 

自己判断せずに、少しでも「言っておいた方がいいかな?」と思うことは

伝える癖をつけましょう。

 

書いた人

受託開発と自社開発の違いについて、
何となくは伝わったでしょうか?

少しでもみなさんの選択のお役に立てれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA