344
279

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

割り勘webサービスを2週間でリリースした手法を紹介する

Last updated at Posted at 2018-10-05

image.png

リリースしたもの

リンク

Walica(ワリカ) | お金の立替・割勘をスマートに清算

Twitter

立替清算サポートアプリ Walica(ワリカ)

見た目

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3134383530332f35623835393737352d323063362d623833352d626366322d3436393666303038643839662e6a706567.jpg

セールスポイント
  • 最適アルゴリズムが少ない回数で精算方法をリコメンド
  • インストール・会員登録不要
  • 飲み会に2次会から参加した人、お酒飲めない人などがメンバーにいる場合の特殊な計算も可能
  • 10円, 100円, 1000円単位での精算を選択できる。

開発チーム

自分
- 開発経験2年くらい
- サーバー・インフラ担当

もうひとり
- 開発経験3-4年くらい
- デザイン・フロント担当

の二人で作りました。

今回の開発の早さ

私達が週末に個人開発を共同で初めて1年ほど経ちました。
今まで3つのサービスをリリースしましたが、今回のサービスは圧倒的早さで提供できたので、そのノウハウをお伝えします。

サイト 開発期間 開発環境
動画キュレーションサイト 3ヶ月 Vue + Flask
スポーツショップの販売サイト 2ヶ月 Vue + Flask
割り勘サイト 2週間 Vue + Flask

なぜ週末開発でこの早さを実現できたか

【早さの極意一】 完全分業

開発をしていて、最もスムーズに進むのに役に立ったのが分業でした。

メリット としては、
- それぞれの開発者の得意なことに徹することができる
- 作業の重複(コンフリクト)が発生しない

デメリット としては、
- 参加していない作業については、担当者に任せきりになり後からメンテができない

がありました。今回はリリースまでの速度を重視したため、メリットがデメリットを上回りました。

具体的な作業内容としては、下のイメージのような感じです。

image.png

注目すべきは、
両者の作業が疎結合になっていることです。
そして、一番最後の工程の「結合テスト&リリース」で作業が合流するため、その合流地点に関しては明確に基準を設けました。

今回の場合は、フロントのAPIコールが合流地点になるため、
ソースコードに下記のようなコメントを記載して開発していました。

@application.route('/api/group/<group_id>', methods=['GET'])
# param: none  ←コメントで入力値を記載
# return: group_id(string) ←コメントで出力値を記載
def get_group(group_id):
    return jsonify(group_service.get_group(group_id))

【早さの極意二】 レビュー頭出し

これは、チームとして成熟してきた場合に有効です。
ある程度一緒に開発をしていると、「このレビュアーは、これを気にするな」ということがわかってきます。

ちなみに私が一緒に開発しているエンジニアは、 変数名をやたら気にする という特徴があります。
なので、コードレビュー※に出す前に 「この変数って、これでいいかな?」 と聞くようにしていました。

実際に自分が思いついた変数でもレビューは通るかもしれませんが、 
「相手の気にするところは、意思決定プロセスに参加させる」 ということが合意のために重要ということに気づきました (SIer体質感)

※図にはありませんがコードレビューは随時やってます。

【早さの極意三】開発ツール活用

最後に、開発に役立ったツールの紹介をして終わります。

image.png

Eclipseで動作するER図作成ツール。ぶっちゃけ見た目はイマイチですが、今でもダントツで多機能かつ使いやすいツールです

image.png

知らない人はいないかもしれませんが、便利な使い方を紹介します。
今回の開発手法のように、フロントとバックエンドで分かれる場合の使い方です。 
バックエンド担当はAPIのテストと並行してURL・パラメータをPostmanに入力します。 
入力した値はエクスポートできるので、この結果をフロント開発メンバーにシェアすれば、 PostmanがそのままAPIインターフェース定義書になる寸法です。 
複雑なロジックが無ければ、SwaggerもAPI Blueprintも不要です

最後に

サービスの宣伝&ノウハウの共有でした。
読んでいただいてありがとうございます。

344
279
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
344
279

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?