SHOEISHA iD

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

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

【デブサミ九州2017】セッションレポート (PR)

週1時間の取り組み「KAIZENアワー」は技術負債の解消にとどまらない、エンジニアが成長する場として機能【デブサミ九州2017】

【A-2】Webフロントエンド、改善の積み重ね

  • このエントリーをはてなブックマークに追加

ツールのコーディングスタイル統一に挑んだが問題は山積み

 穴井氏は、KAIZENアワーで実施した取り組みの中から「1時間でコツコツできる改善例」を紹介した。そして、「これから自分の職場で改善活動にチャレンジする人には、最低限の時間でできることから始めるのを勧めます」と話す。

 「改善に取り組んでみたいけれど、『工数が3人日かかる』などと最初から切り出しては上司も納得してくれません。でも『1時間でできますから』と言えば、説得しやすいのではないでしょうか」

 今回紹介されたのは、穴井氏がコーディングスタイルの統一を試みた際の事例だ。リッチラボでは現在2つのB2Bツールを使用しているが、それぞれ開発時期が違うため、コーディングスタイルが異なっているのが問題だった。具体的には、JavaScriptの構文チェックツール「ESLint」のルールセットが新旧2つ存在するため、一方ではチェックを通るコードがもう一方では通らない問題が生じていた。新しいルールセットに統一しようと考えたが、単純に古い方を切り替えるだけでは大量のエラーが出てしまう。

古いプロジェクトの独自ルールを新しいプロジェクトのeslint-config-airbnbに統一する
古いプロジェクトの独自ルールを新しいプロジェクトのeslint-config-airbnbに統一する

 「最初2000件くらいあった問題を、かなり頑張って777まで減らしましたが、これでも1時間ではとても解決できません。また、単純にプルリクエストとして投げると、差分が膨大になってしまう。レビュアーの手間も考えて、手作業での移行をいったん断念しました」

段階的な修正とツールを使った効率化&自動化で問題を解決

 そこで穴井氏は、段階的に修正していくことと、その過程を効率化できるツールを利用することを考えた。ステップとしては主に3段階。最初に行ったのが「Prettier」というコードフォーマッターの導入だ。このツールはESLintが修正できないルールでも直すことが可能だという。

 「最初に設定する項目は少なく、あとは自動でやってくれるので導入も速い。約2000件のエラーの2割くらいは、このツールが自動的にフォーマットしてくれました」

 次に、Prettierでも直せなかったルールをいったん全て無効にした。その上で、KAIZENアワーやその他の開発のついでに修正する。作業を1時間ごとに区切って、コツコツと直していくのだ。

 「無効にした中から、修正したいルールを有効にしてESLintを実行し、エラーになったら直すというサイクルを、エラーがなくなるまで繰り返します。その過程で、機械的に直せそうな部分を見つけた場合は、『JSCodeshift』を利用します」

 JSCodeshiftはFacebook製のリファクタリングツールキットで、変換処理をJavaScriptで記述し、機械的にリファクタリングすることが可能だ。こうして手作業と自動処理ツールを併用しながら、根気よく作業を進めていく。

 穴井氏はセッションの後半、さらに詳しいツールの利用法や改善におけるアプローチなどを、具体的なコードをふんだんに引用しながら紹介していった。

問題の解決にとどまらない成長の場として、今後も継続を目指す

 セッションの結びとして穴井氏は、KAIZENアワーを通じたこれまでの改善の取り組みを振り返り、「楽しかった」と話した。担当案件の進捗が悪く、今週は何もできなかったと感じているときも、自分の関心のあることをアウトプットして、週末にすっきりとした気持ちで帰宅できる環境は貴重だという。

 また「改善」というと、「技術負債の解消=マイナスをゼロに転じるためのリカバリー的な活動」と思われがちだが、納期の都合などで一度そのままにした問題に改めて向き合い解決することで、次に似た問題が出てきた場合でもすぐに対応できるようになる。

 「これは自分たちにとっての成長だと思っています。つまりKAIZENアワーは、問題の解決だけでなく成長の場としても機能しているということです。今後も継続し、リッチラボの開発組織をより強くしていけたらと願っています」

 穴井氏は抱負を語り、セッションを締めくくった。

お問い合わせ

 Yahoo! JAPAN

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

  • このエントリーをはてなブックマークに追加
この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10465 2017/10/17 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング