

【エンジニア体験談】客先常駐VS自社開発のリアル

私(新井)の自己紹介をさせていただきます。
当社入社前は、SES企業でスマホアプリ開発や業務システム開発などの様々な開発業務などに携わっていました。
現在は主に自社グループ、内製アプリの開発業務に携わっています。
今回は、私自身が経験した、“客先常駐と自社開発働き方の違い”や、それぞれの“メリットやデメリット”についてご紹介します。エンジニアの働き方についてご興味のある方に少しでも参考になる情報をお届けできれば幸いです!
※注意:本記事の内容は、私個人が経験した内容です。客先常駐、自社開発といっても企業によって様々なので、あくまでも参考程度にお読みください。
客先常駐について

客先常駐エンジニアとは
客先常駐エンジニアとは所属する会社の社員としてクライアント先に常駐し、そこで開発プロジェクトに参画する働き方を指します。SES、派遣契約、請負契約等、様々な契約形態がありますが、本記事では「客先常駐」という働き方そのものについてお話しします。
私が客先常駐を経験してみて
前職での直近の常駐先では、客先常駐エンジニアとして比較的大規模なスマホアプリ改修プロジェクトに参画していました。
プロジェクトの規模感
アプリエンジニアだけで約40名〜50名参画しており、その中でさらに複数のチームに分かれていました。私はそのうちの1チームに参加していました。
業務内容
主な業務は、客先からの開発依頼をベースに、設計、開発、テストまで一貫して行なうことです。依頼内容はクライアント側で事前に精査されていた依頼が多い印象です。また、成果物としてソースコードのほか、設計書やテスト結果、案件対応に関連するドキュメントの提出も必要でした。案件の難易度にもよりますが、週に1、2件程の開発案件を担当し、1日の大半を実装や調査に費やしていました。
環境面
開発に集中できる環境が整っている一方で、使用技術や仕様については客先の方針に合わせる必要があります。
客先常駐時代に感じたメリットデメリット
〇メリット
1.多くの時間を技術に費やせる
実装や開発関連の調査に集中できる環境が整っている為、開発スキルを磨きやすい
2.ノウハウが豊富
所属会社や客先が技術に特化している場合が多く、開発関連やプロジェクト遂行に関するノウハウが豊富
3.様々なプロジェクトを経験できる
常駐先やプロジェクトごとに開発内容が異なる為、幅広い技術の経験を積むことができる
▲デメリット
1.ユーザーや顧客の本質的なニーズが見えづらい
客先からの依頼ベースで開発を行う為、依頼の背景や目的を深く知る機会が少ない
2.技術以外の経験を積む機会が少ない
開発以外の業務について経験する機会が少ない為、キャリアの幅が狭くなりがち
3.技術環境が決まっている
使用する技術や開発手法が客先のルールに基づく為、希望の技術を選択することが難しい
4.意見が通りづらい
リファクタリングやドキュメント改善といった提案が採用されにくいこともある

自社開発サービスについて
自社開発サービスとは
自社開発エンジニアは自社が提供するシステムやアプリを開発する働き方を指します。具体的にはスマホアプリ、Webサービスなど自社が所有、運営するプロダクトの開発を行います。
私が自社開発エンジニアを経験してみて
現職ではライフカードのスマホアプリ開発プロジェクトに参画しています。プロジェクトの規模としてはアプリエンジニアが13名おり、チームで連携しながら開発を進めています。
業務内容
主な業務は、依頼部署から開発依頼を基に、開発、テスト、リリースまでを担当することです。依頼内容に応じて、仕様の調整や改善点の提案を行なう必要があります。品質を高める為、依頼部署とコミュニケーションを取りながら仕様を固めていくことが重要です。担当案件は月に1、2案件程で、客先常駐の時と比べると実装に費やす時間は少ないです。ただ、仕様の調整や新規機能の提案、チームの開発環境の改善といった、技術以外の経験を積める場面が多くなりました。
客先常駐との違い
自社開発では、事業貢献をしながらお客様のニーズを理解し、プロダクトの成長を見据えた提案を行う機会があります。また、開発環境や使用する技術の選定にも関われる為、自分たちが働きやすい環境を整えることができるのが魅力です。

現在の環境で感じたメリットデメリット
〇メリット
1.技術スタックの選定に関われる
使用する技術やツールの選定に関して、自分の意見を発信しやすく、開発者として主体的にプロジェクトに関わることができる。
2.開発以外のスキルを伸ばせる
仕様調整や環境改善、新規機能の提案など、開発以外の面でも提案できる機会があり、幅広い経験を積むことができる。
3.担当プロダクトに愛着を持てる
自分が開発するアプリに長期的に担当する為、愛着を持って取り組むことができる。
▲デメリット
1. 技術に触れる時間が少ない
客先常駐と比べると、実装する時間が少なく、業務だけで技術力を向上させることは難しい場合がある。
2.ノウハウが未成熟な場合がある
技術に特化した企業ではない場合、プロジェクトを進めるノウハウや開発プロセスの整備、開発ノウハウなどが未成熟な場合があり、進行するのに苦労する場面がある。
3.経験できるプロジェクトが少ない
自社プロダクトの開発が中心となる為、経験できるプロジェクトの幅が狭くなる場合がある。また、触れる技術にも限定的になり、開発スキルの幅が狭くなってしまうことがある。

どちらも経験して
仕様調整の難しさ
自社開発エンジニアとして働き始めた当初は、技術的な課題と依頼者の要望を両立させながら調整していくことに慣れておらず、戸惑う場面がありました。しかし、経験を重ねていく中で仕様調整の重要さがわかるようになり、今ではスムーズに進められるようになりました。
ユーザー目線の違い
客先常駐時代に開発していたアプリの多くは、私自身が利用するサービスではなかった為、アプリを客観的に見ることが難しいと感じていました。しかし、現職では自分自身も日々、アプリを使用しているので、ユーザーと同じ目線で機能やUXを考える事ができ、機能の改善や提案に繋げることができています。
働き方について
私は客先常駐から自社開発に移った為、比較的スムーズに順応できましたが、逆に自社開発から客先常駐に移る場合は、使用する技術が限定されたり、技術の幅が広くない場合がある為、慣れるまで苦労が多いのではないかと思います。
さいごに
本記事では、客先常駐と自社開発という異なる働き方の特徴を私の経験を基に紹介しました。どちらの働き方にもメリット、デメリットが存在し、どちらが合っているかは個人によって異なりますが、この記事が皆さんのこの先のキャリア選択の参考になれば幸いです。