見出し画像

受託開発はいいぞ〜

こんにちは、@petitviolet です。
キャリア通していわゆるWeb系の会社でソフトウェアエンジニアとしてソフトウェアの開発を主たる仕事としてやってきました。
開発する対象を雑に分類すると自社サービスか受託開発かといったところになるかと思います。
自分が就職活動していたときは、自社サービスをやっているところに絞って会社を選んでいたくらい受託開発なんて面白くなさそうというイメージを持っていました。
実際、新卒で入った会社では既存事業・新規事業どちらも自社サービスとして開発に関わって非常に楽しかったので、転職するときにも自社サービスを展開している企業に絞って探して転職しました。

なんやかんやあってPlay Technologiesに入社しましたが、弊社では自社サービスの かんたん予約ポチコ を展開しているものの少なからず受託開発の売上に依存している状況となっており、私は両方に携わっています。
(それはそうとポチコはなかなか好評いただいていて順調に伸びています)

自社サービス

自分たちで何を作るか決めて、どうやるか考えて、クライアントとの調整もあるので100%とはいかなくても裁量をもってリソースをかけてプロジェクトを進めていけるというのは、達成感も挫折感もやりがいも強く感じることが出来ます。
とはいえ、やることが無限に湧いてくるのでミクロで見ると目の前のタスクを倒していくだけで日々が過ぎていき、さらにビジネスとしても場合によるとはいえ不確実性が高い傾向にあり、成功も失敗も要因がよく分からないなんてことも多々あります。「売上は全てを癒す」なんて言葉もあるように上向きでうまくいっているときはそんな不確実性も前向きに楽しめますが、何かよく分からないけどうまくいかない、みたいな場合にはその不確実性がボディブローのように効いてきて何となくしんどい日々が続くことになります。
ソフトウェアエンジニアとしては、自分が開発して世に送り出したサービスや機能を誰かが使ってくれている様子を観測できることはとても嬉しいことですし、フィードバックがあれば「よっしゃ直すぞ!」みたいな気持ちになりますよね(ならないことも少なくないですが)。

人生を懸けてやるなら自社サービスだと思っているし、ゆくゆくは「あのサービスはパパが作ったんだぞ〜」って子どもに自慢したいという邪な気持ちも多分にありました。

受託開発

ところが、PT社に来て受託開発を実際にやってみて捉え方が変わったところもありました。まず、解決したいペインを持っている人が具体的に存在するということの良さがあります。何かしら開発して提供すれば喜んでくれる人が確実にいるということは、自社サービスには無いポイントだと思っています。それに加えてクライアントへの依存度は高いもののスケジュールというものがあり、無事に納品が完了したら売上に反映されるという気持ちよさは代えがたいです。プロジェクト全体がそもそもクライアントに依存するので、アンコントローラブルな部分が大きいというのは見方によってはデメリットですが、具体的な相手が存在するので必要に応じてコミュニケーションもとれるし代替案を一緒に模索して落とし所を決める余地があるという点では大きなメリットだと感じます。

ソフトウェアエンジニアとして見ると受託開発の案件はある意味での新規事業であり、要件に応じた技術選定の機会となりますし、スクラッチ開発であればインフラからアプリケーションまでフルセットで実装する機会にもなります(案件によっては技術を指定される可能性もあるとは思います)。開発効率のためにも必要な外部サービスを都度選定して使ってみるなど、既存事業の開発を継続している場合よりも新しいものに触れる機会も多くあるように感じます。新規プロジェクトだからこそ、新しいライブラリを採用したり普段使いしているライブラリの最新版を使うなどが可能だったりします。とはいえ予算・スケジュールという強い制約のもとでどこまでチャレンジ出来るかというのを考えることが出来てソフトウェアエンジニアとしてはいい成長の機会だと考えるようになりました。

なんというか、少しでも考えてみると当たり前しか書いてないですね。ですが、そういうことです。現実的には色々な事情も絡むので必ずしもそうとはいえない場面もあるとは思いますが。

むすび

いかがでしたか?
「自社サービスが至高、受託開発は自分には合ってない」なんて思っていた頃が僕にもありました。そんなことなかったです。実際に体験してみるというのは何にも代えがたいものがありますね。