3.7K Views
February 29, 24
スライド概要
ヘルスケアエンターテインメント分野において絶えず進化する ICT の要求に応じ、8年にわたり開発・運用されてきた kencom アプリは、ユーザーの新しいニーズへの適応と技術の進化に合わせた変革が求められました。
本登壇では、新卒エンジニアが長期プロジェクトで直面した開発プロセスの課題と、それらの改善に向けた挑戦に焦点を当てます。
特に、自身のチームに合わせて策定した効率的な手法と、開発プロセスを支えるドキュメント作成について詳しく紹介します。
また、機能追加されたアプリのリリースノート作成ガイドラインの確立やコードのオーナーシップとテクニカルリードの重要性にも言及します。
さらに、JIRA と GitHub を利用したワークフローの効率化による個人の生産性向上のアプローチについて解説し、これらの取り組みが kencom アプリの開発プロセスの進化とユーザーエクスペリエンスの向上にどう寄与したかを明らかにします。
DeNA が社会の技術向上に貢献するため、業務で得た知見を積極的に外部に発信する、DeNA 公式のアカウントです。DeNA エンジニアの登壇資料をお届けします。
8年間運用が続くkencomアプリ開発プロセスの改善に 新卒が挑む ojun - DeNA Co., Ltd. DeSCヘルスケア製品開発統括部プロダクト開発部第⼀開発グループ © DeNA Co., Ltd.
⾃⼰紹介 ojun ● ● ● ● © DeNA Co., Ltd. iOSアプリエンジニア 2023年新卒⼊社 すきなこと / はまっていること ○ ⾳楽を聴く ○ Apex ○ Splatoon3 所属 ○ DeSCヘルスケア製品開発統括部プロ ダクト開発部第⼀開発グループ 2
今⽇話すこと © DeNA Co., Ltd. 3
今⽇話すこと ● ● kencomアプリの紹介 kencomアプリの8年間の開発‧運⽤の歴史 ● 新卒エンジニアが直⾯した開発プロセス上の課題と改善 ○ ビルド⽣成プロセスの課題 ○ イテレーションプロセスの課題 ○ リリースノート作成の課題 上記の3つの課題にそれぞれどのように取り組み改善したのか ● © DeNA Co., Ltd. 4
kencomアプリの紹介 © DeNA Co., Ltd. 5
kencomアプリの紹介 ● ● ● ● ● ● ● © DeNA Co., Ltd. 2015年10⽉に v1.0.0をリリース バイタルデータを記録 健診結果をいつでも確認 kencomポイントでギフト券獲得の チャンス 将来の⽣活習慣病の発症リスクを予測 オススメの健康情報を確認 DeNAのエンタメ⼒が活かされた 歩活とエアモの機能 6
kencomアプリの8年間の開発‧運⽤の歴史 © DeNA Co., Ltd. 7
kencomアプリの8年間の開発‧ 運⽤の歴史 ● ● ● ● © DeNA Co., Ltd. 2015年からのkencomアプリ開発 開始 25⼈以上のコードコントリ ビューターが参加 2022-2023年に実施された全⾯的 リファクタリング ○ ⼀部には依然として古い コードが存在 変化のスピードが早い業界である ゆえに⼈の変化も激しく歴史的経 緯が不明な箇所が複数存在してい る 8
kencomアプリの8年間の開発‧ 運⽤の歴史 ● ● ● ● © DeNA Co., Ltd. 2015年からのkencomアプリ開発 開始 25⼈以上のコードコントリ ビューターが参加 2022-2023年に実施された全⾯ 的リファクタリング ○ ⼀部には依然として古い コードが存在 変化のスピードが早い業界である ゆえに⼈の変化も激しく歴史的経 緯が不明な箇所が複数存在してい る 9
新卒エンジニアの直⾯した開発プロセス上の課題 © DeNA Co., Ltd. 10
新卒エンジニアの直⾯した開発プロセス上の課題 1. ビルド⽣成プロセスの課題 2. イテレーションプロセスの課題 3. リリースノート作成時の課題 © DeNA Co., Ltd. 11
ビルド⽣成プロセスの課題 1. devビルド‧QAビルド‧本番ビルドと複数のビルドが存在し、それぞれのビルドを扱 う⼈が異なる状態 2. devビルドとQAビルドが同⼀のTestFlight環境(kencom QA)にアップロードされてい るため、不適切なバージョン管理によりQA中にリグレッションが発⽣していた © DeNA Co., Ltd. 12
イテレーションプロセスの課題 1. カンバンボードによるタスク管理が不完全で、プロセスの統⼀が不⾜していた 2. QAや差し込みタスクの多さがスクラム運⽤を困難にし、季節要因によるQAタスク量の 変動が計画性を阻害していた © DeNA Co., Ltd. 13
リリースノート作成時の課題 1. 健康関連の情報を提供するアプリでは、提供する情報の正確性がユーザーの信頼に直結 する 2. リリースノートの不統⼀性は、ユーザーの理解を妨げ、新機能の利⽤機会を逃すリスク を⾼める 3. ⼀⽅で、リリースノートをどのように記述するかの⾔語化がされていない状態だった © DeNA Co., Ltd. 14
新卒エンジニアの直⾯した開発プロセス上の課題 1. ビルド⽣成プロセスの不透明性と⾮効率性 2. イテレーションプロセスの不整合と⽣産性の低下 3. リリースノート作成の不規則性と不明瞭性 © DeNA Co., Ltd. 15
ビルド⽣成プロセスの視覚化と改善を⾏う © DeNA Co., Ltd. 16
© DeNA Co., Ltd. 17
通常開発時のビルド⽣成フロー © DeNA Co., Ltd. 18
1 © DeNA Co., Ltd. 19
2 1 © DeNA Co., Ltd. 20
2 3 1 © DeNA Co., Ltd. 21
QAビルド作成フロー © DeNA Co., Ltd. 22
1 © DeNA Co., Ltd. 23
1 2 © DeNA Co., Ltd. 24
1 © DeNA Co., Ltd. 25
2 1 © DeNA Co., Ltd. 26
2 3 1 © DeNA Co., Ltd. 27
本番ビルド作成フロー © DeNA Co., Ltd. 28
1 © DeNA Co., Ltd. 29
1 2 © DeNA Co., Ltd. 30
3 1 2 © DeNA Co., Ltd. 31
4 3 1 2 © DeNA Co., Ltd. 32
通常開発 2 1 QA 3 2 3 1 33 © DeNA Co., Ltd.
通常開発 QA QAビルドとDevビルドが競合している状態になっている 2 1 3 2 3 1 34 © DeNA Co., Ltd.
© DeNA Co., Ltd. 35
1 © DeNA Co., Ltd. 36
2 1 © DeNA Co., Ltd. 37
3 2 1 © DeNA Co., Ltd. 38
3 2 1 © DeNA Co., Ltd. 1(QA) 39
3 2 1 © DeNA Co., Ltd. 2(QA) 1(QA) 40
3 2 1 © DeNA Co., Ltd. 2(QA) 3(QA) 1(QA) 41
ビルド⽣成プロセスの視覚化と改善を⾏う ● 今回は開発⽤のtestFlight環境を⾏う意思決定を⾏った ● ● 実際には、意思決定を⾏う前に、今回の問題を解決する⼿段を洗い出した それぞれの⼿段のメリット‧デメリットを並べた上で、現状のチームにとって最適な選 択は何かの議論をチームメンバーと⾏った その上で、今回の意思決定を⾏い、かつ、実際に運⽤まで⾏えた この⼀連の流れを⾏ったことが重要であった ● ● © DeNA Co., Ltd. 42
イテレーションプロセスの改善 © DeNA Co., Ltd. 43
イテレーションプロセスの課題 ● ● 運⽤を⾏うサーバ側のチームとクライアント側のチームが存在している サーバ側のチームはイテレーション制を導⼊していたが、⼀⽅で、クライアントチーム はイテレーションを⾏っていなかった ○ チケットはJIRAに存在しているが、ボード等で可視化されていない状態だった ● クライアントチームはQAタスク等の差し込み系タスクの影響が理由でスクラム的に回 すことが難しい状態だった © DeNA Co., Ltd. 44
イテレーションプロセスの改善 ● © DeNA Co., Ltd. 現⾏のイテレーションプロセスを分析した上で、チームにとって最適で効率的である新 たな⼿法を意思決定するためのドキュメントを作成した 45
イテレーションプロセ スの改善 ● © DeNA Co., Ltd. 前提となる情報を⾔語化 46
イテレーションプロセ スの改善 ● ● © DeNA Co., Ltd. 前提となる資料の作成 WhyとWhatの⾔語化 47
イテレーションプロセ スの改善 ● ● ● © DeNA Co., Ltd. 前提となる資料の作成 WhyとWhatの⾔語化 その上でHowを⾔語化し取り⼊ れるかの意思決定を⾏った 48
イテレーションプロセスの改善 © DeNA Co., Ltd. 49
イテレーションプロセスの改善 © DeNA Co., Ltd. 50
リリースノート作成ガイドラインの制作 © DeNA Co., Ltd. 51
リリースノートガイドライン作成前のチームの状態 ● ガイドラインが存在せずエンジニアがその時の流れである種⾃由にリリースノートを記 述をしていた ○ ⼈への依存が発⽣していたことを意味する ● 過去に利⽤された⽂章が、⾒直されることがなくそのまま流⽤されていた ○ リリースの内容がユーザーに伝わりにくい⽂章の構成になっていた ● 実際に私がリリース対応をする際も何を記述していいかの迷いが⽣じていた © DeNA Co., Ltd. 52
リリースノートの役割 ● ● ユーザーに対して変更点や新機能を正確に伝えることは重要 特にkencomのような「健康」にまつわるアプリでは我々が提供する情報の正確性は ユーザの信頼に直結する ● アプリのアップデートを⾏い続ける中で、リリースノートの記述がバラバラだと、ユー ザーは何が変わったのかを正確に理解するのが難しくなる ○ これにより、ユーザーエクスペリエンスの低下や、新機能の利⽤機会の損失につ ながる可能性がある ● また、デザイナーを含む開発チーム内でも、リリースノートのフォーマットが統⼀され ていないと、それぞれの担当者が独⾃のスタイルでノートを書くことになり、結果的に ユーザーに混乱を与えるリリースノートが出てくる恐れがある © DeNA Co., Ltd. 53
リリースノートで⽬指したい姿 ● ● リリースノートは開発者とユーザとの接点の1つである しかし伝えるべきこと‧伝えたいことがユーザに伝えれてないことが課題であった ● なぜなら私たちは、リリースノートが私たちの伝えたいこと‧取り組み‧姿勢を伝える 場の1つとして機能させることができると考えているから ● それを解決するためにリリースノート作成のガイドラインを作成した © DeNA Co., Ltd. 54
リリースノート作成ガイドライン の確⽴ ● © DeNA Co., Ltd. 最初に前提を⾔語化 55
リリースノート作成ガイドライン の確⽴ ● © DeNA Co., Ltd. 以下のガイドラインを作成した ○ タイトルの表記 ○ ⽂章の表記 ○ リリースノートの締め⽂⾔ ○ ヘッダー⽂⾔ 56
リリースノート作成ガイドライン の確⽴ ● © DeNA Co., Ltd. リリースノートに記載する基準の ガイドラインを作成した ○ 記載することしないこと ○ 具体で伝えるかニュアンス で伝えるか ○ 新着情報 57
リリースノート作成ガイドライン の確⽴ ● ● © DeNA Co., Ltd. リリースノートに記載する基準の ガイドラインを作成した ○ 記載することしないこと ○ 具体で伝えるかニュアンス で伝えるか ○ 新着情報 ○ アクセシビリティ ○ バグ修正 ライティング検討時の注意点を記 載 58
リリースノート作成ガイドライン の確⽴ ● ● ● © DeNA Co., Ltd. リリースノートに記載する基準の ガイドラインを作成した ○ 記載することしないこと ○ 具体で伝えるかニュアンス で伝えるか ○ 新着情報 ○ アクセシビリティ ○ バグ修正 ライティング検討時の注意点を記 載 視認性を向上させるために内容を 表としてまとめた 59
リリースノートで⽬指したい姿 ● ● リリースノートは開発者とユーザとの接点の1つである しかし伝えるべきこと‧伝えたいことがユーザに伝えれてないことが課題であった ● なぜなら私たちは、リリースノートが私たちの伝えたいこと‧取り組み‧姿勢を伝える 場の1つとして機能させることができると考えているから ● それを解決するためにリリースノート作成のガイドラインを作成した © DeNA Co., Ltd. 60
まとめ © DeNA Co., Ltd. 61
まとめ ● 新卒エンジニアが直⾯した開発プロセス上の課題と改善を紹介 ○ ビルド⽣成プロセスの改善 ○ イテレーションプロセスの改善 ○ リリースノート作成ガイドライン制作 ● 過去8年続く運⽤を鵜呑みにしそのまま利⽤せず、課題感を感じた際にその課題を⾔語 化した上でチームに共有しWhy‧Whatの部分から考え課題を解決する重要さを改めて 学んだ さらに今必要されている新しい⼿段を模索しチーム内で運⽤ができるまでに形作り運⽤ させることで、それ⾃体が次のValueに変化し続けることを学んだ ● © DeNA Co., Ltd. 62
ありがとうございました! © DeNA Co., Ltd. 63