2024.10.21
お互い疑心暗鬼になりがちな、経営企画と事業部の壁 組織に「分断」が生まれる要因と打開策
リンクをコピー
記事をブックマーク
廣瀬健氏(以下、廣瀬):株式会社クラシコムの廣瀬と申します。よろしくお願いします。
(会場拍手)
ありがとうございます。入社が一昨年の12月なので、ちょうど1年経ったくらいですね。前職まではRailsをやってて、クラシコムに入ってからLaravelを触るようになりました。
会社のエンジニアのブログでRailsとLaravelの比較記事を書いたり、あとさっきオープニングセッションで紹介があったLaravel Meetup TokyoでLaravelを使ってDDDやってみたという発表をやったりしました。
クラシコムという会社、今回スポンサーを務めさせていただいていますが、みなさんご存知でしょうか? 知ってる人?
(会場挙手)
ありがとうございます! じゃあ「北欧、暮らしの道具店」というECサイトを知ってる方、いらっしゃいますか?
(会場挙手)
ありがとうございます。
僕たちクラシコムは「北欧、暮らしの道具店」という、EC兼メディアのようなサイトを運営しています。このサイトを、Laravelだったり、最近だとVue.jsを使って開発・運用しています。
今日はまず、僕に最近あったことからお話ししたいと思います。最近あったこと1つ目。
Laravel Mixって、ご存知ですよね。(僕は)最近使い始めたんですけど、Laravelに標準で入っている、いわゆるWebpackのラッパーです。アセットのコンパイル設定とかがすごく簡単に書けるやつ。
Webpackをちゃんと理解してなくてもすぐに使えるよっていうライブラリなんですけど、これを使っていて、ある日、Babelのコンパイル、トランスパイルの設定で、presetsの部分を変更したいなと思ったんです。
いろいろLaravel Mixを調べてみると、babelConfigっていうメソッドがある。これを使えばいいのかなと思ったけど、なんかうまくいかない。
結局Laravel Mixのソースをだいたい読んでみて、(やっと)presetsは上書きできないことがわかった。Babelの設定を変えたかっただけなのに、webpackConfigを使ってようやく解決した、ということが最近ありました。簡単だっていうから使い始めたのに、結局簡単じゃなかった。
あと、Webpackをそこまで理解してなくても使えるよというものだと思ってたのに、おかげで(逆に)けっこうWebpack自体の勉強になった(笑)。なんだかなっていう、これが1個目です。
最近あったことの2つ目。
Vue.jsとVuexを使い始めました。
Reactは触ったことあるんですけど、Vueは初めて使ったので、ひととおりドキュメントを読んで、(Reactとの)大きな違いとしてv-modelっていうディレクティブがすごく便利そうだから、これを使う方向で作っていけばいいかなと思ったんです。
それから、Vueの公式ライブラリですし、ステート管理にはVuexを導入しようと思って、ドキュメントを読んでみたんです。そしたら、v-modelを使う方法はちょっとトリッキーというか、そのままでは使えませんって書いてあったんですね。あれ? となった。これが2つ目です。
最近あったことの3つ目。後輩から「DockerでMySQLのコンテナが動かなくなった」と質問されました。彼はまだエンジニアとしての経験が浅いんですが、Dockerの勉強を始めたのかな、それはいいことだなと思って。
「とりあえずボリューム削除してもう1回やり直してみようか」って言ったら「ボリュームって何ですか?」って聞いてくるんですね。「あれ?」と思うわけです。
「そもそもどうやってDocker動かしたの?」
「これ(./vessel start)です」。
見たことないコマンドを教えられて、何じゃこれ!? と(笑)。結局(彼は)Dockerを勉強し始めたわけではなくて、これ(Vessel)、ベッセルって読むんですかね? このとき初めて知ったんですけど、LaravelをDockerで動かす便利なツールがあるらしくて、それを使ってたんです。うーんって思った。
はい、何の話かと申しますと、(スライドを指して)もちろんこれです(笑)。
SimpleとEasyは違うっていう話を今日はしたいと思います。このスクリーンショットを撮ったときハートが8で、なんか少ないなと思って今朝自分で押してたんですけど(笑)。押してくれた方ありがとうございます。
SimpleとEasyは違うという話。よくあります。
すごく少ない記述でこういうことができる、コマンド一発でこれができる、それを「簡単だね」と言うのはわかります。
「シンプルだね」という表現もよく使われますが、確かに簡単かもしれないけど、シンプルって言っていいのか? と、さっきお話しした、最近あった3つの出来事を通して思ったんです。
Laravel Mixであれば、セットアップは確かにすごく簡単で、すぐに始められました。でも、ちょっといじろうとすると、むしろWebpackより難しいんじゃないかと思うくらい大変だった。ほかのことに関しても、似たような体験がありました。
だから、簡単に使えるものがそれ即ちシンプルとは言えないんじゃないかと思って、いろいろネットで調べて、Rich Hickeyさんという、Clojureの作者さんの言葉を見つけました。
「シンプルさとは使いやすいことだと思っているのならそれは違う」「EasyとSimpleはぜんぜん別のものです」ということを、Simple Made Easyというプレゼンテーションの中で明確に言っていました。
「Easy」は相対的、主観的。要は、僕にとっての「簡単」とあなたにとっての「簡単」は違うよね。対義語はhard、難しい。対して「Simple」は客観的な概念。感じ方という意味で、Simpleにも人によって多少違いはあるかもしれないけれど、計測できるものだったり、比較できるものだと思います。対義語はcomplex、複雑。
となれば、さっきの「簡単に動かせるよ」も、簡単とは言えるかもしれないけど、シンプルとは違うのかもしれない。EasyとSimpleを明確に分けて考えると、さっきの3つの話は、SimpleよりEasyを目的としていた(からな)のかなと思えてきます。
とくにLaravel Mixは、リポジトリのディスクリプションのところで明確に「80パーセントのユースケースのためのラッパーだよ」って書いてあって。じゃあ今回の場合は80パーセントじゃなくなったってことなのかなと思ったんです。
こんなことが最近あったり、考えたり、さっきのプレゼンテーションを見たりして。思い浮かべたことがあります。
簡単といえば……みなさんご存知でしょうか? 料理したことない人でも知ってるかもしれない。創味のつゆというすごく便利な調味料があるんですよ。ちょっとその紹介をしたいと思うんですけど。
(会場笑)
すごく簡単です。
パッケージに書いてある水もしくはお湯の分量で薄めるだけで、湯豆腐も作れるし、ざるそばのつゆも作れるし、かけそば、寄せ鍋、和風煮物も作れる。創味のつゆのホームページにいくと、もっとこんな料理がいっぱい作れるよって案内があるんですね。すごい調味料です。ぜひ家に1本入れておくといいと思います。うちも常備してあります。
創味のつゆはすごくEasy。かつ、これってすごく複雑なんです。
これ1本でなんでもできるということは、普通だったらいろんなものを入れなくちゃいけないところに、全部最初から入っている。ホームページには「いつものメニューもプロの味」って出てます。すごいです。
ちょっと整理して考えてみましょう。いいところとしては、計量が簡単だし、醤油が大さじ何杯とかも考えなくていい。いろんなものが作れます。でも、だいたい似たような味になるという欠点があります。
(ホームページの)いろんなものが作れるよっていうレシピも、作ったことあるんですが、すごくおいしいけどまあ似たような味。とくに煮物系はだいたい同じになります。ああ、創味のつゆかな、みたいな。
(会場笑)
それに、結局、醤油やお酒を組み合わせるほどなんでも無限に作れるというわけではない。
つまり、導入コストはすごく低いです。でも汎用性、拡張性という言葉が調味料に使う言葉なのかわからないですけど、そういうところは低い。
対して、創味のつゆを使わずに料理しようと思うと、出汁とか醤油が必要になってきますけど、これもデメリットがあります。最初にいろいろ揃えないといけない。1人暮らしだと使い切れなかったりしますし、かなり辛いですね。僕も1人暮らしをしていたので分かります。やっぱり、手間がかかる。
でも最近というか、ここ何年か、週末に料理するようになって、最初は(自分で味を調えることに)すごくハードルがあったんですけど、だんだん慣れてくるとそこまで難しくはない。レシピどおりに分量を計れば、まあまあできる。
つまりどういうことかというと、導入コストはちょっと高かった。最初はけっこう難しかったです。でも汎用性、拡張性は高い。
整理すると、創味のつゆはEasyで、だけどComplex、複雑です。導入コストはすごく低く抑えられるけど、それを使ってこれやろう、あれやろうという部分に対しては弱い。
対して、醤油やみりんはSimple、でもHard。導入コストは確かに高いかもしれないけれど、やりたいことに応えてくれるという面では、創味のつゆに比べて汎用性、拡張性がすごく高いといえます。
つまり、Easyを選ぶのであれば、いくらかトレードオフがある。もちろんSimpleもそうなんですが、そういうことが言えると思います。
別にEasyというか、創味のつゆをディスりたいわけではなくて、どうしても(Easyが)優先されるときもあります。
とにかくリリースする速度が優先される場合や、難しいことができる人を確保できなかったり、理由によってはありです。創味のつゆも、休みの日のお昼ごはんとかにはすごくありです。
(会場笑)
うどんを茹でてお湯を沸かして創味のつゆとお湯でめんつゆを作ったら、すぐうどんができます。それくらい便利。それが求められるときもあるのは事実だと思います。
でも、Easyなものばかり求めていると、簡単なものを求めていたはずなのにすごく大変になるということは、みなさん経験があると思います。
最初はこれ一発でなんでもやってくれるということを(期待して)用意したけど、ソフトウェアもアプリケーションも(作っていく中で)どうしたって変わってくるので「ここを変えなきゃ」「あそこを変えなきゃ」というときに、一緒くたになってしまっているものに対して「僕はどうすればいいんだ?」って状況に陥ったりする。
Rich Hickeyのプレゼンテーションからまた引用させてもらいますが、彼は「シンプルであるということは選択だ。もしあなたのシステムがシンプルでないならば、それはあなたのせいだ」と言ってます。
つまり、なにかが自動的にシンプルになることって、ないんですよ。シンプルにしようって思ってがんばらないと、シンプルさは保てない。
SRE本にもありました。「単純性という品質は、いったん失われてしまうと取り戻すことがきわめて難しい」。
であるならば、状況が許す限りはなるべくEasyよりもSimpleを選択したいよね。かつ、EasyとSimpleが別の概念であるなら、例え過去にEasyを選んでいたとしても、できるところからSimpleにしていきたい。
そんなことを考えて、最近僕らがやっていたことを紹介しようと思います。
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.21
40代〜50代の管理職が「部下を承認する」のに苦戦するわけ 職場での「傷つき」をこじらせた世代に必要なこと
2024.11.20
成果が目立つ「攻めのタイプ」ばかり採用しがちな職場 「優秀な人材」を求める人がスルーしているもの
2024.11.20
「元エースの管理職」が若手営業を育てる時に陥りがちな罠 順調なチーム・苦戦するチームの違いから見る、育成のポイント
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.19
がんばっているのに伸び悩む営業・成果を出す営業の違い 『無敗営業』著者が教える、つい陥りがちな「思い込み」の罠
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.15
好きなことで起業、赤字を膨らませても引くに引けない理由 倒産リスクが一気に高まる、起業でありがちな失敗
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.21
40代〜50代の管理職が「部下を承認する」のに苦戦するわけ 職場での「傷つき」をこじらせた世代に必要なこと
2024.11.20
成果が目立つ「攻めのタイプ」ばかり採用しがちな職場 「優秀な人材」を求める人がスルーしているもの
2024.11.20
「元エースの管理職」が若手営業を育てる時に陥りがちな罠 順調なチーム・苦戦するチームの違いから見る、育成のポイント
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.19
がんばっているのに伸び悩む営業・成果を出す営業の違い 『無敗営業』著者が教える、つい陥りがちな「思い込み」の罠
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.15
好きなことで起業、赤字を膨らませても引くに引けない理由 倒産リスクが一気に高まる、起業でありがちな失敗