眠気の対処、切実な現場のお悩みに回答させていただきました📩
「この番組は、エンジニアの成長は楽しい学びからをモットーに、昨日より少し成長できる学びを届けるエンタメ系テックラジオです」
「さあ、昨日よりも成長していきましょうということで」
「いや、ほんとねー、それ大事だよなー。積み重ね」
「あのー、そ、積み重ねたらなんか結局、1年後成長してますからね、ほんとに」
「そう。イチローみたいなこと言いますか」
「積み重ねやっぱ。あ、そう。もうイチロー。我らが大先生イチロー」
「そうね。今時代は大谷、大谷になってるけど」
「はい」

「じゃあ今日はですね、お便りを読んでいこうと思います」
「おお、お便りも今積み上がってますから、だいぶ」
「そうですねー。え、お便り積み上がって」
「こっちは、こっちはちょっとね、崩していかないといけないんでね」
「確かに」
「はい」
「はい、じゃあまず最初のお便りです」
「はい」

「ラジオネーム、シャケ落ちさんから来ております」
「これはサバじゃないよってこと?」
「サバじゃないよってことだと思います」
「なるほど」
「サバ落ちってでもさ、だいぶ久しぶりに聞いたわ、今」
「そうっすね、なんか」
「うん」
「2000年過ぎぐらいの」

「にちゃん系の感じだよね」
「にちゃん系のね、はい」
「うん」
「はい」
「ま、サーバー落ちることは当時サバ落ちと呼んでたんですけど」
「うん」
「これはシャー系が落ちるやつですね」
「どういうことやねん」

「で、えー、ポッドキャストで話してほしいこと。在宅勤務なんですが、強烈な眠気が来ることがあります。おすすめの眠気覚ましはありますか」
「はい。眠くなることありますよね」
「いやー、あるねー。ま、これはシンプルなんでサクッといきましょうか」
「そんな自信ないっす」
「自信ないっす?」
「けど」
「うん」
「僕は眠くなったときは」

「うん」
「えー、5分から10分寝ます」
「おー、絶対逆立ち来ると思ったのに」
「いやー、逆立ちはねー」
「うん」
「違う、なんかもう強烈なやつはもうどうしようもないっすね」
「あ、マジで?」
「はい」

「5分から10分ね」
「はい」
「え、ちなみにさ、ま、僕もあの、結構やっぱ最近寝るのが1番いいなと思ってるんですけど」
「はい」
「一方で、僕結構起きれないんですよ」
「それやばいっすね」
「うん」
「やったことないな。でもなんかや、もしそれをやったらと思うと冷や汗が止まらなくなるな」

「あ、そう。あ、じゃあ、ま、それで言うとちょっと俺緊張感ないかもしれない」
「あ、なるほど」
「ある程度」
「はい、はい」
「でもなんか15分寝るのがいいって言うじゃん」
「まあ、そうっすね。なんか人に会う時間あるらしいっすね」
「あ、なんだっけ?」
「15分怖いんだよな」

「なんだっけな。なんかたい、ん?何分以上寝ると逆に疲れるみたいな、なんかすっきりしなくなるみたいなこと言うじゃないですか」
「ありますね、なんか15分か20分か」
「パワー、パワーナップ系のやつ」
「うん」
「で、あのー、ただ、僕ここむずいなと思ってるのは、入眠するまでの時間あるじゃないですか」
「あー、ありますね」
「だからなんか入眠した、したぞってなったら動くタイマーほしいんですけど。なんかその自分がどれくらいの速さで入眠するかが分かんないからさ、なんかとりあえず20分ぐらいに設定して」
「うん」

「で、寝れないままさ、20分経つこととかないっすか」
「いや、20分はないな。ま、5分とかだとありますけどね」
「あ、まあ、まあ」
「でも、ま、それはそれで目つぶって休んだからいいやって気持ちになりますね」
「あ、そういうことね」
「はい」
「あー、それは大人だね」
「大人です、だいぶ」

「大人だね。これ、まあ寝ようってなったから寝ないと気が済まないんですよね」
「なるほど」
「うん」
「それ子どもですね、だいぶ」
「子どもだよね。だってやっぱね、起きた瞬間に、うわ、しんどすぎるやってなって、やっぱそのまま1時間いっちゃうこととかあって」
「あー、しんどいっすね、それはね」
「うん」
「それでもだいぶ眠いときじゃないですか、じゃあ」

「まあそうかもしれない」
「うん」
「でもだいぶパワーの復活は感じるんで、やっぱね、在宅なら寝るのがいいと思いますね、僕も」
「うん。カフェイン突っ込んで寝るのが1番です」
「カフェイン突っ込むの?」
「はい。昼寝前にカフェイン突っ込むといいって言いません?」
「えー、そうなんだ」
「はい」

「それ何、目覚めやすくなるとかそういうこと?」
「そう」
「あー」
「聞くまで言うても、なんだっけ、30分なんか20分かかるんで」
「うん、うん、うん。でも俺断続的にコーヒー飲んでるから、なんかずっとカフェインで満たされてる気がすんねんな、体が」
「それはほんとに気をつけてください」
「ね。そこはちょっと気をつけます」
「いつか頭痛が見舞うよ、見舞われますよ、頭痛に」

「ね。怖い。あ、まあ、あれ抜いたときだけどね、来るの、カフェインを」
「だから、そう、抜けられなくなってますよ、だから。ひょっとしたら今、もう」
「ちょっとそこはほどほどに頑張ろうと思います」
「はい。のりさんは?」
「はい」
「寝るんですか」
「まあでも寝る、出ちゃったんで、僕はじゃあ、あの、倒立おすすめしておきますね」
「え、マジで眠いとき倒立して目覚めます?」

