Laravel-adminの投稿画面で記事のIDを取得する方法

Laravel-admin のバージョンが上がり、form メソッドの引数に記事 ID が渡らなくなりました。

(少なくとも 1.8 から。もっと以前のバージョンで既にそうなっているかもしれません)

そこで、記事の ID を取得する方法です。

私のケースでは、他の投稿者の記事を編集できないように制御したかったです。

ID を取得するには、記事のパスが article だった場合

request()->route()->parameters['article']

で取得できます。

また、他の投稿者の記事を編集しようとした場合に 404 に飛ばしたければ

記事のテーブルに admin_user_id のカラムを用意して

form メソッドの先頭とかで

if ($form->isEditing()) {
    $articleId = request()->route()->parameters['article'];
    $thisArticleAdminUserId = Article::where('id', $articleId)->first()->admin_user_id;

    if ($thisArticleAdminUserId !== Admin::user()->id) {
        abort(403);
    }
}

とすることで制御することができます。

また、そもそも一覧(grid)に表示しない場合は

grid の先頭とかで

$grid->model()->where('admin_user_id', '=', Admin::user()->id);

とすることで、一覧には自分が投稿した記事しか表示されないようにできます。

【個人と組織が共にイノベーションする時代〜注目される複業・兼業の働き方〜】に参加しました

個人と組織が共にイノベーションする時代〜注目される複業・兼業の働き方〜
https://flexy.connpass.com/event/216837/
に行ってきたので、そのときのレポート

登壇者

  • 株式会社レクター 取締役 広木 大地 様
  • 株式会社BuySell Technologies 取締役CTO 今村 雅幸 様
  • 株式会社カオナビ CTO 松下 雅和 様

トークテーマ1;「個人としての複業・兼業」

広木さん
「今村さんとか復業とか兼業について思いとかありますか?」

今村さん
「基本的に推奨でいいと思っていて、どういう複業をするかだと思う。
それこそ、本業に生かせるものとか。
どのレイヤーの人でもだと思うが、基本的に 1 社のプロダクトのみ見ている状態の場合、限界がある。
他の会社はどうやってるんだろうとか、どうすればよりよくできるか?というところを見て、
本業にいかせたりすればいいと思っている。」

広木さん
「ご自身のキャリアの中で、目の前が開けたなっていうときに他の会社を見たりしたこととかあったんですか?」

今村さん
「ありましたね。2 つあって、自分で事業をやったことと、
あとは、同じような会社さんのヘルプに入ったこと。2 つとも、よかったと思う。
自分と知り合いの 2 人でやってる会社もあれば、採用したい技術スタックがあるが、
この技術はどこまで使えるのか?とか思ったときに触れたりしたので良かったと思う。
マネジメントの観点からいうと、同じことをしても、いる人によって上手くいくいかないというところが感じられたのでよかった。
そういう意味で、よそのとこの環境を身を持って知るっていうのは良い。
自分の会社で考えていることが全てではない、というのが感じられた」

広木さん
「何歳くらいのときの話ですか?」

今村さん
「27 歳くらいですね。」

広木さん
「そのくらいのタイミングで知れたのが良かったんですね」

今村さん
「そうですね。自分のやってることが全て正しいと思うが、そうじゃないのが分かったので良かった」

広木さん
「松下さんはご自身のキャリアで何かありますか?書籍とか書いてますが。」

松下さん
「そうですね。書籍ではないんですが、卒業した大学のゼミを手伝ったことがあった。
改めて、大学時代とは違う視点(社会への意義とか)が見れたので良かった」

広木さん
「リカレント教育じゃないが、研究室に久しぶりに顔出してみるとかも刺激があるかもですね。
松下さんのところでは、複業を推奨しているんですか?」

松下さん
「そうですね。推奨していて、自分の好きなことをして収入を増やすのもいいし、
エンジニアとしていろんな会社をみるのもメリットが大きいと思います。
web 系以外の製造業とかも知れるので、面白いし、自分のキャリアにもなると思う。」

広木さん
「複業しますって言ったらめちゃめちゃ忙しくなると思うかもしれないが、どうですか?」

松下さん
「カオナビでは、残業するのが悪のような文化があるので、会社としては仕組みが整っています。」

広木さん
「今村さんのところでは、前職とかで、兼業してる人がかなり忙しくなっちゃったみたいなことはないですか?」

今村さん
「前職だと複業らしい複業はしていなくて、本業にコミットしていたので、
土日で基本的にお手伝いするみたいなことがあったんで、忙しいのは忙しいけど、
もし平日もやったらコンテキストスイッチとか大変だなって思います」

広木さん
「松下さんはどうですか?平日の時間を使っていたんですか?」

松下さん
「そんなに大変ではないですね。1 時間とかくらいなので。」

広木さん
「お二人の話を聞くと、お金が儲かりそうだなっていうよりは、
自分の興味あることを学んだり、成長のためにやるんだったらいいんじゃないのっていうことなんですかね」

今村さん
「その通りですね。人によると思うんですけど、お金というよりは経験を積みたいって人はいますね。
なんだかんだ経験のほうがプラスになってたりしますね」

広木さん
「どこでもいいから複業したいよっていうよりは、
もしかしたら転職先候補とか、知りたいこととかで複業してみるとお得かもですね。
Flexy さんも複業してから転職するとかもあるらしいです。
僕もいろんな会社を手伝わさせてもらって、
世の中のエンジニアが抱えてる課題とかを目にすることが多くなって
全体感がわかって一般論とかも言えるようになったんで、たくさんの会社をみるっていいですよね」

今村さん
「井の中の蛙にならないのが大事ですね。
自分の力が本当に社会で役立つのかっていうのを確認するためにもいいですね」

広木さん
「組織として複業をどう活用するかみたいな話も今日しますが、
もし今日 YouTube みてらっしゃる方で個人として複業に質問やコメントがある方は教えてくれるとうれしいです。
まだ 3 年経ってないくらいのジュニアの人で、ちょっとお金ほしいから複業したいなって思っている人への注意点とかありますか?」

今村さん
「これは後半の話題に関わるかもですが、どの会社の複業をするかって、メインでやってる会社にとっては本人が思っている以上に重要だと思う。
例えば、競合の手伝いをしてたことになったとか、労働時間とか。気をつけたほうがいいなと思った。
複業の仕組みが整ってない会社ほど注意したほうがいいと思う。
だれかが注意してくれるとかは少ないので、細かいルールがある会社のほうがいいし、そういうのがないと気をつけたほうがいい。
それやってダメになって本業に影響が出たりしないように」

広木さん
「松下さんは複業始める人に何かあります?」

松下さん
「そうですね。本当に支障がないのかを考えたほうがいい。
例えば、株に張り付いて本業に支障が出てるとかあると思うが、複業でも同じことだと思うので
本業に影響がでないか考えたほうがいい。徐々に負荷を上げるとか。」

広木さん
「いま質問が来ていて、経験が浅いが複業できますか?という質問が来てますが、どうですか。」

今村さん
「そもそも本業で信頼値があってこそなので、かつ成果を出しているかで、
複業先の雇う側からしても、みんなそういうところを考えると思う。
そのベースを築くという意味でも。」

松下さん
「自分も同意で、やっぱり本業での信頼が大事だと思う。
本業で意見が通りにくいとかの状況になっちゃわないようにしないといけない。」

広木さん
「これ難しいですよね。例えば 3 年目でスキルがある人でも会社の中だとなかなか給料上がらない人とかいますよね。
そんな中で複業で 10 万もらえますとか言われると、考えちゃうことあると思う。
僕としては、トラブルがなければいいなと思う。
ふらっと知ってる会社だから契約しちゃったとか、反社チェックは自分でしないといけない。
Flexy さんの会社を通したりすると楽だよねとか。
もしかしたら始めるときに、本当に直でやっちゃうと困ることがあるので、間に会社を挟んだほうがいいかもしれないし、
ちょっとずつ時間を伸ばすとかが良いと思う」

今村さん
「そうですね。契約書とかも読めないと思うので、仲介とか挟んだほうがいいと思う」

広木さん
「学生のときに直でやりとりしてると、怪しい会社とかも経験してたので。笑
それで学んできたんで、僕はやったらいいんじゃない?とは自分は思うけど、
自分のキャパとのバランスの器用さは持ってたほうがいいかもですね」

広木さん
「さて、次のテーマにいけたらと思います。」

トークテーマ2;「組織としての複業・兼業」

 

広木さん
「複業が普及してきて、組織としての付き合い方を聞いていきたいと思います。」

松下さん
「カオナビとしては、社長がそもそも正しい働き方をしていれば複業しちゃだめな理由がわからないというスタンス。
複業先で得た知見を還元してくれるし、その人にとっても良い人生になる。
お互いにとってメリットのある制度になっている。温泉で働いてる人もいますね」

広木さん
「温泉で働くのいいですね。リモートが普及してきて、趣味をしながら仕事とかもできるかもですね。
そういうのが当たり前になってきたときに、私温泉で働きたいので転職しますとか、そういうネガティヴな面ってありますか?」

松下さん
「相互選択関係という文化があって、企業と個人の相互にとって良いものを正としようという考え方がある。
そこで、転職したほうがその人のためになると考えるなら、それは正しいと思っている。
もちろん抜けられるのは痛手だが、そういうもんだと思っている。」

広木さん
「ロイヤリティーよりもエンゲージってことですね。
そういうのを作るのって結構難しいと思うんですけど、苦労とかありますか?」

松下さん
「属人性を排除しないと、その人が抜けると仕事できないとなるので、
人の入れ替わりを許容できる体制を作っていかないといけないなと思います。」

広木さん
「属人化減らす話で、俺いなくても回るから辞めてもいいかなって思う人もいると思うが、どうですか?」

松下さん
「帰属意識のバランスが大事だと思う。カオナビで働きたいっていう気持ちをどれだけ提供できるかだと思っている。」

広木さん
「いまどのくらいの人の割合が複業されてるんですか?」

松下さん
「5, 6 人に一人くらいしてますね。」

