お気持ちの表明

思考を雑に外出していきます

半年間、技術顧問として働いてみた

去年の9月から今年の3月まで、株式会社ventusで技術顧問をしてた。 いい感じの経験だったし、忘備録も兼ねて、振り返りかえってみる。

きっかけ

ある日、Twitterで株式会社ventusでVPoEをしている野間さん(@ytnm0520)から、こんな内容のDMをもらった。

  • 現在Web展開しているサービスがある
  • これをアプリとして出したい
  • 社内ではJS/TSの知見はあるので、React Nativeで開発したい
  • が、アプリ開発の知見はないので、技術顧問として相談できる人を探してた

「なるほど。なかなか技術顧問って経験できないし、やってみたいな〜〜」と思い、面談した。 最初の面談では「そもそも技術顧問って何するんや」という気持ちになったので、自身が提供できるスキルと稼働時間提示して、「私は求められている人物像ですか???」という確認をした。

その上で、以下の責務を技術顧問として担ってほしいという話になり、引き受けることになった

  • ご意見番として、Slackで質問があったときには回答する
  • アプリのベースを整える
    • アプリのベース構築
    • ライブラリの選定
    • CI/CDまわりの構築
    • 初回リリースのサポート
    • 各OSの運用まわりの基礎情報、運用方法の共有

そんなわけで、はじめての技術顧問をやっていくことになった。

タイムライン

序盤、中盤、終盤と、それぞれで振り返り。

序盤(9~10月)

開発チームキックオフ、ロードマップの認識合わせ、開発環境の立ち上げ、などやった時期。 利用するReact Nativeの選定、プロジェクトの作成など、最低限開発できる環境の構築に取り組んだ。

やったこと

  • Slackの応対
  • 週1での定例MTG
  • ロードマップの策定
  • ドキュメント作成
  • 環境構築
    • React Nativeの選定
      • Vanilla or Expo(managed workflow) or Expo(bare workflow)
      • Expo(bare workflow)を採用
        • 判断ポイント
          • Expoに乗っておけば安定と考えた
          • 後々、決済機能を導入するかもしれないとのことでbare workflowに
            • managed flowだと決済機能がまだない
    • エラートラッカーの導入
      • Sentry
      • Firebase Crashlytics

中盤(11~12月)

開発チームメンバーが開発本格的にやりはじめた時期。 最低限開発できる環境は整え済みだったので、今後のためにStorybookの導入、CI/CDまわりの整備をメインに作業した。

やったこと

  • Slackの応対
  • 隔週での定例MTG
  • ドキュメント作成
  • 環境構築
    • Debug、Staging、Release環境の作成
      • AndroidでいうBuild variant
      • iOSでいうBuild Confingurationの設定
    • CI/CDの整備
      • CI上でのアプリビルド(Debugのみ)
      • iOSの証明書作成(Deployment、Adhoc)
        • fastlane matchを頑張った
    • Storybookの導入
      • storybook/index.jsの設定に手間取った
        • Expo(bare workflow)を利用してたので一部書き換えた
          • 🙅‍♀️ AppRegistry.registerComponent(appName, () => StorybookUIRoot);
          • 🙆‍♀️ registerRootComponent(StorybookUIRoot)

終盤(1~3月)

リリースに向けてふんばってた時期。 自分が抜けてもリリース作業が楽なように、リリースビルドをCIでできるようにfastlaneと格闘した。 リリース後はクラッシュログを軽く見たり、ドキュメント作成に注力してた。

やったこと

  • Slackの応対
  • 隔週での定例MTG
  • ドキュメント作成
  • 環境構築
    • CI/CDの整備
      • CI上でのアプリビルド(Staging、Release)
      • iOSの証明書作成(AppStore)
        • fastlane matchを頑張った
      • Firebase App DistributionでStagingアプリ配布
      • 各Storeにアップロード
        • fastlane、2FAまわりのドキュメント読むの難しかった
  • リリース後の見守りと、クラッシュログの対処アドバイス

やってみた感想

全体的な感想として、「技術顧問未経験だし、ワークするのか俺」と思っていたが、なんとかスケジュール通りにリリースできるように立ち振る舞えたので良かったです。 終始フルリモートで心配でしたが、ventusの方々のコミュニケーションの丁寧さに多々救われました。 いい経験だったし、楽しくものづくりをすることができたし、また一緒になんかやりたいなあと思いました

  • 技術顧問未経験だったけど、とりあえずやりきれてよかった
  • アプリの0→1に関わることは久しぶりだったので、楽しかった
  • 自分のアプリまわりの基礎知識と、Reactが強いチームの相互作用で、爆速でリリースできた
  • 毎度きちんと議事録つけて「現在の状況」「ロードマップとの差分の確認」「次回までのアクション」の認識合わせを怠らなかったので、認識等の齟齬が出ずに良かった
  • 証明書発行などの作業は、事前に手順書を作成し、通話しながら一緒に進めることで、リモートながらもいい感じに進めることができた
  • 雑談をお互いしやすい空気感を出しながらアイスブレイクできたのも、いい空気感を作る要因となってよかった

おわりに

そんな感じで副業をちょこちょこしてたりするので、よかったらお声掛けください。 最近は本業でReact Nativeをやっているので、Androidを忘れないように手を動かせる仕事あったらな〜と探していたりします。 もちろんReact Nativeもやっていきの気持ちがあるので、どちらでも、ぜひ。