1. h173.club
  2. 003: takapiの前職の話とエン..
2022-04-22 24:46

003: takapiの前職の話とエンジニアとしての行動量の計測

前半は@takapi86が前職で経験した形骸化した取り組みの紹介から、それを今どう活かしているかという話をしました。後半は、@kenchanが最近作ったツールを紹介して、GitHub APIやGitHub CLI extensionについて話しました。


00:02
ひとなみクラブは、EC事業部の2人の高橋が、社内の出来事や最近気になっている技術について話す、
GMOペパポの社内ポッドキャストです。
みなさんこんにちは、くんさんです。
こんにちは、たかぴぃです。
このポッドキャストも3回目なんですけども、
今日は最初にたかぴぃの方からお知らせがあるというのを聞いてるんですが、何ですか?
万全、万全じゃないですけど宣伝をしたいと思います。
先日こちらでもお知らせしたんですけども、ソフトウェアデザインの5月号で、
インシデント対応訓練の特集を書きました。
どういった内容かというと、カラーミで行った過去のインシデント対応を例にして、
どうやってシナリオを立てて訓練をしているかというのを書きました。
一応書いてある通りの手順をして計画を立てれば、
君もインシデントシナリオ訓練ができるみたいな感じの内容になっているので、
今後ペパポでもインシデント対応訓練を担当する人には特に読んでいただければと思っております。
すごいですね、読んだら訓練が設計できるってことですね。
訓練、設計できますし、背景とかもわかるし、
ペパポのセキュリティ体制がどうなっているかみたいなところもわかると思うので、
ぜひぜひ、特にない分の人に読んでいただけるとすごくいいんじゃないかなと思っているので。
めちゃくちゃいいですね。
そういうセキュリティ関係の話とかってなかなか外に出しづらい部分もあると思うんですけど、
それをあえて雑誌という形で外に出して、
中の人も読んで勉強になるっていうのはすごくいい取り組み着地できたなと思ったので、
ありがとうございます本当に。
私も一冊買って、まだちょっと通販なんで届いてないんですけど届いたら読もうと思います。
ありがとうございます。
じゃあ宣伝はそのぐらいにして、
今日のトピックなんですけど、
今日は一人ずつそれぞれ持ってきた話があるので、
それを順番に話していこうかなと思いますが、
じゃあ今日は最初はたかぴーからいきましょうか。
今日はですね、前職で面白話というか、
ちょっとプロジェクトを進めるにあたって変だよみたいなところがあって、
その教訓もあったので、ちょっとその話をしたいなと思います。
ちょっと前職の話パート1みたいな感じ、いろいろあるんですけど、
ちょっと今日はその話をしたいなと思います。
そうですね、パート1っておっしゃってる通り、
飲み会とか前はみんなでやれてた頃はよくね、たかぴーの前職の話がどんどん面白話が出てきて、
酒のつまみにちょうどよかったんですけど、
今日はじゃあパート1ってことでどんな話なんですか?
03:02
今日はですね、前職である一定以上の規模のプロジェクトを始める前に、
事業部長とそのプロジェクトリーダーで段取りを決めるワンオワンがあったんですけど、
それについてちょっと話したいなと思ってます。
具体的にどういったことをやってたかっていうと、
A3用紙ってあると思うんですけど、
担当するプロジェクトのスケジュールだったりとかですね、
目的だったりとか、課題となりそうなポイントを手書きでまとめて、
それを見ながら打ち合わせするみたいなちょっと変わったやり方をやってたんですね。
通称A3段取りっていう形になったんですけど、
トヨタかなんかのが実践してる試行述みたいな、
A3にまとめる試行述みたいなのをそれを手書きでやりましょうみたいなのがありまして、
なんか手書きでやるっていうのがポイントみたいで、
PCで書くと良いアイディアが埋まりにくいので、
鉛筆で自由に書かなきゃダメだみたいな。
なるほど。
手書き矯正みたいな感じだったんですけど。
それをもって事業部長に見せて、これでいいねとか、
もう少し練り直してこいとか言われる感じなんですね。
なるほど。
ちなみにたかぴーはそれはやってたんですか?
そうですね。プロジェクトを進められていて必須ではあるので、
必ずその承認が取れないとプロジェクトを進められないので、
必ずやってましたね。
なるほどなるほど。
それだけ聞くと良い話に聞こえるんですけど、
あったんですかそれは。
そうなんですよ。
実践し始めた頃はすごく良かったみたいで、
事前にプロジェクトの計画だったりすり合わせて良かったんですけど、
僕が段取りをやるようになって、
それが始まってから2,3年経ったぐらいなんですけど、
ある時、JIA図が汚いからやり直してこいみたいな社員が怒られて、
やり直し社員が続出し始めて、
それが会社で問題になり始めたっていうのがあって、
図や字が汚いのを事業部長に見せるわけにはいかないみたいな感じで、
事前にプロジェクトを監査する部署があるんですけど、
そのチェックも必要になったみたいな感じで、
すごく最初は気軽にやってたんですけど、
だんだん厳しくなっていって、
大変な取り組みになっていったっていうのがありましたね。
なるほど。
字が汚いとかっていうのは、
手書きだからしょうがない面もあるでしょうし、
そういうので軽くやるから、
時間をかけずにレビューができていいみたいなところも多分あったんでしょうけど。
06:00
そういう目的ではありましたね。
なるほど。
ちなみにそれはその後はどうなっていったんですか?
そうですね。
字以外にもプロジェクトの計画が良くなかったりすると、
やり直しみたいな感じになるんで、
3回4回A3に鉛筆で書き直すみたいなのがやり直しを食らうことが多いんで、
チャインも工夫し始めてですね、
最終的にどうなったかというと、
一度エクセルでその計画をPCで書いて、
それをプリンターで印刷して、
プリンターで印刷されたものをA3用紙で上から鉛筆でなぞるみたいな、
すごいドレスみたいなことに気づいて、
社員が気づき始めて、
ある社員がそれを実践したところ、
めちゃくちゃチェックも通るようになって、
ジムも褒められるようになったみたいな感じになって、
最終的にそれが流行りだして主流みたいな感じになったんですね。
すごいですね。
最初にチャレンジした人もなかなか頑張りましたけど。
そうですね。
なるほど。
そういう意味だと綺麗なら綺麗な方がいいっていうのはそうなんですけど、
一度エクセルで作ったならもうそれを出せばいいじゃんっていう。
そうなんですよね。
メールで送ればいいじゃんっていう。
なくなってしまいますがね。
そうですね。
それ本当に冗談みたいな話なんですけど、
もうその会社では監修化されて普通みたいな感じになってて。
でも今、ペパボンに来て振り返ると、
なんかちょっと面白かったなっていうお話でした。
なるほど。
それは本人、そこにしかいない人たちからしたら、
そういうもんだっていう風にもうなってしまったっていう。
そうなんですよ。
なるほど。
当たり前みたいな感じになっちゃってたんで。
なんかもう本当に手書きになんでしたんだっけっていうところですよね、最初。
そうですね。
ちょっと原点に立ち替えるとすごくツッコミどころがあって、
面白いなと思いましたね。
そういうチェックみたいなものが入ってくると、
だんだんそれをハックしようとする人が出てくるっていうのはよくある話ではありますよね。
そうですね。
一応ペパボンに来て教訓とじゃないですけど、
なんとなく習慣になってるものとか、
形外化してるものみたいなところがあると思うんですよね。
そういうものは結構本質みたいのを見直すと、
ちょっとおかしいんじゃないみたいなところとかあったりすると思うんですけど、
それが当たり前になってると気づかないみたいなところがあるんで、
そういったものは気づいたタイミングでも見直すのが良いのかなというふうには思っていて、
09:00
なるべくそういった行動をいくように取り組みたいなというものがありましたという教訓でした。
いいですね。
ペパボンの話だと、もうだいぶ前ですけど、
一度スーパーリセットとかいう取り組みがあったりして、
調整的にリセットするみたいなのをやってみても良い時期とかはあるんでしょうか、おそらく。
そうですね。定期的にやっぱり不要な会議だったりとか、
惰性でやってる会議みたいなのもあると思うんですけど、
なんでやってるんだっけみたいなのを見直すと、
意外といらなかったりとか、文章を書けばそれでいいじゃんみたいなとかあると思うんですよね。
いいですね。
この第1弾でこれなんで、ちょっと第2弾もさらに期待ですけど。
もっと楽しいのがいっぱい。楽しいって言っちゃってたんですけど。
ツッコミどころがあるものがいっぱいあるんで。
お楽しみにしてね。
ちゃんと教訓を得てそれを活かせるものが多いと思うので、
また次回、次回か分かんないですけど、シリーズをシリーズ化してやっていきましょう。
じゃあ最初はタカピの全職のお話ということで、
2つ目のトピックなんですけど、これはちょっと私が持ってきたやつで、
ツールの話ではあるんですけど、ツールとかその周辺の、
なんでそういうツールがあるんだっけとかっていう話をちょっとしたいなと思って、
1つ持ってきました。
何のツールの話かっていうと、
最近私が作ったGitHub CLIのエクステンションの話です。
GitHubのAPIを叩いて、その日のアクティビティやったことみたいなのをまとめて出力するみたいな、
スクリプトというかツールなんですけど、
これ、元々はフリックっていうペパボの中で使われてたツールがあって、
すごく昔にその日報の文化、今Notionで日報を書いてる人いると思うんですけど、
その社内のツールがあって、そこで日報を書いてたような時に、
エンジニアとかは毎日1日の終わりに、そのフリックっていうCLIツールで、
同じようにアクティビティを、今日何やったかなっていうのを出して、
それを日報の最後に貼るみたいなのの文化が多分あったと思うんですけど、
タカピいた頃もありましたよね、多分。
ありましたね、評価資料にそれを貼るみたいな、
出力された結果を貼るみたいなことをやってる人が結構多かったなという印象でしたね。
今だと、じゅんさんとかが作ってくれてる即席っていうツールがあって、
それで1ヶ月とか市販期とか1年とかで、
まるっとアクティビティを記録していくっていうのができるようになってるんですけど、
このフリックっていうツールだったり、自分が作ったのは、
昨日何やったかみたいなのをシュッと出すみたいなのに特化してるっていうのが、
12:04
違うところっていうほどではないですけど、目的としているようなところです。
前からアイデアとしては、もちろん古いツールなんであって、
自分がなんでこれ改めてGitHubのCLIのエクステンションで作ったかっていうと、
市販期報告会、この前の市販期報告会で新井さんが発表されてた、
ミンネの行動したもののリストをちゃんと全部カウントしてるっていう話が、
あれめちゃくちゃいいなと思って。
よかったですね。行動量を計測してるっていう。
そうそう。ECGオープンとかでもやろうって言って、
ダディが準備してくれてたりするみたいなんですけど、
量を見るみたいなのって大事だなと思ったのと、
それをちゃんと短いスパンで見直していく。
例えば今だと、私もそうなんですけど、
大体の人は1ヶ月でアクティビティを振り返って、
消化資料を書くとか追記するっていうことをやってたりするかなと思うんですけど、
1ヶ月のスパンって結構長いなと思うのと、
1ヶ月で見たときに今月多かった、少なかったみたいなのって、
正直あんまり見えてなかったなって思ったんですよね。
なるほど。
今月はいっぱいやったなとか、今月は少なかったなっていうのが、
月にならすと結構普通というか、あんまり大差ない感じになって、
まあやってんじゃんみたいになってたんですけど、
1日単位とかで見るともしかしたら、
全然パフォーマンス出てない日ってアクティビティも多分少ないから、
そういうところから改善できるポイントとかを探せないかなと思って、
短いサイクルで普段使うツールの上で振り返れるようなものを作りたかったっていうのが、
このフリックを復活させた背景の一つでした。
なるほど。
最近日本にフリックの結果を貼ったりしてるんですけど、
まあなんか自分はあんまり仕事できてないというか、
GitHubのアクティビティとして残せるものが少ないなっていうのはすごい実感していて、
頑張ろうっていう気分になってますね、この1週間くらい。
SEL業がとかって結構PRにできなかったりみたいなところがあると思うんですが、
その気持ちはすごくあるなと思いますね。
計測してそれを上げていくように取り組むみたいなところは、
確かにちょっと見習うというか、私もやらなければなと思いましたね。
そうなんですよ。
なのでそういうふうに自分の行動を変えるためにもやってみようかなというのがあって始めてるんですけど、
これの開発の話をついでにしとこうかなと思って、
15:01
GitHubのAPIとGitHub CLIのエクステンションの話をちょこっとだけしてみようかなと思うんですけど、
GitHubのAPIって使ったことあります?
私は何か作ったってわけじゃないですけど、何か叩いた記憶はありますね。
リストAPIですかね。
今リストAPIって言ってくれた通り、今GitHubのAPIって2種類提供されてて、
リストAPIとGraphQLのAPIっていうので、V3とV4なのかな確かっていう違いがあるんですよね。
これ実はV4がGraphQLだったと思うんですけど、
全部同じ機能があるわけではないっていうのが微妙なポイントで、
リストAPIでしか取れないデータとGraphQLでしか取れないデータっていうのがあるんですよね。
なるほど。
ここが難しいところで、もちろん前のツールのフリックっていうのはかなり昔のツールなので、
GraphQLのAPIなかった頃なんで、リストAPIをベースにされて作られてるんですね。
GraphQLあるからGraphQLの方が取れるだろうから、それでやろうと思ってずっと調べてたんですけど、
どうもイベントのAPI、今回イベントっていうAPIを使ってるんですけど、
これに相当するものはGraphQLにはないということが分かって、
なるほど。
イシューもちょっと上がってるんですよね。
イベントと同じもの取れないんだけど作れないの?みたいなのがディスカッションでされてたりはするんですけど、
なので実際今ないらしいんですね。
なるほど。
ただ一方でGraphQL側でしか取れないアクティビティみたいなのもあって、
それがいわゆるGitHubの草と呼ばれてるやつの養分になってるところ。
あれは実はGraphQLを使うとすごく簡単に取れるんですね。
なるほど。
例えばこの日に何アクティビティありましたみたいなのはGraphQLでシュパッと取れて、
草を再現するみたいなのはすごい簡単にできるんですよ。
この日は例えばアクティビティが10個あって、次の日は5個あるみたいなのがバーッと取れるんで、
それをいい感じにすると草ができるんですけど、
草の養分にならないイベントっていうのがどうやらあるらしいと。
なるほど。
そうなんですよ。
そうなんですね。
いろいろ調べた結果、わかったのは、
養分になるのはコミットとIssueとPullRequestのオープンとクローズだけっぽいんですね。
なるほど。
入らないものとしてはIssueのコメントだったりレビューコメントみたいなのが、
実は養分になってない説があるんですね。
なるほど。
なのでこれを取ろうと思うと、GraphQLではちょっと自分はなかなか取り方がわからなかったんで、
18:00
こうしたら取れるよって知ってたら教えてもらいたいんですけど、
ある期間におけるその人のIssueコメントだったりとかレビューコメントみたいなのはどうも取れなさそうっていうのが、
なんとなくわかった感じです。
レビューとかすごくやってる人は、そういうコメントもすごく活動というか、
バリューにはなってると思うので、確かにそういったところに含めたい気持ちはありますね。
ちょっと訂正かもしれないですけど、レビュー自体は養分にはなってるんだけど、
どのレビューをしたかみたいなのが自分は取れなさそうに見えたって感じですかね。
なるほど。
だからフリックみたいにこのPullRequestをこの日にレビューしましたみたいなのが、
どうも取れないんじゃないかなと自分は思ってるんですが、
今話してたら取れるのかもと思い始めてきたんでもう一回調べてみようかなと思いますけど、
ちょっとパッとは取れなかったって感じです。
そんな感じなんですけど、
コントリビューションにIssueコメントが入らないとか、
それはそれで考え方としてはアリだなと思って、
結局このプロダクトを進めるっていうのはコミットしたりとか、
PullRequestをマージしたりとか、
Issueをオープンしたりっていう活動だと思うので、
GitHubが何をアクティビティというか、
プロダクトを進めたことと見なしてるかみたいなのは、
まあまあなるほどなという気持ちにはなりました。
そんな感じで今回はREST APIの方を頑張ってパースして、
同じような出力を得るっていうことをちょっと頑張った感じです。
次がCLIのエクステンションの話なんですけど、
GitHubのCLIのエクステンションって、
実はGitHub CLIにボイラープレートを作るようなコマンドもあって、
GitHub Extension Createみたいにするとバッと何か出来上がったり、
それをインストールってやるとすぐにサブコマンドとして使えるようにするみたいな、
結構開発するのが簡単なツールが揃っているので、
その辺から始めるとすごい便利なんですけど、
自分が作りながら思ったのは、
GHAPIとかGHAPI GraphQLっていう形で、
APIを直接ただ叩くだけのCLIのコマンドがあるんですけど、
これのラッパーを書いていくっていうのが最初は簡単なんだなっていうのが分かって、
バッシュとか何らかのシェルスクリプトで、
GitHub APIフガフガで書いた値を何とかするみたいなのを、
シェルスクリプトにしちゃって、
それをエクステンションとして配布するみたいなのが結構最初は簡単だなという風に思います。
これはGitHubのCLI使って、
定型業務だったりとかがうまく組めるとすごくハマりそうだなって思ったので、
この辺からやってみるといいかもなって、
これからGitHub CLIのエクステンションを書いてみたいという方は、
その辺から進むのがおすすめかなと思いました。
21:01
CLI作る上で、さっきAPI叩いてどうにかしたらいいっていう話したんですけど、
これをうまくする上で、
JQってやつとうまく付き合っていかないといけないんですね。
JQコマンド。
JQ知ってますか?
JQはよく使ってますね。
JSONをクエリする言語というかツールなんですけど、
これをGitHubのCLIも内包していて、
APIのレスポンスって基本的にはJSONなんですけど、
これをJQを使って出力をカスタムするみたいなのが
CLIの機能として存在してるっていう感じです。
なるほど、組み込まれてる。
そうそう。
GitHub API--QueryとかJQとかっていうオプションで、
JQの文字列を渡すと、
APIのレスポンスをJQ食わしてから出力するみたいなことができるって感じです。
なるほど。
これがJQ得意ですか?
毎回ググりながらやってますね。
そうなんですよね。
本当に覚えられなくて、びっくりするぐらい自分も覚えられなくて、
毎回あれやるにはどういう風に書いたらいいんだろうってググってやってるんですけど、
毎回忘れるんで。
ただ今回フリックっぽい出力をするところって、
全部JQで頑張って書いてみたんですよ。
すごい。
見た目マークダウンに見えるんですけど、
マークダウンにするところまで全部JQでやっていて、
結構頑張ったので、
だいたい今のところ完全理解状態なんですよね、JQを。
すごい。
なんですが、これはたぶん1ヶ月も持たないと思うんで、
ちょっとどこかで今のこの完全理解状態を解説しておきたいなと思ったんで、
そのJQの部分だけ記事とかにしようかなと思っています。
なるほど、すごくそれはありがたいですね。
マップとかフィルターとかセレクトとか色々機能があるんですけど、
それを組み合わせて特定の条件のデータを出していって、
JSONうまく作るみたいなのをやったんですけど、
これが結構大変だったので、
どこかで書こうと思います。
そんな感じで結構苦労して作ったツールでもあるので、
もし今話したみたいに毎日アクティビティ確認したいなとかいう方がいたら、
よかったら使っていただけたらなと思います。
ちなみにこれはどこからダウンロード?
これはGitHubの私のパブリックなリポジトリにあるので、
後でリンクを貼っておこうと思いますが、
GitHubのエクステンションも直接GitHub上のリポジトリからインストールするっていう
サブコマンドが用意されているので、
それを使ったらピッと入るって感じです。
なるほど。
そういう意味だとGitHubに公開したんですけど、
24:00
自分のIDをハードコードしてて、
カスさんに直してもらうっていうのが最初のプルリクでいただいて、
カスさんありがとうございましたというところを、
この場を借りてお伝えしておきます。
今回私の方は行動量の話とそれをGitHubのCLIで、
いい感じに自分で振り返れるようにしたかったっていう話をしました。
じゃあ第3回のひとなみクラブはこの辺で終わろうかなと思います。
この番組へのご意見ご感想、話してほしいトピックなどありましたら、
スラックのh173ひとなみチャンネルまでお願いします。
それでは今回もありがとうございました。
ありがとうございました。
バイバイ。
24:46

Comments

Scroll