ep9. リファクタリングの秋
※この記事は2019/10/14収録の「リファクタリングの秋」の文字書き起こしです。一部、編集を入れています。
オープニング(00:00〜)
treby:きのこるエフエムは技術分野、キャリア属性の異なる私たちパーソナリティーがこの先生き残る上でのキャリア戦略を共有したり議論することで、シニアなソフトウェアエンジニアのみなさんのキャリア、人生設計に貢献することを目的としたPodcastです。番組はマネジメントに攻めるRubyistのtrebyと、
banjun:スペシャリストになりたいiOSデベロッパー、banjunがお送りします。
treby&banjun:よろしくお願いします。
リモート収録開始!(00:33〜)
treby:2週間ぶりでございます。banjunさんこんばんは。
banjun:2週間ぶり。うん。いいペースですね。
treby:うん。前回も翌日仕事というところで録るというですね。
banjun:今回もね3連休あったのに3連休の最後の夜に録ってますからね。
treby:しかも3連休中予定あるかと思ったら意外と台風で暇だったみたいなね。そういう噂ありますけど。
banjun:うん。まあそうね。
treby:ちなみに私明日有給取ってるんで休みなんですけどね。
banjun:え?どういうことですか。
treby:本来であればカンファレンスやってたはずなんではっちゃけて疲れてね。ライブがあったあと休みを入れる、みたいな感じですけど。
banjun:まあそれは確かに休み入れとかないと結構つらそうですね。
treby:まあ明日も休みですという。
banjun:ちなみにそのやる予定だったカンファレンスというのはVue Fes (Vue Fes Japan)ですね、話題の。
treby:Vue Fesですね。結果的に中止という判断をしましたけど、台風の影響で中止になったということで知名度が上がったんじゃないかなっていうふうに思っておりますと。
banjun:そうね。私もVueFesは自分の分野ではないから行くとか行かないとかそういう話ではないんですけど。台風の話題はやっぱり結構タイムラインでも流れたって感じですね。
treby:いろいろありましたけどその話もしていけたらいいですね。
banjun:はい。
treby:じゃあ今晩もきのこるエフエムどうぞよろしくお願いいたします。
banjun:よろしくお願いします。
スクリプトがないのでグダグダ進行(2:20〜)
treby:ということで10月になりましたと。前回から半月ですけど、なんか寒くなってきましたね。
banjun:いや。急に寒くなりましたね。でも台風過ぎてからですけどね、寒いの。
treby:あ、そうだっけ?昨日はそうでもなかった気がしたけど。
banjun:いや、台風過ぎた日は暑かったですね。
treby:そう。台風一過感あったけど、今日から寒いんですね。
banjun:うん。今日はすごく寒いですね。
treby:びっくりしたもん、外出て。上着羽織ってないと寒くて。明日からさらに寒くなっていくのかなと。10月の中旬ですからね、言うてね。体には気を付けていきたいですというね。
banjun:そうですねっていう(笑)どうすんだ、これ(笑)
treby:前もってのやつがないとね、こんなもんやで(笑)
banjun:うん。こんなもんですね。いや、まあそういう季節の挨拶したいなら用意しとかなきゃいけないですね。
treby:季節の挨拶も台本がいるパーソナリティ?
banjun:そうそうそう。
treby:もう1回やり直しパターンやりますか。
banjun:うん。
treby:10月になってすっかり秋らしくなってきましたね。
banjun:いや、ちょっと待って、ちょっと待って。それやるの?(笑)
treby:やんないの?(笑)やんないの。
banjun:やるんですか?(笑)
treby:なんかいい感じにアイスブレイクできて良かった。
サマーインターンでのメンター報告
treby:じゃあ今日のネタなんですけども、インターンのメンターって前回話そうとして埋もれてた話かな。
banjun:はいはいはい。そうですね。前回9月末だったから。ちょうど私インターンを9月に、メンターをやっていてそれで終わったとこだったんですけど。
終わったばっかだったっていうのもあって、今回そこから2週間経ってるんでそろそろメンターとしては消化しとこうかなってところがあるんですね。
treby:インターンっていうのは学生さんが会社に来るみたいなやつですか?
banjun:そうそう。卒業年度とかも指定で募集をかけてますね。
treby:大学通いながら行くような感じじゃなくて、もう期間が決まってるみたいなやつですかね。
banjun:そうそう。10日間みたいな期間バチッと決めてあって、そこにフルタイムで入ってもらってお仕事してもらうという。就業型っていうんですかね、のインターですね。そういうのやっていたんですけれども。
treby:今リンクもらって見てるんですけど。「ZOZOテクノロジーズのサマーインターシップ」ってやつですかね。これでbanjunさんはメンターやってたんだ。
banjun:そうそう。メンターやったんですよ。
treby:何だろう?『今年のテーマは「Thank you!」』って書いてあるけどなんか見覚えがある字面ですね。
banjun:それね。それ以外と某界隈ではウケたみたいで、あ、そこに反応するんだって思いながらタイムラインを見てたんですけどね。
treby:あ、マジで?俺それ狙ってやったかと思ってたけど。
banjun:いや、私が決めてるわけじゃないですからね。
treby:でも決めた人もPだとかいう可能性はないの?
banjun:いや、ないんじゃないですかね。一応会社のSlackに#imas チャンネル作ってあるんですけど、なんか参加者いなくてですね。
treby:ああ、そうなんですね。
banjun:そうそう。さすがにPだったら嗅ぎつけて入るんじゃないかな。
treby:鍵付けて?
banjun:うん。まあ、いや嗅ぎ。
treby:あ、嗅ぎつけてね。ああ、びっくりした。「かぎつけて」ってTwitterの鍵付けてだと思った。
banjun:いやいやいや、鍵は付けないですよ(笑)
treby:何で鍵付けて入ってくるんだろうってなって(笑)
banjun:これは#imas チャンネルじゃないかって、まあ探しますからね、やっぱね。
treby:とりあえず、まず入ってみたら同志しかいない。
banjun:うん。まあそこは今後に期待なんで。「Thank you!」もたまたまなんですね。まあ「!」が1個だしね。
treby:あ、確かに。ヤバイ。なんか今Twitterのやつを発掘してしまったんですけど。「#imasチャンネル」メンバー一人なんですか?
banjun:いや、そうなんですよ。
treby:ちょっとこれリスナーのbanjunさんと同じに会社に勤めてる人は今すぐ入らなければいけないレベルじゃないでしょうか?
banjun:そうだし、別にうちに勤めてない会社の方でもいつでも入るチャンスはあると思うので。
treby:一緒に働くことによって一緒のチャンネルを盛り上げていこうという?
banjun:そういうことですね。
treby:このツイート9件リツイートされてるけどコンバージョンゼロなんですね。
banjun:コンバージョン今のところないですね。
treby:じゃあ詳細気になる方はbanjunさんのほうまで聞いていただくって感じですけど。
banjun:そうですね。リプライとかDMとかお待ちしております。
treby:はい。ちなみにこのインターのメンターなんですけども、banjunさんが持たれたのは一人なんですか?
banjun:そうです。
treby:持つことになった人っていうのは最初からアサインされてるのか、何かしらの選択の余地があったのかとかある?
banjun:私がどこに手を出せるかという選択の余地?余地はあったのかもしれないですね。ほかに誰がやるかっていうと難しいんで、結局私がやることになったのかなという気はしますけど。
treby:受け入れたのは何人ですか?
banjun:受け入れたのはうちのチームでは一人です。
treby:全体では何人ぐらいとか?
banjun:全体ではね、多分だけど全体での人数は公表されてないと思うんですよね。
treby:じゃあチームに一人ごとぐらいの人数だったんですかね?
banjun:うん。まあそうですね。チームに一人か二人ぐらいで採りましょうかみたいな、そもそもの計画で。結果としては一人、うちのチームでは受け入れて、そのときのメンターが私だったみたいな感じです。
treby:じゃあ責任重大なポジションですね。
banjun:いや、そうなんですよね。一応インターの目的としてはその後の採用につなげたいみたいなのがあるわけなんで、あんまり面白くない会社だなって思われたらそれは失敗なわけで。
きちんと面白い仕事を与えてやってもらってっていうふうにしていかないといけないから、それはちょっと大変だなと思いましたね。
treby:実際面白かったんですかね。
banjun:本人は楽しんでやってたみたいでそれは良かったですけどね。私は別にインターン詳しくないし、メンターも初めてやってるんでただの初心者みたいな感じなんですけど。
今回やったのは就業型のインターンってやつですね。仕事をしましょうっていうことで何らかのお仕事体験的なニュアンスがちょっと弱まっていて、実際の業務に触れてもらおうっていうことで。
もしアプリチームで採るんであればそれはアプリのソースコードにコミットをしてもらうみたいなところを一応目標にやってたわけですね。だからいくらでもほかにもいろんな仕事はあって。
ある技術調査をするとか、そういうこともできると思うんだけど今回はリリースされるプロダクトに触ってコミットしてもらうみたいな、そういうところに注目してやっていったみたいな感じがありますね。
インターン生って学生なんで言い方によっては「キラキラタスク」と呼ばれているらしいんですけど、ある程度見栄えのするタスクを振ってあげたいみたいな、いうような思いが受け入れる側としてはやっぱりあるじゃないですか。
treby:ああ、分かる。
banjun:ねえ。あんまり裏方で表に出てこないようなものより、アプリだったら例えばUIの方法を改善してみたいなタスクを与えると、それがAppStoreに出たときにはこれ自分がやったとこだなって分かるみたいな、そういう楽しさがあるんで。
インターン生が来る前にどういうタスクだったらちょうどいいサイズ感で渡せるかなみたいな、そういうのいろいろ検討していて。とはいえインターン生の何をやりたいっていう希望もあるだろうから、こういう希望を出してきたらこのタスク、こういう希望だったらこのタスクみたいな、そういう一応タスク候補みたいなのを出せるやつを探しておいてですね。
treby:どれぐらい用意しておきました?
banjun:どんぐらいだろう。カテゴリー別に言うと5、6個あったと思いますね。
treby:それ結構受け入れる前の準備大変くなかったすか?
banjun:大変だったんですよね。営業日で10日間でやんなきゃいけないんで、あんまり何をやろっかなっていうとこからやってるとまるで成果でないで終わるリスクがあったんで、ある程度用意してあげなきゃなってのがあって。
かといってガチの新機能みたいなのだと割とほかの会社でもそうだと思うんだけど、うちの会社は割と計画がコロコロ変わるんですごいキラキラしてるガチャの新機能みたいなのを渡しても、これ期間中に変わっちゃったらできないよなとかって。
そういうふうにこれは駄目とかってリジェクトしたりして。いろいろ用意しつつインターン生と話をしてみたんですけど何やりたい?みたいな。そしたら予想外にもうちのアプリ結構長くリリースされてるアプリがあるからいろんな負債があるというか、レガシーがたまっているはずだと。
そういうところをモダンにするみたいなそういう技術を知りたいみたいな。そういう要望がインターン生のほうから挙がってきて。
treby:ありがたい話ですな。
banjun:めちゃくちゃありがたい話で。もう私は面接していたときもう感動しすぎてもうね、これ大丈夫かって思いながら聞いてたんですけど。
ほんとにねレガシーなものをモダンにするってなかなか誰もがそういうモチベーションを持ってるわけではないというか。モチベーションとスキルと両方必要な仕事じゃないですか、そういうのって。
treby:そうね。スキルは必要ですよね、少なくとも。
banjun:だから例えば中途とかでそういうモチベーションとスキルを持っている人と出会って採用できるかっていうと結構難易度高い部類に入るのかなって思ってるんですよね。
割と新しい技術でガンガンやっていきたいですみたいな人は集めやすいのかなって気もするんですけど。実感というよりはそういう印象って感じですけど。
treby:特に学生さんだったらそちらのほうが多そうな気はしますよね。
banjun:そうそう。特に学生なんでね。あんまりレガシーをどうこうみたいなとこよりは、今の時代でアプリを作るにはこういうのが最適みたいなそういう新しいやり方、新技術みたいなところに興味を持つのが普通かなと思ってたんですけど。そうじゃなくてレガシーをモダンにしたいですっていう希望が出てきたのは結構驚きでしたね。
treby:それはbanjunさんにとってはポジ(ポジティブ)な感じの要望だったわけですね。
banjun:そうですね。ポジもポジですね。あり寄りのありみたいな感じだったんですけど。一方でそれタスクを与える、与えるタスクを考えるのはめちゃくちゃ難しいなと思いながら。
treby:っていうのは?
banjun:レガシーをモダンにするって結構闇みたいな話ないですか?
iOSアプリに限らないと思うんですけど、いろんなプログラミングにおいてレガシーなコードがたくさんあるときにそれをモダンにしてくださいっていう仕事って結構泥臭いことが多いと思っていて。
treby:そうね。泥臭さもそうだし、その根底にはコンテキストが必要ってのがあるかなっていう感覚が自分の中では思いつきましたね。
banjun:うん。コンテキストというと?
treby:さっきbanjunさんがキラキラ系のタスク用意しなきゃってとこにも通じるかもしれないんですけども、分かりやすいタスクって意外と片手間にやっちゃってたりするんですよね。
banjun:うん。
treby:それでもやんなきゃいけないタスクってどういうものかっていうと、課題は見えそうな見えなさそうなぐらいにはなってるんだけども、その根本の対応をしようとすると根が深いって言われるような。
要するにエフェクトに対して割く労力が大きすぎるみたいなやつなのかなって。リファクタリングとかもしなきゃいけないよねってのはあるんだけども、結局こっちのほうはこうなってるからこうせざるを得ないみたいなのがレガシーの元だったりみたいな、よくある話ですけども。
だからあれですよね、新しく生まれるコードとかも本当はきれいに書きたいんだけども古いコードに引きずられて古いコードを書いちゃう、じゃあ大元なんだけども手をつけようとすると結構大仕事になっちゃうみたいな。
banjun:うん。そうそうそう。
treby:で、かつ大仕事に見えてて、それでやれば済めばいいっていうのが分かってればいいんだけども、やってみると新しい根の深さが見えてきたりとかもあるじゃないですか。
banjun:うん。そうそう。っていうかそもそも大きな仕事に見えていたがやってみたらさらに大きい仕事かもしれないし、一つの仕事を終わらせたと思ったら付随してこの仕事もやんないといけないよねみたいなのが発覚することも多々ある。
treby:さっきのコンテキストっていうのはその中でコードを読むだけじゃよく分からんようなコードってのが出てくるわけですよ。得てしてそういう場合ってもう掘ってたらここだけなんかワークアラウンドで書いてあるんだけど、そのワークアラウンドの背景とか知らんみたいな。
banjun:あるあるある。ありますね。
treby:ね。一見もうこれ今のバージョンだったら要らなくね?とかいうふうに思うんですけども、何かで影響してたりとか考えるとうかつに消せないとか。
banjun:そうそうそう。特に動作を変えない、アプリの挙動を変えないつもりでもこれ変えて困るともしかしてどっかに眠ってるんじゃないかとか、まあそういうのはありますよね。
確かにそれはそうで。だからして、ある程度切り出せるところっていうのはフィルターしておかないといけないんですよね。ここは手をつけていいとかここは手をつけると多分終わらないみたいな。
treby:あ、そうなんですよ。だからタスクを振る側はある程度道筋を立てた上で道筋を立てくれっていうふうに言わなければいけないみたいな。
banjun:そうそうそう。一方でその解析をガッツリやるとほぼ仕事って終わっちゃってて、あとはソースコード書くだけの仕事になるじゃないですか。
その辺が結構難しくて。だから僕もなんかあんまり無駄なことやりたくないと思っていたから、自分で調査しきったのをなぞらせるのは嫌だなって思っていて。
できるだけ調査をはしないで渡そうと思っていて。だけどさっきtrebyが言ってたように、どうしてもそのときあったワークアラウンドの背景みたいな、なんかそういうのが分からないと手を出せないものもそこかしこにやっぱあるわけなんですよね。
treby:やっぱありますよね?
banjun:そういうのはさすがにちょっとあんまりにもそれを渡すのはあまりにも可哀想なので、パッと見でそういうのがなさそうみたいなところは一応ざっくりスクリーニングしてるっていう感じですかね。
treby:ない方向に倒したわけだね。
banjun:そうそうそう。さすがにこれは当時の背景とかが分かんないとどっちにしていいか誰も判断できないみたいな、なんかそういうとこに当たってもしょうがないんで。
そうじゃなくて多分労力をかければ終わるだろうっていうところでどこをやってもらうかみたいな何となく当たりを付けて。当たりを付けたんだけど当たりだけにしといて、調査し出すともうそれは全部自分でやんなきゃいけないから。
ここをエントリポイントにして調査からやってもらって、分かったことをまとめてもらって次どっちの方向に攻めて行くかみたいな、そういうのをインターンではやってもらってました。
なんかそういうのがあると1個調査すると3つぐらいこっちとこっちかこっちに攻めて行けそうみたいなのが分かってきて、その中でできるできないっていうものを見極めてもらって、で、やってもらうみたいな。
そうするとある程度調査自体も価値があるし、そのインターン生の調査自体に価値がでるし、どうにもならないとこには手をつけなくて済むし。ある程度時間的な期限がある中でここだったら終われそうみたいな線引きをしながら終わらせていけからいいかなと思って。
treby:ちゃんと成果みたいなのが出るような形で舗装してあるところでは結構しっかりしてますね。
banjun:やっぱこの10日間の中で成果出さないといけないっていうのが結構つらくて。普通にチームメンバーがやるんだったら気の済むまでやればいいじゃんってなるんですけど。
それはチームメンバーは別に10日間でもう退職ですということがまずないからですね。やるなら来月だろうと再来月だろうと別に続きでやれるんで。
treby:やり切ってもらうってとこまでやってもらいますからね。
banjun:そうそう。インターン生はさすがにそのあとまでいつまでも手を貸してくださいってわけにはいかないんで、終われるとこを見極めつつ進んでいくっていう。結構スリリングなことを毎日やってましたね。
treby:でもそれをどこまでbanjunさんが持つかっていうのはありそうですけどね。
banjun:でも僕がやったのはそういう意味でどうにもならんっていうことにはならんだろうっていうスクリーニングと、あとは毎日の調査結果に合わせて次のタスクを決めていくっていうそういう感じだったんで。実はそんなにやってないかな。
treby:じゃあそのインターンの期間中はbanjunさんのお仕事やっててみたいな?
banjun:まあそうですね。一応建前はそうなってましたね。実際にもやってたかな(笑)
レガシーコードのリファクタ戦術(18:34〜)
banjun:iOSアプリのレガシーをなくすっていうことで今回Objective-Cで書かれてた部分をSwiftにするみたいなことをやってもらってたんですけど。そうすると結構戦術が必要になってくるんですよ。
treby:戦術ですか?
banjun:単純にこのメソッドっていうかこの文法をこの文法に移せばいいみたいな、さすがにそこまで簡単な仕事じゃないんで。
あるクラスがありますね、これをSwiftにしましょうねっていったときに、コードの書き換えっていってもいろんなやり方があって。
例えばですけど1000行あるクラスをじゃあこっちのSwiftに書き直そうとかやると、結構あれ1日終わんないレベルになったりするんですね。
treby:まあしますよね。1000行レベル。
banjun:そういうときにじゃあどうやって、1000行が無理だったら100行ずつし移してそれで動作確認しながら進めていけるかみたいな。1000行が1日で終わんないとその日のうちに動作確認できないからつらいし。
最終的に3日かけて終わりましたっていったときにビルドが終わらなかったらどこが悪いのか全く分からんじゃないですか。
treby:なるべくスコープちっちゃくしたい話ですよね。
banjun:そうそうそう。それが10日間のインターンとかっていう時間制約で縛られたときに、もう明日には成果を出さないといけないが全くビルドが通ってないみたいなことになったらただつらいお仕事になるかなと思って。
treby:そりゃそうだ。
banjun:それはまずいよねとかって思って。そうするとじゃあ一部だけをSwiftにして、かつビルドが通るみたいな戦術とかってあるのかなみたいな、なんかそういうやり方をいろいろ考えていて。
treby:Objective-CからSwiftってそれどうやってやるんですか?クラスごとなんですか?
banjun:一般にはクラスごとなんじゃないですかね。
treby:ただそのクラスもね、1000行とかなってたらじゃあどうすんの?みたいな話になるのかしら?
banjun:そうそうそう。そうなんですよ。基本的にはガッとやってしまえばガッとなって終わるっていうもんなんですけど。そのガッとやるっていう、その力っていうか速度っていうか、そういうのって人によるわけで。
そんな誰しもがガッってすぐできないし、私がやっても手こずるものは手こずるんですね。っていう中でインターン生っていうのもあって、そもそもObjective-Cとかそんなにネイティブじゃないわけですよね。
この時代において。まずSwiftから入ってるみたいな時代なんで、Objective-Cをやろうと思うだけでもレアな話なんで。そうなってくるとそんなすぐにガッと考えずに目で見て指が動いてSwiftになるみたいなことはあんまり期待できなくて。
結構考えて読み解いて頭を使ってSwiftにするみたいな、そういう感じになると思うんですね。そうするとクラスをガッとやればいいんだよって、そのガッっていうのが3日とかかかるとちょっとつらくなってくるわけですね。
treby:そうだよね。
banjun:だから例えばメソッド単位とかでやるみたいなそういう工夫は必要になってきて。そういうふうにしてガッとやらないと方向で進めてもらっていくというか。
ガッとやらないためには結構Objective-CとSwiftのランタイムの知識とかが必要になってくるんで。でもその辺は調べたって分からんと思うのでその辺をペアで教えながらやっていたというような感じですね。
treby:特に実践的なとこはわれわれもイメージつかないもんな。概念ぐらいは多分理解できるけど、じゃあどうやんのさみたいなのはね、ハンズオンだよね。
banjun:そう。そうできたらいいなっていうそれはそうだけど、実際できるのかできないのかっていうのは経験がないと分からないと思うんですよね。その辺を教えつつ。
treby:それはなんかいい機会になりましたね。
banjun:いや、良かったですね。そういうやり方でやっていくとまあできるんだなっていうのも結構私としても大きな学びですね。自分でやったら多分ガッとやるんですよ。
treby:もうまどろっこしいことしないで。
banjun:そうそう。ガッとやらないでやる方法ってのは考え出せるんだけど、だけど自分でやったらガッとやったほうがいいなって思うし、チームメンバーであってもガッとやってくれたらいいなとかって思ってるんだけど。
実際に時間とかが区切られていたらどうするかっていうことを考えるのは結構いいトレーニングになったし、それで実際に成果が出たっていうのは大きいなっていうふうに思ってますね。
なんかね、そのインターン生がチームに来てくれたおかげでチームメンバーのモチベーションが結構爆上がりしてて。なんかインターン生が日々レガシーと戦っていて、触発されるみたいなんですね。自分たちもレガシーをSwiftに換える仕事したいみたいな。
普段のビジネス的な要件を回してもらってるんですけど、そういうのもいいけどたまにはね、Objective-CをSwiftに換える仕事みたいな、そういうのをやりたいみたいな。
そういうモチベーションがメンバーの中で上がってきていて、めちゃくちゃ面白いなと思って。そんで最近すごいやってるんですけど、ちょっと案件の中に混ぜ込む量を増やしてもらって、リファクターする期間ですね。
それやるには当然QAのスケジュールも取らなきゃいけないんでその辺も確保しつつ入れてもらって、みんなでガッてやってるんですけど。いや、本当にガッてやると大変だねっていうのを今まさに実感していてですね。
ちょっとずつ切り出すっていうのはもしかして別に普段からもしかすると役に立つ技術かもしれないなと思いながら今このガッとやった仕事ってのお互いにレビューしているみたいな感じですね。
treby:聞いてると新しい手段を見つけたんじゃないかなって思ったんだけど、ガッとやる以外にちょこちょこやっていくっていう作戦とかね。
banjun:そうそう。そういう作戦は理論的にはあるだろうなと思っていて、やればできると思ってたから今回インターン生にやってもらうことができたんだけど。
とはいえガッとやったほうが最終的な効率はいいというか、最終的に投下するコストは低いのかなと思ってたんだけど、いやよく考えると、もしかするとそれでも分割しながらやったほうがいいのかもしれないとかって思うのが最近ですね。
treby:仕事の分割の粒度は難しいと。
banjun:そう。意外と難しかったですね。
treby:ちなみにそのガッとやると細かくやるの、この測り方がiOSの界隈でどれぐらいの指標というか目安になるか分かんないんですけども、行数ってのはどんぐらいの感覚ですか?
banjun:どうなんだろう。完全に私の個人の感覚ですって感じですけど。1000行はガッとやるうちに入るかな。1000行どころじゃないかも。500を超えたぐらいでもうガッっていう感じですね。
それより低いとまあ普通って感じだと思うけど。やれる作業のタスクをやったな。ちょこちょこレベルだともう100行はいかないぐらいの話じゃないですか。
treby:フロントというかサーバーサイドというか、その辺でいうと、バージョンを上げるときとかはやっぱり多少500は超えてきますね。
プルリクはもう100行超えるとレビュアーに負担がかかり過ぎちゃうから、なるべくこまめには出したいっていうのはあるよね。
banjun:ああ、そうなんですね。100行を超えるプルリクは結構ザラにあるなって感じですね、普段から。
treby:フィーチャー開発とかだったらあるのかもしれんけど。
banjun:そうか。フィーチャーだからかな。リファクターだとどうだろ。リファクターだと500超えるのは普通かな、プルリク単位で。今はね。
treby:単純な置換のやつとかでね、diffが出るのはいいんだけどね。
banjun:そうそう。なんかdangerっていうのあるじゃないですか。プルリクとかを見てその状態に対してwarningを自動付与してくれる。なんか使ってます?
treby:リンターってこと?
banjun:そう。リンターみたいなやつ。dangerというプロダクトがあるんですけど。よくあるのはプルリクエストにフックしてCIで実行して、それこそその中でリンターを動かしてもいいし、その他諸々の人手でやんなきゃいけないような基本的なチェックを代わりにやってくれて。
treby:わざわざ人で言う必要がないようなツッコミとかを勝手にやってくれるやつってことですね。
banjun:あ、そうそうそう。プルリクにwarningで書き込んでくれるやつがいて。クローンしてくるとデフォルトの設定が書いてあって。それはプルリクのdiffサイズが確か500行以上だったらビックPRみたいな。そういうwarningを出すんですね。その500がどれぐらい妥当かは知らないですけど。
うちではデフォルトもとりあえず残してあって、所詮目安なんで。それでリファクター系だとやっぱりビックPRって出ることが多いかな。
大きな仕事とプルリクエストの粒度(27:04〜)
treby:作業を細かくやっていくのはいいんだけどもレビューする側、レビュアー側にとっては(全体を通して)一貫してたほうがいいよねっていうのもありますよね。
banjun:そうね。どっちがいいんだろう。最終的に多いんだったら結局大変じゃんというすごい印象があって、どっちなんだろうねっていう。
treby:まあ単純置換系だったらもうガツッとやっちゃっていいけども。
「9割9分いいんだけども、一部で駄目なとき」に何回かプルリクのコミュニケーションコストが起きるくらいだったら、一つ一つが頭を使わないといけないやつはちっちゃい方が良いかな。
ちっちゃく出して、「大丈夫だよね、はいLGTM」でどんどんマージしていけるほうがスピーディーかなとは思ってます。
banjun:そうですね。マージしてその部分は片付いたって言われるのはめちゃくちゃいいですね。
treby:じゃないと意識から離れないうちにどんどんmasterブランチから遅れていくのも嫌じゃないですか?
banjun:うん。いや、ほんとそう。
treby:ただ一方でレビュアーする側的には、じゃあ全体像ってどれぐらいなんだっけってのを知りたいっていうのはある。
こまめに出すのはいいんだけど今回土台に挙げてる、banjunさんの言うところのガッとやるリファクタリングのが1000行ぐらいあるとしたら、そのうちの10分の1のやつに相当しますよみたいなのが分かってるとうれしいですね。
banjun:うん。なるほどね。あるクラスのリファクターみたいなタスクがあって、それの何分の1のPRですみたいな、なってるといいかもしれないですね。
treby:する側はうれしいと思うんじゃないかなと自分は思うけど、どうなんですかね。リスナーの皆さんとかね。
banjun:一度にたくさんの行数をレビューするっていうのは本当にしんどいなってと気はしますね。
treby:そう。する側はしんどいです。あとしたあとにフォースプッシュとかされるとね、あ、どこまでやってたっけ?みたいな。したあとにね。
banjun:まあそれはある程度うまくdiffを取って、ここまではチェック済みとかってやるけど。
treby:レビューする側の負荷であるべきなのかみたいな話はある気がするけどね。何のためのレビューかみたいな。
banjun:まあそんなこんなで、レガシーをモダンにするっていう活動をしているというか、するだけじゃなくて教えていた9月だったわけなんですよね。
treby:すごいですね。なんかインターンの話から、どうやってやろうかっていうのを段取り立ててやってみてレガシーを直すことをしたいっていうからやってもらって。じゃあ今度その活動がチームに広がるって、なんかいい話じゃないですか。
banjun:いや本当にいい経験だったと思いますね。なんかちょうどその頃Twitterでちょっと見てたツイートが、何だったかな。
インターンという制度があって、一般にね。それの意義みたいな話をしていて。他人のツイートなんですけど。
インターンの活動をいろんな企業がやることで業界のプログラミングスキルが底上げされるみたいな効果もあるんじゃないかみたいな、そういうことを言ってるツイートだったんですけど。
treby:へえー。その視点はなかったな。
banjun:僕もそれ見て、お、ってなって。もしそうだったらそれはいいことだなと思って。今回この教えていたインターン生もほかの企業でもレガシーをモダンにするみたいな、ほかでもインターンしてたりして。バイトでもそういうことをやったりしてるみたいなんですよね。
そうなってくると教えた戦術っていうのが、言うてもObjective-Cのランタイムみたいなそういう知識だから。いわゆるアプリ開発にはほとんどの場合に必要ない知識なんですけど、今回限りの知識でインターン終わって良かったねってなるのがまあ普通かなと思ってたんですけど。
ほかの会社のコードも触ってObjective-Cみたいなの知識を生かしてより良いコードにリファクターしていくみたいな作業をもし今後していくのであれば知識が生きていく部分もあるだろうから。
そう考えると「めちゃくちゃいいことはしたのではないか」というふうに自分で思っていて。
treby:社会的意義の側面で?
banjun:そう。社会的意義的な側面で。こうやって世の中のアプリがだんだんリファクターされていくんであればそれはなんかうれしいことだなと。
treby:うれしいですよね、そういうのは。自分だったらじゃあそのインターンをいかにして採るかとか、費用対とか合うんだっけ?とか考えちゃうとこあたり、心が荒んでるなっていうふうに思いました。
banjun:もちろんそのことはめっちゃ考えてますよ。
treby:ほんとすか?
banjun:それはもちろん、そもそもインターンの目的というのがどうやって新卒採用を確保していくかっていう話なんで。そこに結びつかなければやっぱり大きな目的としては達成しないので。
考えてはいますけど、別視点として業界の知識が底上げされるんであればそれはいいことだなあと思って見てました。
treby:いい話だ。
banjun:いい話でしょ?
treby:いい話。いい話すぎてもうこれで今日の話は終わりみたいな感じになっちゃったけど(笑)ってのはまあ冗談だけど。採用のほうはうまくいきそうなんですか?その人は。
banjun:まあどうですかね。そこは本人次第なので。
treby:アトラクトとかはしていかないの?ちょっとご飯行こうよって言って。
banjun:頑張りたいですけどね。
treby:せっかく同じ場で働いて、現場にリファクタリングしようって波を持ってきてくれた彼、彼女にはぜひね、これからも一緒に働いていきたいですっていう気持ちをお伝えしてですね。
banjun:それは間違いないですけどね。単純なObjective-CをSwiftにするみたいな観点でのリファクターだと、もしかするともう既にうちのメンバーがモチベーション高くなっちゃったんでそのうち終わっちゃうんじゃないかなというような、そういう期待もあるんですけどね。
Vue Fes Japan 2019中止判断の裏側(33:06〜)
treby:前回VueFesの準備をしておりますっていう話をしておったわけですけども。
banjun:そうですね。9月末の収録の回ですね。
treby:そのあとに台風19号が発生しましてですね。
banjun:ですよね。あの話聞いて、あ、そろそろVueFesだなと思ったら、あれ?台風だなと思って。
treby:まさかとは思ってたんですけど直撃しちゃって中止となっちゃったんですね。
banjun:結果としては中止だったんですよね。
treby:っていうのがこの3連休のハイライトかな。
banjun:やっぱ大きいですよね。ここでやるってイベントが流れてしまうという。
treby:中止の判断自体はブログ記事書いてる方もいますけれども、正しいなっていうふうに思ってますよね。
banjun:もう既に結果が分かってるから言えますけど。それは中止しかなかったようなというふうにはた目には見えますけどね。
treby:そうなんですよね。いろんなステークホルダーとか金銭的な事情とかリスクとかあるんですけども、最終的には人命に勝るものはないわなっていうとこですよね。
banjun:ブログの記事とか見て、人命を最優先することの意味みたいなのが書いてあって。ああ、なるほどそういう考え方がなのだなみたいなふうに読んでて思いましたね。
treby:その点でいうと、台風19号っていう中途半端じゃなくて地球史上最大みたいな話が来てたんで心置きなくじゃないですけど。
banjun:そうですね。どこまで本当だったのかは分かんないですけど言われてましたね。
treby:後悔が残る中止の仕方ではなかったんじゃないかなというのは思ってますね。
banjun:まあ確かにね。そうね。そもそも全体としては中止にしたとしても台風の被害もないっていうのが一番いいと思うけど、今回本当にどうしようもなかったっていうのはみんなが一致するところとなったっていうのは台風が地球史上最大って言われてたからですよね。
※注 …… 実際には「地球史上最大」は正確でなかったようです。
treby:まず雰囲気がマジでデカいのが来るぜみたいなのがありましたもんね。その前に来た15号が影響を及ぼしちゃってそのあとだったから、かつ15号よりも大きいのが来るぞっていうことだったから世論みたいなのがもうすっかり備えないと死ぬぞって感じでしたもんね。
banjun:15号のときも計画運休みたいなのはしてたんでしたっけね。15号のときだったかはちょっと覚えてないんですけど。
treby:最近は来るのが分かってたらする方向になってる気はしますね。
banjun:ですよね。なんかそれ一度やってたからむしろ今回スムーズに判断できて良かったんじゃないかなという気がしますよね。
皆さんのところにも被害がいないと良いと思ってるのですが、今回は全国的には被害出てますんでね。
treby:そうだよね。
banjun:あと台風の影響で中止判断をしますみたいな告知が出たりして。そういうのを読んで普段はあんまり細かくは気にしない運営の動きみたいなものが広まったのはちょっと興味のあるポイントではあるというか。
今回保険に入ってまして云々みたいな話がこの台風との関連では最初に出てきたと思うんですけど。あ、保険あるんだみたいな、そういうのに入ってるんだみたいなのがあって。
ほかのカンファレンスも入ってたりするんですかね。
treby:どれぐらいの規模からっていう線引きは割と人それぞれあると思うんですけども、さすがに1000人規模になってたら入りますね。
1000万を超えた辺りからは大分、気合いでやるのはきついみたいになってくる気がしますよね。
banjun:1000万っていうのは?
treby:カンファレンスにかかる費用がっていうことね。
会場代だとかランチ代、アフターパーティー代だとか。ゲスト呼ぶんだったらそれの交通費とか宿泊費とかも入ってたりするし。あとノベルティ代。
警備とか入れるんだったら人件費とかもかかってくるしみたいな。それぐらいの規模のお金になってくると個人では取り扱えなくなってくるんですね。
なので、(有志のボランティアだけじゃなく専門の)イベント運営会社とかを使ったりするんですけど、そうするとやっぱりそこでもお金はかかるしみたいな。
banjun:ああ、なるほどね。場所が貸してもらえる、もらえないとか。
treby:がっつりそっちのほうにかんでたわけじゃないんで見てた感じの話にはなりますけど。Wi-Fi一つ用意するのでも大変だったりね。会場借りるのもなんか、当日は当然なんですけど事前の準備で何時から借りるとかね。
カンファレンスコアスタッフから見えた運営ノウハウ
今回自分はVue Fesでスポンサー周りを全部担当するってことでやってるんですけども。一言で言えばお金を集めてきていろいろメールのやり取りするだけじゃんって話だけなんですけども、やっぱりスポンサーにもいろんな種類があるわけですよ。
banjun:ですよね。最近なんかすごいバリエーションありますよね、スポンサー。
treby:ジャンル分けですね。例えばセッションで話してもらことができるスポンサーとか。
来場者にトートバッグとかを渡してその中にチラシとか入れるんじゃないですか。あれを入れてもらえる権利があるスポンサーとか。あとはブースを出すことができるスポンサーとか。
いろんなプランというかお品書きがあって、あるスポンサーはこういうことができて、このスポンサーはそうじゃないみたいなのはあるんですけども。それぞれでそれぞれの関心事とかが違ったりして、それぞれやり取りするっていうのは勉強になりましたね。
やる前はただメールでやり取りするだけだろって思ってるんですけども、やっぱり備えてないとワークアラウンドでの対応になっちゃうんですね。それが前回言うところの、気合で何とかなるんだけれども誰かに負荷がかかるっていう部分だと思ってて。
banjun:なるほどね。
treby:ただ来るっていうのが分かってると、あらかじめ備えて何かしらのシステマチックに対応して負荷を下げることはできるけどね。
banjun:それはスポンサーが言ってくることに対して臨機応変にやらないといけない部分があって、臨機応変って言われてもなあみたいな、そういう話なんですか?
treby:臨機応変というか当然ここは気にするよねってところを押さえておくべきみたいな。最終的に個別の相談みたいなのは個別の相談でいいと思うんですよね。
例えばブースで自分の会社の人が書いた本を売りたいんですけどとか、なんかそういう系の話であれば確かにそれは個別相談だねっていう話なんですけど。じゃあブースどれぐらいの広さなんですか?とか、ノベルティとして飲食物を配って大丈夫なんですか?
あとは設営何時からできるんですか?とかね。割と確かに言われてみれば決めてなければいけないことってあるはずで。あと自分たちも会場のほうと確認を取らなければいけないということで、徐々に明らかになってくる部分っていうのはあったんですね。
banjun:なるほど。だから最終的にはそれはスペック表をみたいなので全部分かってることなんだけど、それが言われてみるまで確かになっていうレベルでよく分かってないし、そもそも分かってるとかじゃなくて決まってないなみたいな。
treby:そうなんですよ。それを先出ししてないと結局メールでの問い合わせって感じで個別に対応というか答えしなければいけない感じになっちゃうんで、見れば分かるっていうふうな状態に持っていくのが大事だなっていうのが一つと。あらかじめ備えられてたらいいよねっていうとこですね。
今回もっと備えておけばよかったなっていうのは来年に生かせるかなって思ってる次第ですね。一方で去年の反省をもとに今年やることができたっていうのが、ちゃんとどのスポンサーがどういうフェーズかみたいな、それのステート管理に関しては今年はちゃんとできたかなっていうのがありますね。
iOSDCとかかな、やってる@tomzohさんって方がいらっしゃるんですけども。長谷川さんというね。あの方が作られてるfortee(フォルテ)っていうサービスがあって今回使わせてもらったんですよ。
banjun:あ、そうなんですね。
treby:あれ使うとデフォルトでスポンサーの申し込みフォームとかもちゃんとあるし、そこを入力してもらうとちゃんとスポンサーのレコードができてステートの管理とかもできるんで。
banjun:あーなるほど。それは一般参加者には見えてないそのサイトの機能ですね。
treby:気にしなくていいですからね。あれがあるだけでだいぶ楽でしたね。
banjun:ていうかそれはある意味でもうほぼシステム化されていて、その流れに沿ってやっていけば結構誰でもできるみたいになってることですか?
treby:どうしてもカンファレンスごとに微妙に運営のスタイルが違うとかいうのはあったりとか、使える部分もあれば個別にやんなきゃいけない部分とかはあったんですけども。
あとは今年改善されたことの一つがメール対応というか、ちゃんと誰が誰とメールのやり取りをしてるかっていうのを見える化しようとしたってことかな。
去年の課題の一つがスポンサーさんからのメールのやり取りを特定の人で握っちゃっててどういうやり取りしてるか分かんないから、その人が反応できないともうカンファレンスの運営とスポンサーさんの間が完全に途絶えちゃうみたいなことがあったと聞いてたんですね。
banjun:ありそうですね。
treby:なので、今回とかは半ばメーリングリストみたいな感じでの運用にして、ちゃんと複数人でメールのやり取りが見えるようにしてたよね。っていうところは改善点の一つですね。
興業中止保険適用のための制約(42:07〜)
banjun:そうそう。その台風で結局中止になってますけど保険が下りたら代替のイベントができない契約になっているみたいな。
treby:あ、そうなんですよ。
banjun:代替のイベントっていうのはどういうものが代替のイベントのスコープなんですかね。
treby:一つの目安だとVue Fes Japan 2019っていう言葉そのものかな。Vue Fes 2019って言葉自体が入ってると良くないらしくて。
banjun:ああ、そういうレベルですか。
treby:割と厳しめにとろうと思ったらどこまでも厳しめにとれるような内容っぽいですね。細かいところでいうとCFPで発表することになってる人のトークとかも使い回せなかったりとか。
banjun:それは厳しいですね、結構。
treby:あくまでVue Fesじゃなくて個人の発表として公開する分には問題がないっていうのはあるんですけども。意外と保険会社の人とかTwitterとか見てて、どういうことを書いてるかっていうのもチェックしてるっぽいのでうかつなことはできんわなってことで、お願いベースではありますけども。そういう感じですね。
banjun:なるほどですね。iOSDCだとリジェクトカンファレンスとかアフターiOSDC JAPANとかそういうのがあったりしたわけですけど。そういうのも結構危なかったりするんですかね。その類い。
treby:っていうか別にカンファレンスが別に普通に行われてたら何もなくて。保険会社のほうの立場になると保険金詐欺みたいなところを防ぐための縛りだと思うんですね。
今回みたいにどう見てもはたから見たら中止だよねみたいなパターンとかでも、まずは代替のものがないよねってことを押さえとかないと。台風来る日が本催ですっていうふうにしておいた場合に、本催が中止になりました、代替の日にやりますとなったとします。
その時、開催側が悪意を持って、実際には代替日でやることを前提にして準備してたとしたらあかんわけですね。だから本催の日のために作ってたノベルティグッズとかも保険の対象なんですね。それらのグッズを代替の日で使われると不正はできちゃうわけですよね、理論上は。
banjun:まあそうですね。
treby:そういう抜け穴とか抜け道とかを探し始めたら多分ごまんとできるはずで。(興業中止保険は)保険金詐欺の中でも多分しやすいほうなはずで。保険会社のほうとしてはそれをやられるリスクみたいなのを防ぐためにはそうやって厳しい目に言わざるを得ないという事情もあるんだろうなっていうのはあるんですね。
banjun:そうですね。実際には語られなかったCFPが多分たくさん浮いてる状態だと思うんで、それはどうやってトークしていくのがいいのかなっていう。
treby:「あくまで個人として」どこかで出してもらうとかかな。今回、「カンファレンス対CFPで出してくれた人」っていうところでいうと申し訳ない部分は大きいんですよね。「カンファレンス対保険会社」のところの制約がそっち側に波及しちゃってるわけなんだよね。
banjun:ああ、そうですよね。
treby:こればかりは下手なことを言って保険が下りませんでしたみたいになるのは避けないかんところではあるので。保険ってやっぱりなかなか難しいなというか。
ただ本当ありがたいのは一般の参加者というか来場者の人もそうだし、スポンサーの人もそうなんですけども、何とかしてあげたいみたいな感じで名乗り出てくれる人ってのが多かったんですね。
あれは本当の話コアスタッフ内でみんな見てて、マジでありがたいねとは思ったりしてますね。例えばクラウドファンディングして損失分を何とかするとか言ってくれる人もいてね。
banjun:ああ、なるほどね。
treby:なので、一つコミュニティとしてはこれから続けていくっていうことができたらいいのかなとは思ってます。
banjun:それはつまりコミュニティとしては次また来年っていう感じなんですか?もっと頻繁にやってるんですか?イベントは。
treby:ちっちゃいのはやってますよ。Meetupみたいなのは。四半期に1回ぐらいのペースでしたけど。
banjun:ああ、なるほど。そんぐらいでやってるんですね。
treby:今度ぜひVue Fes関係者の人もPodcastに呼んでお話ししていけたらいいなというふうに思ってます、とかね。
※後に実現しました。
お手紙紹介「実際に自身が志向する働き方できていますか」(46:27〜)
treby:はい。そしてですね、前回お手紙ほしいねという話をエンディングにしておったわけですが、なんとお手紙をいただきました。ありがとうございます!
banjun:ありがとうございます。
treby:じゃあちょっと読み上げてみたいと思います。ラジオネームおもしろくんです。おもしろくんありがとうございます!
banjun:おもしろくん「さん」ですかね。
treby:ああ、おもしろくんさんですね。失礼いたしました。はい。おもしろくんって誰?
banjun:ちょっとそこ掘るの?(笑)
treby:はい。「お二人はスペシャリスト、マネジメントと志向する方向が違うと聞いてますが職場でどの程度実現できているのでしょうか?チーム内でリーダー的ポジションになってるとタスクを拾うことが増えるかと思うのですがいかがでしょうか?」という内容でございます。
banjun:なるほど。
treby:どうですか?スペシャリストになりたいiOSデベロッパーのbanjunさんは。
banjun:いや、なかなか鋭いお便りですね。おもしろくんさん。スペシャリストになりたいと言っているがどの程度実現できているかっていう話ですよね。最近思うのはそんなに実現できてないんじゃないかっていうふうに思っていて。
割とさっきのインターンのメンターもそうですけど、ある程度人と関わる仕事、別にスペシャリストが人と関わらないっていう意味ではないんですが。
人のことを気にしながらいろいろするという、それ自体が仕事であるというような動きをしていることが実際には多いかなっていうのはそうですね。それでいうと、「スペシャリスト何なんだ?」って思うんですけど。
私としてはもうちょっとプロダクトのコードに手を出してもいいのかなと思っていて。そう思ってるということはまだそこに対して全然全力をかけてないんですよね。
treby:全力をかけないっていうのはプロダクトのコードに手を出したいって思ってることに対して全力を出してないと?
banjun:そうです、そうです。だからそれは実現できているかっていうと、いや、怪しいなとは思いますね。
逆にいえばそういう、言い方ですけど人の面倒を見るとかじゃなくてガンガンにコードに手を入れていくというふうに全振りをした場合、もっとガンガンにいけるんだろうなと思いながらやってないという状況ですね。
treby:やってないっていうのはやろうと思ったらやれるのか、現実的に難しいっていう判断なのかっていうのはありますか?
banjun:それでいうと現実的に難しいというのがそうで。お仕事なんでやりたいこととかあるとは思うんですけれど、基本的には現実に即して動くべきかなと思っていて。
現実からの何ができるかを考えると今はガンガンにコードに私が手を入れるという、そういうフェーズではないのかなというふうに思っていて。そういう意味で結構人の書くコードを読むとか、そういうことが結構割合としては多いかなというふうに思ってます。
そこは自分が目指してる場所かっていうと違うような気もするんですが、それはそれでいろんな知見が得られるので今は違うかもなあと思いつつもやれることはやってますっていう感じですね。
treby:そうなんですね。例えばbanjunさんがやってる細かい、人と関わるタスクですか?こちらを巻き取ってくれる人が来たとしたらbanjunさんは心置きなくコードを書けるってことになるんですかね。
banjun:ああ、なるほどですね。それはそうかもしれないですね。そういうソリューションはありな気がします。なんなら私の書いたものをガンガンにレビューしていただいて、そういう人ですね。
treby:うん。なんかトップレイヤーとかになってくると今チームとして回ってるから、アプリチームとして回ってるから、iOSチームとして回ってるから別にそこに新しく人を入れなくても大丈夫だよねというか。
banjunさんポジションをあえてコンフリクトする形で置かなくても大丈夫よねっていうふうに考えてる可能性もなくはないわけじゃないですか。
banjun:いや、まあそういう可能性は当然ありますよ。コンフリクトしたら多分効率下がるんで、チームとしては。それは難しいですね。
だけど別にコンフリクトしないことだけが重要かっていうと微妙で。誰かがリードするっていうのは全然ありだと思いますけどね。
treby:なので、もしも現実的に難しいっていう気持ちが本当に強いのであれば上を入れる、上というかマネジメントレイヤー入れるっていう方向で動くっていうのもなくはないのかなとちょっと思った次第です。
banjun:そうですね。マネジメントっていっても別にリソース的な人の管理ではないから。テックリードなんですかね、そういう人を入れるのはありかなという気はしてますけど。
treby:なるほど、なるほど。
次は私のほうかな。「マネジメントに攻めるRubyistのtreby」ですもんね。
banjun:うん。そうですね。
treby:それでいうと割と5月ぐらいからマネジメントというよりは技術一本っていう方向じゃないっていう意味では同じなんですけども。ビジネスの中でのエンジニアリングっていう方向に最近はなってる気がしますね。
banjun:マネジメントバリバリやってますということなんですか?
treby:いやマネジメントじゃないんですよ。
banjun:ですよね。
treby:確かにマネジメントっていうのを、私は少なくともこの言葉を作ったときにはピープルマネジメントのニュアンスで使ってたんですね。
そういう意味では今はピープルマネジメントみたいなことというよりはより違う方向にいってて、それ自体が悪いことだとは思ってないっていうのが答えになります。
banjun:マネジメントに攻めるって当初言ってたときはピープルのマネジメントだったけど、現状はそうではないっていうことですね。
treby:そうですね。攻めるって言ってたときは何かっていうと、チームでプロダクトを開発していくベロシティをいかに上げていくか、その観点だったんですね。
banjun:ですよね。結構スライドとか見ても人と話すときどうするかみたいな、そういう話が多かった気がするんですけどね。そうじゃなくて現状は何のマネジメントになってるかっていうと、何なんでしょうね。
treby:ビジネスかな。
banjun:ビジネス?ビジネスですか。扱っているものというか働いているエリアが変わったけれども、結局結構エンジニアっぽいというか。
ぽいじゃなくて、そもそもその畑で働いていた場合、trebyさんってエンジニアだよねっていう認識をされるようなポジションにいるっていう可能性も高いですよね。
treby:今エンジニアポジションですね。
banjun:マネジメントの人っていうよりはエンジニア代表みたいにみられる?
treby:まあそうですね。
banjun:だからそのプロダクトを、社内でプロダクトを開発してるエンジニアからすると、trebyさんがエンジニア代表みたいなそういう感覚はもしかすると薄いかもしれないですけど。ビジネスのほうで関わる人から見るとエンジニアの人っていう、多分そういうポジションですよね。
treby:全くもってその通りでございます。
banjun:ですよね。
treby:はい。マネジメントする対象が違うだけで、マネジメントに攻めるってところはやってんのかな、結果的に。
banjun:不安になってきてる。
treby:やってるんだろうなっていう感覚があって。ビジネスをマネジメントしてるって言いましたけども、結局砕いていくと何かしら人とコミュニケーションするところが生まれてきてるんですね。
以前と違うのは人とコミュニケーション取ることによってそのチームのベロシティとかを上げていくみたいな感覚だったんですけども、今はより視線が外向きにも内向きにも広くなってる気がしてて。
プロジェクトそのものをうまく生かせるっていうファクターなんだろうなっていう感覚があるんですね。マネジメントというとすごい広いですが、その中での、ビジネスの中でのマネジメントはすごく答えは見えてない一方でやりがいはありますね。
banjun:マネジメントというか、マネージャーというか。プロジェクトマネージャーみたいなのだったら何をマネージしても、プロジェクトマネージャーは人をマネージするとは思うんですけど。
そういう意味ではマネジメントに攻めるっていう言葉が実現できてるかどうかっていうのは結構言いようで、あれですね。
treby:そう。当初の言ってたニュアンスからは外れてきてるけども、
banjun:そうそうそう。それそれ。
treby:今のもマネジメントとは言えるだろうという。
banjun:まあ確かに、確かに。
treby:新しい見方が今できてるのかなっていう感じはありますね。最初言ってたときとかは、あまり今やってる仕事っていうのがあるっていうのに気付いてなかったんで。ビジネスの中で入り込んで話すみたいなのが。
なかったからそこはチャレンジングな日々を過ごさせていただいてると言えるのかなと。ただ一方、エンジニアとしてのアイデンティティっていうところをどうを持たせるかっていうのは割とありますけどね。
banjun:あるんですか?なんかもはやアイデンティティとか持たせなくても自然にそうなっているっていうか、逆にもうエンジニアとしてのアイデンティティからは抜け出せないような感じもしますけど。
treby:次の職場を探すときに自分は何なんだっけ?ってなりそうって意味ね。
banjun:ああ、なるほどね。それはそう。確かにね。Railsエンジニアですって言って売り出すかどうかっていう話ですかね。
クロージング(56:36〜)
treby:さて今回もお別れの時間が近づいてきました。皆さんいかがでしたでしょうか?
banjun:いかがでしたでしょうか?
treby:きのこるエフエムでは番組へのお便りをお待ちしております。お便りはきのこるエフエム公式Twitterアカウントへのリプライか、「(ハッシュタグ)#きのこる」をつけてリツイートしてください。お待ちしております。
banjun:待ってまーす。
treby:2回目のリモート収録でしたけどいかがでしたでしょうか?
banjun:そうね。あれですか、ゲストがいないという。こういうの虚無回って言うらしいですよ。
treby:虚無回って言うんだ(笑)
一応ね、今回ミュートでしてるんですけど、一応外野がいるらしいっていうことでね。
banjun:ああそうね。それはリモート収録のちょっと面白いとこかもしれないですね。
treby:ただ聞くだけの人がいて。またなんか不思議な感じはありますけどね。次回とかはこのリモートやるにしても、ゲストなりなんなり呼んでやってみましょうかね。
banjun:うん。ゲスト入れてリモートで収録もやれるとちょっといいかもしれないですね。
treby:きっと新しいスタイルが開拓していけるんじゃないかなと思いますけど、やっていきましょう。
banjun:そうね。ゲストなし虚無回だからこそカジュアルにやって、短いのをすっと出せるみたいな、というところを最初利点として挙げてたような気もしたんですけれども。
しゃべってみるとそこそこ長いよねとかって思いながら。ゲストとかもサクッと来てサクッと話してくみたいなのができると面白いかもしれないですね。
treby:それではこの番組はマネジメントに攻めるtrebyと、
banjun:スペシャリストになりたいbanjunでお送りしました。
treby:また次回の配信をご期待ください。
treby&banjun:バイバーイ。