2024.10.10
将来は卵1パックの価格が2倍に? 多くの日本人が知らない世界の新潮流、「動物福祉」とは
チームで成功体験を積み重ねてチームで負債に立ち向かう(全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.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.12
自分の人生にプラスに働く「イライラ」は才能 自分の強みや才能につながる“良いイライラ”を見分けるポイント
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.11
気づいたら借金、倒産して身ぐるみを剥がされる経営者 起業に「立派な動機」を求められる恐ろしさ
2024.11.11
「退職代行」を使われた管理職の本音と葛藤 メディアで話題、利用者が右肩上がり…企業が置かれている現状とは
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.12
先週まで元気だったのに、突然辞める「びっくり退職」 退職代行サービスの影響も?上司と部下の“すれ違い”が起きる原因
2024.11.14
よってたかってハイリスクのビジネスモデルに仕立て上げるステークホルダー 「社会的理由」が求められる時代の起業戦略