一概に全てのプロジェクトに適用できるわけではないけど、個人的にプロジェクトジョイン時にやる事まとめ
PCセットアップ
可能な限り自動化しとく
- Macを想定
- Homebrewを入れ必要なものをたくさん入れる
- 半日のつもりで1日のバッファを取る
- 最低限なら1hくらい
- なんだかんだネットワークとか申請で掛かる
情報の集約場所を決める
ファクト->抽象化->転用のプロセスを通してメモを常にブラッシュアップする事を徹底する
-
雑多なメモ帳(オフライン)
- ホワイトボードタイプ
- 書き終わったらEvernoteにScanableで上げる
-
雑多なメモ帳(オンライン)
- ある程度整ったら掲載したい場所に移す
- Simplenote
- 内容単位で新規作成する
- 技術系
- 業務知識系
- 作業系
- スマホにアプリ入れとく
- tmp的位置付け
-
Slackのピン留め
- プロジェクト固有のスニペット的な情報を自分チャンネルに投稿しピンする
-
Qiita
- 技術知識がある程度まとまったもの
- Simplenoteでまとまったもの
- 書籍wikiでまとまったもの
-
書籍単位のwiki(独自wiki)
- 読んだ本の登録
- 本の内容メモる
- kindle unlimitedの本は特に登録とメモをセットにする(保管制限あってあとで見返しづらい)
- 紙も情報を取り出したい時大変(持ち運べない)なので意識してメモをセットにする
業務・ツール概要説明
認識合わせを忘れない(言葉の定義を確認する)
- 可能ならば必ずもらう
- 雑多なメモ帳を駆使する
- 網羅的にしてもらう
- 自分でまとめたものをレビューしてもらう
ドキュメントインプット
インデックスを貼る目的で行う
- 案件によるが黙ってインプットさせてもらう期間を通算2日分(最低1日)くらいもらう
- どこに何があるかをメモする
- 一通り通読する
- 不明なものをメモする
- 不明なものをまとめて聞く
- 何回も取り出しそうな情報はslackにピン留めする
環境構築
後続のメンバーが自分よりも早くできるようにする事を目指してブラッシュアップする
- ドキュメントを読んで進める
- 分からないものはタイムリーで聞く
- 初見で想起やイメージできない表記は修正許可をもらう
- ないものは追加する
- 手作業のコマンドがある場合ShellScriptにメモる
- 可能ならばDocker化する
メンバー理解
性格と立ち位置、長所と短所を押さえとく
- コミュニケーションを取る相手を認識する
- メンバーのやっている内容
- 要件確認する相手
- 仕様確認する相手
- 実装確認する相手
- 進捗共有する相手
改修・追加開発
現状把握と共有を常に徹底する
- 要件概要確認する
- やるメリットと効果を検討する
- 作業優先度を確認する
- 要件と対応するソース特定・確認する
- 既存の類似対応、類似箇所があるか確認する
- 影響範囲と認識があっているか確認する
- 過去に関連チケットがあるか探す
- 過去の関連git logあるか探す
- チケットを作成する
- 過去のソース変更者やその期間在籍している人を探す(背景が分からない場合)
- ざっくりその人に聞く(背景が分からない場合)
- やる事を分かる範囲で箇条書きにする
- 順番を確認する
- 更に細分化する
- 認識を確認する
- 工数を出す
- ざっくりの全体工数を共有する
- ソースコード調査・把握する
- 調査・把握経過をメモる
- 細めに見積もりを更新する
- レビュー、テストの工数考慮が漏れがちなので共有する
- ある程度明確なものはそのまま工数を共有し、不確実性の高いものはその旨を共有した上で作業する
新規開発
決裁権持つ人と一体となってやり取りする
- 可能ならば要求をRFPとしてもらう
- ヒアリングする
- 提案する
- 要件定義書作成する
- 工数見積もりをする
- 設計する
- プロトタイプ作る
- プロトを複製し拡張する
- アジャイル的に開発する
- テストする
- 納品する
保守運用
ナレッジを人依存にしないことを徹底する
- 障害対応記録の存在を確認する
- 障害対応記録を積んでいく
- 障害発生箇所の改修をする
- 既存の運用保守コストを可視化する
- 運用を自動化する
- 保守を自動化する
雑感
最低限すぐやれる事のレベルを常に上げておく