「がっつり覚める。なんかもう脳に血液って血管切れたんじゃないかぐらい、なんかふらつくときあるけど」
「それ大丈夫っすか、それ」
「うーん、大丈夫かどうかはね」
「いやー、すごいなー」
「大丈夫かどうかあとで分かるよ」
「ちょっと眠いときは別に倒立いけるんすけど」
「うん」
「本気で眠いときは倒立いけないんすよね。なんか体に悪い気がしちゃって」

「マジか。あー、絶対良くないと思うけどね」
「うーん」
「うん」
「どっちなんでしょうね」
「いや、良くないと思う」
「だからそういう理論でいったらスクワット10回とかでもいいかもしんないっすね、そういう理論でいくと」
「あー、確かに。え、あと散歩は散歩、普通に」
「いいけどなんか、えー、気持ち良くて眠くなりません、なんか」

「いや、ごめん、俺あんま歩きながら」
「程よい疲労感に襲われそうじゃないっすか」
「歩きながら眠くなったことあんまないかもな」
「あ、いや、帰ってきたあと」
「帰ってきたあと?」
「はい」
「うーん、まああるか。まだ眠いか」
「なんか、行って帰ってきて程よい疲労感に襲われて、ふーって落ち着いたら眠くなるじゃないっすか」

「あー、まあ確かに」
「はい。そこだけ気をつけていただければって感じですか」
「そうだね」
「うん。まあそんな感じ?」
「まあそんな感じっすね」
「はい」
「うん。寝てください」
「うん。寝すぎたら終わるんで、ほんとに。ちょっとだけね」

「はい。ということで、シャケ落ちさん、お便りありがとうございました」
「ありがとうございます」
「では、続いてのお便りでございます」
「はい」
「えー、ラジオネーム、雰囲気コーダーさんよりお便りが来ております」
「雰囲気?」
「雰囲気?」
「うーん、雰囲気コーダー」

「雰囲気だ」
「はい」
「雰囲気だ。えー、ちょっとね、長いんですけど、そのまま読みますね」
「どうして、そのまま読まないほうがいいんじゃないですか」
「そのまま読まないほうがいいかな。いや、でもね、むずいな。ちょっと待って、ちょっと読みながら分かりやすくなるのあったらちょっと改変してくんですけど」
「はい」
「えー、これはもうがっつりご相談のお便りが来ておりまして」
「はい」

「えー、QAフローとブランチ運用がボトルネックになっていて、え、現実的な改善案を探しています、と。結構切実なお悩みです」
「うん。コンサル案件ですね」
「ん?佐賀県?」
「コンサル案件ですね」
「あ、コンサル案件。うん、コンサル案件。ちょっとここでね、僕らがあの、スマートな解決方法をね、見出していこうぜっていう」
「うわー、震えるぜ」
「はい。で、ちょっとね、あの、複雑なんで皆さん、あの、こっからあの、頭をしっかりしゃっきり切り替えて聞いていってください」
「はい」

「えー、まずですね、現状、環境、ブランチはデベロップ、ステージング、プロダクション。で、デベロップは、えー、開発者レビューが通ればマージ可能で、えー、未、未完成のコードや別案件が混ざる運用ではなく、基本的に完成した変更が入ります」
「じゃあ、なんか実装タスクが終わったやつが入ってんですね、デベロップは」
「そうだね。で、エンジニア間でのもうなんか多分テストとかそういう動作確認とかをやってそう」
「うん」
「で、ステージング、QAが承認した変更だけを載せ、次回リリース候補として扱っています」
「えーっと、デブ、デベロップでQAがなんか確認して」
「はい」
「QAオッケーってなったらステージングに載せるんすね?」

「そうだね」
「はい」
「あの、門番、門番チェック通過後って感じっすね」
「うん」
「で、えー、プロダクション、2週間に1回ステージングをリリースします、と」
「あー、定期なんすね」
「うん、うん、うん。だからそのときにステージング乗ってたやつが、えー、まあそのスプリントのリリースになるっていう感じっすね」
「なるほど」

「はい。で、QAの運用。QAは、え、機能自体の確認と統合後の確認の2回が必要という前提です、と」
「ほう、どういうこっちゃ」
「だからデベロップにマージしたあとに、あー、待って、えー、そのあとにステップあるんでそっち行きますね。えー、でステップとしては、えー、プルリクをレビューしてデベロップにマージします。で、え、QA」
「あ、これは、で、開発者が実装したタスクをデベロップにマージします、と」
「はい」
「はい」
「で、QAにデベロップ環境で機能確認を依頼します、と」
「うん」

「だから、まあQAチームがいてそっちに依頼投げてるっぽいっすね」
「はい」
「で、えー、オッケーになった変更だけをステージングに反映」
「うん」
「で、現状はチェリーピックで選別してます、と。などで」
「あー、なるほど、なるほど。部分的にオッケーが出るとかっていうこともあるんですね」
「部分的にオッケー、うーん」
「そうしたら」

「ま、もしくはデベロップに入ってるやつ全部をステージングに上げるわけじゃないから」
「うん」
「チェリーピックで部分的にステージングに上げてる、と」
「なるほどね。まあQA通ったけど今回のリリース候補じゃないよっていうケースもあり、あり得るのかな」
「あー、そうかもしんないっすね」
「うん」
「はい」
「うん」

「で、えー、QAに、あ、でステージングに反映されたら、えーとQAにステージング環境で統合確認を依頼します、と」
「うん」
「で、オッケーだったら次回のプロダクションリリースに入れるっていうフローで」
「ちょっと見なきゃ。統合確認って」
「うん」
「これはリグレッションテストなんすかね、全体的な」
「リグレッションまでやってんのかな」
「どういうイメージなんすかね」

