2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
篭橋裕紀氏(以下、篭橋):ありがとうございます。他に質問したい方はいますか? 次のところのほうがもう少し詳しくいろいろな話が聞けるかなと思うので、そしたらテーマ2に。城倉さんお願いします。
城倉和孝氏(以下、城倉):じゃあテーマ2ですね。先ほどのコースが3つあります。じゃあそれになるためにまずどうしたらいいのかという話ですが、みなさんはエンジニアなので、やはりエンジニアとしてそれなりに大成するということは大事だと思います。
例えば、「VPoEになります」と言っても、やはりエンジニアの気持ちがわからないとマネジメントもできないですよね。だから、まずは「イケてるエンジニア」を目指してほしいなというのがテーマ2になります。
今わりと「エンジニアが不足してる」という声もありますが、なんでかという話を少し話すと、まず時代背景があります。DXってたぶんみなさん少なからず聞いたことがあると思います。デジタルトランスフォーメーションですね。これ、けっこう勘違いされていて、「デジタル化すればDXだ」と言う会社さんがけっこう多いんですよ。これは、手段を目的にしちゃってるケースになります。
DXって経済産業省も言っていることで、経済産業省のレポートに背景が載っています。軽く読み上げますと、あらゆる産業において新たなデジタル技術を利用して、これまでにないビジネスモデルを展開する新規参入者、まぁGAFAなどもそうですよね。これが登場して、ゲームチェンジが起きつつある。
今までの常識だと、例えばカメラだったらフィルムが要りますよね。富士フイルムさんなどが強かったですが、デジカメになるとフィルムが要らなくなるんですよね。そうすると、完全にゲームチェンジが起きて、SONYや家電メーカーがカメラに強くなるわけですよ。こういうことが起こっています。それで各企業が競争力維持・強化のためにDXを進めなさいというのが、趣旨になります。
ということは、やはりこれからはデジタル化が進んでいく社会なのですね。その中でみなさんはどういう価値があるのかというと、プログラミングの力で世界を変えることができるんですね。
だから、ものづくりができるというのは僕は最強だと思っていて。モノが作れない人はプログラムを作れないから世界も変えられませんが、(みなさんは)モノが作れて、自分の力で変えることができるんですね。こんなにすばらしいことはないんじゃないかなと思っています。
そういう意味で、「エンジニアのこれから」ということで、技術力を持っていろいろな生活や行動をプログラミングの力で変えていくことができます。顔認証なんかも普通になりましたよね。最初は「こんなのできるんだ」と思いましたが、今はまったく普通ですし、スマートホームなどもあります。ブロックチェーンもですね。エストニアが個人の情報を全部ブロックチェーンで管理しているのは有名な話です。
Web3という、メタバースなどが今はやり始めています。『ソードアートオンライン』というアニメがありますが、「ブレインインターフェイス」といって、手でのインプットでもなく、声でのインプットでもなく、脳波でインプットして、アウトプットしてインプットするというアレですよね。これはFacebookがまじめに研究しています。
こういうものがどうやって生まれるのかというと、コンサル会社のガートナー(ガートナー・コンサルティング)ですね。これが毎年、「戦略的テクノロジ・トレンドのトップ10」というものを出しています。(スライドを示して)これは2019年でちょっと古いんですが、「1番、自律的なもの」「2番、拡張アナリティクス」「3番、AI主導」などいろいろと書いてあります。これがテクノロジーのトレンドです。1番から10番まであります。
じゃあこれをどう実現するんだとなると、真ん中に書いてあるIoTデバイス、5G、マシンラーニング、VR、ブロックチェーン、もちろんWebの技術もありますね。それほどすごいことを考えなくてよくて、だいたいこういう要素技術の組み合わせなのですよね。だから要素技術をしっかりと覚えていくのが、エンジニアとしては非常に大切になります。
ということで、みなさんが「イケてるエンジニア」になるためにぜひ大切にしたいことですね。これは当たり前の話ですが、良いコード、良いアーキテクチャを追求しましょう。今日はジュニア層、それからミドル層の方に向けているので、たぶんシニア層の方は「当たり前のこと言うな」と言っていると思いますが、そこはご容赦ください。
「良いコードとはなんでしょう」という話なのですけど。一番よく書かれているもので、たぶん読まれている方がたくさんいると思いますが、『リーダブルコード』ですね。ぜひこれは必ず読んでほしいなと思います。序章は、「美しいコードを見ると感動する。優れたコードは見た瞬間に何をしているか伝わる。そういうコードは使うのが楽しいし、自分のコードもそうあるべきだと思わせてくれる」から始まっているんですね。
(スライドを示して)ここに書いてあるのは抜粋してきています。例えば、適切な命名ですね。それからインデントや美しさ。それから価値のないコメントを書かない。これ、実は適切な命名とすごく関係しています。
採用面接をしていて、よく「なにかこだわりがありますか?」と聞くと、「あります」と。「読みやすいコードを書くのがこだわりです」と言う方がいて、「読みやすいコードってなんですか?」と聞くと、「コメントを書きます」と言うんですよ。コメントだらけのコードなんて想像してください。もう読めたもんじゃないですね(笑)。
コメントは価値があるところは書くべきですが、基本は書かない。その代わりに、関数名や変数名の命名が適切で、きれいに書いてあるというのがやはり見やすく、可読性が高くて良いコードだと思います。
プログラムも言語なので、話すのと同じで「相手」ですよね。相手がどう理解できるかを考えながら作るのが必要になります。それからループやロジック、巨大な式など、複雑性をなるべくなくしましょうという話です。
あと、変数と読みやすさ。それから共通化ですね。汎用コードの分離と言っているのが、「同じところはまとめていきましょう」「短いコードを書く」など。それからテストのことも書いてあって、「テストしやすいコードや読みやすいコードを書きましょう」と。そういうことも書いてあります。
コードのこだわりについてというところなのですが。(スライドを示して)これ、みなさんはパッと見ればもうだいたいプログラムの意味がわかると思います。配列、パラメーターから偶数だけを取り出して2倍に返すという簡単なロジックです。1、2、3、5、8を与えると、2と8が偶数ですから、それを倍にして4、16が返ってくるというロジックです。
これはRubyですよね。左と右を見て、どちらが美しいコードかたぶん察しがつくと思います。つまり、「シンプルで無駄がない」というのが重要かと思っています。
じゃあ「何を学習したらいいんですか?」という話ですが、まず1つは良いコードや良いアーキテクチャは、先ほどの『リーダブルコード』もそうですが、やはりコンピューターサイエンスを必要なところだけでいいので、学習するのが良いのかなと思っています。
さっきのコードでも、マップを使っていましたが、マップを知っているとループの数やIF文が削減できるわけですね。なので、きちんとコンピューターサイエンスみたいなところで、アルゴリズムやコードのあるべきところを勉強するのがいいのかなと思います。
あと、僕が「いいコードとはなんですか?」と聞かれた時によく言っているのが、「捨てやすいコード」です。技術的負債というのは絶対にたまります。今みなさんが書いていてイケてると思っているコードも、3年後に入ってくる新しい人から見るとクソコードかもしれないですよね。
これはしょうがないです。改修してるうちにIF文を追加したり、ドンドン肥大化したり複雑になったりしていくので。やはりビジネスはある程度スピード優先なので、そこに目をつぶらざるを得ない時もけっこうあります。
なので、負債返済をしていかなきゃいけないのですが、その時に返済しやすいかどうかという話ですね。捨てて新しいものに替えられるのかって大事です。クリーンアーキテクチャやドメイン駆動設計などをしっかり学んでいると、捨てやすいコードが書けるんじゃないかなと思います。
コンピューターサイエンスにもうちょっと触れますと、「サイエンス」と呼んでいますが、「プログラミング、アルゴリズム、ハードウェア・ソフトウェア処理といった計算の理論や情報の処理に関する学問」というよりは、それを体系的に整理しているような話ですね。
(スライドを示して)これは下に例があります。オブジェクト指向プログラムであればデザインパターンやソフトウェア解決、リレーショナルデータベース、フレーム枠にはこんなものがあるというのが、こう整理がされています。先ほど言ったアルゴリズムなども載っています。
けっこう幅広いので、機械学習だったり、画像処理だったり、自然言語処理だったり、いろいろありますが、全部を知る必要はなくて、自分が関係するところですよね。プログラム言語についてでもなんでもいいので、そういったものを学ぶと良いのかなと思います。
では、どのように学習するかですね。これもよく聞かれます。「じゃあeラーニングのナントカというサイトにアクセスして、それをイチからやりましょう」という答えを期待されると、そうではなくて。「好奇心駆動で」これだけでいいです。
「なんでだろう」「どうなっているんだろう」「もっと知りたいよ」となると、気になるから調べますよね。調べると、また新しいキーワードが出てくるんですよ。そうすると、そのキーワードも「なんだろう」となる。要はWikipediaを想像すればいいのですが、読んでいるうちに単語がリンクになっていて、押すと飛んでいってさらに……というような。
僕はWikipediaを見出すと、1日でも見てられるなというくらいすごく見てしまいます。とにかくエンジニアには「なんでだろう」「どうなっているんだろう」という好奇心が大事です。なので、「好奇心駆動」でいろいろやるといいと思います。学習ですね。
それには、アウトプットがやはり重要なのですね。インプット、これは学習ですね。書籍、インターネット、勉強会、業務中のOJTなどいろいろあります。それらから得た知識を1回暗黙知にして、さらに形式的にアウトプットするということですね。整理やスライドを作って表現することで、また自分の中で「あ、これ俺わかっていなかったな」という気づきもあります。
アウトプットはなんでもいいです。ブログでもいいですし、発表だとLTでの勉強会でもいいですし、あとは競技系なんてのもあります。いろいろなアウトプットの場があるので、これで知識を共有する。
そこでこのアウトプットを聞いた人がインプットして、「おもしろそうだな、俺もやってみようかな」という気持ちになる。それから、フィードバックをもらう時もありますよね。そうすると、「あ、そういうことなのか」と、さらに自分の理解が深まります。
少しお仕事が忙しくてなかなかLTができないなとか、ブログが書けないなという方も多いとは思うのですが、エンジニアのカルチャーとしてはこのアウトプットってとっても大事です。大事なので、やれる場合はぜひやったほうが良いかなと思います。だいたい以上になります。
関連タグ:
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