Engineeringへの招待」、開発者の生産性を高めるプラットフォームを作り、運営していくための考え方とは(後編)。Engineeringへの招待」、開発者の生産性を高めるプラットフォームを作り、運営していくための考え方とは(後編)。#1」が3月9日に都内でオンラインとオフラインのハイブリッドで開催されました。今注目なの?」の内容を紹介しましょう。記事は前編と後編に分かれています。いまお読みの記事は後編です。Platformです、という話をしてきました。いった開発者向けの共通プラットフォームを作るという話は、別に新しい話じゃないよねと、自分も10年前にやってましたよ、という方もいらっしゃるんじゃないかと思うんですよ。それはイエスで、新しい話ではないんです。クラウドが盛り上がる前から、ある程度大きな会社だったら1回くらいこういう話をしているはずなんですよね。会場にもオンラインにも、こうした話に関わったことがある人は少なくないと思います。Platformを提供するのはどう違うのだ、ということにもなってきます。FoundryやOpenShiftなど、これまでいろんなものが出てきました。push」コマンドをソースコードがある場所で打つだけでデプロイができる、という仕組みでした。PaaSは開発者の認知負荷を下げる意味では、確かに最高に効率がよい仕組みでした。Engineeringとどう関わるのか、ということにも徐々に触れていきたいと思います。これまでなぜうまく行かなかったのか?先ほど、共通プラットフォームに関わってきた方も少なくないのでは、という話をしましたが、そうした方々は、ぜひこの質問に心の中で答えてみてください。Engineeringという言葉が注目されているのかというと、共通のプラットフォームを作るのはめちゃくちゃ難しいからですね、本当に難しくて、大体うまくいかない。これは完全に私の主観ですが、感覚的には4割ぐらいのプラットフォームがもう生まれながらに死んでいます。4割ぐらいの共通プラットフォームはうまく運用できずに死んでいきます。本当に成功するプラットフォームは2割かそれ以下なんじゃないかな、と思っています。なんでそんなことになっちゃうんでしょう。共通プラットフォームの失敗とは失敗するプラットフォームとは、要するに使われないプラットフォームですよね。誰にも使われずに消えていったプラットフォームを失敗としましょう。失敗するのかというと、そのプラットフォームに価値がないから使われないのですね。この言葉は自分にも刺さる音がするんですが。Engineeringの話でいうと開発者ですね。その人が価値を感じるかどうかで決まってくるわけです。開発者に価値を提供できなければそのプラットフォームは失敗している。プラットフォームを作るにあたっては、「誰に」「何を」「どうやって」提供していくかを考えることが非常に大事なんです。これまでの共通プラットフォームは、技術と「どうやって」というところばかりに注力してきた感じがあるんですよね。自分も振り返ると、ここばかり見ていたな、と思っていたりします。生まれながらに死んでるパターンというのは、結局、開発者が欲しくないものを作っちゃった、ということもあれば、2年ぐらい頑張って俺の考えた最強のプラットフォームを作ったけれども、2年のあいだにトレンドは終わってオワコンになってました、みたいなことですね。運用がうまくまわせずに死んでいくパターンもありますね。できあがりはしたのだけれど、特定の技術に依存してしまったがためにトレンドに乗り遅れました、とか、大企業ではよく聞くんですが、プラットフォームの構築プロジェクトとして実行するんですね。プロジェクトには必ず終わりがある。すると構築してプロジェクトが終わりました、予算がなくなりました、人が半減しました、運用がまわせなくなって終わりました、みたいな。やってプラットフォームは使われなくなっていくわけなんです。認知負荷を下げることは間違いではない私自身もPaaSを作るのに関わってきました。開発者の生産性を上げるのは大事ですよね、認知負荷を下げるのは大事ですよね、簡単にデプロイできるのは大事ですよね、という気持ちでやっていました。FoundryというPaaSを開発者に提供すればいいのではないかと思って提供していたのです。これは確かに刺さる人には刺さって、期待通りの効果を上げることができたと思います。多くの方にはうまく刺さらなかったんですね。組織全体で考えると必ずしも効率化できたわけではなかったんです。Foundryはそれらにそぐわずにうまく行かなかった、という経験がありました。これを振り返ると、一番上にある「生産性を挙げるために認知負荷を下げる」ということは間違いじゃなかったと思っています。Engineeringの考え方でもこれは大事だとされていますし。その後は良くなかったですね。これはすごく簡単にデプロイできる仕組みだから、みんなこれを使うべきだ、みたいな形でやっちゃっていたわけなんです。本当に開発者たちがそこに困っていたのか、というのも分からないまま、これはいいものだから、と押しつけているところもありましたし。ここは難しいところですが、世の中は変わっていくことを前提にチームとか仕組みを作っていかなくてはいけない。そこも考慮できてなかったなと、今考えると感じます。開発者のための製品としてプラットフォームを考えるということで、誰に対してどういった価値を提供するかをちゃんと考えて、しかも作って終わりではなくて、継続的に回していくことがとにかく大事なわけですね。Product」という考え方があります。これは「開発者」をプラットフォームを使ってくれる顧客として考え、顧客にプラットフォームというプロダクトを提供する、というアプローチの仕方です。すると、プロダクトを使ってもらってお金を稼ぐということになりまうし、使ってもらうには宣伝しなきゃいけないし、活用し続けてもらえるようにサポートもしていかなくてはいけない、といろんなアイデアは出てくるんじゃないかなと思うんです。プロダクトとして考えることで、すでに存在している色々なプロダクトマネジメントや管理手法をプラットフォーム作りに取り込んでいくこともできるんですね。顧客に価値を提供するためには顧客を知らなくてはいけないのでヒアリングをするとか、いつまでに何を提供していくかを優先順位をつけてリリースしていくとか、どうやってサポートや教育をするか。継続的に運用もしていかなくてはいけないので、チームをどうやって育てていこうか、みたいな視点を持つようになるんです。したことについて、世の中にあるプロダクトマネジメントの考え方をそのまま適用できるのはメリットです。プラットフォームチームの中には、プロダクト目線で考えるプロダクトマネージャーを置きます。プロダクトマネージャーが、そのプラットフォームをどうやって提供していくかを考えて、プライオリティ付けをしていく、というやり方が取れるわけですね。真のDevOpsを実現していくためにまとめます。真のDevOpsを実現していくために、開発者の認知負荷を下げて、セルフサービスでできるようなプラットフォームを提供し、開発者のアプリケーション開発体験や生産性を向上させていきましょうと。Engineeringだと言えるのではないか、と思っています。Engineeringにみんな方向転換していることを皮肉るようなツイートを面白がって紹介しましたが、DevOpsによる継続的な改善をしていくことや、DevやOpsのサイロをなくしていくという考え方は間違っていませんし、いまでも価値があります。Engineeringだと考えた方がいいんじゃないかなと思っています。Engineeringだからプロダクトマネージャーになってくださいと言われても、大変じゃないですか。やらなくちゃいけないんです。最近読んだ「継続的デリバリーのソフトウェア工学」という本に、Engineering、工学についての分かりやすい表現があったので紹介したいのですが、「工学とは、実際的な問題に対する効率的、経済的な解を見つけるための経験的、科学的なアプローチの応用である応用のことである」と書いてあったんですね。いったエンジニアリングに関わる人は「学びのエキスパートであり、かつ複雑さ管理のエキスパートになる必要がある」とも書いてあったんです。Engineeringでも同じかなと思っています。いろんなツールなどが出てきますし、開発者が求めるものもどんどん変わっていきます。向こう側のエンドユーザーもどんどん変わっていきます。ChatGPTみたいな技術が急に注目されるようになるとか、そういったものに対応していくために、我々は学び続けなくてはいけないし、そういった複雑な世界をシンプルにしていくようなスキルを身につけなくてはいけないのかなというふうに思ってます。自分がこの勉強会を立ち上げたのは、そういったプラットフォームに関わる皆さんが学びのエキスパートになって、複雑さを管理するエキスパートになるための役に立つような機会を提供して、みんなで学んでいけたらなと考えたからです。いろいろな方に声をかけて、お話いただきたいなと思っています。開発ツールPublickey広告.NET帳票ツール。デザイナはExcel。クラウド/サーバー環境対応。.NET5/6/8に対応。デザイナはExcelのため、エンドユーザーも編集可能。ノーコードでCSVファイルから帳票を出力する、CSVReportも新収録。JAPANがパスワードレスの「Passkey」に対応したと発表。Engineeringへの招待」、開発者の生産性を高めるプラットフォームを作り、運営していくための考え方とは(前編)。Niino(jniino)IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。Feed最新記事10本GitHubで最も使われている言語、PythonがJavaScriptを抜いて1位に。生成AI関連プロジェクト急増で。Sonnetが選択可能に。100」の仮想マシンを正式提供開始JetBrains、JavaScript/TypeScriptのためのIDE「WebStorm」と.NETのためのIDE「Rider」、非商用利用ならば無償で利用可能に。1.0」、12月に正式リリース予定。MemoryDBで提供開始Webブラウザ上でWebAssembly製コンパイラによりC言語をWebAssemblyにコンパイル、そのまま実行可能に。