「なんとなく機能確認でやった内容をもっかい統合でもやって、えーとほかの変更と一緒になっても大丈夫だねっていうのを確認してそうな気分、なんか気はするんだけど」
「うん、なるほど」
「うん。リグレッションまでやってたら結構えらいっすね」
「うん」
「ま、フローはこんな感じで。えー、で困ってること。QA作業自体は短時間でも着手までに1日以上空くことが多く、2回依頼することで待ち時間が積み重なってリードタイムが長くなりがちです。スプリント終盤に回す、間に合わせるには数日前までに依頼完了が実質必須となり、持ち越しが発生しやすくなっています」
「うん」
「で、えー、あともう1個が、チェリーピックによる選別が発生するため、どれがステージングに入っていてどれが入っていないかが追いにくい。さらに依存関係の取りこぼしや抜け漏れ確認の手間が発生しやすいし、えー、まあそういうのが重なってユーザー価値に直結しない作業、まあ選別とかその追跡とか漏れ確認みたいなところが増えてってます、と」
「うん」

「そこで相談したいこと。えー、この前提の中で現実的に取りうる改善策をもしご存知でしたら教えていただきたいです。特に、QA2回を維持しつつ待ち時間を減らす方法。えー、ステージングへ承認済みだけを載せる要件を維持しつつ、チェリーピックの負担、追跡の難しさを減らす方法。似た構成でうまく回ってるチームのやり方や工夫。もし参考になりそうな運用例や、試して効果があったルール、自動化などがあれば差し支えない範囲で教えていただけるとありがたいです、ということで。えー、ちなみに似たような環境で開発したことありますか」
「いいえ。QAチームと一緒に仕事をしたことがないです、僕は」
「あー、なるほどね」
「はい。QAチーム、そうっすね。QAチームがいる会社、あ、まあ会社単位ではいたのかもしんないけど、そうっすね。プロジェクトとしては関わったことがないんで、正直QAチームが何をやってるのかもちょっとピンときてないです」
「なるほどね」
「はい」
「僕はあのSESになって1番最初の現場」
「はい」

「はQAチームがいたんですよ」
「うん、うん」
「で、プロジェクトいくつかあって、え、それらを横断してなんかこうシステムテストをずっとやってるみたいなイメージでしたね」
「それはなんか」
「うん」
「シナリオみたいな、なんかExcel表のこの画面でこういうことができることみたいなのがあって、それをなんかひたすらチェックしていく作業をしてくみたいな感じですか」
「そこはね、ブラックボックスですね」
「ブラックボックスなんすか」

「そこはね、ブラックボックスでしたね」
「QA、あ、なんだっけ。QAって、Aってなんだっけ。えー、アセスメントか」
「クオリティ、あ、え、アシュアランスじゃないか」
「アシュアランスか。アシュアランスだけどブラックボックスなんすね」
「そこはね、ブラックボックスでしたね。ブラックボックステストでした。いや、てかまあちょっと知ろうとしたら知れたのかもしんないんだけど。めちゃめちゃあの予想なんですけど」
「はい」
「モンキーテスト的なことをやってたんじゃないかなっていう気はしている」
「なるほど。あ、ちなみにモンキーテストとは」

「モンキーテストとは、えー、まあ簡単に言うと適当にアプリを触ってバグを見つけるという経験と勘に頼った伝説のデバッグ方法っすね。テスト方法か」
「まああとはなんか想定外のね、えーとバグとか出すのにはいいって言いますよね」
「そうだね。テストケースで沿ってやっちゃうとね、やっぱどうしても実装した機能に沿ったものになっちゃうんで」
「はい。連打するとバグるよみたいなのはモンキーテストじゃないと分かんないっすからね」
「あー、確かに、確かに」
「はい」
「まあだからそういうのを、まあだから多分そのQAチームの動き的にはそっちのほうがモンキーテストのほうが合ってるんじゃないかなって今考えてもそんな気がするな、なんか」
「うん、うん、なるほど」

「多分何の機能実装されたかとかあんま知らないんじゃないかなっていう」
「うん、うん、うん」
「うーん。で、その中で、えーと、ほんとにユーザーが使うかのようにアプリケーション使ってみて、出てきたバグがあったらそれが起票されてっていうようなことをしてましたね」
「うん」
「ただ、えーとこのお便りにあったような感じで、そのQAを通らないとリリースできないみたいなフローではなかった」
「うん」
「そのときのチームは」
「うーん」

「うん、っていうところでなら働いたことあります」
「あ、ありがとうございます」
「うん」
「で、まあ今回の話ちょっと戻ると」
「うん」
「まあ3つ」
「うん」
「3つ相談があって、悩みか。1つ目がだからQA2回」

「うん」
「昨日、昨日の試験と統合の試験。試験って言い方してたっけ」
「確認」
「確認」
「うん」
「を維持しつつ待ち時間、リードタイムを減らす方法」
「うん」
「と、えーとチェリーピックの負担、追跡の難しさを減らすのと」

「うん」
「まあそんな感じか。で、あとはまあ似た構成でうまく回ってるってところってどんなやり方してるんでしょうね、楽しくは」
「そうだね」
「じゃ、1個目からいきましょうか」
「はい」
「えーとQA2回、その機能と統合の確認の依頼とかを」
「うん」
「するっていうフローを維持しつつリードタイムを減らす方法はなんでしょうねっていう」

「うーん」
「ところですか」
「これ、なんで待たされるんだろうね」
「まああの、なんか作業計画を立てるんじゃないですか、その。今日はこれって決まってるから」
「うん」
「今依頼受けても明日にしか作業入れられないみたいな」
「なるほどね」
「はい。そういう作業フローになってんじゃないですか」

「だからこれ、これの待ち時間減らすってさ、こ、この仕組みを維持したままだとさ、多分QAチームに死ぬほど残業させるしかないんじゃないかなっていう気がしてるんですけど」
「うーん、まあそうですね。死ぬほど残業させるか」
「うん」
「ま、もしくはなんか、その作業計画立てる」
「うん、うん、うん」
「えー、サイクルを半日にしてもらうと、なんか実は1日が半日になったりするかもしんないですね。オーバーヘッドありそうだけどな」
「うーん、そうだね」
「はい。あとは依頼回数減らすつつとかですよね」

「あー、なるほどね」
「うん」
「確かに」
「今は機能をデベロップで確認して、で、統合をステージングで確認してると」
「うん、うん、うん」
「じゃあこれをなんか何かの環境で一気にできたりしないんすかねっていう」
「確かに。ま、ステージングに入った段階で機能と統合両方チェックとかね」
「そうっすね。ただなんかステージングにあるのって勝手に上がっ、プロダクションに上がっちゃうのかもしんないんで」

「あー」
「なんか間にQAブランチみたいなの作っといて」
「うん、うん、うん」
「あー、でもな、統合確認はでもステージングじゃないとできないんだろうな、きっと。ちょっと分かんないですけど。ステージング環境というものがあるんだとしたら、てかまああるんだと思うんすけど」
「うん」
「ステージング環境で動かしたいんすよね、きっとね。統合確認は」
「じゃない?多分インフラとかもそれ相当なやつになってんじゃん、本番相当というか」
「そうですよね」

「うん」
「だから統合確認は絶対にステージングにやんなきゃいけないんだ」
「うん」
「で、そこに機能確認してないものをステージングに入れるわけにはいかないからこうなっていると」
「うん」
「じゃあなんか機能確認から統合確認を1つの流れにしてしまうとかですか。あとはやれるな」
「あー、なるほどね」
「QAチームからデブのチェックオッケーです、機能確認オッケーですっていうメッセージを受け取ったらもう何かしらのワークフローが動いて、ステージングへのプルリクが出て、でそれで速攻ステージングに上げて」

「うん」
「そのままQAチームにやってもらうみたいな運用にするとか」
「うーん、確かに。これステージングへの反映はこれエンジニアがやってんのかな」
「そうなんじゃないすかね」
「てかこれそもそも統合確認ってさ、えー例えばじゃあデベロップで作業、あーと機能確認するじゃないすか」
「はい」
「でステージングにオッケーだねってなったら反映するじゃないすか」
「はい」

「そのあとすぐやってんのかな」
「やってないんじゃないすか、今は。あ、えーと、あー順番的に?」
「うん。いや例えばさ、2週間に1回リリースするじゃないすか」
「はい」
「で機能5個リリースするとするじゃないすか」
「うん」
「で、えーとデブでまず機能をチェックして、え、オッケーだねってステージングに反映しましたと」
「うん」

「ってなった段階で、まだ機能は1個しかステージングに入ってないよっていう段階で統合確認するのかなっていう」
「あー、しないんじゃないすか」
「ってことは、統合確認依頼って個別でやるわけじゃなくて、開発者チームでなんか合意取って1発ぶん投げるみたいな感じになるのかな」
「あー、そうなんじゃないすかね」
「おー」
「でもなんかそうなったら思うのは、統合確認の依頼投げないでもうなんかスケジュールで今の状況のやつやってって」
「うん、うん、うん」
「言えないんすかね」

「あー、もうこの日にチェック始めるからっつって」
「そう、そう、そう。プロダクションのリリースがもう2週間に1回って決まってるなら」
「うん、うん、うん」
「ステージングの統合確認も2週間に1回決めちゃえば」
「うん、うん、うん」
「でもそれに乗んなかったらもう次のリリースに乗んないからもうしゃあなしっていう」
「うーん。そうなるとテストこれできなかったわってときに戻さなきゃいけないやつが出てくんのか」
「出んのかな」

「あとステージングでバグったときに?」
「ステージングでバグったらまあ戻しますね」
「戻すよね、うん」
「はい。で、今回のリリースには乗りませんっていうので次回に回されますね」
「うん、うん、うん」
「まあでもそれは今も一緒ですもんね、多分ね」
「うん、うん、うん」
「か」

「はい」
「めっちゃ破壊的ですけど」
「うん」
「機能の確認こっち側で持てないんですかね」
「うーん」
「こっち側っていうか開発側」
「うん、うん、うん、うん」
「これはすいません、ちょっと現実的じゃないかもしんないですけど」

「うん」
「そのチームのあり方として、いやーでも会社の仕組み的に無理なの可能性あるよなー。うん、会社の仕組みとしてリリースする前にQAチームでの機能確認が必要だとかだったらまあ無理なんですけど」
「うん、うん、うん。でもこの、まず、まず待ち時間減らすってさ、どう上がいても向こうの負担減らす以外無理じゃない?」
「向こうの負担減らすか、まああとはあの、まずなんで1日リードタイムかかるんだろうっていうところを解き明かしてその原因を潰すですね」
「うん」
「で、いや、やる気出せばいけるんですって話かもしんないですしね」
「あー、ちょっとこの状況だと見えない情報が多すぎるかもな」
「そうですね」

「うん」
「まあそのぐらいにしていきますか」
「そうだね」
「はい。で、あとはチェリーピックの話ですね」
「はい」
「えっと今はデベロップで機能確認を実施して、でQAがオッケーって出した機能だけをステージングにチェリーピックで必要なコミットだけステージングにマージしてると」
「ぽいっすね」
「でこのチェリーピックが大変ですと」

