安心!安い!早い!家庭教師付き個人開発
前回は、どんな経緯でどういったアプリを個人開発しているか書きましたが
今回は
・自分の専門外の分野において
・自分の専門と同等か少し低いくらいのコードのクオリティを担保しつつ
・企業でやるよりは安価に
・個人開発よりは高速に
という美味しいとこ取りの開発を目指した結果、どのような開発体制に落ち着いたか書いていこうと思います。
個人開発・組織開発とQCD
ところで、👆で書いた
・専門外の分野でもクオリティは高く
・企業でやるよりはコストは安く
・スピードは個人開発より高速に
という要求は、プロジェクトマネジメントにおけるQCDへの要求そのものですよね。
※QCD:Quality(品質)、Cost(価格)、Delivery(納期)の頭文字を取ったもの。
開発生産の評価に用いられる。
というわけで、現状取りうる選択肢とそれぞれの特性を把握するために、既存の各開発体制のQCDに関するレーダーチャートを作成し、クオリティ / コストを評価軸として以下のようにマッピングしてみました。
それぞれの特徴を見ていきましょう。
よちよち個人開発
初学者が個人開発を始めた / エンジニアであっても専門領域外で個人開発を始めた状態がこれに該当します。
(自分のFlutter開発もこれに該当)
この状態では、以下の特徴を持ちます。
・個人開発で自分で手を動かすため、持ち出しコストは低い。
・ただし、言語や開発自体に不慣れなため、成果物のクオリティは低い。
・開発自体が遅く、またフルタイムほど時間を使えるわけではないため、開発速度は遅い。
熟練個人開発
初学者が個人開発で経験を積んだり、熟練のエンジニアが個人開発を始めた状態がこれに該当します。
(自分のiOSネイティブ開発はこれに該当)
この状態では、以下のような特徴を持つようになります。
・個人開発で自分で手を動かすため、持ち出しコストは低い。
・言語や開発自体にも慣れてきたため、成果物のクオリティは高い。
・開発自体は速くなってきているものの、1人での開発、かつフルタイムではないため、開発速度はそこまで速くない。
次に、組織での開発を見ていきましょう。
ダメダメ組織開発
個々のメンバーのスキルが低い or ディレクションの不在などにより、効率的なアウトプットがなされない組織開発がこの状態に該当します。
そういった組織では、おそらく以下の特徴を持っていることでしょう。
・フルタイムで人をアサインしているので、毎月百万単位でお金がかかる。
・個々のスキルの低さ or ディレクション不在により、各メンバーのアウトプットが噛み合っていないため、コストの割に成果物のクオリティは低い。
・フルタイムである程度の人数が動いているため、それなりに速度は出る。
イイ感じの組織開発
それとは逆に、すべてがうまく噛み合ってる組織の開発はこのような状態になっているのではないでしょうか。
このような組織では、以下の特徴を持つと考えられます。
・フルタイムで優秀な人をアサインしているので、毎月数百万単位でお金がかかる。
・個々のスキルが高く、各メンバーのアウトプットも噛み合っているため、最終成果物のクオリティも高い。
・個々のスキルが高く、各メンバーのアウトプットのタイミングも噛み合っているため、開発速度もかなり早い。
お金もない、時間もかけたくない。でも速くクオリティ高く開発したい
よちよち個人開発を熟練個人開発へと変えていくためには、それなりに時間を投資する必要があります。
20代前半の頃はこれでも良かったのですが、30代に入った今となっては時間は節約したい。
かといって、数百万単位でお金が飛んでいく組織開発は許容できない。
お金が少しくらいかかっても良いので、一気に熟練個人開発レベルのクオリティと開発速度を出せる、そんな選択肢がほしいわけです。
今回の開発体制
というわけで、現状の個人(?)開発の体制はこんな感じでやってます。
(技術支援のお二人は業務委託契約)
今、開発している2つのアプリについて、基本的には自分が手を動かすようにしつつ、FlutterをゴリゴリにさわっているはまあさんにFlutterのベストプラクティスを学び、iOS / Androidのテックリードとして活躍されているwatanaveさんにAndroidのネイティブ実装周りでわからない点を教えていただくスタイルです。
やってみた感想
勉強がはかどる
勉強会などでも今さわっている技術のスキルアップはできますが、題材が自分の興味あることばかりとは限らないので、少し遠回りなこともあります。
それに対して、個人開発しているプロジェクトのレビュー依頼では、自分が今、一番興味あることに対してフィードバックがもらえるので、勉強になるし遠回りしている感もないので最高です。
専門外の領域でも不安なく、高速に開発できる
専門外の領域を独学のみで開発すると
「もっと良い実装方法があるかも🤔」
「これ一般的な最適解なんだろうか🤔」
という不安を抱えながら実装を進めていくことになるんですが、実務をやっているテックリードクラスの方にレビューしてもらえると
「調べた範囲では、これが最適解」
「まずいところがあればPRレビューで指摘してもらおう」
と割り切って開発できるので、最速で失敗→指摘→修正のフィードバックを回すことができ、不安なく高速にコードの品質を上げることができ、とても良かったです😊
チーム内のモチベ管理が不要
個人開発や善意に頼ったレビュー体制だと、個々人の熱量が一致せずに空中分解する、というのはあるあるな話だと思いますが、今回は業務委託契約に基づいてレビュー依頼しているのでモチベ管理も不要ですし、契約締結時に期待値のすり合わせも行っているので、その点がとても楽だと感じました。
そこまで高額にならない
自分が個人開発するのは月に100-160時間程度で、その中でも特に不安なPRのみレビューしてもらっているので、レビューもそこまで長時間にならず、高くても全体で月に5万円程度、しかも自分が成長すればするほど、レビュー時間も短くなり、結果として安くなるので、とてもお得だと思います。
まとめ
個人事業主などである程度月々のお金をコントロールできる人で、サービスを開発してマネタイズを狙いつつ、スキルアップを狙う人にとって
・自分で習得する優先度が低いスキル
→完全に外注 or 興味持ってくれる人がいればレベニューシェア
・スキルアップしていきたいスキル
→自分で手を動かしつつ、レビュアーを業務委託で依頼
というのは、割と良い選択肢なのかもしれない、とは感じました。
サポートする代わりに個人開発はじめましょ! iOS👇 https://developer.apple.com/jp/support/enrollment/ Android👇 https://play.google.com/apps/publish/signup/