2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
白石久彦氏(以下、白石):最後のお題にいきたいなと思います。「負債の返済、守りと攻めのバランス」です。先ほど(のセッションでは)「バランスとかじゃねえよ」みたいな話にけっこうなっていましたね。
川口将貴氏(以下、川口):そんな言い方してましたかね。怖い怖い(笑)。
(一同笑)
白石:「(バランス)じゃねえよ」みたいな話がありましたが、一応負債の返済的なものを「守り」、新規プロダクトを作るのを「攻め」という体で書きました。
確かに別にそこで分ける必要はないかなと思うのですが、先ほど、やはりどちらかというとお客さんに価値を提供することが重要で、それが「攻め」で、新しいものを作っていくのもそうだし、守りの中でもより良い体験を与えられるように攻めを定義してやっていくという話があったかなと思います。
そのあたりの、新しいことにあたっていく時の技術の使い方をうかがえたらおもしろいのかなと思います。先ほど、もともと資産として持っているものが積み上がっていくというのがあって、それを活用する・しないという判断と、新しい技術で遊ぶという話もありました。新しいものをやる時にどう決められているのかをうかがいたいと思っています。アンドパッドさんから「テックリードが」というお話があったかと思いますが、いかがですか。
下司:基本はテックリードの「Design Docを書いてもらって」みたいなところと、言語特性は、例えばデータベースもいろいろな特性があるかなとは思うので、「実現したい要件って何だっけ? それはこの技術選定で叶えられるんだっけ?」というところはDesign Docでレビューしていますね。そんな回答でいいですかね?
白石:大丈夫です。Design Docは提案を含めて書いて、その作るものに対して適切であれば「やってみたらどう?」という話になるんですか?
下司:そうですね、適切であれば。「どんな観点でチェックしましたか?」みたいなことは一通り書いてもらいます。
白石:Design Docでレビューするのは会社の仕組みとしてあるんですか? それとも随時必要がある度にやる?
下司:必要がある度にやっているのと、それでも必要がある度に言えない人もいるので場所としても一応準備していますね。
白石:そのあたりの取り組みでBASEの川口さんはどうですか?
川口:新しいものを導入するための特別な手引きはあまりなくて、BASE自体がけっこう小さな単一サービスなので、新しい技術をあえて導入することはそこまで多くありません。基本的にVue.jsだけで、「ここの画面だけReactを使いたい」という瞬間はあまりないです。
「この管理画面側をReactにしたい」のほうが、「これからの技術的負債になる」と思っていたりするので、Design Docでレビューまでは形式ばっていませんが、どういうフローで、最終的なゴールはどこでみたいなところをけっこうフラットに会話をしている部分があります。
あとは僕の領域で専門外の部分は、けっこう任せたりしています。テックリードに関しては、わりと自由にやってもらっても心配ないかなと。モチベーション管理の部分も細かくしなくていいので、良いと思っています。
例えば、バックエンドのフレームワークをリアーキテクトとかでやっていますが、リプレイスしますという時にはけっこう長く時間がかかります。いろいろな観点で、採用観点もそうだし今のメンバーのスキルセットもそうですが、そこはリアーキテクチャが終わっていない分、まだ正解が出ていないですね。
白石:言語は学習していかないといけないところが、なかなか難しいところですよね。
川口:そうですね。僕は学習コストといった表現をしがちですが、そもそもエンジニアはそれなりに高い給料をもらっているので、コストというか普通に「それはインクルードだよ」と言います。「学習するのも仕事だよ」と。
白石:それはいい言葉ですね。やはり学習は続けていかないとという話ですよね。
SmartHRさんは、先ほどサービスのポートフォリオみたいなやつがすごくいっぱい出ていたと思いますが、基本的には固まったテックスタックで、プロトタイプも全部作る感じなんですか?
森住卓矢氏(以下、森住):そうですね。基本的にだいたい一緒で、ものによってNextが使われている・使われていないという部分があるぐらいですかね。
白石:では、そのあたりはそんなに技術選定の議論にはならないですか?
森住:そうですね。そんなに突飛なものが上がってくることはないかなと思いますね。
白石:そのRailsでやっている基盤の部分も、しばらくはRailsでやっていく感じなんですか?
森住:そうですね。プロダクト特性に応じてという話があったと思いますが、今のところはそんなに「このプロダクト特性だったらRailsから離れなきゃね」みたいなものはないので、しばらくは続いていくかなと思っています。
白石:そうなんですね。ありがとうございます。
白石:楽しく話していたら時間が迫ってきてしまったので、会場のみなさんから質問をいただいていればお答えしていきたいと思います。上から行きましょうか。いいね順とかにしてみて。
これにしましょう。「非エンジニアサイドに対して、どのように技術的負債や設計を説明していますか?」。どなたか、プロダクトの人たちが技術的負債に対して理解がない場合のコミュニケーションのプラクティスがあれば。
川口:最近はチームによってですが、ドメイン駆動設計を導入しています。ドメインモデリングは当然エンジニアだけでやるべきものではないので、仕様を決めているプロダクトマネージャーも入れて「こうやっていきましょう」「こういう障害があります。それはなぜか」「こういう技術的負債があるから」とやっていますが、それらを精緻に理解できているとはもちろん思っていません。
エンジニアも技術仕様じゃない部分、つまりドメイン仕様で理解できていない部分もあるので、そこはいいのですが、ただ「こういうものがあるので、ここを課題と感じている」というのをチームの課題として捉えるようにはしてもらっていますね。そこに対してそれを解消するコストは普通に時間ですよね。それと、それを得られるリターンはエンジニアとPMで話をして意思決定してもらっている感じですね。
白石:ありがとうございます。
白石:違う質問にいってみましょうか。なにかありますか? 「akippaのリニューアルで諦めたものは全部捨てましたか? 部分的に継続したり導入したりしていますか?」。これは村上さんに答えてもらいたいです。
村上健一郎氏(以下、村上):akippaのリニューアルで諦めたものは、基本的には全部捨てていますね。Laravelの部分的移行を始めた時に、Laravelを動かすローカル環境のVagrantみたいなものは残しましたが、今はそれも捨ててDockerに移行しているので、今はもう全部ポイッてなっていますね。
白石:またそこからやり直しみたいな感じになるということなんですかね。
井上:Laravelで移行を採用していこうとか、そのへんの方針は活きていますし、そのタイミングで改めてサービスをどう伸ばしていこうかというのは今の企画に活きています。確かにソースコードは消えてしまったのですが、思想、考え方、企画などはまだ残っていますね。
白石:ありがとうございます。
白石:これは下司さんへの質問かもしれませんが、「遠心力とは何ですか?」。僕も気になったのでちょっと解説をお願いします。
下司:先ほど言ったように「3年後に10倍にしていこう」みたいな話がある中で、そこまでいきたいよねみたいな話をします。その時に、開発速度という話のところで共通基盤をどんどん作っていって、車輪の再発明をなるべくなくして「本当に実現したい機能になるべく早くいけるようにしたいよね」と言っています。
遠くまでなるべく速く行く力をどう表現するかという時に「遠心力」という言葉を使ってみた感じです。
白石:ありがとうございます。わりと中長期のものをきちんと見ていこうという感じなんですね。
下司:そうですね。
白石:あとは「技術的負債の定義」です。先ほど「ヒトじゃないですか?」みたいな話がいろいろあったので、みなさんに技術的負債を喩えていただくのもいいのかも。難しいですか?
(一同笑)
白石:森住さんはどうでしょう? 技術的負債とは何ですか(笑)?
森住:喩えですか?
白石:定義でも何でも。
森住:そうですね。名前のとおり技術的な借金かなと思っていて、なんらかの都合で犠牲にした変更容易性すべて、みたいなイメージですかね。
白石:変更容易性。
森住:そうですね。コードの変更容易性ですね。
白石:なんか家を買う時みたいになっちゃうけど、いろいろな制約を許容して借りてしまった負債なんですね。
森住:そうですね。
白石:川口さんはいかがですか?
川口:僕も基本的なのは当然前借りさせてもらったものだと思っているので、その中でも光を浴びていないものが負債だなと思っています。どんなに良くないコードやイケていない設計でも、光を当てて手を入れているのであれば、それを負債と呼ぶのは少し違うかなと思っています。放置されていたり、見ないようにしている部分は負債になっているので、そういうところを考えないといけないと思っています。
白石:良い定義ですね。ダメだけどメンテしてなんとか使っていこうというのは負債というよりは生きているものだし、そうじゃないものは光が当たっていないこと自体が問題なんじゃないかということですね。ありがとうございます。下司さんは、負債はどうですか?
下司:ほぼ同じですが、「変更にすごく時間のかかる、つまり変更容易性が非常に下がっているものが負債ですよね」と言っていて、特に、その変更容易性を改善するためにどう改善していくのかというところの道筋も見えにくいものたちを、技術的負債と言っていますね。ただやりにくいだけだと、それは技術的負債じゃなくてただの実装ミスぐらいの感じなので、そういうところを僕らは技術的負債と言っています。
白石:「何じゃこりゃ」と悩んじゃって「もうどうする?」みたいなかたちになるのが技術的負債。
下司:そうですね。
白石:ありがとうございます。時間もそろそろいい感じになったので、最後にみなさんから一言という感じで、村上さんにも技術的負債を話してもらって締めてもらおうかなと思います。
村上:先ほど変更容易性の観点をお話しされていましたが、1つ具体的に言うと、テストコードがないところが負債かなと思っています。テストコードがないから、どこに影響が出るかがわからない、なんでそうなっているかがわからない、というところがたくさん残っているので、今新しく作る部分はテストコードをマストにしています。
どんなに急いであっても、それはマストにしています。なので技術的負債といったら、テストコードがない部分のすべてという意味だと僕は考えています。
白石:影響範囲が見通せないところが怖いというのがエンジニアとしてはあるわけですね。ありがとうございます。お時間をちょっと長めに取っているのですが、すみません、答えきれなかった質問があるので、懇親会に残っていただける方はそこでぜひ聞いてください。
今日はいろいろな名言が出てきたなと思うのですが、「攻めとか守りじゃねぇんだよ」みたいな話がそうですね。
(一同笑)
白石:確かにすごく「そうだな」と思いました。あとは負債にきちんと向き合っている中でのモチベーションの管理が僕的にはやはりすごく興味があって、そういう視点でハッピーエンジニアリングができる人が増えていくといいかなと思いました。ということで、この場は締めさせていただきます。ありがとうございました。
(会場拍手)
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.12
今までとこれからで、エンジニアに求められる「スキル」の違い AI時代のエンジニアの未来と生存戦略のカギとは
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05