「うん」
「これはどうしたらいいんでしょうね」
「うーん、まあでもチェリーピック、な、なんでチェリーピックなんだろうな、これ」
「QAが検証し終わる機能の、なんでしょうね」
「うん、うん」
「機能が、まあ全部一気にやるわけじゃなくて、順番にやったり、あとはなんか前後したりするんじゃないすか。で不合格とか食らうと、最新のコミットに関してはステージングに上げていいけど」
「うん、うん」
「古いやつはだめみたいな、なんかそんなん発生するんでしょうね」

「うーん。チェリーピックの負担の減らし方かー」
「これあれじゃだめなんすかね」
「え?」
「フィーチャーブランチが、で、フィーチャーブランチでQAチームに検証してもらうとか、機能」
「おー、なるほどね」
「はい」
「え、そのじゃあフィーチャーブランチをデベロップにデプロイし直すってこと?」
「そう」

「うん、うん、うん」
「競合しちゃうよなー、競合しちゃうよなー。なんか人多かったら競合しちゃうよなー」
「あー。ちなみに僕の前職」
「はい」
「はJenkinsかなんかで、えーとフィーチャーブランチごとに環境立ててましたね」
「あー、なるほど。まあでもそれもやっていいっすよね」
「うん」
「僕もあの、うん、僕もデベロップブランチで1回、あ、違うわ、デベロップ環境、デブ環境に1回デプロイしてから」

「うん」
「そのデベロップブランチへのプルリクでちゃんとデブ環境で動作確認したからねっていう証跡を付けて」
「うん、うん、うん」
「プルリクするルールだったりしてたんで。環境、そう、フィーチャーブランチごとに絶対環境あったほうがいいんだよな」
「うん、うん、うん、うん」
「でそれでデブ環境でQAチームがその機能の検証してオッケーNG出してくれればデベロップブランチはそのまんまステージングに上げれますよね」
「デベロップ、あー、えっと、ん、うん、ちょっとイメージ付いてないな、デベロップいるのかってなっちゃったけど」
「でそこですよね、デベロップがいるのか」

「うん」
「ま、ブランチとしては、でもそうか、QAがオッケー出さないと、なんかその機能に追加しするき、機能っていうんだっけ、その機能がないと動かない機能の実装が進められなくなるのか」
「うん」
「それはややこしいですね」
「いやでもフィーチャーで機能確認できるならもうデベロップすっ飛ばしていきなりステージングで運用的に変わんないよね、多分。要はデベロップ環境が複数あるみたいなもんでしょ」
「じゃあ例えばですよ」
「うん」
「ま、ユーザー作成が、作成機能を実装したとしますと」

「うん」
「で、フィーチャーブランチ、えーっとクリエイトユーザーブランチを作って」
「うん」
「開発をして、でQAに機能確認依頼を投げましたと」
「うん、うん」
「で、それでQAが機能確認中のときにBさんがユーザー登録、違うわ、ユーザー更新機能」
「うん、うん」
「とかユーザー表示機能の実装しようとしたときに、そのステージングブランチからブランチ早すんじゃなくて、フィーチャーブランチからブランチ早さないといけなくなるっすか」

「そうだね」
「はい。ま、ただそういう開発の仕方をするなよっていう運用にすれば問題ないのか。フィーチャーからフィーチャー早すとなんかややこしくなりそうじゃないすか、なんか」
「うん、うん、うん」
「ブランチの管理とかも。でもそうあるべきじゃないけど。デベロップがないと困んないんですかね、やっぱそういう意味だと。開発の順番さえコントロールしてれば」
「うん」
「でブランチはステージングから早してやってくださいと」
「うん、うん、うん」
「うん、まあ一応なんか開発の軸となるデベロップブランチなくてもいいのかな。でもそいつがあるとややこしくなるもんな」

「うん」
「まあっていうので、なんかフィーチャーで分けて、フィーチャーでQAチームにやってもらって、でステージングに機能オッケーだったら」
「うん」
「ステージングに入れてもらって。テールとチェリーピックしなくて」
「うん。マージだけで済むと」
「済むんじゃねっていう」
「うん」
「話をしてみましたって感じですね」

「なるほどね。まあでもフィーチャーごとの環境結構恐ろしいスペックのインスタンス必要になるよね」
「ああ、そうなんすか。まあでもそうだよなあ」
「あ、前はそうでしたね。なんかDockerで、Dockerで確かなんかブランチごとのコンテナ立ててたんすけど」
「うん」
「見たことないスペックのインスタンス使ってましたね」
「へー。まあアプリにも寄りそうですよね。なんか」
「うん、うん」
「EC2でやんのかFargateでやんのか、まあAWSだったら」

「うん、うん」
「まあちょっとEC2だと低額かかっちゃうんで、なんか使った分なECSとかのほうが取り回しやすそうな気もしないでもないですが」
「うーん、確かに」
「はい。まあちょっとそこは工夫があるかもしんないですね」
「あとこれ普通にさ、リベースとかはしてんのかな」
「どういうことっすか」
「え、あのー、例えば機能開発するときにさ、レビューするときはコミット分かれてたほうがやりやすいじゃないすか」
「はい」

「一方チェリーピックするってなったらさ、コミット複数あったら大変じゃねえと思って」
「うん」
「だからレビュー通ったらリベースしちゃって、コミット1個にまとめて、俗に言うスカッシュマージ戦略みたいな」
「あー、なるほど」
「取って、えーと、まあそのブランチに、そのブランチで使う新しいコミットは、えー、1個しかありませんよみたいな状態にしちゃうとか」
「うん、うん、うん、うん」
「であれば、まあチェリーピックとマージの差がそんななくなるかもって思ったけど」
「確かに」

