2024.12.10
“放置系”なのにサイバー攻撃を監視・検知、「統合ログ管理ツール」とは 最先端のログ管理体制を実現する方法
リンクをコピー
記事をブックマーク
最後に3つ目のコツを話していこうと思います。最後は、チームの話です。3つ目のコツは、「信頼」です。信頼というのは、文字で書くとシンプルですね。
プログラミングとソフトウェアエンジニアリングは違うよ、という話をしたいと思います。みんなはこのイメージがつきますか? プログラミングというのは、例えば学校の課題の中とか、あるいはみんな今手元で作っているもので短期的に動くものです。
それ自体は楽しいし、すごくすばらしいことだし、僕もすごく好きなんだけど、ソフトウェアエンジニアリングというのは、工学というだけあって、ソフトウェアというものをどういうふうに組み立てていくか、それをやっていくことです。
端的に説明しているものを、ちょっと参考に持ってきました。これは僕もすごく好きな『Googleのソフトウェアエンジニアリング』の本です。「時間、スケール、そして作用しているトレードオフだ」という表現があるんですね。
つまり、ソフトウェアエンジニアリングにおいては、プログラムが生きている時間が長いということ。そして、たくさんの人や、たくさんのケースで使われるものだということ。そして、作用がめちゃめちゃあるということ。
だから使う人が多ければ多いほど、この機能が欲しいとか、こうあったらいいとか、みんなが思うこともたくさん出てくるし、こうしたいとかも出てくる。そして、それを調整したり、あるいはなにかの機能を足したりする時に、例えば、できてからまだ1週間のプロダクトと10年が経っているプロダクトだと、どうですか? 1個機能を足すのに、(10年経っているプロダクトは)すごく時間かかりそうなイメージがありますよね。
しかも複雑だから、どれくらい時間がかかるかがわからない。その複雑さを全部知っている人がいない状態にどんどんなっていく。それがソフトエンジニアリングという世界なんですよ。
これからみんながソフトウェアエンジニアとして働くのだったら、こういう世界に足を踏み入れるということになります。
あと言えるのは、やはりソフトウェアエンジニアの世界は、スケール、作用の話で言うと、やはりチーム競技なんですよ。多くの人が、みんなが書いたコードを読んでいる時間のほうが長いんですよね。たくさんの人がこういうことをやりたいと思う。そして、いろいろな失敗をする。なぜならたくさんの人が試すから。
でも、たくさん失敗するのはいいことですよ。みんながいろいろなことを考えている。これがやはりソフトエンジニアリングのスケールが起こすことです。そして時間が経てば経つほど、ソフトウェアというのは複雑になるんですよ。
みんなも想像がつきますかね。大きくなれば大きくなるほど、時間が経てば経つほど機能が増えて、リファクタリングしても、またモジュールが増えて、新しい設計パターンをやりたいというのができて、また増える。そして、「いや、こういうことをまた実現したいよ」と、また舵を右に切って、左に切って、いろいろな機能を付けて、どんどんコードベースが大きくなる。マイクロサービス化しても、それを支える基盤のコードがどんどん大きくなる。そういうことがまぁ起きるんですよ。
自分の経験則からもう少し話をすると、僕自身、1人目のCTOの時は、エンジニアチームもすごく人数が少なくて、全部自分で書けばいいでしょというストロングスタイルのエンジニアだったので、やればいいじゃんって思いがちでした。
途中でfluctでマネージャー、大きなチームでやろうとマネジメントをやった時に、当時10人ぐらいだった開発チームが30人ぐらいまで増えたんですけど、やはり30人とかになると、成長スピードも速いんですよね。機能もバーっと増えていくし、ビジネス側もやりたいことをバンバン言ってくるから、いろいろな機能作って、いろいろなお客さんにデリバリーしていったら、めちゃくちゃ機能が増えていく。
線形ではなく、グンと複雑になっていった。大きくなると、全体を知っている人がいなくなるんですよ。まさに複雑性の増加だったんですね。
自分でやればいいじゃんというスタイルは、やはり限界が来るんですよ。なぜなら全部がわかんないから。時間をかけて、読んでいったりすればわかるんですけど。この時に、このままじゃ無理だなと思って、やはりソフトウェアエンジニアリングをやっているんだと思ったんですよ。
複雑すぎて見積もりすら難しい。それが起きた時に僕は、チームメンバーにどんどん聞いたんですよね。「どうすればいいと思う? ちょっと俺もわかんないんだよね」って言って。「このキュー機能を作りたくて、こういうメトリックを取って、このお客さんにこういう機能をこの早さで、この粒度で設計したいんだけど、どういうアイデアありますか?」と、どんどん聞いたんですよ。
もう調べてもらって、任せる。レビューはするけど、基本的な設計とかどんどん任せてやっていったんです。どういう方向に向かっていったらいいと思う? という質問をいろいろな人にして、いろいろなアイデアを取り込みました。
その結果、僕自身が想像しなかった未来に行ったんですよ。fluctは海外展開もしていて、USもあるし、いろいろなところで展開しています。もともとなかった音声動画の機能も付いて、コンサルティング事業も拡大して、誰も想像してなかったけど、そうなっていった。そういうことが起きていったんですよ。
この時にやはり感じたのは、「さらけ出す」こと。エンジニアとしていくら優れていたって、経営者としていくら優れていたって、やはりさらけ出さないと。俺もわからないんだよとか、俺もここが不安なんだよねと共有ができないチームは、絶対に信頼関係を築けない。
だからこそ、自分から「ここは俺もわかんない、助けてほしい」と言えるチームであることは、めちゃくちゃ大事だと思っています。わからないことをさらけ出すことは、むしろプラスだと思います。
その結果、やはり信頼は積み重なっていって、チームで大きな挑戦がしやすくなるんですよね。挑戦しやすいと失敗の数も増えるけど、長期的に見ると成功に絶対つながるんですよ。だからこそ、さらけ出したり頼ったりすることを起点に、信頼が積まれていく。それをみんなのコツとして意識してほしいなと思っています。
なので、3つ目のコツは信頼です。信頼し、任せること。これからキャリアを歩んでいく中、きっとなにかのチームで、なにかのプロジェクトをやっていくと思いますが、チームでやるものだからさらけ出してください。
信頼すると自分に絶対戻ってきます。自分が想像もしなかった未来に一緒に行けるから、それをぜひやってみてほしいなと思っています。
というわけで、まとめです。エンジニアが圧倒的に成長する3つのコツということで、今日はマインドの話をしてきました。
1つ目に好奇心、2つ目に一日一歩進む、そして、3つ目に信頼の話をしました。どうでしたかね。
言い換えるなら、こういうことかなと思っています。みんながこれからキャリアを歩んでいく中で、好奇心を押さえ込まずにやはり楽観的にいてほしいなと、(楽観的で)いきましょうということ。
そして、みんなが進めば進もうとするほど、不安は出てくるけど、挑戦に不安はつきものだから。だからこそ、毎日前に進んで、自分に自信を持てるようにしてほしいなと思っています。
そして、3つ目は信頼の話で、さらけ出してチームの力を信じて、みんな自身がチームを進められる人になってほしいなと思います。一言でまとめると、やればできると、やりましょうと。やらなければ何も得られないけど、やればできると思うから、ぜひかっこいい大人になってほしいなと思っています。
(コメントを見て)「JUST DO IT」って、めっちゃチャットに流れてるね。
最後にPRです。インターンシップがあります。これはもう10年以上やっているエンジニアのインターンシップで、「Tresure」というのをやっています。僕も参加したんですが、Goを使ったものづくりをしますので、ぜひ応募してください。発表は以上です。ありがとうございました。
関連タグ:
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.09
10点満点中7点の部下に言うべきこと 部下を育成できない上司の特徴トップ5
2024.12.09
国内の有名ホテルでは、マグロ丼がなんと1杯「24,000円」 「良いものをより安く」を追いすぎた日本にとって値上げが重要な理由
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.10
職場であえて「不機嫌」を出したほうがいいタイプ NOと言えない人のための人間関係をラクにするヒント
2024.12.12
今までとこれからで、エンジニアに求められる「スキル」の違い AI時代のエンジニアの未来と生存戦略のカギとは
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術
PR | 2024.11.22
「闇雲なAI導入」から脱却せよ Zoom・パーソル・THE GUILD幹部が語る、従業員と顧客体験を高めるAI戦略の要諦
2024.12.11
大企業への転職前に感じた、「なんか違うかも」の違和感の正体 「親が喜ぶ」「モテそう」ではない、自分の判断基準を持つカギ