開発手法についてのお話 (スクラム開発🏉)
moroです。🦥
今回は『 SmartDish 』では、実際どんな感じで開発を行なっているのか、開発体制についてお話します。これからチーム開発する人とか、今しているけどもっといい手法ないかなとか思っている人のためになれたらなと思います。
1. Nocodeでリリースしたアプリの話
『SmartDish』は、最初はNocodeツールで開発を行い 2020年9月1日 にサービスリリースしました。
Nocodeで開発した目的は、
・爆速でアイデアを形にしたかった
・サービスモデルが国内の既存サービスにはなかったため、時間をかけずに検証をしたい
という2つの目的がありました。
こうして1ヶ月半でアプリを開発し、まずは1つのお店で検証を重ねながらサービスを磨き上げ、開発スタートから2ヶ月で正式リリースをしました。
この代表の note にその時2ヶ月のストーリーが語られています。
2. なぜ Flutter で開発をするのか
これはいうまでもなく顧客の声を最優先にしているから。やはり Nocode にも機能面での限界があって、コード言語と比べるとできない事が多くお客さんや飲食店の方からフィードバックをもらっても実装できない内容で意見に応えられない点がいくつもありました。
例えば、
お店の方からは、「注文に気づかないから気づくまで音をずっと鳴らして欲しい」「追加注文もできるようにして欲しい」
ユーザーさんからは、「マップ画面で予約できる時間をみたい」「別々の会計をしたい」
などといった声がたくさん集まりました。(今もです)
私たちが使用した「Adalo」というNocode開発ツールでは、実装が難しい機能が結構多くあったので、今後機能を拡張することも踏まえて Flutter アプリに切り替える決断をしました。
言語を Flutter に選んだ理由は、クロスプラットフォームでこちらもスピード重視でサービスの開発ができるためです。
3. スクラム開発とは
本題に入ります。私たちは、”スクラム開発” と呼ばれる開発手法を採用しています。スクラム開発とは、アジャイル開発と呼ばれる ’フィードバックを定期的にしながら柔軟に計画を調整し、決められた期間ごとに機能を作成していく' 開発手法の1つです。
この記事がわかりやすくて参考になります。
この開発手法のメリットは、一番最初に決めた仕様やタスクが絶対的ではないので開発していく中で、仕様を柔軟に変更できる、問題がすぐに見つかり解決できる、サービス意思決定によって期間や機能の変更があってもすぐに対応できる、などが挙げられます。
細かいルールは、それぞれの組織で決めるのですが『 SmartDish 』では
①毎日8時から10~15分のデイリーミーティング
1人ずつ【昨日やったこと】【今日やること】【困っていること】この3つを確認します。
②毎週日曜日10時半からスクラム会議
先週1週間の進捗具合、今週やるタスクの決定
こういった感じで毎日 slack で社内全体にも報告します。
毎回 Discord 使ってやってます。リモートワークの人はずっと繋げて作業しています。ゲーム感覚で使えて、質問とか詰まった時とかに気軽に声かけられる感がある!
4. 実際どのように進めているのか
メンバーは4人。その内、実際にコードを書いているのは主に2人なのですが、タスクやアプリの仕様などをどのように管理しているかというと
この Atlassian というソフトウェアを使用しています。
・git 管理ができる Bitbucket(gitHubみたいな感じ)
・タスク管理ができる Jira
・ドキュメントを作成できる Confluence(Googleドキュメントみたいな感じ)
この3つの機能を使っています。
Jiraは、スクラム開発用で作られており、タスクを人それぞれに割り振ったり、1つのタスクの見積もり出して時間を計算できたり、全体の進捗具合をグラフで可視化できます。
今週のタスクはこのように誰が何のタスクにアサインしているのかわかります。
2ヶ月半で最初のバージョンはやりきったのですが、グラフで見るとこんな感じです。後半の追い上げ(笑)
5. 最後に
こんな感じで実際の開発は進めています。
この記事は、これから社内に入ってくる人たちにどんな感じで開発をしているのかざっくりと知ってもらえるかなと思ったのと、私自身どっかの企業でチーム開発をしたという経験がなかったので、こういう情報知りたかったなと思ったからです。
どうやって開発進めているか(Howの部分)っていう情報見つけにくいし、探し方も難しかったり。
それに、エンジニアではないけど、これからスタートアップで事業立ち上げ(アプリ開発あり)したい!みたいな人にとっても、参考になるかなと。
読んでくださってありがとうございます!