アプリエンジニアがサーバとクライアントサイドのどちらも実装してみた

Product Develop Division RENOSYチームの渡邉(@evitch)です。2019年1月にGA technologiesに転職し、現在はRailsエンジニアとしてRENOSYプロダクトのお問い合わせフォーム開発を担当しています。

先週のRENOSY勉強会では、RENOSYチームで実践している開発フローの振り返り会を行いました!!
私がRENOSY APPの新規機能を開発したときのフローを具体例として発表し、それにみんながあーだこーだ自由に言って振り返る、というかたちをとりました。

スライドはこちら↓

speakerdeck.com

みんなの感想

振り返り会をしている中で、チームメンバーから様々な感想やここが良かった!というのがたくさん出てきました! せっかくですので共有したいと思います!

*全体を通して

  • QA側が事前に仕様を把握した上で作業を開始でき、コミュニケーションロス・コストが減った
  • 設計からしっかりとやることで仕様の精度が上がった
  • 企画側と会話するときに仕様書をベースに議論ができた
  • 開発フローとしては当たり前だと思う、成果物としてドキュメントがあるとコミュニケーションが楽で良い
  • 関係者が多くなるので、資料設計が前段にあるといい

*フローチャートについて

  • フローチャートをちゃんと書いておくと、そのままコードに落とし込めるからいい
    • ダイヤがifになって、次こういう処理をしてというのが明確になっていて実装しやすい
    • もうちょいがんばって例外処理を書けば、プログラムの流れを網羅できる
  • フローチャートをちゃんと描くのがオススメ
  • フローチャートはがっつり書いちゃっていいと思う
  • エンジニア以外にも理解してもらえるから会話しやすい
  • 口で説明すると漏れる

*シーケンス図について

  • 何が新しい部分かをシーケンスの中でフォーカスを当てることで、新規開発部分を明確にできた
  • 他のメンバーに新規機能を共有する場があり、シーケンス図をベースに会話にすることで抜け漏れなく共有できた
  • 一本道に実装することに集中すればいいということがわかっているので、実装に集中できた
  • 細かい粒度ならMVCの処理の流れを書いて欲しい
    • 大きな関連性ならclient → Rails → APIのやりとりに集中
  • iOSとAndroidの実装方針を同じにするため必要

わたしの感想

今回実施した開発フローは、一般的に紹介されているようなものであり、これといった特徴はないと思っています。 しかし私にとっては、しっかりと設計をする大切さを身を以て体感できましたし、アプリとサーバの両方を担当することで、様々なことに気づくとてもいい機会だったと感じています。 今回きりにならず、今後とも続けていきたいものです(小並感)。