SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート

コードレビューをドメイン学習にも役立てる――ZOZOTOWNに学ぶレガシーアプリ開発の知見

「iOS開発チームの特徴と開発方法を公開!」レポート(2)

改善はゴールではなくプロセス

 ばんじゅん氏は、レガシーに対してとるべき技術的アプローチについても言及していく。レガシーな機能は、他のレガシーな機能と結合しているケースが多い。ゆえに、なりゆき任せにコード改善を進めていくと「あれも、これも全部を変えなければ」と、芋づる式に修正範囲が広がってしまうことがある。そうした事態を避けるため、「修正すべき対象を分割して、影響範囲を調整可能にすることが重要」と解説する。

 既存機能を壊さずコードを置き換えていくために、機能のデグレードを防ぎやすい手法や、動作確認をしやすい方法を用いることも重要だ。ZOZOTOWNのiOSチームが2019年にとったレガシーへの対応としては、以下のようなものがあるという。

2019年に実施した、レガシーに対する技術的なアプローチ。
2019年に実施した、レガシーに対する技術的なアプローチ。

 また、本稿で解説したような開発・改善を行うには、メンバーに幅広い技術領域を身につけてもらう必要がある。そのためiOSチームではチーム外・社外のメンバーとともに、各種の勉強会を月に一度のペースで開催している。iOSエンジニアで技術共有する会やデザイナーとUIを学ぶ会、品質管理チームとテストを学ぶ会など、内容は多種多様だ。

 「話題を変えて、ここからはマインドについて話をさせてください。私は『改善はゴールではなくプロセス』だと思っています。私たちは、売り上げ拡大のために案件開発をサポートしているのだという意識を持つことが必要です。また、基本的には日常的かつ安定的にリファクタリングをしていくこと、リソースをスパイクさせないことを意識しています。

 技術導入の方針としては、技術の流行だけを追わないことや、技術の導入そのものを目的にしないことを心がけています。私たちのコードベースにはまだ古いものが残っているため、世の中の多数派とはかけ離れた技術的要素を持っているかもしれません。『流行っている技術は、もしかしたらマッチしないかもしれない』という観点を持つことが重要になります」

 長い歴史を持つアプリをメンテナンスし続ける上では、「レガシーな要素とどう向き合うか」という観点が必要不可欠だ。多くの場合、改善施策は地道で根気のいる作業になる。長い改善の道のりを「着実に歩き続ける」という姿勢が、チーム開発における基礎体力を築いていく。その姿勢の重要さを、ZOZOTOWNの事例は伝えてくれた。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
イベントレポート連載記事一覧

もっと読む

この記事の著者

中薗 昴(ナカゾノ スバル)

 週の半分はエンジニア、もう半分はライター・編集者として働くパラレルキャリアの人。現職のエンジニアとして培った知識・経験を強みに、専門性の高いIT系コンテンツの制作を行う。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/11986 2020/02/25 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー