案件回せるようになるための振り返り

今担当している案件をまだ自分がひとりで回せそうに無いので、

先日「どうやったら今の案件を1人で回せるようになるか」を会社の先輩が一緒に考えてくださいました!

具体的には、現状の把握・足りてないこと・アクションプランについて考えていきました!

その内容に加えて少し自分で気づいたことや考えたことを書き足してみたのが以下です!

 

 

  

目標

0.5人月契約案件を一人で回せるようにする(1 人月まるまる使って良い)

 

現状できること

開発
  • Git(ある程度)
  • Heroku(ある程度)
  • Rails
    • CRUDの作成・修正(ある程度)
    • ActiveJob(ある程度)
    • RSpec(ある程度) 
全般
  • 正解がわかっている箇所の修正は可能
    • 実装できる
    • テスト書ける
    • デプロイできる
調査
  • 似たような不具合に遭遇したことがあれば出来る
  • ヒントがあれば未知なものも出来ることがある
    • どのように調査すればよいかがわかっていれば、残りは予測できそう 

 

出来るようになる必要があること

開発
  • Heroku(add-on 周りを理解する)
  • AWS(EC2、RDS、S3は理解したい)
  • SQL
  • Linuxサーバーの理解
  • JSの理解
  • SSH
  • 各種gem
  • Ruby (あまり触れたことのないメソッドやクラス全般)
  • Rails (あまり触れたことのない機能全般、メソッドの切り出す場所など)
調査
  • 調査開始方法(どこから見ればよいか)がわかるようになる
  • 実装から仕様を理解する
  • 調査方法
  • ログから読み取る
  • ツールの存在/使用方法
設計
  • 設計とはなにかを理解
  • あるべき/アンチパターンの理解
  • コードに落とす前によく考えることを習慣づける
顧客ハンドリング
  • 理解し合う(同じチームであるということ)
  • 同時に、良い関係を保つ
  • 課題を軸として議論する(人をターゲットにすると感情論になって破綻する)
  • 顧客が正解ではないことを頭に入れる
  • イエスマンにならない
    • できないことを、できないと伝える
    • 飛入り作業を受ける場合、他の作業が後ろ倒しになることを告げる
    • お客さんの依頼内容以外の方法でも希望が叶えられそうなら提案

 

 

アクションプラン(具体的にどうするか)

開発
  • 自力でやる or 質問する、を早い段階で判断できるようにする
    • とりあえずもっと聞いてみる
    • 聞いていく中で聞くべき or 聞かなくてもOKの線引きをできるようにする
調査
  • 未知の調査も自力でできるようにする
    • まず1人で調査してみてできなかったらペアで学んでいく 
設計
  • 設計をできるようになる
    • ストーリーをどう実装するか話し合う時間を作る
    • 意見を出し合う
    • あるべき形と影響範囲などを考える
顧客ハンドリング
  • ミーティングでファシリテートできるようになる

※アクションプランはある程度設計の良し悪しが分かるようになったら再度考える

 

 

 

 感想その他

 

振り返りを行うにあたり、今改めてプロジェクトにジョイン〜今に至るまでの流れを思い返してみると、

→プロジェクトにジョイン

→今の私にはこのプロジェクトは難しそうなので別の案件に移る提案してもらう

→このまま続けたいですと言って継続することになった

→ そのくせに1人で回せるようになる気配がまだ無い

…という状況でした。

(文字に書いてみると自分ワガママだなw)

 

今まで目の前のタスクばかり考えており、自分を振り返る機会を設けていなかったのですが、

定期的に行っていきたいなと思いました!

具体的に、何ができる・何が足りない・どう行動するか、が見えてくると不安が和らぎますね!

 

定期的に、今後は自分1人でも同じように、

現状の把握・足りてないこと・具体的なアクションを振りかえっていこうと思います!

 

tigを入れた!!

先日、特定のプルリクをRevertしたり一部だけマージし直したりしなければならないことがあり、

gitの状態がどうなっているか理解が追いつかない...となることがありました。

 

そこでtigというツールがあることを教えてもらい、以下の記事も紹介してもらいました。

qiita.com

 

tig便利そう!入れたい!と思いつつ1週間ほど経ってしまったのですが、先ほどやっと入れて試してみました!!!

まだお試し程度しか使えていませんが、これは活用しまくる予感です!!!!

 

 

入れ方

homebrewを使っていれば以下のコマンドだけで簡単に入れることができます!

 brew install tig

 

 

 

使ってみる

tig コマンド

tigコマンドを実行すると、以下のようにどのブランチで誰がどんなコミットをしたかわかりやすく表示してくれます!!

git log --onelineより見やすい!!

revertしたりでグチャッてしまったコミット部分もわかりやすい!!

gyazo.com

 

 

tig -- ファイル名(ディレクトリ名) コマンド

tig -- README.md

のように特定のファイルやディレクトリ名を指定すると以下の画像のように指定したファイルの履歴を表示してくれます!

gyazo.com

 

 

tig blame ファイル名 コマンド

tig blame README.md

とすると以下のように行単位で誰がいつ何を変更したかが一目でわかるように表示してくれます!

gyazo.com

 

 

まだまだ他にも便利な使い方がたくさんあるようなので、今後活用していきます!!

 

 

 

TamaRuby会議無事おわった!

TamaRuby会議を無事終えることができました!!

 

 

セッションはどれもすごく面白かったです!!

自分は受付係だったため早めの時間のセッションは聞けなかったのですが、

ツイッター上でスライドを共有してくださっていたので、これから読んでいきたいと思います!!

 

来てくださった皆様、登壇してくださった方々に本当に感謝の気持ちでいっぱいです。

 

素敵な会場を提供してくださったGMOさんも、お寿司の提供してくださったsansanさんも、沢山のドリンク提供してくださったメドピアさんも、準備をすごく頑張ってくださっていたTamarb運営メンバーの方々にもすごく感謝です!!

 

 

また、自分は特別企画枠でお話しさせて頂きました!

「会場を巻き込みつつ面白く話す」という課題は達成できたか怪しいですが、何とか無事終わったのでホッとしております。

 

問いかけに対して挙手や回答してくださったのが本当にありがたかったです!

リアクション無かったらトーク中心が折れていたと思いますw

 

以下はそのスライドです!

speakerdeck.com

 

改めてコミュニティっていいなーーと感じました!!!

 

セッション聞いたり懇親会でお話ししたりする中で、 沢山の刺激や気づきをいただき、こらからも(自分のペースで)やるべき事をやっていこうと思いました!!

 

 

 

f:id:haayaaa:20190707103736j:image

 

 

TokyuRuby会議へ行った

本日はTokyuRuby会議へ行ってきました!

プレミアムモルツを飲みながらLTしたり聞いたりする特殊な会でした。(サントリーさんがスポンサーをしてくださり、いろんなプレモルが飲み放題だった!!)

 

 

普段カンファレンス後の懇親会でお酒を飲む時は楽しみきれないことが多いのですが、今日はとても楽しかったです!!

 

 

抽選LTにも当選し、急遽社外での初LTを果たすこともできました。

来週はTamarbの特別企画でトークする予定もあるので、事前に大勢の前で話す練習ができて良かったです!

 

ここ数日仕事で失敗続きで凹むことばかりだったのですが、TokyuRubu会議に参加したおかげで元気が出てきました!!

また次回もTokyuRuby会議参加したいと思います!!

 

https://pbs.twimg.com/media/D-NEYJjVUAA2GfB.jpg

 

バグを発生させてしまった反省

今日は自分の実装した機能が原因の不具合がたくさん発覚しました。

 

具体的な内容

具体的には以下のような内容です。

・変更→ 検索で1件のみ絞り込んで表示していたのを条件一致するもの全件表示する

 バグ→ 半角のものがヒットしなくなってしまった

