1
/
5

新プロジェクトをスクラム組んで進めるために、エンジニアチームで取り組んだ事前準備

こんにちは、ローソンデジタルイノベーション(LDI)でエンジニアやっている岡崎 裕樹です。

LDIで新しく始めるプロジェクトを本格的にスクラムを組んだアジャイル開発で進めようとしています。
ただ、まだプロジェクトは企画段階なので、この期間にエンジニアチームとしては、アジャイルを始めるうえでの事前準備をしているところです。今回は、その取り組みについて書こうと思います。

TL; DR

スクラム開発というと、スプリントを数週間で区切って、スプリント終わりにはユーザーストーリーに即した形で何らかのリリースを行い、フィードバックを受けながら短い間隔でサービスを少しづつ改善していくというような形をとります。

リリースサイクルが速いということは、必然的にテストやリリース作業の回数が多くなることになります。そこで問題になるのは、こういった作業も地味に時間がかかり、回数を重ねるほどバカにならない工数がかかることです。ここに長い時間をとられてしまうと、設計・開発にあてる時間がなくなってしまうことから、リリース時に繰り返し行う作業を自動化して、品質を維持しつつ作業時間の削減は必須と言っても過言ではないです。

今、我々エンジニアチームは、本格的プロジェクトが開始するまでに、この問題に対応すべく、技術的な調査、インフラの構築を行っています。

今回は、ここで行っていた改善活動についてかいつまんで紹介します。

ちなみに、それぞれの内容についての技術的な深掘りはこの記事ではなく、こちらで紹介しているので、よければこちらも御覧になってください。(今後も適宜投下予定)