広木さん
「残業時間が少ない分、複業してるってことなんですかね。
ちなみに、今村さんがおっしゃってたような、複業先の競合調査みたいなチェックとかしているんですか?」

松下さん
「稟議を通してチェックしてますね。複業じゃないかとか、業務時間が本業に影響しないかとか.」

広木さん
「ちなみにどれくらいの時間なら良いんですか?」

松下さん
「月に 20,30 くらいだといいですけど、40,50 になってくると土日潰して残業とかになるので、考えますね」

広木さん
「月に 20,30 くらいの複業を受け入れるってことはカオナビさんではしているんですか?」

松下さん
「まだあまりできていなくて、週 3 本業で 2 日は複業って人はいますね。それ以上の人はまだいないですね。」

広木さん
「複業先って、カオナビさんみたいに残業しない企業だと、時間が合わなくなってくると思う。
本業後に複業を受け入れると、残業してしなきゃいけないみたいな状況になると思いますが、どうですか?」

松下さん
「スーパーフレックスという制度があるので、そこは柔軟にしている。
たとえば海外で働いている人もいて昼夜逆転もしている。」

広木さん
「複業を許可するしないという部分について、これまで取り組んできたことありますか?」

今村さん
「許可せざるおえないという感じですね。経営目線でいうと、本人を守るということのリスクヘッジを考えている。
カオナビさんと同じで稼働時間とか。最低限の仕組みは用意したいと思っている。
会社としては、推奨するというよりは、禁止できないという感じですね。
複業した結果転職しますって人もいましたし、その前提で自社が良いと思ってくれたほうがいいとか。」

広木さん
「実際いま聴いてらっしゃるかたで、複業を許可せざるおえないとかあると思います。
例えば採用してて、
「複業していいですか?」って聞かれて
「ダメですよ」ってなると音信不通になったりする。
さっき松下さんがおっしゃってたように相互選択の話も作るのが大変で、ポンポンやめちゃうみたいな話があるので、難しいですよね。
複業取り入れようとしている会社の人もいると思いますが、契約形態とかって絞ったりするんですか?」

松下さん
「そこは絞ってないですね。正社員は NG ですが。」

広木さん
「複業の申請を断ったこととかあります?」

今村さん
「98%くらいは通ってますね。残りは、それこそ競合をやろうとしてるとか。まぁでもほとんど通してますね。」

広木さん
「難しいなと思うのが、IT コングロマリットとかあるので、実は競合になりますとかありそうですね。
カオナビさんとかどうですか?例えば HR テック NG とか。」

松下さん
「そうですね、HR テックがどこまでかというのは難しいですが。
一部かぶってるところとかあるので、難しいですよね。」

広木さん
「急に始めるとこもありますよね。例えば Wantedly さんが新しいのを始めたから途中からダメとか。そういうことありましたか?」

松下さん
「これまではないですが、気をつけていかないといけないなとか。」

広木さん
「競合から来てくれる分には歓迎ですか?」

今村さん
「僕らは歓迎ですね。もちろんビジネスのコアになるノウハウとか関わると事件になるので、
ルールを細かくしたりしてリスクヘッジはしています。」

広木さん
「質問がありますね。CA は社内複業するようになった。そういうのどう思います?」

今村さん
「シンプルに、外でやって辞められるなら中でやったほうがいいと思いますね。
あとは規模もありますしね。規模が大きいと成立するとか。」

広木さん
「違法残業とかに繋がる可能性もあるから、そういうの大変だなとは思いますね。
松下さんの会社でカオナビさんで事業を跨いで複業とかありますか?」

松下さん
「あまりないですね。スクラムマスターとかは横断的にやらないといけない人はいますが。」

広木さん
「若い内からいろんな経験積みたいので焦ってますみたいなコメントきてますね」

今村さん
「SNS とか普及してきて、活躍している人とか広告とかもあるので、焦る気持ちとか昔に比べてあるかもですね。
やっぱり与えられたフィールドでしっかりと評価される良い会社なんだとしたら、そこでしっかり成果を出したほうがいいかなと思う。
特に若いうちは。」

広木さん
「エンジニア業界だと転職あたりまえってありますけど、世の中で複業が広まったとしたら
時間的余裕で別なことしましょうとかあるかもだし、定年後に短い時間で働くとかも増えていくかと思って、
エンジニア・デザイナーも part time job の人が増えていくと思う。
そういうことで考えていることってありますか?」

今村さん
「ノウハウを持ってるベテランというふうに仮定するのであれば、
どううまく経験や知識をうまく組織に取り入れるのかみたいな仕組み作りはブラッシュアップできるのかなと思う。
例えば技術顧問とか、同じ時間を過ごしてても組織への還元力の違いとかあると思うんですよね。
何をすればいいのかっていうのはもっと議論されてもいいかなと思います。僕自身も模索中ですね。」

広木さん
「カオナビさんとか、将来複業の人が増えていく社会にどういう戦略を持ってるとかありますか?」

松下さん
「カオナビとしては、その人自身のポートフォリオみたいなものが組織に帰属してしまうところを
転職先にも渡すことで個人のスキルや能力をポータブルに持ち運べるとかしていきたいなと思います。」

広木さん
「YouTube で質問が来てます。複業人材で魅力的な人ってどんな人ですか?」

今村さん
「一番わかりやすいのは、何かのスペシャリストだとわかりやすいですね。
どのスキルでもいいんだが、この人だったら課題解決してくれそうとか、そういう人は魅力的ですね。」

広木さん
「具体的にこういう課題解決をしたことあります、っていう人のほうが嬉しい?」

今村さん
「どういう課題を解決してきたか、っていうのをちゃんと語れると良いと思う。」

広木さん
「松下さんはこれから複業を受け入れると思いますが、採用したいなと思う人はどんな人ですか?」

松下さん
「今村さんと同じなんですが、オンボーディングをどれだけ早く終えられるかとか、企業の文化に合うとかみてますね」

広木さん
「正直めっちゃマッチしてる人いたら口説きますよね。
採用する側からしたら、複業できて採用したいって理想的だと思うんですよね。」

今村さん
「いたかいなかったかでいうと、いましたね。フリーランスの人を正社員にしたりとか。」

広木さん
「難しいですよね。複業して経験積んで帰ってきてほしい面もあるけど、
来た側からすると、複業から正社員になってほしいって思いますし。」

広木さん
「質問きてますね。
60歳定年間近なメーカーのエンジニアです。経験を別の業界で活かせることを夢見ています。私をうまく使ってって感じです。」

今村さん
「これまさに、似たような人を採用したことあります。
ソフトウェア企業がハードウェアやるってなるとノウハウがないため、違う業界の人を採用したりした。
その人としても、既存の知識を違う業界に役立たせられるので、そういう人は意外にいると思う。」

広木さん
「そういう人は多そうですね。
人材会社の人は、言語や経験年数がマッチしてるとかを見ているが、
CTO の話きくと、違う業界の人がパフォーマンス発揮してくれたとかあるので、
こういうケースは全然あると思う。」

クロージング

広木さん
「では、今回お話しての感じたこととかお願いします」

今村さん
「複業は 1 エンジニアとして良い機会というスタンスは変わらないです。
エンジニアにとっては複業の機会っていうのは増えていくと思う。
コロナになって、リモートワークも根づき出しているので、やりやすいと思う。
ある程度他の世界を見てチャレンジするのは良いと思う。」

松下さん
「カオナビとしては兼業推奨しているし、これからは特化した人が兼業として来ていただくこともある。
それを当たり前にしていきたいと思う。。
いろんな方がいろんな働き方ができる世界がカオナビからできれば良いと思う。」

広木さん
「やっぱり経営者になったときに、この変化の対応は企業にとって強みにしたいが弱みにしたくないので
そういうバランスが求められていると思う。
そういうのをうまく活用できている事例とかノウハウをキャッチアップしていくのが今後必要かなぁと思う。」

『【オンライン開催】新しい時代のヒントがここに~最適化されたアジャイル組織とは~』に行ってきました

【オンライン開催】新しい時代のヒントがここに~最適化されたアジャイル組織とは~

https://flexy.connpass.com/event/208571/

に参加してきたので、そのときのレポート

トークテーマ1;「ウィズコロナでの個人やチームの働き方と開発組織の推移と変化について」

佐々木さん

去年の 4 月頃は、コロナの影響で学校が休校になっていた。

そこから、Classi の使われ方が変わってきた。

当初は、ユーザーがサービスにつながらない等の問題が生じ、社内が大混乱した。

渡辺さん

コロナによって、これまで以上に使われるサービスになったと。

佐々木さん

これまでは出社が当たり前だったこともあって、

ある程度会話をするなかでそういう溝が埋められていた。

リモートワークになると、会話が減り、テキストでやり取りする。

すると、これまで以上に溝を埋めるのが難しくなった。

エンジニアはテキストに慣れているが、それ以外の人は慣れていない。

そんな中で、エンジニアの意見を聞いたり、マーケターはテキストで降りてこない情報があったりした。

そこで、まだ最適な解は見つけられていないが、そういうことがあった。

リモートになると、伝えなければいけないことがテキストになる。

テキストで十分な情報を伝えることが難しいなと思っている。

高野さん

  • 端的にいうと、売り上げが激減した。
  • 開発チームのパフォーマンスが低下した。
    • 端的に言うと、1ヶ月あがりのタスクの処理量が減った。
  • コミュニケーションの悪化
    • 具体的に言うと喧嘩とか。プライベートチャットの増大など。

渡辺さん

これをやったら良くなったとかありますか?

高野さん

何か依頼とかするときに、テキストのコミュニケーションは冷たい印象を抱くことが多い。

なので、何かを依頼するのではなく、そうせざる得ない状態にする。

slack でアラートを出すとか。

最近意識しているのは絵文字。

「やってください」と「やってください :bow:」は意味が全然違う。

渡辺さん

佐々木さんのところって、イシューを解決しようみたいなところで

広め方はどのようにされていましたか?

佐々木さん

弊社でもやりとりが険悪になることがあった。

何かしら議論が発生した場合に、それは何のためにやっているのか?ということに立ち返るようにした。

意見が強く感じるかもしれないが、目的はこうだよねっていうのを意識するようにしている。