・変更→ 未来日付のものは一括作成しない

 バグ→ 日付なしのものが一括作成されなくなってしまった

・変更→ 自動延長処理をかける条件の変更

 バグ→ 延長処理かかるはずのものがかからない 

・変更→ 検索条件の保持

 バグ→ 連続確認機能に不具合がでた

 

 

月末に使うアプリケーションなので、月末にバグがボロボロ発覚しました。

POさんや、アプリを使う経理担当の方に大変な迷惑をかけてしまいました。

経理担当の方にとって凄く忙しい月末だというのに作業効率が落ちるようなバグであったため、本当に申し訳ない気持ちでした。

 

ひとまず元の状態に戻すことで対応しました。これから根本解決をして上記の機能をもう一度実装していくところです。

 

 

 

どう対策するか

毎回マスター反映する前にPOさんにステージング環境を動かしていただき、問題ないか確認が済んでから反映をしていたのですが、それだけではダメだと思い知りました。

 

対策としては、以下のようなことを考えました。

 
デグレーション対策

・自分が触る機能周りだけでなく、アプリの全体像、API連携しているアプリの概要、お客さんの経理処理の流れやルール、お客さんが提供しているサービスの詳細や料金体系について理解する。

・テストを充実させ確実に信用できるものにすることで、その変更によって予想外の影響が現れていないかしっかり確認する。

・境界値のテストもしっかりかく。

 

把握しきれていない要望対策

・POさんだけでなく経理担当の方にもステージング環境を叩いて確かめてもらう。

・週次ミーティング以外にスラック上でまめに小さい単位で新しい機能の確認を行う。

 

バグの発覚が月末にまとまってしまう対策

・月末のマスター反映を避ける。

 

 

感想その他

テストしっかり書くのはもちろんですが、想定漏れが怖いので、まめに経理担当の方にステージング環境を動かして確認してもらうようにしようと思います。

こまめにスラックでの連絡&機能の確認をしてもらうようにしつつ、アプリの全体像、API連携しているアプリの概要、お客さんの経理処理の流れやルール、お客さんが提供しているサービスの詳細や料金体系についての理解も進めていこうと思います。

f:id:haayaaa:20190628232919j:image

 

ssh-add

pcを再起動したらsequel proでssh接続が使えなくなってしまい困っておりました。

さらにターミナルでssh接続する際も毎回パスワード求められるようになってしまいました。。。

 

しかし、以下のコマンドを教えてもらい実行したところ、すぐ直ってくれました!!!

ssh-add

 

 

このコマンドを実行すると、ssh-agentという認証を仲介してくれるツールに秘密鍵を追加することができ、そうするとssh接続の際に毎回パスワード打たなくても良くなるようです。

sequel proも無事使えるようになりました!!

 

 

「sequel pro    接続できない 原因」とかで調べまくっても解決方法が見つからなかったのに感動しました!!!

 

問題の切り分けが出来る位の基礎知識をつけていきたいです。。。!

 

 

 

参考リンク

euske.github.io

railsコマンド使えるようにconfig.fishの設定を直した

fishシェルを入れ直してからずっとrailsコマンドが使えずにいたのですが(いちいちbashに戻っていた)、本日やっと直すことができました!!!

 

 

直した後のconfig.fishの内容が以下です!

 

/.config/fish/config.fish

gyazo.com

 

 

eval (rbenv init - | source) 

上記の部分を書き直しました!

 

 

この一行の意味がよくわからなかったため調べてみたところ以下の記事を発見しました。

ja.stackoverflow.com

zariganitosh.hatenablog.jp

 

 

rbenvを使い始める準備をしてくれているようです。
ターミナルでタブやウィンドウを開くごとに、最初に必ず実行する必要があるためシェルごとに必要だそうです。

理解しきれてはいませんが、とりあえずfishシェルでrailsコマンドが使えるようになってよかったです!!