2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
鈴木健太氏:初めてプログラムを書く時って、こういうものなんじゃないかなって思っています。「n番目の三角数を求めてください」。
これは非常にシンプルで、f=1の時に1で、なにか引数を1個与えたら整数が返ってくるという、非常に正解がわかりやすいものですよね。fに2を入れたら3が返ってきて、3番目の三角数に、1と2と3を足せばいいよねとか。前の三角数を足せばシンプルに答えが出ますが、これは本当にシンプルな問題。
ですが、実際のプログラミングの難しさ、あるいは実務の難しさというのは、たぶんこの「三角数が導出できる」ということから飛んで、例えばTwitterを作るとなった時に、無限に作り方があったり、そもそも想像できないというところかなと思っています。
TwitterのUIとかは、たぶんフロントエンドが得意な人なら「ReactでUIを作れそうじゃない?」だったりすると思うし、サーバーサイドのAPIも、例えばツイートをして保存して、それをフォローしている人に表示するとか、パーツパーツのイメージはなんとなく湧くと思うんですよ。
でも、何億人もユーザーがいて、リアルタイムに検索したら返ってくる、というものを作る、かつ、そのサービスをグロースさせる必要があるとなった時に、たぶん、すごく未知のものが多いと思うんですよね。
なので、やはり授業のプログラムと実世界のシステムというのは、遠いんじゃないか? これは僕自身も学生の時にすごく思っていたことです。
あと、なんていうのかな。やはり実際にサービスを作って世に出してみても、やはりまだまだいろいろな段階があって、そういうところがプログラミング、あるいはソフトウェアエンジニアリングの難しさなんじゃないかと思っています。
とはいえ、やはりスキルを磨かないと、Twitterも作れないわけですよ。やはり(スキルを)磨いていかないと、難しいものにチャレンジすることもできない。けれど、手を動かしてもすごく上達している感じがなかなかしない。先ほどの、「この学び方でいいのかな?」ということですよ。こういうことが起きるんじゃないかなと思っています。
(コメントを見て)「オブジェクト指向概念はなんとなくわかってきたけど、実際にどこで使うの?」。うんうん。車とかで例えられてもね。はいはいはい。
教科書どおりに、じゃあ車というものを「Car」にして、抽象クラスとして乗り物というものを用意して、「ride」というのを作って、それはバイクでも扱えますね、みたいな。それはそうかもしれないけど、「じゃあ、実世界でどう使うの?」って話ですよね。そう、そのとおりだと思います。
これってやはり、「わかった」という部分よりも、「できる」という部分にならなきゃいけないと(思います)。その中でのコツとして、自分のコンフォートゾーンから抜け出す、意識的に飛び出すというのが必要だと思っています。
これは一般的な話ですが、「30年間同じ曲を同じやり方で繰り返し弾いてきたアマチュアピアニストは、確かに1万時間分の練習を積んだかもしれないが、30年前に比べてまったく上達していないはずだ」。これは『PEAK』という本に書いてあるフレーズなんですが、そのとおりだと思うんですよね。
毎日三角数を解いていたとしたら、三角数を解くのは速くなるかもしれないけれど、それしか解けないよね。もちろん、同じようなパターンの問題が解けるとは思うんですが、もっともっとレベルを上げたいと思ったら、同じ難易度の問題じゃダメなんですよね。
そのためにやはり、目的ある練習を行う必要があります。これははっきり定義された目標。「これをやるんだ」ということと、あとは集中してやること。そしてフィードバックがもらえること。これは後で話します。
それから、コンフォートゾーンから抜け出すこと。自分が快適だと思って、「これはできるわ」「これは、まあまあできますよ」というものから、やはり一歩飛び出さないといけない。そういうことが、この成人発達理論というものの領域の中で言われていることです。
図でいうと、こんな感じ。ラーニングゾーンに飛び出ていく。飛び出るために何ができるかにフォーカスを置いてトレーニングをしていく。それが大事だという話があります。
抽象的でわかりにくいと思いますが、いきなりTwitterを作るのは、たぶんみんなにとっては飛びすぎで、もちろんモックとして作るのはいいと思うんですが、それってたぶんパニックゾーンに近いです。
数億円のサービスをいきなり作ろうとしても、今学んでいることと、たぶんあまり接続していないんですよね。なので近いラーニングゾーン、適切な課題、適切な難しさに飛び込むということが大事だと思っています。
ちょっと僕自身の体験を少しだけお話しすると、大学院1年生の時にスタートアップを始めたんですね。旅行のサービスを作ったんですよ。同じ会社というか元VOYAGE GROUPのインターンに来ていた石田君に「人を誘って旅行に行けるサービスを作りたい」って言われたんですよ。
(それを聞いて)「作れるな」と思ったんです。Webアプリケーションの作り方もわかったし、デザイナーをつかまえて、あとはデータベースとWebサーバーを用意して作ればいいんでしょう、「いけるわ」と思って、「やろう」って言って、楽しそうだなと思ってやったんですよ。
やってみたんですけど、ぜんぜん人が来なくて。かっこよく「俺の考えた最高の画面」を作ったら、ぜんぜんユーザーが来なくて。「アルファ版リリース!」みたいな感じで出してみたら、一瞬だけ一覧ページを見られてすぐユーザーが帰っちゃうみたいな。ユーザーにプランを作ってほしいんだけど、ぜんぜん書いてくれないというのが起きて、「えっ?」みたいな。
「けっこうイケてるソフトウェアを書いたのに、なんで使ってくれないんだろう?」と思ったんですよね。
しかも、サービスは誰かを誘って旅行に行くというもので、ユーザーには旅行を作ってほしいのに、「近くのカフェに行きませんか?」みたいな感じになっちゃって。「いや、海外旅行とか行ってほしいのに、なんでそうなるんだろう?」みたいな。ぜんぜん意図どおりにいかなかったんですよ。
これって実体験として、ただ単にソフトウェア自体の難易度を上げていくということもそうなんだけど、きちんと使われるものをいかに考えて作るかということに対して、フィードバックがすごくあったんですよね。ユーザーは素直だから、あるままにしか使ってくれないんですよね。
(コメントを見て)あぁ、そうそう、「新しい需要かもしれない」。でも、それはすごくいい観点。だけど、お金がないんですよね、マネタイズできない。旅行でマネタイズしようとしていたから。じゃあ、カフェでトランザクションでマネタイズしようというのもあるかもしれないよね。だけど、その時はそうではなかったということですね。ただ狙いと単純に違ったという話です。
先ほども話しましたが、実際にやってみて、三角数を導出するみたいなものと、実世界のシステムはやはり遠いなというものについて、ちょっと近づけた、実世界のシステムを当時作りました。リリースしたばかりなので数百万人のユーザーがいるわけでもない、という中で作ってみたけど、同時に、その時は本当に、2、3人のチームで作っていたので、まだまだ本当のソフトウェアエンジニアリングの難しさには到達していないなと思ったんですよね。
というのが、僕自身の経験として、個人のスキルを伸ばすという観点の中にありました。
1人でやれることには限界がある。たくさんのトライをしたい。サービスにたくさん機能を付けたいと思っていても、1人でやれる量にはどうしても限界がある。もちろん、いくらでも素早く作ることはできるけど、やはり限界があるなと思います。
ただ、スキルを伸ばすことで、1人あたりのスピードやクオリティを上げることは可能ですよね。スキルを伸ばすことによってやれることが広がって、トライできることが増える。これは真だと思っています。
一方で、やはりやってみて、仲間と一緒にやるということがすごくおもしろかったんですよね。歳が近いメンバーでやっていて、ビジネスメンバーもセールスメンバーも、エンジニアも、デザイナーも未知の世界にみんなで飛び込むという経験はすごくおもしろくて、「コンフォートゾーンを越える」ということは、単純に、解いたことがない、作ったことがないものを作るということもそうだし、自分だけではなくチームでそこの領域にいくというのがすごくおもしろいなと思ったんです。
このあと、チームでどういうふうに価値を届け続けるかという話をしていこうと思うのですが、そういうふうにチームでチャレンジすることが自分の成長にもつながる。コンフォートゾーンから抜け出すことにもつながる。そういうトライが、個人のスキルを伸ばすことにつながっていくんじゃないかと思っています。
というわけで、個人のスキル編はいったんここまでです。
(次回へつづく)
関連タグ:
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
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