アジャイル開発で開発効率を上げた
Flutterの開発効率を上げた方法
こんにちわJboyです。今日はあまり技術のお話出てきません。副業先で開発してるアプリの開発スピードを上げた方法について解説いたします。
すごく単純な方法を使う
- 資金は必要です
- 年数ではなくスキルのある人を雇う
- ライフサイクルに詳しい人を雇う
- Swift, Kotlin, Javaの経験がある人がいると良い
- xcode, Android Studioの知見がある
- タスク管理はGithub issuesだけで良い
Flutterの副業に携わってそろそろ1年になります。僕一人で最初はやってました。だんだんしんどくなったきた😅
このままではまずい💦
そんなときに、🐟かつおさん(仮)という人が入ってきてくれた。僕が昔MENTAというサービスで出会った人です。業務系のシステムから一般ユーザー向けのアプリを多く作っている人です。
彼がきて改善されたこと
- RDBの知見があったので設計をお願いする
- クラスの継承したコードを書いて再利用性のあるコードを書いた
- 招待機能なるものを作ってくれた
でも2人だと限界あった💦
である日、副業先の社長さんがタイミーというサービスでデータ入力の隙間バイトで雇った🦜Dashくん(仮)を連れてきてロジックを作ってくれた!
たまたまFlutter2年やってた人らしい?
謙虚な方で最新版のFlutterに関係した技術をキャッチアップして短期間で機能を実装してくれた。
彼がきて改善されたこと
- 時間を扱う機能を作ってくれた
- riverpod-v2をキャッチアップ
- ITの知識を色々教えてくれる
- 🐟さんとJavaの話で盛り上がる
- RDBに強いので設計を見直してくれた
- パフォーマンスの改善が得意
いい感じで進んできたけど、なかなか進まない💦
そんなときに、アウターヘブンってコミュニティ私作ってるのですが、そちらにいらっしゃる🌿さんがFlutterの経験が5年ぐらいでiOSのエンジニアの経験もありxcodeの設定の知見があったので環境分けを手伝ってもらった。
彼がきて改善されたこと
- 我々が気づかないバグを見つけた
- すぐに修正
- flavorを使ってprod, dev環境に環境分けした
人増えたので本業ぽく仕事することにした
今まで個人の自由な方法で作業していたのですが、これだとデグレが起きそうで怖いなと思いGithub Flowとアジャイル開発で仕事をすることにしました。
とはいえみんな細かく入力するの面倒くさそうだから、ざっくりとGithub isseusにタスクを書いてもらうことにしました。
そうするとみんな思いついたものを書いてお互いに確認をとりながら開発を進めていった。
1スプリント2週間でやってるイメージですね。毎週MTGあるので1スプリント1週間な気がする?
これはスキルある人がいるチーム開発してる現場でないとできません笑
変わったこと
- 1タスク1ブランチ
- PR(プルリクエスト)を出す
- コードレビューをする(僕がやることが多い。他の人の方が詳しいのですが笑)
- Applovedしてマージ。承認するって意味らしい。Swiftの仕事で初めて知った笑
- 動作確認できればマージしてもOK
- Supabase & Firebaseを本番用とテスト用に分けた
- ストアドプロシージャを作った
- Edge Functionsで退会機能を実装
Trelloも使ってましたがビジネスサイドの人がタスク管理するために使ってたので、エンジニアはGithubでタスク管理をすることにしました。これだと1個に集約できるので効率が良い。
Jboyさんは何してるのか?
- あんまりコード書かなくなった笑
- SESの時の知見をいかして上流工程を担当した。
- 新しい技術は僕が一番詳しいのでキャッチアップして知見を共有した
最近はこれが多めかな。。。。
- PO(プロダクトオーナーの相談)
- PM(プロジェクトマネージャー)として開発とビジネスサイドとの調整役
- 社内ドキュメントの作成。スプシとかマークダウン
- AppStore, GooglePlayへの対応。ブラック企業時代からやってたので対応できた笑
- FirebaseAppDistoributionの導入
- iPhoneとPixel7aで配布されたアプリを実機でテスト
リグレッションテストなるものを作ってみた。僕しか使ってないですが笑
趣味で作ったものです。Sierチックでしょ 💁
大企業の案件で得た技術や仕事の進め方を導入してみると優秀なメンバーがいるおかげですぐに対応できました。組織作りができたような気がする?
Sier、SESでやったことがスタートアップで活かせるのかと思いました。試しにやったら活かせた💡
🌿さん以外は僕を含めて受託開発、SESの人だったので要件定義->設計->開発のライフサイクルを繰り返す方法があっていた。
最後に
副業でPMやったりタスク管理したりテスト用のアプリの配信作業を経験しました。ITリテラシーがない頃の2年ぐらい前の僕にはできませんでした。クソみたいな会社でエクセルやらされたり安い賃金で重いタスクを振られてそこでフルスタックなエンジニア経験したおかげか、本業でも管理者興味あればやりませんかと言われるところまで来ました。
Discussion