見出し画像

個人開発をチームで行ったのでその振り返り


何を作ったか

詳しくはアプリを企画されたosanaiさん(@nanammeon)のnoteに書いてありますが、2人でお薬の飲み忘れを防ぐアプリ、nondaを作りました!🙌
(ピルに特化したリマインダーであるPilllを開発していて、開発初期に諸々アドバイスくれた_bannzai_にも感謝🙏)

アプリの主な機能としてはこんな感じです。

(iOS / Androidアプリのダウンロードリンクは以下の通り)


毎日飲むお薬だけでなく、1日~6日おきに飲むお薬をサポートするように
なっているので、そういうのが必要な方はぜひ!🙏

osanaiさんのnoteでは、このアプリのコンセプトやこのアプリに込めた思いなどをお伝えできるかと思いますので、自分のnoteではチーム開発的な観点での振り返りを行っていければと思います。


良かったこと

まずは、今回のチーム開発・開発を通じて良かったことから。

Flutter x Firebaseでのスタンダードな開発を全て体験できた

前作のPoker VPIP Trackだと、使っている技術としては
匿名ログインCloud Firestore(ほぼユーザー情報の保持のみ)程度で、Firebaseの機能をほとんど活用できていませんでした。

一方、今回開発したnondaだと

  • Flutter x Firebaseを用いたサービス開発

  • Firebase Authを用いた認証機能の実装
    (匿名ログイン、パスワード / Apple / Googleログイン)

  • Cloud Functionsを用いた定期的な処理の実装

    • 飲むお薬のTODOを起床1時間前に登録する、など。

  • Firebase AnalyticsやStream Collections to BigQueryを用いたデータ分析のセットアップ

  • Remote Configを用いたリアルタイムな設定更新

  • etc…

といった機能を使ってサービスを実現しており、一般的なサービス開発で必要な機能を概ね実装することができたのは良い経験だったと思います。


開発期間を短くすることができた

前回のアプリより高機能ですが、開発に1,000時間ほどかかった前回のアプリに対して、約半分の560時間程度で開発を終えることができました🙌

前回の個人開発や、HOKUTOでの業務でFlutter / Firebase / TypeScriptに習熟できていたことがその要因だったのかな、と思います。


画面仕様書やQAリストを作成した

自分1人での開発であれば仕様書はなくても良いかもしれませんが、今回の開発では以下のように画面ごとの仕様書を作成しました。

notion上に作成した画面仕様書の一覧

というのも、特定の条件におけるポップアップの表示や画面遷移など、
Figmaのみで認識を合わせるのが難しい内容がいくつかあったためです。

Figmaだけじゃ伝わらない挙動などについて記載



また、アプリ側の品質担保のために、QA項目の作成 && 3端末での実施
(iOS / Android12 / Android13)なども実施したのは良かったと感じています。

QA項目の一覧


反省点

大まかにでも計画を立てるべきだった

個人開発は1人で作ることがほとんどなので、今までの個人開発では以下の形で進めることが多かったです。

  • 全体的な計画を立てることなく

  • 必要な機能を積み上げる方式で実装していき

  • 一通り機能実装が終わったらリリース


ただ、上記の形で開発を行っていると、以下のような問題に直面することがあるため、より計画立てて開発を行うべきだったな、という反省です。

  • リリース時期がいつになるかわからない

  • MVPのように部分部分を検証するのではなく、すべての機能を
    実装してからの価値検証になってしまう

  • プロジェクトの進め方が同期的になってしまう


実際、今回のプロジェクトでも、以下のような問題が発生しました。

  • リリース時期がいつになるかわからない

    • 11月開発開始

    • 4月リリース目標(延期)

    • 8月リリース

  • プロジェクトの進め方が同期的になってしまう

    • 機能実装時に仕様やデザインの不備に気付くことがあったが、
      その仕様を詰める際に同期的なコミュニケーションが多く必要と
      なってしまい、だいぶ急かすようになってしまった


開発対象について、お互いの認識のすり合わせが足りていなかった

これは個人の思いが強く表現される作品なのか、
プロジェクト・プロダクトマネジメントの技法を適用できるお金を
目的としたプロダクト
なのか、といった点のすり合わせが足りておらず、
感情面での衝突が発生したので、その点をより丁寧にコミュニケーション
しておくべきだったかな、と感じました。

担当領域や役割の分担について

今回の開発について、主なタスクとしては以下のようなものがありましたが

  • ユースケースの検討

  • デザインの作成

  • Flutterアプリの開発

  • Cloud Functionsの開発

  • テストケースの作成、QAの実施

  • 分析を行う基盤の準備

  • etc…

それぞれ

  • 誰が行うか

  • どういったことを行うか

  • どの程度の分量があるのか

といった内容のすり合わせを丁寧に行っていなかったため、このあたりも丁寧にコミュニケーションを行っておくべきだったとは感じました。


まとめ

今回は、チームでの個人開発で良かったこと、次に活かすべき点を振り返ってみました。

アプリについては、これからも2人で開発して、より良いアプリにしていきますので、是非ダウンロードをよろしくお願いします!!!!!🙏🙏🙏

(iOS / Androidアプリのダウンロードリンクは以下の通り)



サポートする代わりに個人開発はじめましょ! iOS👇 https://developer.apple.com/jp/support/enrollment/ Android👇 https://play.google.com/apps/publish/signup/