やる気がストロングZERO

やる気のストロングスタイル

入社直後の既存システム把握で奮闘

転職して新しいシステムを扱うので把握しないといけない。
把握を進めていく方法で悩んで色々試しているので書いてみる。

なぜシステムの把握が必要か?

なにをやるにしても全体像が把握できていないと辛い。
新機能追加の際にも、合わせて調整しないといけない部分が洗い出せない 等。。

トライした方法とその効果など

◆コードリーディングでの把握
あまり有効でがなかった気がする。
時間がかかりすぎる
枝葉情報が多すぎる
まとめきれない
細かい情報はまたきっとまた忘れる
システムの主機能のメインルートの流れを把握するのは有用だったと思う。
そのアプリケーションのコードの書き方やコードの配置がざっくりわかる程度には溺れておいてよかった気がする。

◆モデル構造・DBテーブル構造からの把握
有効だったと思う。
ざっくりとどのようなエンティティがあるのかが把握できた。
テーブルカラム内容一つ一つ追うのではなく、ER図とともに関連をざっくり把握するのがよさげ。
テーブル構造をざっくり把握しておくと、その後の業務説明を口頭で受ける際にも最終的にどのテーブルにデータが入るのかを考えながら聞けるので、理解しやすくなった。
DataGripだとダイアグラムを生成できるので把握しやすかった。
今回はrailsだったのだが、モデル図を生成するgemがあったのでER図を生成できた。これも全体像を把握するのに役立った。
DataGrip使うと気になったテーブル内容をパパっと確認できたのでよかった。(shift2連打でテーブル名入力)
引きの速さは理解速度に影響しそう。
※他のクライアントあんまりつかったことないけど。

◆口頭説明されたことを細かくメモ
局所的にかなり詳しい仕様を聞けるので有効だが、機会が限定的なのであまりこればかりに頼れない感じ。
また、入社直後は全体像がわかっていないかつ、与えられる情報が多すぎて受け止めきれない場合が多いのである程度わかってから再度聞きたい感じ。
聞いたことを一回書き出すことで脳内整理する。が、メモ自体はあまり役に立たない気がする。(まとめ方を考えて正式にどこかにまとめない限り)

API一覧から把握
ある程度有効。
どういう機能があるのかを網羅的に眺めることができる。
一つ一つ細かくではなく、ある程度のカテゴリ別に確認して、どういう機能が存在しているのかをなんとなく把握できる。

◆画面から把握
情報整理の方法が確立できていないと理解の効率が悪かった。漠然と眺めている感じになってた。
ただし、詳しく調査したい機能がある場合、まず「どういった画面になっているか?」から入るのは個人的に理解が進みやすい。

最近ググって良さそうな記事を発見

既存システムを分析するコツは「システムの地図」を作ること (1/3):CodeZine(コードジン)

・全体像からざっくり把握する
・把握する際の視点
・情報を残す際の手法

みたいなことが書かれている。

今後しばらくこれを参考に進めてみるつもり。