2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
まつもとゆきひろ氏:次「Gems」ですね、RubyGems、十何万個あると聞いた気がするんですが、Rubyのコアの部分だけではなくて、gemはすごく便利だと思います。みなさんも、どんどんgemを公開していただければいいんじゃないかなと思います。
私がお手伝いしているいくつかの会社でも、自分の会社で使っているものを一部gemに切り出して公開したり、オープンソースに貢献して、リクルーティングにも役立てている企業もたくさんあります。確かにそのとおりだと思うので、gemを提供することについてご一考いただければと思います。
Rubyのgemについていくつか思っていることがあって、1つは名前ですね。gemの名前のつけ方って、個人的には派閥が2種類ぐらいあって(笑)。1つは、なんかシンボリックっていうんですかね、実際の機能とまったく関係ない名前をつける一派がいて、それはそれですごくいい、Rubyの伝統としておもしろいと思うんですけども。
「Nokogiri」とか「Kaminari」とかですね。なんだこれみたいな感じ(笑)。特に外国人がそう思うことが多いんですけれども、1回覚えると覚えやすいというのは確かにあります。
一方、初心者は最初にそのgemを見た時に「なんでこれNokogiriなんだろう?」とか思うことがけっこうあって。そういう、覚えやすいけど最初のハードルが高いという欠点も若干あります。
逆に、すごくシンプルな名前。「Parser gem」とか「JSON」「YAML」とかですね。やっていることそのもの1単語みたいなやつがけっこうあります。個人的にはシンプルなほうが好きっちゃ好きです。
ただ、そうは言っても、例えばRubyの場合、プログラミング言語とルビーの名前の間にまったくなんの関係もないので、実際に自分の作っているプロダクトはシンボリックな名前だと思うんですね。やはり名前は重要で、自分の作っているgemやプロダクトにどんな名前をつけるかによって、運命がだいぶ変わってくるんじゃないかなと思います。
もし私がRubyを作る時に「Ruby」という名前を選ばなかったら。もうなんか違う名前を選んでいたら、RubyKaigiで1,000人の前で話をするとか、そういうことは起きなかったんじゃないかなと思うと、特に覚えてもらいやすい名前をつけるというのは重要なことではないかなと思います。
プログラミング言語の名前もいろいろあって、一番典型的なシンプルネームにAPLという言語があります。APLというのは略語で、略さないで全部書くと、「A Programming Language」。「あるプログラミング言語」、そのままですね(笑)。
そういう名前はもう二度と出てこないと思いますが、名前は重要なので、ぜひgemを作る時には名前をよく考えていただければなと思います。
もう1つは、スコープです。自分の達成したいゴールを明確にして、スコープも明確にするのがすごくいいんじゃないかなと思います。このへんが曖昧だと機能を拡張・拡大しすぎみたいな問題が起きたりしますしね。あと、実際に使う自分のユースケースに適合する機能を考えていただければなと思います。
DHHが最初にRailsを作った時、彼らは「こういうWebアプリケーションフレームワークがあるべきだ」と思って作ったわけではなく、当時作っていた、なんだっけ、名前忘れちゃった。「Basecamp」か。BasecampというWebアプリケーションの一部を切り出してきた上で、ちょっと調整してWebアプリケーションフレームワークとして作ったんですね。
というわけで、Ruby on Railsについて言うと、最初の日から「このユースケースを支援する」と明確にした状態で生まれてきました。
逆にRubyはそうじゃなかったんですけど(笑)。今振り返ってみる時に、みなさんに使ってもらいやすいツールを作るのに近道になるのは、具体的なユースケースがあるという方向性だなと思うので、みなさんがもしgemを作る時には、どっちかというとそっちのほうをお勧めします。
貢献の中で、今ここが足りないなと私が思っているのは、「Triage」です。コミュニティも随分大きくなりましたし、参加してくださる方も随分増えたので、ありがたい限りではあるんですけれども、正直言うと、リクエストをさばく時に、ちょっと手数が足りないなと思う時があるんですね。
私たちは、開発者ミーティングというのを月に1回オンラインで開いていて、その時に、今までに来たフィーチャーリクエストの中でRubyに入れるべきものは何かをリストして、それを上から順番に議論しています。
どれを話題にしてどれを先延ばしするかを決めなくちゃいけないんですが、イシューが多すぎて、ミーティングも1ヶ月に1回で時間は有限なので、その時の決め方が、見つかったものを順番に、とかになりがちなんですよね。本当は重要なのに見落とされているというケースがたまにあるんですね。
こういうのを優先順位付けして、今まで議論されていないイシューのうち、これについては結論を出すべきだというものをリストアップする。そして優先順位を付けて、開発者会議にかけるとか。
遠藤さん(遠藤侑介氏)とかに「フルタイムコミッターだからやらせろ」という人たちも、もしかしたらいるかもしれないんだけれども、遠藤さんの特異な才能は、もうちょっと別のところで発揮されるべきではないかと(笑)。
そういうようなことを考えたりするわけです。こういうところで、もうちょっと協力してくださる方が増えると変わってくるんじゃないかなと思います。
さらに言うと、我々が一番苦手なのは「Bookkeeping」というところで「ちゃんと管理する」みたいな話です。
開発者ミーティングで議論した上で、時間内に結論が出ないこともけっこうあるんですよね。そういうのは、「一度議論したから」と、結論が出ないまま放置されることが続いたりすることがけっこうあるんですよね。
なので、「これは結論が出ませんでしたが、今まで議論したことはこれこれで、中間的な結論はこれで」と記録して、次回に回すとか優先順位を管理して忘れないようにするということは、ぜひ必要だなと思います。
あるいは、開発者ミーティングの議事録を見たりとか。時々、議事録の内容と本当に議論したことがずれていることがあるので、そこを直したりすることも本当は必要です。
それから、バックログですね。議論したけどできていないやつ、あるいは、一度断ったんだけど、最終的にリジェクトしていないやつを記録しておくみたいな。コアにいる人たちはそういう細々としたことがすごく苦手な人が多いので、そういうところをやっていくことも必要ではないかなと思います。このように実際にコードを書けなくても、時間さえあればできるようなことがけっこうあるので、手を挙げていただける人がいれば、歓迎します。
それから、翻訳ですね。だいたいの情報は英語と日本語であるんですけれども、RubyのWebサイトなりドキュメントなりは、スペイン語、中国語、インドネシア語、マレーシア語、ロシア語など、いろいろな言語に翻訳されているのですが、十分ではない。
英語を見ればいいというのも1つのポリシーではあるのですが、可能であれば母国語で、自分の言語でドキュメントが見られるように翻訳チームに参加してくださる方がいらっしゃれば、歓迎しますということですね。
それから、カンファレンスとかミートアップとかも大事だと思います。この会議もそうですが、やはりカンファレンスで直接人と会っていろいろなことを話すことによって、インスピレーションを受けることってけっこうあるんですよね。
今回のRubyKaigiも、何年かぶりに会って講演を聞くだけではなくて、廊下で雑談をしたり挨拶をしたり、そういうことによって受けるインスピレーションもたくさんあります。実際にありました。
また、それぞれの地区で勉強会をする時に、その交流の中から生まれてくるものってたくさんあると思うんですね。これらのカンファレンスとか勉強会とかを開催するのも、だいぶコストがかかると思います。特に、RubyKaigiクラスになっちゃうと、本当に大変だと思います。
私自身は、RubyKaigiのオーガナイザーメンバーではないのですが、松田さんの活動とか、みなさんの活動とかを見ていると、本当に頭が下がります。
あっ、そうそう、松田さんとかに拍手(笑)。
(会場拍手)
スタッフのみなさん、本当にどうもありがとうございます。
私も11月に松江で開かれる「RubyWorld Conference」のオーガナイザーの1人ではあるのですが、だいぶお飾りなので、見ているだけのことのほうが多いんですよね。
だいぶ規模が小さいカンファレンスでも死にそうになっている人たちを見るんですね。特に感染症で不確定な時期にカンファレンスを開くことは、本当に本当に大変なことだと思いますが、その中でカンファレンスを開いてくださっているみなさんに感謝しています。このカンファレンスによってRubyのコミュニティが活性化して、インスピレーションを受けると確信しています。
世界中では「RubyKaigi」であるとか、ヨーロッパの「Euruko」であるとか、「Ruby Conference」であるとか、各種地域の「Ruby Conference」であるとか、年末に向けてめじろ押しですが、彼らの働きがRubyのコミュニティを活性化し、インスピレーションを与えると確信しています。
また、企業にはRubyを使って、どんどんお金を儲けていただきたいのですが、儲かったあかつきには、開発者、特に自分のところの開発者にRubyそのものに対して貢献することを推奨したり、もうちょっと余裕があれば、フルタイムの開発者を雇ったりしていただければなと思います。
現在でも、例えばクックパッドは笹田さん(笹田耕一氏)と遠藤さんの2人を雇用していますし、Salesforce.comも、私をコンサルタント契約してくださっています。ありがとうございます。
ちなみに、Herokuは2020年で辞めていますが、Salesforceとの契約はまだ続いています。それからアカツキが中田さん(中田伸悦氏)を採用しています。それからShopifyはRuby開発に貢献するチームを用意して、本当にたくさんの価値をRubyに貢献してくださっています。
そういえば「Shopify」も「y」で終わりますね(笑)。
(会場拍手)
ということで、前に進み続けることは大事だし、そのためにはみなさんの貢献が本当に重要な役割を果たします。
(次回へつづく)
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