見出し画像

エンジニアが請負開発をして何が楽しいのか

タビアンの難波です。
タビアンはエンジニアの会社で、自社サービスを開発しつつ、請負開発をしています。

エンジニアの会社を創業して何をしたかったのか

タビアン株式会社という会社を創業したのが2015年です。
私はエンジニアですので、自分のプロダクトを作りたいと思いました。
それも、一般の方たちに使ってもらえるようなサービスを作りたいと思いました。

2019年に銀行から開発資金を借り入れました。
エンジニアを含めたチームを20名超に大きくして、自社サービスの開発を始めました。

自社サービスは、写真を撮りながら聖地巡礼するサービスで、イベント・旅行系です。
ところがβ版が完成する直前にコロナ禍になってしまい、一般向けリリースを断念。
エンジニアのチームも解散となりました。

自社サービスの開発は楽しかった

「自社サービスの開発をしています」というセリフは、エンジニアにとっては麻薬みたいなものです。
エンジニアとして誇れる立派な活動をしているような気持ちになりますし、「自社サービスの開発をしている会社」という属性はとても魅力的です。 

しかし、自社エンジニアで進める自社サービスの開発には、特徴的な課題があります。

いつリリースできるのか見えない開発スケジュール。
金額感も終わりも見えない出費。
集まったエンジニアのスキルに合わせて縮小する仕様。
エンジニアのやる気に左右されるコミュニケーション。

ローンチ前スタートアップの自社開発あるあるだと思いますが、エンジニアが何人も集まって開発をしたのに、体系だった開発手法が社内に蓄積されなかったんです。

自社サービスの開発をしていたときを振り返ってみると、自分たちの目線は「どうやって楽しく開発するか?」というところにありました。

だからこそ、

どうやったら期日に間に合わせることができるか。
どうやったら次の開発に活かすことができるか。
どうやったらコストを圧縮することができるか。

という観点が自社内に育たなかったのだと思います。

開発を続けるために請負開発を始めた

自社サービスの開発が停止した後、自分たちに足りていないものは何か、社内のエンジニアで話し合いました。

自分たちに技術力はある方だと思う。
新しい技術や開発手法を選定した方だと思う。
チームビルディングも悪くない方だと思う。

それなりにお金を使って、たくさんのエンジニアにコードを書いてもらって、コロナという外因もあったけど、自社サービスを世の中に送り出すことができなかった。
話し合った結果、プロダクトを完成させて世の中に送り届ける力、「エンジニア力」が不足しているのではという結論になりました。

自分たちの「エンジニア力」を鍛えなきゃ。
「エンジニア力」を鍛えるにはどうしたらいいか。
筋トレみたいに、筋細胞に負荷をかけることをすればいいのでは。

そこで、開発する力、エンジニアリングする力を鍛えるために、他社からお金を頂いて他社のために開発する”請負開発”を始めました。

準委任契約・請負契約を区別しないで、案件として請けてチームで開発するプロジェクトを“請負開発”と言うことにしています。

請負開発でエンジニアは幸せになれるのか

私の周りにいるエンジニアは、口々に「自社開発がしたい」って言います。
自社開発よりも請負開発がいい、という人はレアキャラです。

とはいえ、請負開発をしているエンジニアはたくさんいます。
なぜ請負開発だとエンジニア的に幸せになれないのか、という質問をしてみたことはありませんが、請負開発したことのあるエンジニアに共通なんじゃないかと思う感覚があります。

1. 自分の好きな技術が使えない。
2. 自分の好きなものが作れない。
3. 納期が厳しくてツラい。
4. お客さんと話すのが苦手。
5. 人と話すのが苦手。
6. 家から出たくない。
7. 新しいMacBook Proほしい。
8. 大きなディスプレイほしい。
9. 仕事したくない。
—— エンジニアの不満トップ9

じゃあ、自分の好きな技術で自分の好きなように好きなものを作ることができて、納期なんかなくって、お客さんもいなくって、誰とも話さなくって良くって、家に引きこもっていてOKで、最新のMacBook Proで大きくて色写りの良いHDRディスプレイで開発ができて、仕事しなくてもよくって、それでもお金に困らない理想郷はあるんでしょうか。

そんな理想郷にいたら、もはやエンジニアではなくなってしまうと思います。

エンジニアはどういうエンジニアであるべきか

エンジニアができる仕事って、かなり広いと思います。
システムやサービスに関することは全てエンジニアの専門分野、だと思ってます。

新しいサービスのローンチを目指すときを考えてみます。
最初に企画を考える人がいて、システムに落とし込むことを考える人がいて、開発に必要なお金を集めてくる人がいて、システムを作るプロセスを考える人がいて、実際に作る人がいて、リリースさせる人がいて、リリース後の障害対応する人がいて、お客さんからの問い合わせに答える人がいて、機能アップデートを考える人がいたりすると思います。

エンジニアの仕事って、どこまででしょうか。
私のエンジニア観としては、「全部がエンジニアの仕事」です。

システム開発の現場ですと、詳細設計から結合テストまでがエンジニアの仕事、とされていることが多いです。
そうすると、システムの要件自体に意見したり、システムの使われ方を変更したりすることは、「してはいけないことリスト」に入っているエンジニアも多いのではないかと思います。

しかし、システムやシステムに関連するものごとについて、一番詳しいのがエンジニアです。

システムの知見や経験を活かして、自分で100%やり切ることができなくても他の人を巻き込んで、システムに関わるところだったら何でもやる。
そんな姿勢のエンジニアがいても、間違いではないと思います。

エンジニアにも筋トレが必要だ

エンジニア力を鍛えることと、筋肉を鍛える「筋トレ」には、共通点が多いと思います。

筋肉は裏切らない。
エンジニア筋も裏切らない(はず)。

筋肉トレーニングに大切なのは負荷ですし、エンジニア筋トレーニングに大切なのも負荷だと思います。

とある後輩エンジニアが言っていました。

「障害が発生すると、めっちゃログを読むじゃないですか。アドレナリンたくさん出てきて。目を血張らせながらログを読み込むと、エンジニアって成長しますよね。」
— とあるエンジニア談

自分の力をちょっと上回るくらいのタスクに取り組むことを習慣にすることで、エンジニア筋が育つと信じています。

他社のために、他社からお金を頂いて、決められた期間で、システムを作り上げる・・・。
請負開発に携わると、お客様から寄せられる期待と納期がプレッシャーとなって、エンジニア筋に働きかけてきます。
短い期間でエンジニア筋を鍛えることができる、ジャストサイズの負荷だと考えています。

結局、エンジニアが請負開発をして何が楽しいのか

エンジニアをお仕事にしていると、できることをどんどん広げていきたくなります。
知識に貪欲なのがエンジニアの傾向だと思いますし、自分の可能性を大きくできる機会は大好物だと思います。

自分の技術スタックに収まらないことにチャレンジすることができる。
納期を決められて、アドレナリンを出しながら開発に集中することができる。
エンジニア筋を鍛えることができて、自分の可能性を広げることができる。

そんな環境を求めるのが、エンジニアとして本望だなあと思うのです。

エンジニア筋トレーニング仲間を増やしたい

エンジニア筋トレーニング、略して筋トレを一緒にしてくれる仲間の募集をしています。

気になった方は覗いてみてください。


この記事が気に入ったらサポートをしてみませんか?