クライアント、サーバー それぞれから視点で見た Clean Architecture - Qiita
クライアントアプリ、サーバーアプリ両方を作ってみた上で、`Clean Architecture` とは何かを改めて考えて自分の中でまとめてみました。 登場するレイヤーや役割は、 [こちら](https://qiita.com/kou...
https://qiita.com/nijuya_o/items/1699ffd6b30034c24815
Go言語のRESTサーバーを Clean Architecture で作ってみる - Qiita
今回は `Go` 言語で、以前 `Kotlin` で書いたサーバーと同程度の物を作ろうと思います。 * [KotlinでJersey+Exposedを使ったRESTサーバーを作る](https://qiita.com/nijuya...
https://qiita.com/nijuya_o/items/392cd3e4fa5641b3dec1

CI/CD環境を整えよう!!

上にも書きましたが、リリースサイクルを上げるうえで、テストやデプロイなど自動化できる所はどんどんしていかないと、ここで時間を忙殺されてしまい、スクラムを回すどころではなくなってしまいます。

継続的インテグレーションの必要性は分かっていても、実際にうまくできるかという話になると言葉を詰まらせる所は多いのではないでしょうか。

特にプロジェクトの途中から導入しようとするとなかなか難しい所があります。今回は、プロジェクトを新しく始めるので、基盤やアーキテクチャを見直してCI/CDがやり易い形で始められるので、この機会にしっかりした環境を整えるべくCI/CD基盤を作り始めています。

  • ユニットテストを自動実施、テストレポートの出力と、エラー時は通知を出すようにする
  • ソースをコミット後、Lintを掛けてエラーが出たら pull request を出せないようにする
  • リリースモジュールの自動ビルド
  • βデプロイ
  • 本番環境へのデプロイは間違って出ると怖いので、ここは手動でやる

こんな事が出来ることを目標に現在それを出来る環境を構築中です。

ちなみに自分がやっているように書いてますが、調べてくれているのは別のメンバーです。これが他人の褌で相撲を取るというやつなんですかね、、、いい感じに作ってくれていてとても心強いです。

アーキテクチャを見直し、開発言語を選定しよう!!

もともと作っていたアプリの、開発開始が結構古いこともあり、言語は iOS は Objective-C(部分的にSwift化はしています)、Android は Java (こちらも部分的に Kotlin化してます)がベースとなっており、アーキテクチャもMVCとなっています。

この形態で開発を経験されたエンジニアであれば、痛いほどわかるかと思いますが、 ViewController が肥大化して、テストも書きづらく、正直メンテナンス製が良いとは口が裂けても言えないです。
(あくまで個人の感想です)

また、Java ならまだ耐えられますが、Objective-C は正直苦行以外のなにものでもないです。
(あくまで個人の感想です)

ご存知のかたも多いと思いますが、これらの代替えとしてより良いものは世の中に沢山(?)あります。既存のやり方に固執せずに変化を受け入れなければ成長はない」とどこかの偉い方が言っていた様な気がするので、スピード感をもって設計、実装、テストを行える開発言語とアーキテクチャに見直すことにしました。

言語に関しては、iOS はSwift 、AndroidはKotlinを採用します。この辺は今更新しいとはちょっと言いづらい所ですが、サーバーサイドも見直したいという事になり、 Go言語を採用できないかという事で学習コストや実用性などの調査をしました。

また、アーキテクチャとしては、Clean Architectureをベースとして、レイヤーわけして各々の役割を明確化しつつ、レイヤー毎に依存性を薄くしてFatなつくりを無くすことで、拡張性、メンテナンス性をあげることを目標としています。

現在、これらは調査を終えて、実際に簡単なサンプルを作ってその有効性の共有をしました。
あとはもう少し実務的な所に寄せる際のテクニックなどを洗練させるべく深掘りしています。

今後の展開、Sprint0 に向けて

方向性や考え方に差がでてもうまく回せないので、アジャイルとは、スクラムとは何かを認定スクラムマスターから講習を受けたりすることもこれから予定しています。

他にも、ツールの選定をしたりと事前準備としてはかなり手厚くやらせてもらってます。

本格的なプロジェクトの開始はこれからで、この先プロセスを進めていく中でも良いところは残し、悪いとろこを洗い出して改善していくということを振り返りながら実施していきます。そのため、今書いている内容も1,2ヶ月後には陳腐化しているかもしれないですが、その柔軟性こそアジャイル開発では大事にしなければ行けない所だと考えます。

LDIでは、プロセスの改善を共に考え、同じ目的を共有してサービスを作り上げるメンバーを捜しています。この記事を見て少しでもLDIに興味を持ってくれた方、ぜひお話ししましょう!

Web Engineer
ローソンとネットを繋いでお買い物を変える!Go・Railsエンジニア募集!
株式会社ローソンデジタルイノベーション(LDI)は、コンビニ「ローソン」のIT部門を担う戦略子会社です。ローソングループのIT領域内製化を進めるため、アプリケーション開発や先進技術の研究等を行なっています。 現在、LDIの開発チームでは、ローソンのIT領域の内製化を進めると共に、店舗業務の省力化やキャッシュレス化への対応などを、先端技術の検証・導入を行いながら推進しています。 ITの力を駆使して、ローソン店舗とお客様を繋ぐサービスの提供を行うために、新規サービス開発を一緒に行っていただく仲間を探しています。次世代のコンビニの実現へ向けたサーバーサイドの構築を一緒に行いましょう!
株式会社ローソンデジタルイノベーション
iOSエンジニア
ローソンのアプリをSwiftでモダンに開発したいiOSエンジニアを大募集!
株式会社ローソンデジタルイノベーション(LDI)は、コンビニ「ローソン」のIT部門を担う戦略子会社です。ローソングループのIT領域内製化を進めるため、アプリケーション開発や先進技術の研究等を行なっています。 現在、モバイルアプリチームでは、「ローソン公式アプリ」をはじめ、店舗で働くクルーさんやスーパーバイザー向けのアプリなど、ローソングループ提供するiOSアプリの開発を行っています。
株式会社ローソンデジタルイノベーション
Androidエンジニア
ローソンアプリをKotlinで開発するAndroidエンジニア募集
株式会社ローソンデジタルイノベーション(LDI)は、コンビニ「ローソン」のIT部門を担う戦略子会社です。ローソングループのIT領域内製化を進めるため、アプリケーション開発や先進技術の研究等を行なっています。 現在、モバイルアプリチームでは、「ローソン公式アプリ」をはじめとして、店舗で働くクルーさんやスーパーバイザー向けのアプリなど、ローソングループ提供するAndroidアプリの開発を行っています。 ローソン公式アプリのプロジェクトでは、スマホアプリを活用することでレジへ並ばずに決済ができる「ローソンスマホペイ」など、キャッシュレス化への取り組みや、各種クーポンの連携など、より便利なコンビニを提供にするためのサービスを開発していきます。また、AIやロボティクスなど先進的な技術も積極的に検証し、導入を進めています。
株式会社ローソンデジタルイノベーション
Invitation from 株式会社ローソンデジタルイノベーション
If this story triggered your interest, have a chat with the team?
株式会社ローソンデジタルイノベーション's job postings
24 Likes
24 Likes

Weekly ranking

Show other rankings
Like 岡崎裕樹's Story
Let 岡崎裕樹's company know you're interested in their content