「うん」
「それも、まあ軽減はできますね」
「うん」
「確かに。そんな感じですかね」
「そうね。もしやってなかったら、まあリベースはありかもって思いました」
「うん、うん。はい。で、似た構成でうまく回ってるチームのやり方や工夫っていうので」
「うん」
「なんかありますか」

「うまく回ってたかなあ」
「なんかQAチームとかがないとかであれば」
「うん」
「うーんと、多分ステージングまでは自動テストでオッケーにして」
「うん」
「でステージングは、なんでしょうね、なんかリリース前の確認をしてやるみたいな。なんか、まあ極力人手を介さないでやる、やらないと多分アジャイル開発的なリリースサイクルって回らないと思うので」
「うん」
「とにかくやることを減らしてくっていうのが多分1つのうまくやる方法だと思うんですけど」

「うん、うん」
「まあ一方で多分こんな感じでQAが2個挟まってやってくっていうのでうまく回るのはどうやるんだろうなっていうのがあんまり、まあQAチームと働いたことがなさすぎて」
「うん」
「よく分からんっす。でもまあ時間かかっちゃうのはしょうがないっすよね」
「いやー、まあそうだね、結局」
「単純にステップが多いからね」
「僕多分前職似たような感じだったんすけど」
「はい」

「似たような感じというか、まあQAはいなかったけど、エンジニア以外の人がテストするみたいなのはこう絶対チェックとして必要みたいな運用だったんすよ」
「うん、うん」
「で、このスプリント終盤に、終盤になってこう間に合わせるにはこう何日前までに依頼完了が必須になって持ち越しが発生しやすくなってるってのは起きてましたね」
「起きますよね、あれば」
「これはもうね、期限切れた、期限決めたら起きるものだと思う」
「うん」
「うん」
「そりゃそう。まあなんで」

「うん」
「それを、まあどう捉えるかというか、それでまあいいやなのか」
「うん、うん、うん」
「多少ずらせるような運用にするのか」
「うん」
「って感じですか」
「そうですね。うーん、やっぱこうずらせない条件が結構決まってるから、その中でやるってなるとね、やれることは減りますよね」
「うん、うん」

「そもそもこれうまく回るってどういうことなんだろうね。持ち越しが発生しなくなるってことなのかな」
「えっと、違うかもしんないんですけど」
「うん」
「滞留しないことだのかなって思ってます。多分アジャイル開発の文脈でなんかの研修受けたときに」
「うん」
「えっと、チームのアウトプットが最大化する」
「うん、うん」
「状態って、フローが大きいとき、えー、だから流れが止めどなく」

「うん」
「流れ続けてるとき」
「うん、うん、うん」
「作業フローが」
「なるほどね。日本のリレーみたいなこと?」
「ああ、そうそうそうそうそうそうそう。そう。日本のリレー、陸上のね」
「日本のリレーってあれだよね。足速いわけじゃないけどバトンパスがスムーズだから強いみたいな」
「あ、そうそうそうそう。そういうこと」

「はいはいはい」
「で、今あの、バトン渡したあとにどっかで立ち止まっちゃってるんで」
「なるほどね」
「あ、バトンだっつって」
「まあでも明日やるかっつって」
「いや、あー、まあそういうスパンになるか」
「はい」
「そうだな、確かに」

「その」
「うん」
「フローが止まらないような」
「うん、うん」
「体制とか仕組みを構築できると」
「うん」
「うまく回ってるっていうんじゃないって思います」
「なるほどね」

「はい。ま、1つの」
「うん、うん」
「ま、僕なりの考え方です」
「なるほどね」
「ま、なんか期限切ったらのりさんが言うとおり、あの、こぼれるのはね、多分どうやってもそうなるっすよね」
「まあ人間の法則であるよね、なんかそういうの。なんだっけ?パーキンソンの法則みたいな」
「分かりますよ。まああの、夏休みの宿題は」
「うん」

「どんな量でも結局最終日忙しくなるみたいな話ですよね」
「あ、そうそうそうそうそう。与えられた分だけ使っちゃうみたいな」
「うん」
「いや、なんかこれ多分うまく回ってないって感じるのは持ち越しが発生してるからなんじゃないかなっていう気がするんだよな」
「あー、なるほどね」
「スプリント内にやろうとしてたことが」
「はい」
「一概にはなんか、ま、もちろんこのフル、あー、リードタイム重なってしまうってのもあるけど」

「うん」
「見積もりやりすぎてるみたいなのもなんかあるかもしんないし」
「うん」
「見積もりやりすぎてるってのはあの、積みすぎてるというか」
「うん、うん」
「楽観的に積んでるというか」
「うん、うん」
「ただ一方で、ま、期限フルで使っちゃうのが人間なんでっていうところもあるからね」

「うん」
「うーん」
「ま、スクラム的にはじゃあスプリント短くしてみましょうかっていう解決策もあるかもしんないですね」
「おー。え、こういうパターンでもそれって効くのかな?」
「効くんじゃないっすか」
「でもさ、期間短くしたらさ、このリードタイムが余計クリティカルになんない?」
「やること半分にするんすよ、その分」
「でも1日以上空くっていう状況が半分になると変わんなくない、これ?」

