2024.10.01
自社の社内情報を未来の“ゴミ”にしないための備え 「情報量が多すぎる」時代がもたらす課題とは?
チームで成功体験を積み重ねてチームで負債に立ち向かう(全1記事)
リンクをコピー
記事をブックマーク
佐々木達也氏(以下、佐々木):では発表させていただきます。『小さな成功体験を積み重ねてチームで負債に立ち向かう』というタイトルで発表します。
クラッシーという会社から来ました。クラッシー、名前聞いたことあるよいう方はどのくらいいらっしゃいますか?
(会場挙手)
おお! すごい! ありがとうございます。一切手が上がらないんじゃないかと思ったら上がりました。
(会場笑)
普段ネット上ではささたつ(@sasata299)という名前で活動しています。
クラッシーでCTOをしていて、子供が2人います。最近のマイブームはサイゼリヤで豪遊することです。エンジニアはみんなサイゼリヤが好きじゃないですか。
(会場笑)
それに漏れず僕も定期的に通っていて、明日も会社の同僚とサイゼリヤ飲みがあるのでそれを楽しみに今週はがんばってきました。
あ、そういえばみなさん唐揚げお好きですか?
(会場笑)
唐揚げ、食べるのが好きだよという方?
(会場挙手)
お、意外とみなさん唐揚げ好きなんですね〜。唐揚げ、作るのも好きだよという方います?
(会場挙手)
ありがとうございます。まぁ、なかなかいないですよね。僕は「唐揚げを食べるのが好きなんですね」ってよく言われるんですけど、実際には唐揚げを作るのがけっこう好きです。それだけ今日覚えて帰っていただければなと思います。
(会場笑)
ということで、ここから本題に入っていきます。最初にクラッシーとは? というところで、なかなかみなさん知らないと思うのでご説明します。クラッシーはベネッセとソフトバンクが作ったジョイントベンチャーになります。
学校に対してサービスを提供していて、学校をより良い場所にしたいなと思ってがんばっています。教育×ITということで、EdTechの会社です。
先生や生徒向けにいろいろな機能を提供しています。学習系の機能や、先生と生徒だったり先生と保護者の間のコミュニケーションの機能とかですね。他にもいろいろありますが、こういった機能を学校に提供しています。
今のところ高校を中心にサービスを提供しているのですが、日本に高校は公立と私立合わせて5,000校あります。
その中で、現在2,100校ほどの学校に使っていただいています。有料ユーザ数と書いてあるんですけど、生徒の数は80万人を超えたくらいになっています。
今日のテーマは技術的な負債というところで、何を話そうかなと思ったんですけど。負債はみなさんあるかなと思ってます。負債があればもちろん直したいってなるじゃないですか。今日は負債を返却する話をしたいなと思ってます。ただコードは一切出てきません。いらすとやのイラストだけがたくさん出てくるので気軽に聞いてください。
(会場笑)
技術的な負債を返却するためには2つ必要かなと思っていて。1つがオレンジ色で書いてある、改修をするための人だったり時間だったり。リソースが必要かなと思ってます。
もう1つは「いけるいける!」という気持ち。この気持ちが大事かなと思っていて。改修のためにリソースに関しては、もちろん当然必要で。クラッシーとしても会社としてプロジェクト化して進めているんですが、今日はここには触れずにいこうかなと思っています。
今日はこっちの「いけるいける!」という気持ちのほうで話をできたらなと思っています。さっきの2つはどちらも必要かなと思っていて。気持ちの部分はベースの土台として必要だなと感じているんです。
ただ、現実は諦めの気持ちになりやすいかなとも思います。なかなかいろいろなしがらみがあったりするので、「密結合していて影響範囲が~」という話だったりとか、既存コードや設計に対する不満、それから「こうしたいんだけどなかなかできないな」とか、「テストがなくて触れません」とか。いろんな理由があって諦めの気持ちになりやすいかなと思います。
……あれ、そんなことないですか?
(会場笑)
そんなことありますよね。なのでそれをどうやって「いけるいける!」という気持ちに持っていったらいいのかという話ができたらなと思っています。
現状の体制を簡単に図にしてみました。すごくシンプルにしていますが、機能がいくつかあってそれぞれの機能に1人2人担当が付いて回しています。
1人2人が各機能に付いているので、調査だとか改修だとかいろんな話がきたときに、個人の力で解決しているケースが多いです。いろんな不具合が発生したりして対応するんですが、その対応だけで手一杯になってしまって。
なかなかそれを改善するところまでいかないのが最近の悩みで、これをなんとかしたいなと思っていました。
そんなとき1人新しくジョインしてくれたメンバーがいて、そのメンバーがペアプログラミング・モブプログラミングの経験者でした。そこで、一度やってみることにしました。
モブプロはすでにみなさんご存知かもしれませんが、ペアプロは2人で一緒にコードを書いていくんですが、それが3人以上になったものがモブプロになります。
それをやってみようということになりました。とは言っても僕自身ペアプロ・モブプロの経験はほとんどありませんでした。どちらかと言うとネガティブなイメージを持っていて。やらず嫌いですね。
そもそも見られながらコーディングするのはちょっと緊張するなぁというのと、複数人で、ペアプロだったら2人ですけど、複数人でコードを書くのでなんだか効率が悪いような気がするなぁと思っていました。
ただ、そのメンバーからいいですよと教えてもらったので、まずはやってみようと思ってやってみたんです。そうすると、みんなでワイワイ言いながらコードを見るのが純粋に楽しいなぁと。
いきなりすごいことはもちろんできないんですけど、ちょっとだけでも前進している気持ちが味わえて、これはすごく大きなメリットなんじゃないかなと感じました。
モブプロをやってみると、例えば自分がある機能の担当になってその機能をいきなり全部把握してくださいと言われるとすごくハードルが高いんですが、みんなで一緒になってコードを読むと、1人だと読めなくて諦めてしまうコードであっても読めると感じました。
複数人で読んでいると、そんなに詳しくなくても多少仕様や背景を知っているメンバーがいたりします。そういう人たちから適宜「ここはこういう背景でこうなってるよ」と教えてもらうことでだいぶ違うなというのを実感しました。
仕様の理解がすごく早くなって、物事が進むというところ。あとは複数人でみんな同じ時間を過ごしているので、知見はもちろん、やれた感が貯まります。
やる前は「これはちょっと難しいよね」ってみんな思っていたんですが、やってみると「意外とできたね」という気持ちが参加者の中で醸成されました。
なかなかいいなと思ったので、整地部という活動を社内で始めました。これは会社の中でフットサル部だとか、クラッシーの場合だとスイーツ部というスイーツをただ食べるという部とか、いろんな部活動があるんですけど。その1つとして整地部というのを立ち上げました。
週に2時間集まって、みんなでコードを改善していこうという活動です。ちょっとしたことなんですが、変数名を変えるとか、コードの一部分を別メソッドに切り出すとか。ボーイスカウトルールの精神でやっていこうという集まりです。
ボーイスカウトルールはみなさんご存知かもしれませんが、すごくいいなと思ったのが、「汚したのが自分じゃなくてもしっかりきれいにしていこう」という考え方です。これをみんなが意識して、地道な活動ですが繰り返していくことで大きな結果につながるんじゃないかなと思って始めています。
これはとある一例なんですけど。
(会場笑)
凶悪なSQLがいて、「ウッ」ていう、個人だったら見なかったことにしようとしてしまうSQL。会社の中でみんな、このSQLはやばいという共通認識がありました。「やばい!」とは言うんですけど、みんなそのあとなにも言わないという。そういうやつです。
(会場笑)
これを改善したいんですが、やっぱり読み解くのが辛かったりとか。そもそもこの部分にテストが書かれていなかったりして、下手に触るとデグレしちゃうんじゃないかというところでなかなか手が付けられませんでした。
ここでちょっとモブプロを試してみようと思って、複数人で集まってコードを読んでみました。読んでみると意外とそんなにたいした処理はしてなくて。なんでこんなたいした処理じゃないのに複雑に書いてるんだっていう疑問はあるんですけど。そんなに複雑なことはしてなくて、読めました。
読んだから、次はまずテストを書いてみようという話になりました。やってみると、多少時間はかかったんですけどしっかりテストも書けました。テストがあれば今度は改善はしやすいじゃないですか。デグレすることはないので。という状態まで問題なくもっていくことができました。
先ほど「やれた感」と言いましたが、「意外とやれたね」というのが集まったメンバーの中で共通認識になったっていうのがすごく大きな成果だったかなと思っています。
ほかにも、整地部というラベルを付けて活動してるんですが、コードの改善をしたり、メトリックを取れるようにしたりとか。
よくありがちだと思うんですが、呼び出されていないように見えるメソッドが、でもなかなか消せない問題とか。
これも4、5人集まっていたので、そのメンバーで「これ絶対いらないよね」っていう合意をして、もし呼ばれていたらわかるような仕組みにしてしばらく様子を見ました。そうして、最後には全員で確認しながら消すのをやっていたりします。
これもすごくやってよかったなと思っています。今まで「改善しなきゃ」「やらなきゃ」と言っていたところが少しずつできてきたのを実感しています。小さなことなんですが、物事がきちんと進んでいるなと思っていて。成功体験だなと感じるんです。
この成功体験が積み重なっていくことで、だんだんと「いけるいける!」という前向きな気持ちになってきたなと思っています。これがすごくよかったなと。
モブプロなどを経て、技術的負債の返却は大変なんですが、やれないことはないというマインドになってきたのがすごく大きな成果でした。
ただ、素朴な疑問として、1人で書いたほうがコードは何倍も書けるよねという話は当然みなさん思われるかなと思います。
ただ、そこはちょっと待ってください。我々は問題解決のためにコードを書いているのであって、決してコードをたくさん書きたいわけではないと思います。
その観点で考えると、プルリクを出すまでは1人が間違いなく早いですが、結局プルリクって誰かがレビューしなきゃいけなくて。レビューするのってベテランがやりがちな作業だったりするので、結局時間はそれなりにかかっています。
プルリクをマージしてリリースしてというところまで考えると、どっちが早いんですかね? っていう。そこはぼかして終わろうかなと思うんですけど。
(会場笑)
いろんな知見が貯まるということもあるので、メリット・デメリットはありますが、モブプロにもメリットはあるんじゃないかなと思っています。ベテランがしっかりコードを書くのに時間が割けるというところも1つのメリットなのかなと感じます。
最近はPRのレビューもペアプロでやったりします。いちいちGitHub上で非同期のやりとりすると時間かかっちゃうので、これはこれで便利なときもあるなと思うんです。
ということでまとめです。
小さな成功体験を積み重ねることで、だんだん「いけるいける!」という気持ちになってくるはずだと思っています。そのために別にこれだけがやり方ではありまあせんが、モブプロも1つの有効な手段なのかなと感じています。
クラッシーでも、みなさんと一緒ですがエンジニアを絶賛募集中なので、興味のある方は一緒においしい唐揚げを食べにいけたらなと思います。
今日もすごくおいしい唐揚げが出るんですけど。もっと食べたいという方は来てください。
(会場笑)
ご静聴ありがとうございました。
(会場拍手)
2024.10.29
5〜10万円の低単価案件の受注をやめたら労働生産性が劇的に向上 相見積もり案件には提案書を出さないことで見えた“意外な効果”
2024.10.24
パワポ資料の「手戻り」が多すぎる問題の解消法 資料作成のプロが語る、修正の無限ループから抜け出す4つのコツ
2024.10.28
スキル重視の採用を続けた結果、早期離職が増え社員が1人に… 下半期の退職者ゼロを達成した「関係の質」向上の取り組み
2024.10.22
気づかぬうちに評価を下げる「ダメな口癖」3選 デキる人はやっている、上司の指摘に対する上手な返し方
2024.10.24
リスクを取らない人が多い日本は、むしろ稼ぐチャンス? 日本のGDP4位転落の今、個人に必要なマインドとは
2024.10.23
「初任給40万円時代」が、比較的早いうちにやってくる? これから淘汰される会社・生き残る会社の分かれ目
2024.10.23
「どうしてもあなたから買いたい」と言われる営業になるには 『無敗営業』著者が教える、納得感を高める商談の進め方
2024.10.28
“力を抜くこと”がリーダーにとって重要な理由 「人間の達人」タモリさんから学んだ自然体の大切さ
2024.10.29
「テスラの何がすごいのか」がわからない学生たち 起業率2年連続日本一の大学で「Appleのフレームワーク」を教えるわけ
2024.10.30
職場にいる「困った部下」への対処法 上司・部下間で生まれる“常識のズレ”を解消するには