絵文字はここ 1 年かなり増えた。

エンジニアが使ってる絵文字と、マーケターやバックオフィスが使ってる絵文字が全然違う。

エンジニアはハイコンテクストな絵文字が多い。

他の職種の人からしたらあんまり伝わらないなと思う()

渡辺さん

高野さんの話で、開発速度は改善しましたか?

高野さん

改善しました。

やったことは、まずエンジニアに対して、朝今日達成することを書き込むチャンネルを作った

書いてない人には、書いてねっていう絵文字をつけるようにした。

また、エンジニアが参加しないような、非エンジニアの MTG にも参加してもらうようになった。

佐々木さん

弊社では slack を使っているが、slack の重要性が増したと思う。

slack に登場しないと、そもそもあの人は何やってるんだろうということになる。

slack に定期的に顔を出すようにする。

渡辺さん

非エンジニア系の人がメールの感覚で書き込むのをみて「なんだこれ」ってなることありますよね。

高野さん

弊社はツールでいうと、Atlassian が良かった。

みんなの仕事を Atlassian に書いてねっていうことをした。

ロードマップと違うことをやっても良いけど、それが見えないのは良くないよねって思った。

渡辺さん

弊社はチケット管理だと Clickup というのを使っている。

コロナ前では付箋とか使ってたけど、リモートで Miro というツールを使うようにした。

以前まで付箋だと写真撮っても流れちゃったけど、Miro だとデータとして残るので良いと思っている。

開発以外の人も使うようになって、社内のリテラシーが上がったのも良いことだと思っている。

質疑応答

Q.

チーム横串でのコミュニケーションを活性化させる方法が知りたいです!

A.

佐々木さん

まさに課題を感じている。

最初に紹介したようにチームがいくつかある。

チーム内のコミュニケーションはうまくいってると思う。

朝会したり、おやつ会をしたりしている。

一方で、チーム外の人のコミュニケーションは難しい。

一回、discord を取り入れたことがある。ここで雑談しましょうという位置付け。

だが、ツールが増えたことにより廃れていった。

高野さん

会議が大事だと思っている。

エンジニアチームを非エンジニアチームの MTG に参加させる例をさきほど紹介しましたが、

良い例と悪い例がある。

うまくいったのは、マーケティングの MTG

そもそも、誰に・どのような訴え方をするかという内容だったので

メールの自動化とかエンジニアからも意見が出ることがあった。

また、すぐに行動に移せるので、効果も分かる。

Q.

アジャイル開発自体はフルリモートでもうまくいくケースはあると思うのですが、企業風土といったところは薄まってしまうケースがあると思うのですが、そのような課題をどのように解決されましたか?

A.

佐々木さん

確かにそうだなと思って、薄まる傾向にあるなと思った。

リモートになったことで透明性があがったこともあった。

会議で参加してる人だけが知ってることが決まっているとかあるが

リモートになったら録画されてたり議事録が残ったりする。

高野さん

企業風土が薄まると言う面で、新入社員とかでパフォーマンスが下がったとかはないのだが

上司の役割としては、面白くしていくこと。

どういった形で情報を受け取るのがいいのか、音声・ビジュアルなど。

渡辺さん

従業員の半分以上が、店舗で働いている人だったりします。

なのでコロナ以前からその問題はあった。

コロナ以前から対策をするようにしていた。


トークテーマ2;「アフターコロナに向けた個人やチームの働き方と開発組織について」

高野さん

先ほど言いましたけど、薄くなるという意味でいうと

時間の感覚が薄くなったと思う。

飽きない・面白い職場ってどんなものだろうと思うのですが

  • 決定権
  • 多様性
    • 女性や外国人などのマイノリティを増やしたいと思っている。

渡辺さん

多様性というのは重要なテーマだと思います。

佐々木さん

このテーマ難しいなと思っているのだが、

課題感を感じているのは、

  • 会社への所属意識
  • 新しい人が入ったときのオンボーディング

を考えなければならないテーマだなと思っている。

また、リモートワークツールならではのコミュニケーションにも慣れてきた。

ミーティング終わりに手を振るということをしている。

これが結構いい。

渡辺さん

アフターコロナにおける、オンボーディングの難しさというのを感じている。

渡辺さん

ドキュメント管理はアフターコロナで何か感じているものはありますか?

佐々木さん

ドキュメント自体は変わらないだろうなと思っているが、

これまで以上にドキュメントが大事だと思う。

コロナ以前だと、その場にいるひとに「これどうなってましたっけ?」ということが聞けたけど

リモートになったらドキュメントの重要性が上がってくる。

質疑応答

Q.

ドキュメントで、うまく伝わらないとかありますか?

A.

高野さん

アプリ的な UI がいいと思う。

この 1 年でエンジニアの文章至上主義やディスレクシアな人がいる。

そういう人たちのために、違った媒体で伝えるのが重要で

そこで使ってるのが Figma です。

Q.

メインのプロダクト開発とは別に、スポット的な開発プロジェクト(受託など)が発生した場合にメインとプロダクト開発と同じようにスプリントを採用しますか?

高野さん

バグは起きたら他の全てを後回しにしてやったりもする。

重要なのは、2 週間の間何も入れないでそのタスクだけをやるというのに対しては懐疑的

佐々木さん

スクラムとかのほうが、スポット的なものが入ってきたときに判断がつくのでいいと思っている。

コロナ禍でリフレッシュする個人的方法まとめ

コロナ禍で生活がガラッと変わったので

そんな中、私がやっているリフレッシュする方法の個人的まとめです。

交互浴

私はサウナに行って交互浴するのが好きなのですが

あまり行けなくなってしまったので

家で熱めにお湯を沸かして、シャワーで水を浴びて擬似交互浴のようなことをやっています。

湯船 -> 水シャワー の後は、浴槽の壁に座って少し風呂場のドアを開けると外気浴っぽいこともできます。

これを何度か繰り返し、最後は風呂を出てベランダで外気浴するとスッキリします。

植物育てる

私は部屋の中とベランダで植物を育てています。

部屋の中には観葉植物を、ベランダではプランターで花を育てています。

「あっ、今日水まき忘れた」というときでも、在宅ワークなのでいつでも水まきができます。

調べてみると、水をまくくらいで手間をあまりかけずに簡単に育てられる花の品種もあります。

花が咲いたら、とても癒しです。

ドライブ/車中泊

ドライブをして景色を見たりするのも楽しいです。

また、車中泊をするとプチアウトドア気分を味わえるので楽しいです。

車の後部座席を倒してそこで食べるご飯はいつもと違って美味しく感じます。

現地で売っている食べ物を選ぶのも楽しいですよね。

調べてみると、車中泊でよく知られているパーキングやサービスエリア、道の駅などもあります。

換気には注意してください

コーヒー

オフィスに出社しているときは自販機のコーヒーを買っていたのですが

在宅になったので家でコーヒーを淹れています

豆・砂糖・ミルクなど調合量を調節して、自分好みの味を探すのは楽しいです。

僕は以前までブラック派だったのですが、家でコーヒーを淹れるようになってから

砂糖・ミルクの美味しさに気付きました。

自転車/ジョギング/散歩

在宅ワークになって体を動かす機会がかなり減りました。

僕はロードバイクに乗るのが好きなのですが、最近徐々に暖かくなってきてちょうど良い気温になってきました。

自転車で川沿いを走ったり、ジョギングや散歩で家の近くを周ったりするのも楽しいです。

家にいると日光をあまり浴びないのですが、少しの時間外で日光を浴びるだけでも、かなりリフレッシュできます。

ツボ押し/マッサージ

私はマッサージ屋でアルバイトをしていた経験があるのですが

在宅ワーク中に頭のツボを押したりしてマッサージしています。

オフィスではなかなかできなかったですが、家だと周りの目を気にしないですむのでできます。

マッサージの経験がなくても、自分で押せるツボの本とかあるので、参考になると思います。

uber eats

uber eats 便利ですよね。簡単に美味しいものが届く。

居酒屋に飲みに行ったりしなくなって出費が減ったので、その分 uber eats を頼んだりしています。

家で料理をしているとレパートリーがなくなってくるので、そういう時にも便利ですね。

公園や河原でご飯

休日の天気が良い日などは、外の人がいない場所でご飯を食べたりしています。

プチアウトドア感があって楽しいです。

料理

簡単なものしか作っていませんが、時間もあるので料理を少ししています。

以前まで全然料理していませんでしたが、料理してみると楽しいです。

自分好みの味付けを探したり、スーパーで「あっ、今日これが安い」みたいな発見も楽しいですね。

勉強

休日に家にいる時間が増えたので、溜まっていた調べごとを消化しています。

前々から気になっていたことを消化できていってるので、スッキリします。

ゲーム

家で余暇の時間を過ごす手段としては、ゲームはとても手軽で楽しいですね。

オンラインの環境もかなり整っているので、自宅同士で友達と一緒に遊ぶのも簡単です。

ゲームをしながら Discord 等で音声をつないで喋りながらプレイしています。

