開発にワクワク

今週のタイムライン

エネルギーを奪った出来事(悲しくなった・不幸になったなど)

  • 人との会話が少なかった(月曜日)
  • 集中力がなかった(月曜日)
  • 楽天モバイルのSIMとXiaomi mi9の相性が悪かった(水曜日)

エネルギーを与えた出来事(幸せになった・安心した)

  • 久々にAPI実装の担当になった(月曜日)
  • チームメンバーと話せる機会が多かった(火曜日)
  • Discord botの作成を始めた(木曜日)
  • 焼肉食べた(日曜日)

戸惑った出来事や疑問に思った出来事

  • スクラムにおいてチームメンバーが増えそう(火曜日)

話したいこと

1.スクラムにおいてチームメンバーが増えそうなこと 2.久々にAPI実装の担当になった

開発を早くするためにスクラムでチームメンバーが増える

私はもう少しで3年目のエンジニアなのですが、スクラム(完全なものではない)で開発を進めていて、最低限のドキュメントしかない状況で、日々チームで認識を合わせながら開発しています。

開発力を強化するという目的で、1〜2人メンバーが増えることになりそうです。現在のチームは4人+4人の8人体制です。現在の開発力を維持しつつ、数カ月先に開発力を上げるためにどうしたら良いだろう。体制としては様々なパターンがあります。

  1. 5人+5人: それぞれのチームに一人ずつ追加するパターン
  2. 3人+3人+4人: それぞれのチームから一人ずつ出して、3チーム目を作るパターン
  3. 4人+4人+2人パターン: チームはそのまま維持し、3チーム目を作るパターン

事前の話し合いでパターン2が一番良いのではないかと思いながらチームでの議論に向かいました。

一番人気がなかったのがパターン4でした。理由は日々の認識合わせによって培ってきた品質の認識やコードの書き方などを新しいチームに伝えづらく、技術的負債が増えてしまい、逆に開発スピードが落ちる可能性があったためです。

次にパターン1とパターン2を比較し始めました。

パターン1

  • pros : 現在のチームを維持できる。計画する際の合計時間が増える。
  • cons : チーム内での意思決定が遅くなりそう。

パターン2

  • pros : チーム数が増える。小回りがききそう。
  • cons : チーム全体での意思決定が遅くなりそう。

結果としてはパターン2が選ばれました。理由は チーム内での意思決定が遅くなりそう です。私達のチームではプルリクエストを承認する方法としてチーム内全員のOKが必要です。5人チームになった場合、承認をもらう人数が増えれば遅くなりますし、承認する人数を減らした場合には最初に誰がレビューをするのかで責任が変わってきそうな気がします。一方で3人チームとなった場合は承認の人数が減ることで承認スピードが上がることが期待できつつ、全員がレビューをするためチームの責任であることが維持しやすいのかなぁと思います。まずは決まって良かったです。次は誰が新たなチームに行くかの議論がありそうですね。

API実装に悩む

画像のアップロード機能の送信側の設計をしており、既存のコードを修正するのではなく、新たにパッケージを切って書いていくことになりました。画像はS3に保存し、画像の情報はデータベースに保存するような形です。3層アーキテクチャーに習って以下のように切っています。

root
|- application
|   |- HogeService
|- domain
|   |- Hoge
|- infrastructure 
    |- controller 
    |   |- HogeController 
    |- repository
        |- HogeRepository

最近テストの大切さを知り、プロダクションコードを書く前にテストを書きたいのですが進め方がわからない… ちょっと相談したところ、まずはインタフェースだけ決めちゃえばかけるかもいうことで以下の事を実施

  • それぞれのクラスにインタフェースを切る
  • それぞれのクラスに必要そうなフィールドを追加

これでなんとなく書けそう。かもというところまで行けました!早くテストを書いて、実装を進めたいところです!

最後に

スキーへ向かうバスの中でこの記事を書いています。一年以上ぶりのスキーなので楽しみすぎるぞ!

f:id:makky_emmanuel:20210213220828j:plain
bus