「じゃあ、ほんとに、じゃあ真面目に考えなきゃいけないねってなるんすよ、だから」
「あー」
「まあちょっと解決できん、できないことだったら、まあもうどうしようもないっすけどね」
「うーん」
「だ、それゆえ2週間になってるのかもしんないですしね」
「なるほどね。1週間だと、もうこのリードタイムが、まあ例えば1個のタスクで2回依頼するってことは、2日空いたらもうそれだけでもうあと3日しかないじゃんってなっちゃうと」
「なんならスプリントなんてね」
「うん」

「あの、スクラムイベント考えたらもう4.5ですからね。4.5か、うん」
「うん、そうね」
「スプリント」
「うん、うん、うん」
「半分ぐらいなくなってるわけですから」
「うん」
「このぐらいしか話せません、僕は」
「そうですね」

「はい。なんか具体的な話聞いてディスカッションしながらちょっと」
「うん」
「お話ししたいテーマではありますね」
「確かにね」
「うん。なんかどういう状況かは気になりますね」
「確かに。この文章以上になんか積み重なってる何かがありそうな気配がするんで」
「まあそうですね」
「うん」

「悩み、悩みはすごい伝わるんで」
「うん、うん、うん」
「悩ましいですね」
「一旦僕から言えるのは、あの、リベースでコミットを1つにまとめたらどうですかってことぐらいっすね」
「うん。いいと思います」
「はい」
「はい。というわけでおしまいですか」
「アフタートーク」

「あ、どうぞ」
「ありますか」
「ないです。時間もまあまあいってるからいいかなと思って」
「なんか出そうかな、じゃあ」
「あ、なるほど」
「アフタートークなんですけど」
「はい」
「最近ですね、あの、集中力やっぱつけたいなと思って」

「あー、まあ、分かる」
「で、あらゆることをやってるんですよ」
「集中してないっすね、そこは」
「そこ分散してるんですけど」
「分散してないですね」
「はい」
「でも、あの、集中力を上げるってことに集中してるっていう点では集中してると思う」
「分かりました。はい」

「で、いろんなことを試したんですけど」
「はいはい」
「効果あったものとなかったもの」
「うん」
「ちょっと発表していいっすか」
「お。エピソードになりそうな、おもしろそうな話題。はい」
「いや、まあちょいネタよ、これ」
「ちょいネタ?」

「うん。まずその1、あの、睡眠の質改善」
「はい」
「で、これサプリをいろいろ試したんすよ」
「おー、なるほど」
「GABAと」
「うん」
「L-テアニンと」
「うん。まだギリ、聞いたことある」

「快眠優グレナ」
「なにそれ。そんなのあるんすね、なんかそんな。寝かせるためだけの名前あるんすね」
「あるんですよ」
「うん」
「で、全部試したんですけど、サプリはあんまり効きませんでした」
「うん」
「ただ、あの、酢」
「うん」

「飲む酢。飲まない酢はないか」
「うん」
「うん」
「えーと」
「穀物酢じゃないってこと?」
「あ、穀物酢じゃない。えー、なんかピルクルみたいな酢があるんですよ」
「へー」
「腸内かい、環境改善酢みたいな」

「はい」
「そいつはね、最初の1回だけ聞いたね。たまたまかもしんないけど」
「あー、そうなんだ」
「うん」
「慣れちゃったんすね。まあでもすごい」
「慣れた」
「うん」
「で、その2、リカバリーウェア。買っちゃいました」

「お、何買いました?」
「ワークマンで安いやつ買ったんですけど」
「はいはいはい」
「これもね、効きませんでした」
「はいはいはい」
「あのー、すげー寝汗かくようになっただけ」
「暑いんじゃないっすか、部屋」
「暑いから?あ、そういうこと?」

「うん」
「いや、なんか鉱石のパワーで血液巡ってすげー汗出たんかなと思ってたけど」
「そんなサウナみたいな」
「うん」
「岩盤浴みたいな」
「でもね、あれ別に脳は来ないな。脳の回復できないな、あれ」
「うん。まあフィジカルですよね、多分」
「うん。で、俺別に体動かしてないわけじゃないからさ。あんまり効かなかったなって感じする」

「うん、うん」
「その3、ビルパワーの活用」
「えーと、詳しく」
「これは、僕あのよく病院行くんですけど」
「はい」
「病院の時間午前中が多いんですよ」
「はいはい」
「で、午前中って仕事しないで午後から仕事するとめちゃめちゃ集中力落ちるんすよ」

「へー」
「なんかめちゃくちゃなんか集中できない、午後からやろうとしても」
「なんででしょうね」
「不思議です」
「不思議ね、はい」
「なんで?」
「人体の不思議」
「人体の不思議、これは」

「はい」
「朝6時に起きて、そっから作業するってのを決めたんすよ」
「はいはいはいはい」
「午前中予定ある日は」
「はい」
「これはね、めちゃくちゃ効きました」
「へー、そうなんだ」
「すごい。かなりビルパワー」

「なんか、えーとすいません、ビルパワーってなんでしたっけ?」
「はい。石の力です」
「石の力?」
「はい」
「じゃあまあ、やるぞーって言ってやるの、やることによってその1日のやる気というか集中力というか」
「うん」
「エンジンがかかるってやつなんですね、いわゆる」
「そう。で、夕方くそ眠いからね、寝た」

「へー、その」
「じゃあまたビルパワーが戻ってきて」
「へー、なるほど」
「うん。ていうので、作業時間取れない日は朝やるのがいいっすね」
「あののりさんがその結論に至るとは」
「うん。ついに至ってしまった」
「夜型人間なのに」
「そうなんですよ」

