はじめに
サントリーウエルネスDX推進部エンジニアリングGに所属する浅井です。
私は2023年にデジタル&テクノロジー部門採用で新卒社員として入社し、今年で入社2年目になります。
現在、健康行動アプリ「Comado」のサーバーサイドの開発業務を行っています。
その中で、1年目の頃に行っていた業務と、仕事を進める中でぶつかった壁についてご紹介しようと思います。
Comadoとは
Comadoは2022年10月からサービスの提供を開始した、サントリーウエルネスのお客様が無料でお使いいただける健康行動アプリです。
健康行動アプリ「Comado」内でユーザーは様々な事が行えます。
- フィットネス
- Zoomや動画を視聴することで、ヨガやエクササイズなどをオンラインで受けることができる
- 記事の閲覧
- 落語やレシピなど、多くの記事や動画を視聴できる
- (定期契約者のみ視聴可能な記事も存在 例:雑誌の読み放題)
- 健康習慣
- さまざまな健康習慣を記録し、振り返ることができる
- チャレンジ
- 健康行動によって、ポイントを貯めることができる(定期契約者のみ)
- SuntoryWellnessClubについてはこちら
入社してからの業務
入社前の私はプログラミングの経験がほとんどありませんでした。 そのため、Comadoのサーバーサイドの開発チームに加入した当初、多くの知識とスキルを吸収しようと業務に向き合うことから始めました。 与えられた業務を期限内に終わらせることは前提として、先輩方に納得できるまで質問し知識の理解を深めることに集中することで、業務の中でどれだけ自分が成長できるかに重点を置きました。
知識をつけながらComadoをシステムとして安定稼働させるための細かい運用業務に向き合い続けていくと、徐々に成果も出てきました。 成果が出ると振っていただける業務も幅が増え、企画の実現のために仕様の整理・実装・テスト・調整・リリースまで一気通貫して行うことも増えていきました。
新たな業務でぶつかった壁
業務に取り組み続け、少しずつ慣れてきた頃、1つの業務を新たに任されました。 それはComadoの健康習慣に対しての「健康習慣のメタデータ管理について考える」という業務です。
壁①:何をすればいいのか分からない
「Comadoの健康習慣のメタデータ管理について考える」という業務を任されたものの、当初は何をすればいいのか分からず戸惑っていました。 戸惑いの理由は、目的と業務の繋がりが分からないことと、今までの業務との性質の違いが理由でした。
この業務の目的は「コンテンツによらずデータを横断活用できるようにすること」と聞いていました。 データをコンテンツ横断で活用したいという目的は理解できましたが、概念の構造化やメタデータの管理との繋がりに対して私の理解が及ばず、はじめはゴールも分かりませんでした。
また、今までは「作るべきものが決まっていて、正解がある」業務でした。正解に対しての道筋を自分で考えて進めていく開発業務だったため、実装で悩んだ箇所はあったものの自分がするべき行動に迷うことはありませんでした。
それが、急に 「何が正解なのか考える」 業務に変わりました。
先輩方も誰も正解を知らないため、何をすれば正解に近づくことができるのかも分からず、はじめは実装をひたすら見るなど迷走していました。
迷走している中で、ある先輩から「現状を知らないと正解は見つからない」というアドバイスをいただきました。
そこでまずは、「現状構成の把握」のために健康習慣というコンテンツ内にあるデータから整理していくことにしました。どのようなデータがあり、他のデータとどのように紐づいているのかをひたすら整理し、書き出しました。
データ整理していく中で見えた課題
データを整理していくと、ユーザーにとっての意味とデータ特性によってグルーピングできることに気づきました。
その中でチームのメンバーと現状のデータ構成について話し合っているうちに1つの課題が見えてきました。
それは「チーム内で概念や用語の認識が揃っていない」ということです。
認識が全く異なることはないのですが、各々が解釈した結果、微妙に違う認識で曖昧なまま使用されていました。
このような状態になる原因は、概念や用語の「言語化が正しくできていない」ためです。
課題から行ったこと
概念や用語が言語化されていたとしても、解釈が人によって異なる状態だと認識もずれていきます。
誰にとっても解釈が同じになるようになっている状態が理想の状態であり、共通認識をつくれる状態です。
そこで私は、「概念や用語の言語化の精度を上げ、共通認識を作ること」を目指しました。
まずはチーム内で使われている用語について、チームメンバー各々の認識を書き出してもらい、それを議論する場を設けました。
議論を経て概念や用語の言語化の精度が上がると、誰にとっても同じ解釈ができるようになり認識が揃うようになります。
認識が揃うというのはチームとして有益なだけでなく、個人にとっても認識が固まることで迷うことが少なくなり、効率が高まります。
壁②:抽象的に考えることが難しい
概念や用語の言語化の精度を上げてチームでの共通認識を作ったことにより、データの整理が進みました。
次に健康習慣の「あるべき姿を考えて」概念を構造化する必要があります。 概念の構造化は、いわば最適なクラス図を書くことです。データをクラスにまとめて意味のあるクラスを作り、クラス同士の関係性を適切に設定できれば概念の構造化ができます。
ここで再度壁にぶつかりました。
あるべき姿を考えるには、将来的に理想のデータの使われ方や理想のデータ構造が考えられなくてはいけません。
そのためには物事を抽象的に捉えなくてはなりませんが、今までの私は実装という業務をしていたことから実装面の課題ばかりに目が向いてしまいました。
現状の実装状態という固定観念に囚われて、将来的に理想のデータの使われ方を全く考えられていませんでした。
またクラス図を書いたことも無かったため、データを抽象化した概念にすることも難しく中々できませんでした。
ただその中で現状のクラス関係を把握しながら、周りの方々に相談と議論をし続けて、概念の構造化を進めていきました。
業務の中での学び
このように壁にぶつかりながらも、業務に向き合ってきました。
この業務を振られた当初よりは、目的と業務との繋がりも理解して考え方も成長できたとは思いますが、既に壁を乗り越えたとは思っておらず乗り越えている途中だと考えています。
壁にぶつかりながらも、私が学んだことは以下です。
認識を揃えることの重要性
私が当初Comadoチームに加入したときは新卒1年目ということもあり、多くのことに対して「チームメンバーの認識は合っているが、ただ私の理解が追いついていないだけだ」と思っていました。
しかし実際は、私が1年目ということは関係なく、チーム間で認識を揃えること自体がとても難しいことだと気づきました。
そして人数が増えれば増えるほど、認識を揃えることも難しくなっていきます。
認識が揃っているかどうかを意識しないと、認識がずれていることにも気づかないのだと学びました。
認識を揃えることは、プロジェクトの進捗だけでなく考慮漏れ等も気づきやすくなるので、チーム内外問わず認識を揃えながら進めていくことが重要です。
抽象的に考えることを忘れないために、固定観念に囚われない
2年目になった今でも、抽象的に考えることは難しいと常に感じています。
今回の場合は実装を再現しなければならないという固定観念を排除することで、難しい抽象化の整理を進めることができました。
しかし自分の考えが固定観念であると気づくのは難しいため、早期に周りの方と相談しながら自分の考え方の傾向を認識して進めることが大事だと気づきました。
その中でも具体的なものを理解していないと、抽象的に考えることはできないため、具体と抽象を行き来しながら物事の理解度を高めていけるよう学び続けようと思います。
共有・相談はなるべく多く行う
今まで私は「共有・相談する前に自分である程度まとめないといけない」と考えていました。
もちろん自分なりの考えを持って共有・相談するのも大事ですが、自分だけでは整理できないことも多くあります。
それを自分で固めようとしすぎると、自分の狭い視野の中で考え続けることに時間を使ってしまい、時間的かつ精神的に厳しくなってしまいます。
まずは自分で考えてみて行き詰まったらすぐに相談することで、考えに幅も生まれるため、自分の業務が進みやすくなりました。
また、状況共有はチームメンバーに対して自分が何を行っているのかを認識して貰うことでアドバイスを頂きやすいだけでなく、他開発案件とのリリース調整も行いやすくなるため、共有をこまめに行うことが重要だと学びました。
おわりに
今回は新人が行った業務とともに、ぶつかった壁についてご紹介しました。 業務の中で学びを深めることで業務に慣れるものの、業務の性質が変わるたびに毎回色々な壁にぶち当たっています。 壁にぶつかり試行錯誤することで、新たな学びを得られるということも新人として気づきました。 これからも仕事として成果を出すことは前提として、自分の成長のために壁と向き合いながも徐々に壁を乗り越えられるよう、日々精進していこうと思います。