Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

レガシーシステムの調査をモブでやってみた

はじめに

システムリニューアルや障害などで、古いシステムを調査することって良くありますよね。
この調査というタスク、非常に厄介です。
いつもは一人でやる(やらされる)ことが多いのですが、
今回モブでやってみたら最高に幸せだったよという話をします。

レガシーシステムとは

まず、今回のレガシーシステムを定義しておきます。
みなさんも一度は見たことあるかもしれませんね。
どれか一つでも当てはまれば、それを想像しながら読み進めていただければと思います。

  • 初期リリースから10年以上経っている
  • 誰も全ての仕様を把握していない
  • 見たことない言語で動いている
  • 誰も調査したがらない
  • バージョン管理されておらず、改修日と作業者名のコメントが大量にある
  • コードがやたら長いし謎処理が大量にある
  • もう使われていないであろうコントローラも大量にある
  • ファイル名や変数名は暗号のよう
  • ソースが追えない
  • 心が折れそうになる

今回の作業内容

上記のようなレガシーシステムを一部リニューアルするにあたり、
『とあるDBのとあるテーブルがどのタイミングで更新されるか』を調査することになりました。

ソロでもモブでもやることは変わりません。
テーブル名でgrepして、ヒットした箇所(100件以上)をひたすら調査していきます。

モブで調査してみた

今回は対象のDBに多少詳しいH氏と2人で行いました。
どちらもレガシーシステムには(言語含め)詳しくありません。

一緒にgrepした結果を眺めて一つ一つソース解析していきます。
フェーズ毎に様々なメリットがありました。

  • 調査前
    • 一人じゃないので安心感がある
    • レガシーシステムに立ち向かう気になれた
  • 調査中
    • SQLのCRUDの仕分けがゲーム感覚でサクサク進んだ
    • 一人が見逃してもカバーできた
    • 調査結果のまとめ方をお互いに学べた
      • これ普段共有することなかったので新鮮だったし大事だと感じた
    • 判断が速かった
      • 使われてなさそうなファイルがヒット
        • 2人「これはもう無視しよう。きっと大丈夫」
      • 非常に関連が高そうな別テーブルが現れた
        • H氏「あ、それもう使ってないから調査不要です」
  • 調査後
    • 調査結果に自信を持てた
      • 仮に漏れがあっても仕方ない感
    • 共有の時間が不要だった
    • 調査結果を元にした次のアクションをすぐ決定できた
    • 数日かかると見積もっていたが数時間で終わった

もし一人でやっていたら...

経験をもとにどうなっていたかを考えてみました。
みなさんもこんな経験あるのでは?

  • 調査前
    • 不安。樹海に飛び込む感覚
    • モチベーションあがらない
  • 調査中

    • CRUD仕分け
      • 集中力の低下
      • 速度の低下
      • ミスしてそうという不安
    • 孤独との戦い
    • 自分しか読めない調査資料の完成
    • 判断できない
      • 使われてなさそうなファイルがヒット
        • 頑張って時間かけて調べる...が確信持てない
      • 非常に関連が高そうな別テーブルが現れた
        • 頑張って時間かけて調べる...がよくわからない
  • 調査後

    • 調査結果に自信が持てない
    • 使われてなさそうなファイル&別テーブルの共有
      • 「もうちょっと調べてみて」
        • ふたたび樹海へ...
    • 数日たったが終わりが見えない
    • 次のアクションに進まない

さいごに

書いてて思ったのですが、もし一人でやってたらと思うとゾッとしますね。
(まぁいままでは一人でやってたわけですが)
これからは誰もが嫌がるタスクはモブでやっていこうと思います。

調査に苦しんでる人は是非お試しあれ。周りを巻き込んで!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
4
Help us understand the problem. What are the problem?