「はい」
「やっぱ夜も集中できるけどね」
「いやそれはすごいっすね。眠くてたまんないんで夜」
「マジか」
「はい。まあでもそうなんだな。まあエンジン、なんかちょっと分かるかもな。なんかやる、やらなきゃいけないことがある日のほうが集中力あるんだよな、やっぱり」
「ああそれはそう」
「うん」
「え、それなんか、なんかの論文で読んだよ。論文では読んでないけど、論文を読んだ人が読んだよ」

「なんか分かんないけど。なんか分かんないけど、すごそうな人がすごいって言ってるみたいなこと聞いたな、今」
「そう。うん。なんだっけな。結局人間の効率が1番上がるのって期限ギリギリのときなんだって」
「そうですよね」
「常に」
「めっちゃ分かるわ」
「常にギリギリで行動すると1番最高能率を達成できる」
「うん」
「ただし、失敗するケースがあるから良くはない」

「うん。クオリティーは高いか微妙だからな、なんかもう」
「うん」
「ギリギリだから」
「まあそうだね」
「分かる」
「うん。まあていうので、まあ集中力改善するなら朝やるっていう、めっちゃ当たり前の結論にたどり着きました」
「いやー朝やったほうがいいっすね」
「朝やったほうがいいっす」

「絶対朝やったほうがいい。朝なー。最近やれないんだよなー」
「マジか」
「はい。ちょっと子供が」
「あーまあそうね」
「なんか泣いちゃって」
「はいはい」
「朝まで添い寝してるから、子供と一緒の時間に起きることになってしまって、もう生活リズムがぶっ壊れてんだよね、今」
「え、それって何時に起きんの、それ?」

「6時半です」
「あーそういうこと?」
「はい」
「え、でもなんか帰って早起きのイメージあるけどね」
「いや元々5時半とかに起きたんすけど」
「うん」
「あーで子供が何時に起きるかですか?」
「うん」

「あー3時とか」
「あそういうこと?」
「そうっす、3時とか2時とか」
「それうちも今そうだわ」
「そう。ちょっとね」
「うん」
「どうしてやろうかなって思ってます」
「拮抗縛りで口にガムテープ貼って吊るしてやろうかなとかそういうこと?」

「いやいやいやいやいや、まさかそんなことはしないですけどね」
「そんなことはしないよね」
「そんなことはしないですけどね」
「うん」
「ただちょっと何かする必要があるなと思ってますね」
「なるほどね」
「はい」
「綿飴で包んで火あぶりにしてやろうかなみたいなそういうこと?」

「なんでだよ。なんでだよ。よく燃えそうですね」
「よく燃えそうだな」
「すごい急激に酸素と反応しそうですね、綿飴」
「確かに。粉塵爆発に近いことが起きるかも」
「はい。まあちょっと」
「はい」
「子供が1晩寝る方法あったらちょっとぜひお便りを教えてください」
「それは僕も教えてほしいっす」

「はい」
「はい。じゃあ締めていきますか」
「はい」
「はい。えーこの番組では皆様からの感想を募集しております。えーSNS、Xではハッシュタグ「ひまじんプログラマー」で、えーっと投稿していただけると、えー僕があのーエゴサホしていいね押しに行くんで覚悟して待っていてください」
「覚悟しとけよ」
「覚悟しとけよ。俺しかやってないか、でもこの活動」
「すいません、僕ちょ、僕今やってないっすね」
「僕はね積極的にいいね押しに行くんで、ぜひとも皆さんよろしくお願いします」

「お願いします」
「はい。で、えーもし、えー今回のように何か我々に聞きたいこととか相談したいことがあった方は、えー番組のエピソードの説明欄のところにですね、えーお便り用のフォームが付いておりますので、そこからバシバシ、どしどし、感想だったり質問だったり相談だったり何かしらハッピーな報告だったりを送っていただけると」
「うん」
「えー僕らもやる気につながって、えーネタにもつながるので、ぜひともご協力よろしくお願いします」
「ぜひぜひお願いします」
「また、えーSlack、あーオンラインSlackコミュニティ、ひまプロ談話室では、えーエンジニア友達を集めたい人が集まってエンジニア友達を集めるという活動をしております」
「友達集めてるだけじゃないっすけどね」
「はい。まあいろんな活動してますよね。えーで特にね、なんか最近僕はあの黙々っていう、ソーシャル黙々っていうチャンネルがあるんですけど」

「うん」
「ここでみんななんかすげーめっちゃいっぱいやってる、すげーなって思いながら、こうスマホいじってしまってる自分をあの恥じています」
「めっちゃ分かる」
「はい」
「すごいっすよね。なんか朝5時ぐらいから動いてますよね」
「そう」
「あー」
「そうなのよ。5時、5時台からもう動き始めるからね」

「うん」
「すごい」
「やるなーと思ってます」
「そう、いいねだけしてね」
「うん」
「僕も頑張ろうと思ってます」
「まあまあ」
「はい」

「まあ我々は我々のなりにやってはいますけどね」
「そうですね」
「ちょっとね」
「はい」
「うん。まあなのでもし、えー興味ある方は番組の説明欄から申し込みフォームございますので、そちらから申し込んでいただけたら、えー後日招待が届くようになっておりますのでよろしくお願いします」
「お願いします」
「またこの番組は各種ポッドキャストプラットフォームで配信中でございます。もしこの番組が参考になったよっていう方はですね、えープラットフォームのなんかこうレビュー欄みたいなところでですね、星を付けていただけると我々の日々の活動の励みになりますのでよろしくお願いします」
「何卒」

「それではまた次回」
「バイバイ」
「まだ順平の口から聞いてね。中級エンジニアになりたいって。イエーイ」
「どうせこのままずっと初級エンジニアだと思ってた。中級エンジニアなんてなれない。でももし本当に中級エンジニアになっていいのなら」
「なりたい」