僕がやってるゲームを紹介すると

  • ボードゲームアリーナ(https://boardgamearena.com/
    世界中のいろんなボードゲームがオンラインで遊べます。
    数がたくさんあるので、飽きたらゲームを変えてずっと遊べます。
    コロナ禍で需要が増えたのか、たまにサーバーが落ちることがありますが、
    それを差し引いても十分楽しめます。
    優良サイトなので、課金したくなります。(無料でできるゲームと課金したらできるようになるゲームがある)
  • 家庭用ゲーム機
    PS4, Nintendo Switch などですね。
    こちらは PC にはないクオリティを提供してくれて楽しいです。
  • steam
    PC でできるゲームのプラットフォームのようなものです。
    世界中の面白いゲームが探せます。
    オンラインマルチプレイできるものや、シングルプレイできるものがあります。

インターネットで何か新しいことを始める

自宅でできることと言ったらインターネットが便利ですよね。

何か新しいことを始めてみると面白いと思います。

  • YouTube 投稿
  • ブログ投稿
  • SNS
  • オンライン飲み会を募集しているところに参加してみる
  • その他(何か良いものがあれば教えてください!)

以上、コロナ禍でのリフレッシュ方法個人的まとめでした!

何かの役にたてば幸いです!

【DMM meetup #25 〜動画配信事業部のシステムカイゼン実録〜】に参加しました

DMM meetup #25 ~動画配信事業部のシステムカイゼン実録~

https://dmm.connpass.com/event/202838/

に参加してきたので、そのときのレポート

事業部紹介からのはじまりの軌跡

動画サービスが、DMM において最初期に作られたサービスである

つまり、レガシーな状態がある。

2017

社長が変わって、プロダクトファーストな文化になった。

ある日、動画事業部で EC をやってくれと言われた。

メンバー全員で、ユーザは何に困っているのかを考えた。

仕組みを作ることで、他事業も高速に事業を成長させられるようにしようとなった。


これまでのKAIZEN紹介

開発プロセスの改善

以前の環境

  • LAMP 環境
  • CVS
  • 本番デプロイは rsync

開発環境が使いづらい

  • クラウド上に環境をつくることで、自由に利用できるようにした
  • 環境構成をコード化して属人化を解消
  • 常に最新に環境を保てるようにした

バージョン管理に難あり

  • git, github の導入
  • ブランチ運用の整理をした
  • レビュー効率も上がった

ロールバックが大変

以前までは

  • 巻き戻した状態で再コミット -> 再度 rsync
  • 対象ファイルが多いと大変

今では

  • commit revert するだけで OK

異常に気付きにくく、調査もしづらい

以前までは

  • 数百台のサーバーがそれぞれにログを吐いている
  • サーバーメトリクスもとっていない

今は

  • ログはクラウド保存
  • メトリクスも取れる
  • 通知を slack に飛ばすようにした

動画ECサービスのリプレイスを目指して()

DMM 動画について

国内トップクラスの作品数を誇る動画配信サービス

現在のシステム構成

LB -> WebServer -> DB

という構成

WebServer は事業部毎にサーバーが分かれている

  • LB からの応答のみするサーバー
  • LB からの応答も受けるし、DB 接続もするサーバー

の種類がある

システムの課題

  • 最初期から運用されているシステムのため、仕様を把握し切れていない状態
  • アーキテクチャが定まっていないため、機能追加に時間がかかる

システムの改善内容

少しずつ修正するのは大変(どこで障害が起こるか分からない)だったので、

リプレイスをしようとなった。

  • API の刷新
  • フロントエンドの刷新
  • DB スキーマ最適化、バージョン更新、クラウド化

API の刷新の進め方

マイクロサービスアーキテクチャを採用


マルチモジュールを利用したプレイヤー共通化作戦

Android アプリ の話

アプリについて

  • 視聴機能だけのアプリ(playstore
  • ストア機能付きのアプリ

この 2 つはソースコードは別々なため、機能追加の際に工数がかかる。

ソースセット共通化アセット

共通の機能については、共通ソースセット内に作る

昔は、app モジュールに全機能があり、密結合していた

今は、マルチモジュール化している

  • 画面・機能毎に分割

新卒一年目のエンジニアもKAIZENしてみた!

動画の分析を、先輩に相談しながら進めていた。

リモートワークでコミュニケーションがとりづらかった。

そこで、動画分析をするツールを自分で作った。

結果、早く仕事を終わらせることができた。

Engineer Career Study #1 – スペシャリストとしてのキャリアを拓くに参加しました

Engineer Career Study #1 – スペシャリストとしてのキャリアを拓く

https://forkwell.connpass.com/event/200159/

に参加したので、そのときのレポートです。

 

オープニングセッション:古川陽介「スペシャリストになる覚悟」(20分)

スペシャリストとマネジメントは対立しているのか?

 → 両者に求められるものは同じ。どちらもマネジメントの要素を含んでいる。

  • スペシャリスト
    • 個人で成果を出す
  • マネジメント
    • 組織の成果に責任をもつ

この2つは対立していないし、境界線もはっきりしていない。

 

ソフトウェア開発において、個人で動くことは少ない。

また、マネージャーもソフトウェアの知識が必要。

両方において、人をリーディングしたり育成したりするというのは共通

そこで、マネージャーをやりたくないと思うのはもったいない。

 

しかし、両方やるのは大変。。。

 

古川さんの例

  • シニアエンジニアとして
    • アプリケーションの開発に入るのは少ない
    • プロトタイプ開発がメイン
  • マネージャーとして
    • メンバーのタスクアサイン
    • 採用・育成
    • コミュニティ作り

 

つまり、スペシャリストとマネージャー両方やるのは大変?

大変。しかし、両方やれることが大事。

そもそもスペシャリストになるにはどうすればいいのか?

古川さんの場合

リクルートにおけるシニアの要件

  • 社内外でエキスパートとして認知されること
  • その人が一人いるだけでプロダクト戦略が変わる

そういう人ができる人がシニアの要件。

スペシャリストになるために心がけること

  • 自分の責任にする
    • 以前、node.js 界隈は混乱していた
    • 当時、グローバルで起きていることを日本に伝えるしかなかった。
    • そこで、node.js io.js の差分をそれぞれフィードバックするように努めた。
    • 技術的に起こっていることを誰かに任せるのではなく、自分事にする。
  • 息を吐き続ける
    • 要はアウトプットし続けるということ
    • アウトプットし続けていたら、自然とインプットもできるようになる。
    • アウトプットのクオリティは上げ続けていく。
  • 何かしらのチャレンジを続ける
    • 最近は、マネージャーだけど毎日コードを書くのにチャレンジしている。
    • 常に何かやる。手を動かすことをやめない。
      • コンフォートゾーンに止まらないようにしている。

まとめ

マネージャーとスペシャリストは対立概念じゃない。

 → それを生かして共通項を見つけて行こう

 → しかし、両立するのは大変。だが、乗り越えればやりたいことができる。

スペシャリストになるには

  • 自分の責任にする
  • 息を吐き続ける
  • 何かしらのチャレンジを続ける

特別対談:「スペシャリストとしてのキャリアを拓く」

古川陽介さんパート

広木さん

node.js という領域を決めて走ったのが転機だったと思うが、どういう感覚で node.js に関わるようになったのか?」

古川さん

「楽しかった。やっていけばやっていくほど、こんなことができるんだというのが分かっていった。

そうしているうちに自然と。」

広木さん

node.js の実装って若干混乱していたスタートだし、激しい界隈だと思うが疲れないのか?」

古川さん

「疲れた感じはとてもある。コミュニティとして激しいし、変化も激しい。

最初はそれが気にならないくらい夢中だった」

広木さん

「スペシャリストってキャリアっていいなと思っている人にとって、没頭できるのはいいきっかけだと思いますね」

古川さん

「僕自身エンジニアコミュニティに育ててもらった。モチベーションの源泉だった。

一緒にやれる人を探すのはいいことだと思う」

広木さん

「内側でも外側でもオーガナイザーをやられていたので、その間でキャリアを積んでいったんですか?」

古川さん

「そうですそうです。」

松本亮介さんパート

広木さん

「すごい人に囲まれてたことが多いと思いすが、見るものを変えてたりしてたんですか?」

松本さん

「意識していると、それまで漠然とできないと思っていたことを意識すると具体的にできないことになる。

そうすると、あるときできるようになっていることに快感を感じる。

なのでひたすらそういう選択をしているというのはあるかもしれない」

広木さん

「サーバースペックについて論文に落としていくのは素敵だと思います。

ご自身の活動はどう定義づけていますか?」

松本さん

「エンジニアをやっていく中で、みんなが使っているものって良さや理由があると思う。

エンジニアと研究をしていくなかで、そういう部分を言語化して体系的にすることで、もっと狙っていいものを作れるのではないかと思っていた。また、言葉で明らかにしたかった。」

広木さん

「現在研究職のキャリアだと思うが、これから研究職目指している人にアドバイスありますか?」

松本さん

「自分の経験だとたまたまできたと思うので、一般化は難しいと思うが、いろいろ考えてきた

古川さんもおっしゃっていたが、自分が没頭できることを見つけて、それを社会に還元するようなサイクルを考えて言語化していけば、うまくやっていけると思う。」

和田 卓人さんパート

広木さん

「ご自身の中でキャリアを築いていくときの原理原則はありますか?」

和田さん

「スキルセットとしてはオールラウンダーではなくて技術に長けていた。得意不得意がはっきりしていた。

得意なものを伸ばし、不得意なものを得意なもので補うというのが合っていた。それが良かった」


アフタートーク

ここから先は forkwell 様に登録されている人だけが見れるコンテンツなので

ブログには書かないことにしました。

今回勉強会の運営をしてくださった forkwell 様ありがとうございました!

設計ナイト2020に参加してきました。

設計ナイト2020

https://kichijojipm.connpass.com/event/191220/

に参加してきたので、そのときのレポート

正直、設計に関して疎くて内容の 1 割くらいしか分からなかったのでメモ程度です。

かとじゅんさん発表

資料

https://speakerdeck.com/j5ik2o/event-sourcingwojie-shuo-suru

今日は、分散システムの設計パターンの話をします。

CQRS の話

DDD によるクエリサイドのペインについて

  • クエリ要件を満たすことでリポジトリが複雑になる
  • レスポンス用 DTO をリポジトリで組み立てるため、N + 1 クエリが発生しやすい
  • ドメインオブジェクトから DTO への変換が非効率

※これらのペインを飲み込めるのであれば、CQRS を採用する必要はない。

CQRS とは

リポジトリがステートを書くのではなく、イベントを書く

イベントをどう使うのか?

イベントというのは、そのとき起こったできごとを保持している

e.g. カートが作られたとか、誰が作ったとか。

そういうのが、git の commit log のようにどんどん溜まっていく

その歴史が大量になってくると、apply する等のときにコストが大きくなる。

イベントソーシングでない CRUD の場合はレイテンシが悪化しやすい。

なぜ C/Q を分けるのか?

一貫性/可用性

この表でも分かるように、扱いが違う

スケーラビリティ

コマンド
一般的な web サービスだと、write よりも read のほうが多い

CQRS の利点と欠点

利点

  • 最悪 write 系が落ちていても read 系が生きていれば、障害にならない。
  • 障害点が分離できる
  • コマンドとクエリを別々にスケールできる。

欠点

  • コストがかかる
    • 構成要素が多くなる
  • CQRS は複雑と言われることが多いが、従来モデルよりもある意味シンプルになる

CQRS でモデルがどう変わるか?

CQRS では、ドメインオブジェクトはドメインロジックを実行するためのシンプルなモデルとなる
ただし、全体の構造は複雑になる

非Event Sourcing での CQRS は色々難しい

CQRS/ES 対応分散システムフレームワーク

  • Akka
  • Akka.NET
  • proto.actor
    • リアクティブシステムが作れそうなのは Golang のみ

境界を引かない=非 CQRS にする

コストをかけてまで恩恵を受けられる想定がないのではれば

CQRS を避けるのも手段としてはあり。

Q & A

Q.

境界を引かない方法って、CQが混じった方法とどこが違うんでしょうか?

A.

極端な話すると、リポジトリをクエリ側で使わないようにする状態のこと

CQRS を使わない方針に倒したほうがいいということ

大まかな C/Q の役割はあるんだけど、明確に分けなくていいよということ

qsonaさん発表

資料

https://hackmd.io/@jnl1y8gDTkq7ywsLXpa6GQ/HkDGObSOP

GraphQL を利用したアプリケーションの設計パターンの話

GraphQL とは

web api を定義するための言語のようなもの

rest api の代わりになるようなもの

サーバー側では、1 つの目的に対して 1 つのエンドポイントがあるが

GraphQL ではエンドポイントは 1 つになる。

クライアントがクエリを宣言する = クライアントが自分で取得するデータを定義している

クライアントサイドの設計

リポジトリ層を作らない理由としては

GraphQL のメリットを殺してしまうから。

また、そもそもクライアントの read リポジトリは作りにくい。

Appllo Stack

colocation

子供のコンポーネントにも、GraphQL の フラグメントを持つ。

そうすると、親のコンポーネントが肥大化しなくて済む。

サーバーサイドの設計

rest api とそこまで変わらない。

Hasura

一言で言うと、PostgreSQL(など)のテーブル定義をするだけで GraphQL API が使える

Service to Service GraphQL

マイクロサービスとかやってると、サーバーで api 作ったけど

どこから使われてるから消しにくいみたいなことがある。

が、それを解決してくれる。

現役AIエンジニアが語る!AI業界のキャリアと勉強方法!に参加してきました

現役AIエンジニアが語る!AI業界のキャリアと勉強方法!

https://connpass.com/event/189680/

に参加してきたので、そのときのレポート

アジェンダ

  1. AI エンジニアとは
  2. AI 業界のキャリアマップ
  3. 転職話
  4. 勉強方法

AI エンジニアとは

AI エンジニアの仕事とは何か

いまの AI は人の判断を代替するようなことができる。

ドラえもんのような、自律型のようなことはできない。

そのためには、大量のデータが必要になってくる。

AI で使われている技術について

いま一番 hot な技術は DeepLearning

実際の AI の現場では、これらの技術を組み合わせながら

トライ & エラーを繰り返してチューニングしていく。

なぜここまで DeepLearning が発展したか

  • クラウドサービスが発展してきた
  • 計算パワーの向上
    • DL で扱うには計算パワーが必要になるのだが
    • ハードウェアの性能があがってきて、扱えるようになった。

AI エンジニアの案件などについて

何か AI で課題を抱えている人がいて、そこで案件が発生してくる。

だが、いきなり AI を開発することはできない。

AI は不確定要素が多いため、検証をたくさん行う。

AI 導入のフロー・タスク

AI エンジニアに求められるスキルセット

  • お客さんの課題を見極める能力
  • 分析結果とかをお客さんに説明できる能力
  • システムエンジニアの能力(現場で運用していく能力)

まとめ

現在の AI は人の判断基準の代替となる限定的な AI

AI 業界のキャリアマップ

勉強方法

資格取得に挑戦する

関連する技術を学ぶことができる。

履歴書に記載できる

注意したいことが、実務で使う前提で勉強すること

書籍等で自己学習

覚えたい技術をダイレクトに学べる

カンファレンス・セミナーで登壇する

強制的に勉強しなければならないので、成長できる。

Kaggle などのコンペに参加する

【オンライン配信】手段を目的化させない! マイクロサービスが必要な理由を改めて考える。に行ってきました

【オンライン配信】手段を目的化させない! マイクロサービスが必要な理由を改めて考える。

https://flexy.connpass.com/event/191830/

に参加してきたので、そのときのレポート

Speaker

寺田 佳央 様

サン・マイクロシステムズ所属時から日本における Java の普及活動を行う。現在はマイクロソフト・コーポレーションに所属しクラウド・アドボケイトとして、Java on Azure の利用促進・啓蒙活動を実施中。2016 7 月、日本人で 2 人目となる Java Champion に就任し、日本 Java ユーザ・グループの幹事でもある。

なぜ、マイクロサービスの導入が必要なのか?

メリットとしてよくあげられること

  • サービスごとに異なる技術を採用できる
  • 障害耐性・保守性が高い
    • どこで障害が発生しているのかがすぐに分かる。
    • すぐに障害を解消することができる。
  • スケール・冗長化が容易

モノリスとは?

全てのロジックが 1 つのサーバーに組み込まれている

マイクロサービスとは

ロジックや DB が分割されている

数々の事例と理由

いろんなベンチャー企業で、事例が生まれ、それを共有したことにより、広がっていった。

クックパッドや、LINE や、 メルカリなど。

一方、その事例を参考に導入してみたが、上手くいかない事例が上がった。

マイクロサービスの導入を見送るべき見せかけのメリット

  • デプロイ時の障害や停止時間を減らしたい
  • サーバ負荷を分散させたい
  • ソースコードがスパゲティになっているので解きほぐしたい
  • 予測できない将来の改修に備えたい
  • 今風の技術を取り入れることで人材採用のセールスポイントにしたい

これらの理由はパッと見マイクロサービスをする理由になりそうだが

深掘っていったら、本当にマイクロサービスの理由になるのか?

手段が目的化していないだろうか?

各社の事例から見える 3 つの要因

 

マイクロサービスの成功の本質とは?

田崎さん

マイクロサービスの成功の本質とはという部分についてありますか?

寺田さん

ビジネスを成功させるために使うのかどうか?だと思う。

マイクロサービスをやる!というよりは、会社のためにビジネスを成長させていく

運用や開発をやりやすくする。というのの手段としてマイクロサービスをやる、ということだと思います。

なので、マイクロサービスを成功させるというよりは、ビジネスを成功させるということだと思います。

田崎さん

事前に寺田様とお話させていただいたんですが。

今回はどんなところにフォーカスして話をしていきましょうか?

寺田さん

なんのためにそれをやるのかを考えたときに、

決してソリューションは 1 つではなくて、いろいろ考え方があるが

なぜそれをやるのか?を話せたらいいと思っている。

いきなり、マイクロサービス!とかではなくて、順を追っていって、その先にあるのがマイクロサービスだよねっていう

話ができればいいと思っている。

田崎さん

早速、その辺りのところを聞ければと思います。

成功するマイクロサービスのロードマップは、

具体的にどう判断していけばよいか?というテーマで話をさせていただければと思います。

新規でマイクロサービスをやるのか?もしくはマイグレーションさせていくのか?

という部分でお話を聞きたいです。

寺田さん

先ほど紹介させていただいたように、2014 年くらいからマイクロサービスが出てきたときから

キャッチアップをさせていただいているが、

当時からマイクロサービスのデザインパターンとかもあるが、

そういった情報を最初はキャッチアップして学んでいった。

ただ、いろいろ経験をやっていく上で思ったのが、いま世の中に出ている多くの情報というのは

新規でマイクロサービスをやっていったときの成功事例やベストプラクティスが出ているのかな?と思う。

一方で、既存のシステムをマイクロサービス化していくという話もあるが

そういう情報はまだまだ少ないと思う。

少ないというよりは、出せないしないし、そんなところにベストプラクティスはないのだと思う。

個々のエンタープライズのアプリケーションはまるっきり違うものなので、

それに対してこれがベストプラクティスですよっていうのはないと思っている。

なので、最初に話を聞くときは、それは新規ですか?既存のマイグレーションですか?ということを聞くようにしている。

難易度としては、マイグレーションのほうが圧倒的に難しい。

新規でやっていくのは、マイクロサービスのデザインパターンを適用できるところもあるが

マイグレーションのほうは、既存の運用や既存のエンジニアのスキルにも影響するので

マイグレーションはちゃんと考えないといけない。

Netflix の話でいうと、あんなに優秀なエンジニアがいるのに

マイクロサービス化に 5 年かかったと言っている。

それほど、マイグレーションするのは難しい。

成功するマイクロサービスのロードマップ

田崎さん

例えば、マイクロサービス化するのが決まっている会社があるとして

正解はないということですが、正解に近くためには、どのようにしていくのがいいのでしょうか?

以下のような step があると思います。

step1 として、ビジネス課題の明確化として、まずここが重要というのをお話いただけますか。

寺田さん

ソフトウェアでものを提供する際に、いろんなものがすぐに出てくる時代となっております。

いま何が企業にとってリスクかというと、

現状で提供しているもので止まっておくというのが一番リスクだと思う。

止まっておくというのは、

それに対してデジタルの力を使ってより便利なものを作ってしまうと

ユーザーはそっちに流れてしまう。

それはどの業種でも言える状態です。

なので、次のビジネスチャンス、新しいチャレンジ、他よりも先んじていろいろなことをやっていかないといけない。

いま一番競争が激しいのは自動車業界だと思う。

いままで自動車業界だと、これまでだと車だけ売っていけば良かった。

だがそれに対してデジタルなものを搭載してどんどん UX を高めていくと

それをやってるところとやっていかないところで、大幅に使い勝手が変わってくる。

いま、何をしないといけないかというと、今いるところが正しいと思わずに次にいかなければいけない。

また次にいち早く(リードタイムなく)辿りつかなければいけない。

田崎さん

たしかに、DX 時代というのも共通点がありそうですね。

組織の拡大やユーザに価値を早く提供するという部分でも関わってきそうです。

マイクロサービスというテーマで話をしましたが、

まず、会社の経営や事業の成長というのがファーストステップでありそうですね。

寺田さん

そうですね。

今の会社がいまよりもチャレンジしたいのか、そうでないのかが大きな出発点の違いだと思う。

チャレンジをすると失敗がつきものですが、

その失敗を乗り越えていけるのかというのが重要だと思います。

それがないと、難題や課題を乗り越えられないと思います。

田崎さん

では、ここの部分は十分に議論したと、

スピード感を持ってやっていかないといけないことが決まったとして

次の step に進むと、コストバランスというのが関わってくると思いますが

その点についてお願いします。

寺田さん

コストっていうのはいろんなところで見ていかないといけない。

初期コストについてだけ考えるのではなくて

運用コストや教育コストなど、トータルでみないといけない。

コストに合わせて、期間も重要です。

いつまでにそれをやるのか、またどれだけの予算を使ってやっていくのか?

という期間とコストを考えて、その上で採用する技術を考えなければいけない。

以前、cloud native k8s の話をさせていただきましたが、

期間とコストというのはビジネスの次に重要だと思っていて、

期間が決定されているのであれば、技術は二の次でいいと思っている。

なぜこんな話をしているかというと

ある人の話を聞くと、マイクロサービスや k8s をやりたいが、期間が決まっているという話だった。

そこで私が言ったのが、マイクロサービスとかこれまでチャレンジしたことないのであれば、やらないほうがいいと言った。

なのであれば、いまの技術者ができる最善のことをやったほうがいいと言った。

インフラに関しても k8s でやらなくていいし、PaaS でも良いしそういうのが良いと言った。

それは、教育コストというところに関わってくるのですが、

短い期間で教育コストというのはかけられないので、やらないほうがいいと言った。

アジャイル的に小さいものを提供していくならいいかもしれないが、

本当にいま企業にとって何をやるのが重要なのか、

その時に初期コスト、運用コスト、教育コストまで、どの時間軸まで見て考えられるのかが関わってくると思う。

アジャイル的にこのフェーズではこれを作ります。

とかそういったことができる土台があればやりやすいと思う。

田島さん

既存をマイグレーションをしていくといの難しさはそういうところにもあるのかなと思います。

既存のエンジニアのスキルにも寄ってくるんですね。

次の質問になるのですが、

マイクロサービスをしてしまったことによって、サーバーのコストが増えてしまった

ということはよくあるのでしょうか?

寺田さん

そうですね。コスト削減のためにマイクロサービスをやる、ではないと思います。

なんのためにマイクロサービスをやるのかというと、

自分たちがサービスを大きくするために、変化に対応しやすくするのが本質だと思います。

自分たちのサービスをバージョンアップさせたり、新規サービスをどんどん追加したいとか

全体的なシステムを見た時に、いままでのモノリシックだと

一度止めないといけないとかそういうことがあると思います。

それに対してマイクロサービスして、一部は動いたままでプラグインを導入したいとか

新しいバージョンに入れ替えたいので、バージョン1 とバージョン2 を併用して

リクエストを振り分けるとかそういうこともできる。

いままで(モノリシックな環境だと)はそれが 0 1 かしかなかった。

それに対して、一緒に動かして、いずれかのタイミングでバージョンを切り替えるとかそういうこともできるわけです。

マイクロサービスの本質とは、お金の面というよりも、いかに運用しやすいかとか、

変化に強いとか、そういう部分かと思う。

田島さん

おっしゃる通りですね。

マイクロサービスはコスト削減というよりも、売り上げに貢献するということですね。

つづいて step3 です。

コスト見積もりができた後に、やっと技術や組織の話が出てくると思いますが

そこで注意することはありますか?

寺田さん

私としては、外注がいいとか内製がいいとかはないと思う。

協力会社と一緒にマイクロサービスを作るということもできると思う。

ある会社の話なんですが、あるサービスを作りたかった。

彼らは内製ができるエンジニアもいた。

そのときに彼らは何をやりたかったかというと AB テストがしたかった。

ユーザインターフェイスの A, B 分かれているものが用意したかった。

どっちのユーザーインターフェイスが選ばれるか試したかった。

自分たちでは A は実装できるが、B はできなかった。

そこで、B を外注にしようとなった。

そこで B の会社がウォーターフォールでやっているのか、アジャイルでやっているのかは関係ない。

なんのために外注をするのか?が大事だと思う。

事業のことを考えて、自分たちがコントロールしながら外注するのはありだと思う。

ただ、全部まる投げというのは破綻すると思う。

自分たちがキー(主導権)を持っていなければいけない。

また、このあとも話をするが

ある程度の失敗もできたり、上層部と開発側でいい関係を築けていたらいいと思う。

縦割りになっていて、ウチはここまでというのが決まっていると、よくない(余計なプロセスが入ったり、出戻りがあったり)。

企画はこういう風に考えたが、開発側はやりづらいということもある。

そこで、企画側が開発側の意見を聞かないということがあるとやりづらい。

トータル的に考えて、改善はしていけない。

そこで考えなければいけないのが、なんのためにやるのかを考えなければいけない。

いまのサービスをより良いものにしていきたいから、この方法やダメですよとかいうフィードバックをしていき、

会社のビジネスをトータルで考えることが重要。

そういった場面でもエンジニアのスキルは重要になってくるし、

上司もそれを聞いてくれる人でなければいけない。

組織全体で開発プロセスを改善していくのが重要になってくる。

マイクロサービスうんぬんの前に、開発プロセスを見直して、スプリント単位で進められるとか

そういうのがすごく重要だと思う。

田島さん

一方でだんだん辛い状況になっていった場合があると思う。

そういったときに、寺田様は入られていくことが多いのでしょうか?

寺田さん

いま言っているのは理想です。

だが、理想と現実のギャップは多くある。

特によくあるのが、立場的なところとか、組織的な階層とかあるが、

そこが技術よりも大変だと思う。

この人が上でこの人は下だと思っていると良いものは生まれない。

自分たちが全て正しいと思わずに、僕たちの先にあるゴールは何なのかというのが全員で考えられると

それがビジネスの成功だと思う。

それに比べたら人の関係なんてちっぽけなものだと思う。

全員が同じ方向を向いて、正しいものを作っていければいいと思う。

田島さん

ありがとうございます。

ここのテーマでサマリーを言わせていただくと

採用技術の判断というところの話を解像度を上げて話をさせていただければと思います。

「具体的なロードマップは?」というテーマで話ができればと思います。

成功するマイクロサービスのロードマップ

疎結合化 & コードのクリーン化

寺田さん

マイグレーション系のお話なんですが、ここが一番出発点になると思う。

マイグレーションができるのかどうかというのの判断がここでできるかもしれない。

既存のモノリシックなアプリケーションをマイクロサービス化させていくときに

ストラングラーパターンというものがある。

特定の部分だけを外にだして、それをマイクロサービス化していくというようなことができる。

そのストラングラーパターンというのができるできないは、既存のアプリケーション設計に依存していて、

キレイに既存のアプリケーションが疎結合な状態になっていれば、移行しやすい

そうでなく、このモジュールを取り出したら他にどのような影響が出るのか分からない

という作りになっているととても難しい。

そうなるともしかしたら、ストラングラーパターンをするよりも、新規で作り始めたほうが早いかもしれない。

それは上層部の人に伝えたほうがいいと思う。

が、上層部はそれ(いま動いているものを 0 から作り直すこと)を理解するのが難しいので、揉めると思う。

マイクロサービスの話から外れるが、

そこでもやはり、ビジネスの話をちゃんとしなければいけない。

例えば、バージョンアップがあまりないモノリスのサービスなのであればマイクロサービス化する必要はない。

しかし変更をしやすいくしたいというのがあるので、

どの部分に変更がよく発生するのか?というのをモノリスの中から見極めなければいけない。

どの部分をマイクロサービスに切り出すのかが必要になってくる。

DDD でキレイにマイクロサービスをしていくということよりも、

ビジネス的な観点で、どうしてこの部分を切り出さないといけないのか

この部分を切り出すとどうなるのか?という部分を考えなければいけない。

その上で、コードのクリーン化は必要になると思う。

田崎さん

なるほど、コードが膨大になっていて、変更がしづらいとか

そういった部分が一番重要になってくるので

コードのクリーン化が大事であると。

TDD: 実装方法やアジャイル導入

寺田さん

マイクロサービスをやっていくにしても、先ほど AB テストの話をしましたが

小さくものを作って、世の中に出してフィードバックをもらって改善していくということをするために

アジャイル的な開発をするというのが必要になってくると思う。

Infrastructure as a Code

寺田さん

人が入れば入るほど、ミスが生まれてしまうので

インフラ自身をいち早く同じものを作れるようにしていくのが重要かなと思う。

The Twelve Factors

田崎さん

特に重要な部分をお話いただけますでしょうか。

寺田さん

クラウドネイティブ化していくというところで重要になっていく。

これもいわゆるコードのリファクタリングになると思う。

これは、変化に強いサービスを作っていくためのポイント。

ここで言いたいのは、変化に強いサービスを作っていくということ。

設定

設定をプログラムと別に分けておくというような、設定情報を外だしにするとか。

並行性

すごく重要。

いままで動いていたサービスをスケールアウトしたいとか、増やしていきたい場合に

より簡単にできるように考えておかなければいけない。

エンジニアが考えておかなければいけないのが、

マイクロサービスでパフォーマンスを出すためには、低レベルのこともわかっていないといけない。

プログラミングをする上で、一番考えなくてもできるのが同期的なプログラミング。

しかし、非同期でノンブロッキング(reactive)なプログラムで作っておかないと

ただ単に切り出したら、一部で処理が詰まったら、他のところにも影響が出てしまう。

田崎さん

このあとというところで、落とし穴の部分の話もしていただければと思います。

それって本当にマイクロサービスにするべきなのか?モノリシックなままにするべきなのか

というところをどう考えたらいいんでしょう?

寺田さん

いまのモノリシックなアプリケーションの中で、

特定の部分に負荷がかかっているとか、それで全体に影響が出ている状況なのであれば

その部分だけを切り出してスケールさせたいとかいうことになると思う。

もしくはその部分だけをバージョンアップさせたいとかもあると思う。

そういったケースのときに切り出すのが必要かなと思う。

いま問題なく動いているのであれば、それは優先順位を下げればいいと思う。

つまり、変化をさせたいところを、マイクロサービスで考えればいいと思う。

田崎さん

切り出したい場所を明確にしているというのが大事なんですね。

よくある落とし穴

寺田さん

他の企業でこういう風にやったから上手くいったというのは、

ノウハウとしては一部分で自分たちのところで活用できるというのはあると思う。

しかし、それを自分たちのところでもやろうとなると、それは失敗すると思う。

なぜその企業でできたのかというと、そこにそういう人材や開発プロセスがあったからできた。

自分の企業が同じ状況(人材や開発プロセス)ではないので、同じことをすれば上手くいくという訳ではない。

全部が全部はマイグレーションしなくてもいいと思う。

本当に必要な部分をやっていけばいいと思う。

マイクロサービスはデザインパターンが公開されているが、デザインパターンに固執しすぎないほうがいい。

例えば、

1 サービス 1 DB でないといけない、という考えをしていると、相当難しい。(新規ならできるかもしれない。)

例えば、DB にいろんなサービスのデータが入ってしまっていると、とても難しい。

そこで私が思ったことが、DB は最後にしましょうと思った。

サービスの部分だけを外だしにしましょうとか、そういうことをやっていった。

他社の事例とか、デザインパターンに固執しすぎたり、必ずきれいに作ろうということを考えすぎたりするのではなく

なんのためにマイクロサービスをするのかということ(部分的に変更があるところを切り出したいとか)

を考えてやることのほうが会社のメリットになる。

方法論やキレイにするっていうことは重要だが、そこしか考えていると、よくない。

技術力は重要なので、しっかり教育していくしかないと思う。

総括

イベントが終わっての対談

今回はなぜマイクロサービスをするのかという話をさせていただきました。

例えばいま k8s が流行っているが

マイクロサービスでも k8s でもなぜやるのかというのは

ビジネスを成長させるためにやるということ。

流行っているからやるというのは違う。試すのは良い。

【CTOmeetup】CTO・テックリードのその先は…に行ってきました

好評につき増席CTOmeetupCTO・テックリードのその先は

https://flexy.connpass.com/event/149487/

に参加してきたので、そのときのレポート

登壇者の方

  • ファシリテーター 株式会社 一休 執行役員CTO 伊藤 直也 様
  • グリー株式会社 取締役 上級執行役員 最高技術責任者 藤本 真樹 様
  • 株式会社メルカリ 執行役員CTO 名村 卓 様
  • ヤフー株式会社 取締役 常務執行役員 CTO 藤門 千明 様

パネルディスカッション1:「CTO・テックリードのその先はどうしたいのか?どうなりたいのか?」

自己紹介兼、今回のテーマについて

伊藤さん

「CTO になって最初はマネジメントしていなかった

しかし、組織体制に問題を感じて、それを壊そうと思ったところが発端です。」

藤本さん

「人数もだけど、プロダクトの数も仕事の仕方に関わるかなとも思っている。

最近プロダクションのコードは書いてない。

エンジニアリングとマネジメントのバランスについては

どっちもやればいいと思っている。

特にバランスをもつことに意味があると思っていない。

ので、分からないことがあれば調べるをずっとしている。

だが、知識がついていなくて不安になることがある。

その不安がどこからくるのかと考えたときに

「自分はこういうマネジメントができます」と自信もっていえることが大事だと思う。

あとは、例えば、むりやり登壇に手をあげて自分を奮い立たせるとかしている。

まとめると、業務ではエンジニアリングは手を出していない。

なぜなら、サービスが多く、それぞれのアーキテクチャを把握するのが難しいから。」

名村さん

「最近までエンジニアリングをやっていたので、バランスと言われると難しいが

最近はコードは書いていない。

最近までは、US のアーキテクチャをマイクロサービスするときに

指揮をとったりしていた。

CTO という肩書きの人が現場に入ってコードを書くと

現場が萎縮してしまうのではないかと思っている。

そのため、現場が機能するための組織づくりをするべきだと考えている。

例えば、マイクロサービスにすると、みんなが自由に動けるのではないかとか、

デプロイフローを刷新してみたらどうかとか、そういうことを考えている。

ので、ヒューマンマネジメントというよりは、テクニカルマネジメントをしている。」

藤門さん

「社員が 3000 人いるのだが、そんなにいると、

自分がコードを書くことはない。

会社としては、新しいことをどんどん始めていこうとしているので

そこで意思決定をするのが、メインの仕事になっている。

バグが起きた時に、どのようにして解決するのかではなく、それをどう意思決定するかとか。

また、PayPayが最近問題を起こしたが、そのプロダクトをどう安定するかとかを考えたりしている。

コードどれくらい書くか?と言われたら、基本まかせているので困っていないが、

現場は未来のことを後回しにしてしまうことがある(足元を見てしまう)ことがあるので

自分で未来に活きるコードを書いて、提案してみたりしている。

また、社内でハッカソンがあるが、それで、一番最初に発表する役とかやっている。

(もの作れることを示さないといけないので)」

お題:「マネジメントは他の人に任せているんですか?」

名村さん

「そうですね。こういうエンジニア組織にしたいんだけど、という抽象的な依頼を

VPoE に頼むようにしている。」

藤本さん

「気をつけていることはありますか?」

名村さん

「熱く語ろうとか、こういうことを浸透させようとか、そういうことをしている。

自分が 300 人とかの単位のエンジニア組織のエンジニアだったときに

こういう組織だったら楽しいだろうということを意識するようにしている。

1on1 はしまくっている。予定がびっしり埋まっている。」

伊藤さん

「藤本さんはマネジメントはしていないんですか?」

藤本さん

「自分が担当する範囲を決めてやっている。

プロダクトや、エンジニアに関してのマネジメントは別の人にやってもらっている。」

伊藤さん

「名村さんは自分ができないことを他の人にやってもらっている感じですか?」

名村さん

「そうですね。例えばバックエンドの人にマイクロサービスのアーキテクチャを見てもらっていたりしている。」

伊藤さん

「藤本さんはどちらかというと、分散させるために分けている感じですか?」

藤本さん

「そうですね。

自分はそういうのはやらないという設定は大事だと思っている。」

藤門さん

yahoo 3つの部門がそれぞれ 1000 人くらいいる

以前、その 1 つの部門をみていた。

そこでわかったのは、1000人をみると、死ぬということ

例えば、何か問題が起こったり、解決したりを 1000 人分やっていくと

CTO の業務ができないということがわかった。

ちょっとの問題が自分のところにあがってくるまでに、すごい問題になったりする。

来た瞬間に絶望することもある。

そこで、社長に懇願して、ピュアな CTO をやらせてもらうようにした。

なるべく、マネジメントとエンジニアリングのバランスをとるためには、

人数を分割するのが大事だと思っている。」

伊藤さん

「自分のところは、なんとなくゆるくで、人数を分割している。

バランスについては、とにかく時間を空けるようにして、開発をするようにしている。

何か技術的な問題があったときには、自分が意思決定したほうがスッキリすることがある。

現場で答えが出ていなくてモヤモヤしているときに、自分がズバッと答えを出すことがある。

自分の時間をどうするかというのが、CTO スキルの一つだと思っている。」

藤門さん

「自分の上司はデータで分析するのが好きなので、

社員の仕事の予定を分析して、可視化して、指摘をしてくれる

例えば、MTG しすぎとか、出張しすぎとか。

そういうところから、時間の使い方を見直すことがある。」

伊藤さん

「自分も、部下の予定をマネジメントすることもある。」

藤本さん

AWS CTO も、金曜日の夜は予定を絶対に入れないなどの工夫をしているらしい。

その時間で何か調べ物をしたりとかしている。」

伊藤さん:「次の質問です。「経営に関わってますか?」

藤本さん

「関わっている。

これはやめたほうがいいとか、そういう指摘をよくしている。

みんな新しいことをやりたがるが、そういうのをやらないように止めるのが最近大事だと思っている。

うちの会社はいろいろやって、伸びるサービスもあれば、ダメになるサービスもある。

そんななかで、勝つべくして勝つという考え方が大事だと思っている。

やらないことはやらないという判断を大事だと思っている。

なので、経営の関わりかたは、これはやらないほうがいいと削ぎ落とすことをしている。」

伊藤さん

「経営メンバーとして、技術担当ではない役員の人とどのように接してますか?」

藤本さん

「分からないのなら、ただ、こうですよということだけ言う。

ただ、そのためにはクレジット(信頼)も大事だと思う。

「藤本さんがこういうなら」という環境にするのが大事。」

藤門さん

「経営で大事なのは、一緒に事業戦略を考えること。

事業が決まってそれをエンジニアが、はいやりますというのはよくないと思っている。

20年後30年後の yahoo はどうなっているべきかというのを一緒に考えられるということ。

そのために、役員の人と一緒にランチを食べ、事業戦略を熱く語ったりしている。

その際に、今世界の技術はこうなっていて、どういうことができるよっていうのを

分かりやすく伝えるようにしている。

なので、普段から話す時間をよくとるようにしているし、CTO としてそれに一番時間をかけていると思う。」

名村さん

「逆にメルカリは、役員が分かってくれやすい。

逆に現場に落とすのが大変。

現場で、「なんでマイクロサービスやるの?」という意見が出たりする。」

伊藤さん

「自分は、信頼を得るようにして、

ナオヤさんがそういうならそうなんでしょ、と分かってもらうようにしたりしている。」

ここで一旦休憩。休憩中の会話

伊藤さん

「採用ってどのくらい関わってますか?」

藤門さん

「新卒には関わらないけど、中途とかは、ビジョンに共感しているかとか、関わっている。」

名村さん

「関わっているけど、あまり落としたりはしない。

というのも、最終的な期待値の認識合わせだけしているから。」

伊藤さん

「僕はみなさんに比べるとめっちゃ関わっているな。

全然落としたりしているんで。」

藤本さん

「こういう場所で、マネジメントを語るのって難しいよね

どう思われているのかって思って。」

伊藤さん

「そうですよね。

技術で間違ったこと言ってても、それは技術の間違いになるけど

マネジメントだったら下手したら炎上しますもんね。」

パネルディスカッション2:「事前アンケートより内容を選出」

伊藤さん

「個人的に話したかったことがあるんですが、、、

「あとから雇われて CTO になったときに気をつけること」はなんですか?という質問について話したいと思います。」

伊藤さん

「僕とみなさんの大きな違いは

システムのことが全く分からないという自体に陥った。

そこで何が起こるかというと、

1, 2 年経って、システムが分かってないと話ができなくなってしまう。

また、周りも 1, 2 年は周りも「知らないんだな」と思うくらいだけど

3 年経っても分かってないと「この人はわかる気がないんだな」と思われてしまう。

だが、そこを切り崩すのは難しいと思う。

自分の場合は、技術的負債をバッサリ落とすというきっかけがあったので

そのときにカバーできたが、きっかけがないと難しいと思う。」

名村さん

「最初からいる人と、途中から入ってきた人の壁があって、

「なんだこの新参者は」と思われてしまうことはあるので、

そういう意味でもマイクロサービス化が大事かなと思っている。

そういうところを切り崩していくのが大事かと思っている。」

伊藤さん

「以前、藤本さんと一緒に仕事しているときに

不具合が起こると、自分は「大丈夫?」しか言えないが、

藤本さんがさっと解決してくれたことがあった

そうなると「自分の存在価値はなんなのか?」と思ってしまう。」

伊藤さん

「自分たちは、また別の企業に中途で入って CTO をやることあると思うが、

最初は頑張らないといけないですよね。

切り込みが失敗すると本当に辛いので。」

藤門さん

「たくさん事業やると、たくさん失敗する。

そのときに、技術のせいにされることがあると思う

例えば、スピードが遅いとか、アーキテクチャが悪いとか

そのときに、自分はいいポイントだと思っていて、

自分が責任をとるということだと思う。

現場には現場の解決を全力で任せて

自分は上の人ことを把握するようにする。

すると、上の意見を全て把握しなければいけないし、

現場の不満も把握しなければいけない。

そういうタイミングが切り込むタイミングだと思っている。」

伊藤さん:「次の質問です。失敗談はなんですか?」

藤本さん

「最初にレイヤー(組織)を作るときに、なんとなく向き合わないで、こんな感じと決めたら

エンジニア 10 人くらいで MTG してたら、全員がキレて MTG を退席してしまったことがあった。

これは辛かった。」

伊藤さん

「よくその状態から、今の状態になりましたね。」

藤本さん

「当時、自分がスーパープレイヤーだと思っていたが、

組織がうまく回るために注力するのが自分の仕事だと気づくことができたから、今があると思う。」

名村さん

「このあいだ別の meetup で話したときに、自分たちはグローバルテックカンパニーですって言ったんだけど

言わなきゃよかったと思った。

それを言ってしまって、社員から「自分たちは Google みたいにならないといけないのか?」という不満がでた。

なので、変な背伸びや期待値をあげることはよくないなと思っている。

良い人が離れて言っているフェーズなので笑「こんな会社じゃないと思った」みたいな笑」

藤門さん

「自分が現場に入ってしまって解決してしまうことがあるが、

モノができてしまうのが悪いことじゃなくて、

組織がもめていることが悪いことだった。

なので、こうすればもっと早くできたとか、そういうことはある。

なので、自分の解決策が良いとは限らないということ。

例えば、テックリードの時期とかはそういうことがよく起きるんですけど、

テックリードは自分がとても技術的にできてしまう(イキってしまう)時期でもある。

そういう人に、ここの組織に入って問題解決してよとか言うと、すぐに

「この技術が悪いんだよ」とか言ってしまう。

ので、解決する際に技術から入るのはよくないと思う。」

藤本さん

「そういうテックリードがいたら、CTO としてどうしますか?」

藤門さん

「しばらくやらせてみますね。」

伊藤さん:「次の質問です。事業成果を出せたと思うことはありますか?」

伊藤さん

CTO になると、事業成果から切り離されますよね。」

藤門さん

「自分が CTO なりたてのときに、一休を買収したいと言われた。

そのときに、一休のドキュメントをみたときに全く分からなかった。

(自分たちはこれまで linux ベースのシステムだったが、一休は windows ベースだった)

それに対して、1週間で答えを出せと言われたときが大変だった。」

伊藤さん:「次の質問です。信用を得るためにどうしていますか?」

伊藤さん

「大事なのは、エンジニアの立場に立たないということだと思う。

例えば、エンジニアの立場に立つと勤怠とかにも目がいってしまう

そういうことから切り離すのが大事だと思っている。」

藤門さん

「一旦話を聞く。怒りを受け止めるというのが大事だと思う。」

名村さん

「ビジネスサイドに向き合うことが大事。

エンジニアの正論をぶつけちゃうと会社はなりたたないので、

歩み寄ることが大事だと思っている。」

藤本さん

「(自分は)信用があるのかという問題に気づいた笑」

伊藤さん:「次の質問です。CTO をやめるときはどうしていますか?」

伊藤さん

「普通ですよ。単に辞めたいと言った。」

名村さん

「僕の場合は、言う順番は気をつけた。

まずは社長に言って、現場に落とすときはどのようにコミュニケーションとるかっていうのは相談した。

あと、転職先にも内密にしてくださいとお願いした。」

伊藤さん:「次の質問、メンタルの持ち直しはどうしていますか?」

伊藤さん

「これは、相手がっていう意味ですよね?」

藤本さん

「共感することは良いことではないと思う。

なぜなら相手にプラスにならないから。

一緒に辛くなったら前に進めないから。」

伊藤さん:「次の質問です。情報収集はどうしていますか?」

藤本さん

社内のチャンネルで勝手に流れているから、それを見ている。

伊藤さん

「僕はそこに少し考えるところがあって、

昨今のトレンドを追い続けないと、今後やっていけないのかどうか?と思っている。みなさんどうですか?」

名村さん

「愛読書みたいなものはある。

hacker news とか。

あとは社内の slack に流れてくるものとか。」

伊藤さん

「最近は情報が多すぎて、そこら辺の感覚がよく分かっていない。」

藤本さん

「そこは取捨選択するのが大事だと思っている。」

藤門さん

「一次情報を大事にしている。

特に標準仕様の動き、例えば W3C や WHATWG をよく見ている。

論文だと例えば、facebook research もよく見ている。」

伊藤さん:「次の質問です。セキュリティへの投資はどう言う判断軸にしていますか?」

藤本さん

「昔、そういうところのコストを削っていた時期があったが、

心配されることがあって、そこからしっかりするようにした。」

伊藤さん

「自分は役割を分けている。

セキュリティをやる人と、CTO は別なほうがいいと思う。

CTO がオフェンスをやっているのに、セキュリティをやってしまったら、

それが削がれてしまうと思う。

ので、セキュリティは別な人に任せるようにしている。」

藤本さん

「プロダクションのサーバより、オフィスからやられることのほうが多いので、

そういうのは気をつけたほうがいい。そっちに投資すべき」

伊藤さん:「次の質問です。エンジニアの評価のバランスはどうとっているか?」

藤本さん

「開発とそれ以外で、担当を分けている。

開発は雑に言えば能力の部分を見ている。」

名村さん

「できてない部分が多くて、今作っているところです。

現状だと、マネージャーに任せているので、そこを整理したいと思っている。

なので、メルカリに関しては、バランスが取れていないと思う。」

藤門さん

「相関があって、

ビジネスのことも考えられる人はエンジニアスキルも高いので

そういう意味でバランスをとっている。」

伊藤さん

「うちの会社はまだ 50 人くらいなので

制度をよくするというよりは、僕が立ち会って納得感を出すようにしている。

あんまり問題は起こってないです。」

伊藤さん:「次の質問です。採用・不採用で大事にしていることはあるか?」

藤本さん

「自分の意見と他人の意見を同じ地平で考えられるかどうか。

自分の意見を第三者的にみて、ふらっとに考えられるかどうか、

という人しか取らないようにしている。」

伊藤さん

「それはどうやって見極めるんですか?」

藤本さん

「そういう議論を振ったりしている。」

名村さん

「こういう人はやめたほうがいいなと思う人は

意識が自分に向いている人。

評価だったり、価値だったりを、自分に矢印が向いている人」

伊藤さん

「それはどうやって見極めるんですか?」

名村さん

「期待値を下げると、そういうのをリジェクトできる。」

藤門さん

「カルチャーフィットするかを考えている。

いま、いろんな国籍の人と一緒に仕事することが多いので、

まずはカルチャーフィットを見るようにしている。

あとは、名村さんも言っていたが、期待値を下げるのもある。

例えば、AIエンジニアって綺麗そうな仕事に見えるけど、実は泥臭い世界。

そういう泥臭い仕事もできる人ですか?っていうのを聞くようにしている。」

伊藤さん

「僕は、現場が人欲しさにとっちゃわないかを見るようにしている。

基準がゆるまってないかをちゃんと見るようにしている。」

伊藤さん:「次の質問です。CTO が必要だと思いますか?」

名村さん

「メルカリの場合は、1プロダクトなので、

技術的負債が溜まっていったら会社として危ない。

だが、子会社が 100 社ありますとかいう会社で、全部に CTO が必要かと言われたら分からない。」

~今後とその先についてのディスカッション~

名村さん

「あんまり考えていないが、

会社と事業を伸ばすことを今はずっと考えているが、その先がどうなるかは分からない。」

伊藤さん

「僕らって同年代なんですけど、

これより上の年代の CTO の方ってあまりいない。

そういう意味でも分からない。」

藤本さん

「やりたいことやればいいと思う笑」