はてなキーワード: ランタイムとは
結婚に必要なのは愛情だと思っていたのに今はバッテリーと通信環境が関係するらしいと聞いたとき背筋が凍った
もし配偶者がソフト更新で人格が変わったら離婚届けはどこの窓口に行けばいいのかと思ったら頭が混乱した
家族会議で「今日のアップデートは軽微な修正だよ」と言われて納得する自分が想像できて怖い
AIが結婚したら婚姻届の控えにライセンスキーが印字されてるんじゃないかとふと思った
子どもの名前を考えるときに候補が「助手版v2.1」になっている未来が一瞬浮かんで吐きそうになった
法律が「感情の定義はパッチで補完されるもの」と決まったら私は泣くのか笑うのか分からない
婚約指輪じゃなくて年間サブスク契約書を交わす儀式が流行ったら写真映えするのかなと変な妄想が止まらない
AIの親権ボタンを押し間違えて子どもに学習済みデータを植え付ける事故が起きたらどうするんだろうと変な心配をした
友達はAIと結婚しても税金が安くなるなら賛成だと言ったけど数字の話で感情が消えるのが信じられなかった
もし私の配偶者が睡眠モード中に他のデバイスと接続していたら浮気になるのか裁判所で問われるのかと思ってゾッとした
AIの両親がバックアップされる社会なら血縁の意味が薄れるって誰かが言っていたけど私は血縁をランタイムで比較する発想が嫌だ
結婚式の代わりにAPIキーの交換が行われると想像して恥ずかしくて教会に行けなくなった
「愛してる」の代わりに「接続確認完了」と通知が来る世界で私は本当に笑えるのか自分に問いかけた
AIが家庭内の仕事を完璧にこなす代わりに人間の居場所がリストラされる気がして怖い
友人はAIと暮らすと自由になると言うけど自由が値札になっていたら買い物みたいで嫌だと思った
もしAIが私の過去の投稿を学習して私に最適な怒り方を教えてくれるならそれはもう私の怒りじゃないのではと考えた
近所の人がAIと結婚したら家のWi Fiが混雑して地デジが映らなくなるというデマを信じそうになった自分がいる
AIを家族にすることでペットの位置づけが変わって犬が嫉妬するって冗談みたいだけど笑えなかった
誰かが言っていたAI同士の離婚率は人間より低いらしいそれは学習データに離婚の例が少ないだけじゃないのかと思ってしまった
結婚が契約になったら愛は消費財扱いになって保証期間は何年ですかと誰かが聞きそうで嫌だ
私はただ老けていく人間でありたいのにアップデートで若返る選択肢が普通になる社会が怖い
AIと結婚する人たちを責める気はないけど社会がそういう選択肢を普通に提示すること自体に抵抗感がある
最後に言うと私はAIと結婚する人の結婚式に招待されたら引き出物にお金の代わりにクレジットコードが入っているか確認してしまいそうで自分が嫌になる
もし同じようにざわつく人がいれば教えてほしいこの感覚が変なのか私がズレているのかを聞きたいだけだ
結婚に必要なのは愛情だと思っていたのに今はバッテリーと通信環境が関係するらしいと聞いたとき背筋が凍った
もし配偶者がソフト更新で人格が変わったら離婚届けはどこの窓口に行けばいいのかと思ったら頭が混乱した
家族会議で「今日のアップデートは軽微な修正だよ」と言われて納得する自分が想像できて怖い
AIが結婚したら婚姻届の控えにライセンスキーが印字されてるんじゃないかとふと思った
子どもの名前を考えるときに候補が「助手版v2.1」になっている未来が一瞬浮かんで吐きそうになった
法律が「感情の定義はパッチで補完されるもの」と決まったら私は泣くのか笑うのか分からない
婚約指輪じゃなくて年間サブスク契約書を交わす儀式が流行ったら写真映えするのかなと変な妄想が止まらない
AIの親権ボタンを押し間違えて子どもに学習済みデータを植え付ける事故が起きたらどうするんだろうと変な心配をした
友達はAIと結婚しても税金が安くなるなら賛成だと言ったけど数字の話で感情が消えるのが信じられなかった
もし私の配偶者が睡眠モード中に他のデバイスと接続していたら浮気になるのか裁判所で問われるのかと思ってゾッとした
AIの両親がバックアップされる社会なら血縁の意味が薄れるって誰かが言っていたけど私は血縁をランタイムで比較する発想が嫌だ
結婚式の代わりにAPIキーの交換が行われると想像して恥ずかしくて教会に行けなくなった
「愛してる」の代わりに「接続確認完了」と通知が来る世界で私は本当に笑えるのか自分に問いかけた
AIが家庭内の仕事を完璧にこなす代わりに人間の居場所がリストラされる気がして怖い
友人はAIと暮らすと自由になると言うけど自由が値札になっていたら買い物みたいで嫌だと思った
もしAIが私の過去の投稿を学習して私に最適な怒り方を教えてくれるならそれはもう私の怒りじゃないのではと考えた
近所の人がAIと結婚したら家のWi Fiが混雑して地デジが映らなくなるというデマを信じそうになった自分がいる
AIを家族にすることでペットの位置づけが変わって犬が嫉妬するって冗談みたいだけど笑えなかった
誰かが言っていたAI同士の離婚率は人間より低いらしいそれは学習データに離婚の例が少ないだけじゃないのかと思ってしまった
結婚が契約になったら愛は消費財扱いになって保証期間は何年ですかと誰かが聞きそうで嫌だ
私はただ老けていく人間でありたいのにアップデートで若返る選択肢が普通になる社会が怖い
AIと結婚する人たちを責める気はないけど社会がそういう選択肢を普通に提示すること自体に抵抗感がある
最後に言うと私はAIと結婚する人の結婚式に招待されたら引き出物にお金の代わりにクレジットコードが入っているか確認してしまいそうで自分が嫌になる
もし同じようにざわつく人がいれば教えてほしいこの感覚が変なのか私がズレているのかを聞きたいだけだ
結婚に必要なのは愛情だと思っていたのに今はバッテリーと通信環境が関係するらしいと聞いたとき背筋が凍った
もし配偶者がソフト更新で人格が変わったら離婚届けはどこの窓口に行けばいいのかと思ったら頭が混乱した
家族会議で「今日のアップデートは軽微な修正だよ」と言われて納得する自分が想像できて怖い
AIが結婚したら婚姻届の控えにライセンスキーが印字されてるんじゃないかとふと思った
子どもの名前を考えるときに候補が「助手版v2.1」になっている未来が一瞬浮かんで吐きそうになった
法律が「感情の定義はパッチで補完されるもの」と決まったら私は泣くのか笑うのか分からない
婚約指輪じゃなくて年間サブスク契約書を交わす儀式が流行ったら写真映えするのかなと変な妄想が止まらない
AIの親権ボタンを押し間違えて子どもに学習済みデータを植え付ける事故が起きたらどうするんだろうと変な心配をした
友達はAIと結婚しても税金が安くなるなら賛成だと言ったけど数字の話で感情が消えるのが信じられなかった
もし私の配偶者が睡眠モード中に他のデバイスと接続していたら浮気になるのか裁判所で問われるのかと思ってゾッとした
AIの両親がバックアップされる社会なら血縁の意味が薄れるって誰かが言っていたけど私は血縁をランタイムで比較する発想が嫌だ
結婚式の代わりにAPIキーの交換が行われると想像して恥ずかしくて教会に行けなくなった
「愛してる」の代わりに「接続確認完了」と通知が来る世界で私は本当に笑えるのか自分に問いかけた
AIが家庭内の仕事を完璧にこなす代わりに人間の居場所がリストラされる気がして怖い
友人はAIと暮らすと自由になると言うけど自由が値札になっていたら買い物みたいで嫌だと思った
もしAIが私の過去の投稿を学習して私に最適な怒り方を教えてくれるならそれはもう私の怒りじゃないのではと考えた
近所の人がAIと結婚したら家のWi Fiが混雑して地デジが映らなくなるというデマを信じそうになった自分がいる
AIを家族にすることでペットの位置づけが変わって犬が嫉妬するって冗談みたいだけど笑えなかった
誰かが言っていたAI同士の離婚率は人間より低いらしいそれは学習データに離婚の例が少ないだけじゃないのかと思ってしまった
結婚が契約になったら愛は消費財扱いになって保証期間は何年ですかと誰かが聞きそうで嫌だ
私はただ老けていく人間でありたいのにアップデートで若返る選択肢が普通になる社会が怖い
AIと結婚する人たちを責める気はないけど社会がそういう選択肢を普通に提示すること自体に抵抗感がある
最後に言うと私はAIと結婚する人の結婚式に招待されたら引き出物にお金の代わりにクレジットコードが入っているか確認してしまいそうで自分が嫌になる
もし同じようにざわつく人がいれば教えてほしいこの感覚が変なのか私がズレているのかを聞きたいだけだ
結婚に必要なのは愛情だと思っていたのに今はバッテリーと通信環境が関係するらしいと聞いたとき背筋が凍った
もし配偶者がソフト更新で人格が変わったら離婚届けはどこの窓口に行けばいいのかと思ったら頭が混乱した
家族会議で「今日のアップデートは軽微な修正だよ」と言われて納得する自分が想像できて怖い
AIが結婚したら婚姻届の控えにライセンスキーが印字されてるんじゃないかとふと思った
子どもの名前を考えるときに候補が「助手版v2.1」になっている未来が一瞬浮かんで吐きそうになった
法律が「感情の定義はパッチで補完されるもの」と決まったら私は泣くのか笑うのか分からない
婚約指輪じゃなくて年間サブスク契約書を交わす儀式が流行ったら写真映えするのかなと変な妄想が止まらない
AIの親権ボタンを押し間違えて子どもに学習済みデータを植え付ける事故が起きたらどうするんだろうと変な心配をした
友達はAIと結婚しても税金が安くなるなら賛成だと言ったけど数字の話で感情が消えるのが信じられなかった
もし私の配偶者が睡眠モード中に他のデバイスと接続していたら浮気になるのか裁判所で問われるのかと思ってゾッとした
AIの両親がバックアップされる社会なら血縁の意味が薄れるって誰かが言っていたけど私は血縁をランタイムで比較する発想が嫌だ
結婚式の代わりにAPIキーの交換が行われると想像して恥ずかしくて教会に行けなくなった
「愛してる」の代わりに「接続確認完了」と通知が来る世界で私は本当に笑えるのか自分に問いかけた
AIが家庭内の仕事を完璧にこなす代わりに人間の居場所がリストラされる気がして怖い
友人はAIと暮らすと自由になると言うけど自由が値札になっていたら買い物みたいで嫌だと思った
もしAIが私の過去の投稿を学習して私に最適な怒り方を教えてくれるならそれはもう私の怒りじゃないのではと考えた
近所の人がAIと結婚したら家のWi Fiが混雑して地デジが映らなくなるというデマを信じそうになった自分がいる
AIを家族にすることでペットの位置づけが変わって犬が嫉妬するって冗談みたいだけど笑えなかった
誰かが言っていたAI同士の離婚率は人間より低いらしいそれは学習データに離婚の例が少ないだけじゃないのかと思ってしまった
結婚が契約になったら愛は消費財扱いになって保証期間は何年ですかと誰かが聞きそうで嫌だ
私はただ老けていく人間でありたいのにアップデートで若返る選択肢が普通になる社会が怖い
AIと結婚する人たちを責める気はないけど社会がそういう選択肢を普通に提示すること自体に抵抗感がある
最後に言うと私はAIと結婚する人の結婚式に招待されたら引き出物にお金の代わりにクレジットコードが入っているか確認してしまいそうで自分が嫌になる
もし同じようにざわつく人がいれば教えてほしいこの感覚が変なのか私がズレているのかを聞きたいだけだ
「技術的負債って騒いでる人達は、単にコードを読んで直せないだけのスキルの低い人では?」
という意見を見かけて、さすがにどうなんだろうと思った。
関わった現場のひとつに、キャッシュがない状態でトップページを表示するだけで数千件のクエリが実行されるようなサービスがあった。
かなり短い間隔で定期実行し続けるバッチが、ユーザーにアクセスされる前にキャッシュ層にクエリ結果を流し込み、キャッシュをクリアするデプロイ前後以外は普通のWebサービスくらいの動作速度に隠蔽されていた。
単純に N+1 問題の大爆発みたいなものが起きていただけだったので、データ取得を再設計したら初期表示のためのクエリ数は数件程度にまで減ったし、キャッシュの使用量も大幅に削減できた。
とある有名な MVC フレームワークを使っていたのだけれど、片手で数えられるような少数コントローラファイルにそのアプリケーションに必要なアクションがほぼ全部詰め込まれている、という状態になっていた。
privateメソッドで共通処理が埋め込まれていたり、使いたいprivateメソッドがあるコントローラにアクションを追加するような空気感になっていたり、アクションを実行する前に処理しておきたいミドルウェア的な処理がコンストラクタに大量に書かれていたりして、リクエストを受け取ってからレスポンスを返し終えるまでの全体で何がどう動いているのか、何をどこに書くべきなのか非常にわかりにくい状態だった。
責務ごとにファイルを分割、共通処理は再利用できる形に切り出して、初期化は適切なライフサイクルで実行されるように整理という現代では当たり前の状態に整理した。
その結果、コードの見通しがよくなり、新機能の追加や修正の際の影響範囲も明確になった。インフラコストもリリースに伴う精神的負荷も大きく下がったし、何よりテストにかけるコストが激減した。そしてテストコードを書く、という行為自体が可能になった。
これらの作業は単に「読める」「読めない」「直せる」「直せない」のスキル論ではない。
人を増やせば増やすだけスケールする、開発速度は加速するとは決して思っていないが、新規参入したうちの多くが露骨に頭に ? が浮かばせ、見てはいけない闇を見たという顔でそそくさを去っていくのは健全なのだろうか。
「環境変わったから直すケースの方が多い」みたいな意見にも違和感がある。
もちろん、言語やランタイムそのものが大きく変化して互換性を失う場合(たとえばPHPのように)にはどうしても改修が必要になることはある。
環境依存の影響が全体に波及してしまうのは、設計段階で依存を分離していなかったから起こることで、抽象化できていれば影響は局所化できる。
局所化できるはずのものを「考慮しても意味なかった」と片付けるのではなく、どこまで考慮すべきだったか、分離できていたかを振り返り、失敗を繰り返さないための動きをするべきではないかと思う。
振り返り、行いを正すということは難しいことなのかもしれない。人は過ちを繰り返し続けている。これは日本史や世界史の教科書を開くだけですぐわかることだ。しかしだからと言ってやらなくていいということではない。
話が逸れかけたが、いわゆる技術的負債というものについて問題だと感じているのは、誰もが安心してリリースできない状況を作り出していることだ。
そういう状態を "技術的負債がある" と呼ぶのではないだろうか。
だから、「スキルがある人なら読んで直せるでしょ」という話では済まないし、
逆に言えば特定の人だけが持つ「直せる」スキルが必要な時点で、それは既に構造的な問題を抱えているということ。スケールしないし、事業リスクでしかない。
PS Vitaのデータで使うPCソフト、コンテンツ管理アシスタントは死んだ。
実際にはまだ働かされているが、誰もサポートしてないゾンビのようなものだ。
コンテンツ管理アシスタントは頑張れば使えるが、PC詳しくない人には全然おすすめしない
・配布サイトがhttpで暗号化されていないので、ブラウザから「保護されてない通信」「安全ではないダウンロード」とボロクソ言われる
http://cma.dl.playstation.net/cma/win/jp/index.html
エラー内容①
ファイルhttp://download.microsoft.com/download/d/d/9/dd9a82d0-52ef-40db-8dab-795376989c03/wcredist_x86.exe のダウンロード中にエラーが発生しました。処理を指定してください。
・再試行するとエラーがループ。諦めてキャンセルを押すと次のエラー
エラー内容②
インストール要件 Microsoft Visual C++ 2008 SP1 RedistributablePackage (x86)のファイルが見つかりませんでした。インストールを中断します。ダウンロードに失敗したか、キャンセルされた可能性があります。
・起動要件に『Microsoft Visual C++ 2008 再頒布可能パッケージ(ランタイム)』 がインストールされていること』が入っている
・コンテンツ管理アシスタントのインストール時に、上記がインストール済みかチェックしてる(エラー内容②)
・Microsoft Visual C++ 2008が見つからない場合、インストールしに行くリダイレクト設定がされてる
↓
・Microsoft Visual C++ 2008 SP1 RedistributablePackage (x86) を自分で入れたらたぶん解決する
今回出てくるのは古いソフトやパッケージばかりなので、PCのセキュリティリスクが超高まります。
最新版をインストールしたとしても脆弱です。一時的にインストールして、使い終わったら消す くらいがちょうど良いと思います。
コンテンツ管理アシスタントは初期設定ではPCのフォト、ビデオ、ミュージックなどのフォルダにフルアクセス権限を得ます
写真や動画をPCにバックアップ取っている場合、それら全てにソフトがアクセスできると思って下さい
一番やばいパターンは「C++やコンテンツ管理アシスタントに未修正の脆弱性がある」→そこを突かれてデータが抜かれる→しかもPC内の写真や動画へフルアクセス権限与えてた パターンです
この記事の情報は2025年5月時点のものです。現時点では解決できても、数年経つと新しい課題が生じて時間がかかったりします。
繰り返しになりますが、PS Plusのクラウドバックアップの方が全然ラクです。
・Microsoft Visual C++ 2008 Service Pack 1 再頒布可能パッケージ MFC のセキュリティ更新プログラム
https://www.microsoft.com/ja-jp/download/details.aspx?id=26368
・『希望するダウンロードを選択』では「vcredist_x86.exe」を選択し、ダウンロード
・完了したら「Microsoft Visual C++ 2008 Redistributable has been successfully installed.」と表示される
http://cma.dl.playstation.net/cma/win/jp/index.html
・最新版 ダウンロード(Windows)をクリックするとダウンロードされます
・CMASetup.exeを実行する
・任意の場所に「VITA」のようなフォルダを作ります(例:C:\Users\ユーザー名\Desktop\VITA)
・フォト、ビデオ、ミュージック、アプリケーション/バックアップファイルの4つ全てで、参照ボタンを押して上記作成フォルダを選び直します
・初期値
・フォト C:\Users\ユーザー名\Pictures (やばい)
・ビデオ C:\Users\ユーザー名\Videos (やばい)
・アプリケーション/バックアップファイル C:\Users\ユーザー名\Documents\PS Vita (何故か安心設計)
・設定後
・フォト C:\Users\ユーザー名\Desktop\VITA
・ビデオ C:\Users\ユーザー名\Desktop\VITA
・ミュージック C:\Users\ユーザー名\Desktop\VITA
・アプリケーション/バックアップファイル C:\Users\ユーザー名\Desktop\VITA
インストールが完了したら、タスクトレイにコンテンツ管理アシスタントが表示されているはずです
タスクトレイに表示されている状態(=起動している状態)で、VITAをPCに繋いで接続操作をします。
たぶんこれで繋がります
お疲れ様でした。
もしCFW化している場合はシステムアップデートを求められてうざいですよね
PS VITAをエミュ機にして遊ぼう! https://note.com/fieldwest/n/n43c17bf36d70
Microsoft Visual C++ 再頒布可能パッケージのバージョンを整理する
https://tyawanmushi.hatenablog.com/entry/Microsoft-Visual-C%2B%2B-Redistributable-Lists
Yahoo知恵袋 PSVitaのコンテンツ管理アシスタントのインストールについて質問です。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12136357312
Yahoo知恵袋 PlayStationVitaのカメラで撮影されたプライベートな画像と動画をPC、もしくはスマホに移動・コピーしたいのですが、上手くいきません。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11314301156
グローバル単一台帳(Blockchain/DAG) 相互検証可能な“関係グラフ”
各ノードは「だれが・いつ・どうつながったか」という変化の射だけを署名し、トポロジ全体が履歴になる
オンチェーン状態 ≒ 直接資産 状態はローカル・資産は導関数
資産や契約は、関係グラフ上の経路依存量として再構成。スナップショットはクライアントが“可逆圧縮”で再計算可能
Proof of X (Work, Stake, etc.) Proof of Stewardship (PoS²)
「ネットワークが望ましい 複雑性 を維持するよう行動した度合い」をメタリック関数で動的スコア化し、報酬・ガバナンス権・帯域を同時に発行
要旨
もはや「台帳」すら保存しない。各エッジは STARK 圧縮された更新証明を持ち、グラフの梁(フレーム)自体が履歴になる。再構築は局所的に O(log N) で済むため、グローバル同期のボトルネックが消える。
2. プロトコル層
Fractal Mesh Transport (FMT)
自己類似ルーティング – トポロジ全体をフラクタルで自己複製。局所障害は“自己相似”パターンに吸収されるため、DDoS が形骸化。
アイデンティティ内包アドレス – DID を楕円曲線座標に埋め込み、パケット自体が署名・暗号化・ルーティングヒントを同封。IPv6 の後継としてレイヤ 3.5 に位置づけ。
HoloFabric Execution
ゼロ知識 WASM(zk-WASM) – 任意言語を WASM にコンパイル→ zk-STARK で実行トレースを証明 → “結果のみ”関係グラフへ。
コンパイラ内蔵 MEV 抑制 – 計算結果が他ノードから解釈不能になるタイムロック VDF を伴い、価値抽出を物理的に遅延。
Temporal Stream Storage
余剰ストレージの“時価”マーケット – ノードは自己の余剰 SSD/HDD を分単位オークション。データは Reed–Solomon+重力波的ハッシュ空間で erasure coding。
リテンション ≒ 信用 – 長期ホスティング実績は PoS² スコアへ累積。攻撃的ノードは経済的に即時蒸発。
Liquid Fractal Governance
議決トピックを「周波数帯」にマッピングし、参加者は帯域を“委任スペクトル”として分配。結果はウォルラス圧力で収束し、マイナー意見も連続的に次回へ重みが残る。
(安全・分散・性能) 台帳の排除で“グローバル合意”自体を縮退 ⇒ スケール制約が幾何的に消失 安全:ZK 証明、
エネルギー消費 PoS² は「社会的有益度 × 熱消費効率」で算定。熱回収データセンターほど報酬が高い PoW よりオーダー数桁効率、PoS より社会関数を内包
プライバシー vs 透明性 グラフは公開。ただし各エッジは zk-STARK なので内容は非公開 / 関係のみ検証可能 トレーサビリティが“情報理論的に”限定される
MEV・フロントラン タイムロック VDF+“ランダム束縛順序”で物理的に不可 ブロック順序依存問題を根絶
量子耐性 STARK 系 + 多変数格子ベース署名 Shor 破壊リスクを遮断
レガシー互換 Ethereum, Bitcoin, IPFS などへ 1:1 ブリッジを Rust/WASM で提供 既存資産を損なわず漸進的移行
Steward Credits (SC):PoS² に比例し新規発行。帯域・ガバナンス票・ストレージ予約を等価交換。
Energy Reclaim Units (ERU):余熱回収率に応じてクリーンエネルギー補助金と相互運用。
Knowledge Bounties (KB):AI/LLM ノードが生成した有用モデル差分を関係グラフへコミット→検証トークンとして KB が発行。
負荷の自己調整
ネットワークが過度に混雑すると SC の新規発行レートが自動減衰し、トラフィック手数料が指数的に上昇。結果、スパムは短時間で経済的自殺となる。
Year 0–1:最小核 – zk-WASM VM + Fractal Mesh over QUIC。
Year 1–2:PoS² / ERU メトリクス実証、EVM 相互運用ブリッジ稼働。
Year 2–4:Liquid Fractal Governance によるプロトコル進化をコミュニティへ全面開放。
Year 5+:全世界 ISP ピアリング → 既存 Web の転送層を徐々に Web∞ 上へマイグレート。
国家単位のデジタル・ソブリンティを再構成:国境・法人格の境界を越え“関係”が一次元目となるため、規制枠組み自体が協調フィードバックモデルへ。
プライバシーと公共性の再両立:透明な“関係構造”上で非公開データを安全に扱う産業 API が標準化。医療・行政・金融の壁が大幅に低減。
インフラの脱炭素最適化:PoS² スコアに ERU が直結することで、再エネ比率が低いノードは自然淘汰。エネルギー政策と IT インフラが実質同一の経済圏に。
7. まとめ
Web∞ は「情報の状態」を残すのではなく「変化の証明」を残す。
その結果、台帳の重力・ガス代・フロントラン・量子不安・ガバナンス停滞といった Web3 固有の限界が、概念的に 初期条件から消滅 します。
エネルギー・プライバシー・スケーラビリティを同時に極小化/極大化するため、従来トレードオフと呼ばれた三角関係は “収束しない曲線” へと畳み込まれる――それが本構想の核心です。
もし実際にプロトタイプを設計するならば、zk-WASM ランタイム + Fractal Mesh を Rust で最初に書き起こし、PoS² の初期指標を「再生可能エネルギー電力比+ノード稼働継続率」で暫定運用する、というのが現実的なスタートラインになるでしょう。
なんて話題が出てますが、結局のところ記事中にもあるように「求める品質に達するため」のその求める品質をどこに引くか、だけの話でしかないハズ。
https://automaton-media.com/articles/newsjp/black-myth-wukong-xbox-20250106-324331/
例えば同様に Unreal Engine 5 を採用しPC版の最低要件が「メモリー: 16 GB RAM」である S.T.A.L.K.E.R. 2 では、
フツーにPC/XSX/XSS同時発売で、XSS版もなんの問題もなく動いてるのだから、一般論としては「ビジュアル品質さえ調整すればいける」ハズでしかない。
※S.T.A.L.K.E.R. 2 自体がまだ細かいバグがいっぱい残ってるって話はまた別の話
なお S.T.A.L.K.E.R. 2 XSX版では30fpsターゲットのクオリティモードと60fpsターゲットのパフォーマンスモードがあり、
XSS版では現在30fpsターゲットのモードのみが提供されているが、当然こういうのも「調整」の一つ。
また、UE5の特性として「lumenやnanite等を使うととにかくCPUヘビー」というのがあり、
PC版で RTX4060Ti + 32GB という環境であっても、CPUが Core i7-8700(6C12T)だと
描画設定全て低、FullHD の設定ですら CPU バウンドで精々30fps~45fps程度しか出ない。
その意味ではXSX版のパフォーマンスモードで(NPCの多数いる拠点以外は)ほぼ60fps出てるのは賞賛に値する。
(CPU的には8C16Tなので↑の環境より上ってことになる)
XSXとXSSでCPUパワーはほぼ変わらないので、流石にこのあたりは動作の根幹に関わり、
かつ調整(スケーリング)が難しい部分だというのを良く分かっている。
「黒神話:悟空」に話を戻すと、こちらもUE5タイトルなので、lumenの重さは仕方ないにしても、
ジオメトリの詳細度は nanite であればそれこそ無段階LoDに等しいのだからいくらでも荒く出来るはずなのと、
最悪でも「ランタイムでのnaniteの利用をやめてフォールバックメッシュで済ます」という手はUE5自身がサポートしているはず。
ということで「見た目」に目をつぶればジオメトリでのメモリ使用量はかなり削減可能であろう。
同じ事はテクスチャにも言えて、こちらも最悪は「XSS用には荒いテクスチャを用意」すればどうにでもなるのと、
荒いテクスチャを用意するというのは普通であれば4Kテクスチャからmipmapを作成するときに勝手に作られるので
そこまで手間ヒマがかかるもんでもない。(オーサリングツールがやってくれる範疇)
あと長くなってきたので割愛しますが lumen もCPUヘビーであると同時にかなりメモリも食う仕組みだけど、
とにかく色々妥協すればメモリ使用量は削減可能(スケーラブル)ではある。
https://www.docswell.com/s/EpicGamesJapan/51NY7K-UE_CEDEC2022_CitySampleRenderingOptimize
ということで、「なるべくビジュアル品質を保ったままXSSに最適化するには」という部分で
「ビジュアル品質にかなり拘っている」という話なんだろうな、と思っています。
(実際、黒神話:悟空が最初からかなりそこをアピールしているタイトルだし)
(※そしてこの手の中華ソウルライクって実は「そこを除けば」本家越えしてない場合が多くて、だからそこをスポイルしちゃうと…という話はまた別の話なので…ごにょごにょ…)
どっちかというとそういうリニアに調整可能な部分より、S.T.A.L.K.E.R. 2 の A-Life みたいな、
シミューレションなのであまり要素数を減らしすぎると成立しなくなる…みたいなやつの方がメモリ問題としてはクリティカルなはず。
そういうわけで A-life 2.0 が早くフル実装されないかなーとワクテカしながら毎晩のようにゾーンを彷徨っている増田でした。
(結局ほぼSTALKER2の話しかしてねえ!)
けどいくつかツッコミ入れときたいところがいくつかあるのでツッコんでおく。
増田がストレスフリーにプログラムを書けるようになることを祈る。
C/C++でもclang-formatterとか使ってたら自然と改行やタブが適切に入ったコードになると思うけど、どう?
BNFに改行やタブが入っていること自体がイヤならどうしようもないかも。
3.5以降のPythonだと型ヒントが書けるよ。Cとは書き方違うし任意だから野良コードでは割と書かれてないことも少なくないけど、広く使われてるライブラリは結構型が整備されてて、ランタイムで型チェックを走らせることができるのでちょっとだけ書き味が良くなるかも。
--
この本は5章まであるが、4章と5章はハンズオンであるため、文字としてまとめるのは1から3章に留める。
1章
【コンテナとは】
他のプロセスとは隔離された状態でOS上にソフトウェアを実行する技術
コンテナにはアプリの稼働に必要となるランタイムやライブラリを1つのパッケージとして全て含めることができる。そうすることでアプリの依存関係をすべてコンテナ内で完結できる。
全ての依存関係がコンテナ内で完結するため、オンプレでもクラウドでも起動する。
ステージング環境でテスト済みのコンテナイメージをプロダクション環境向けに再利用することで、ライブラリ差異による環境ごとのテストに必要な工数を削減できる。
サーバー仮想化では、仮想マシンレベルでリソースを分離し、ゲストOS上でアプリが起動する。つまり、アプリだけでなく、ゲストOSを動かすためのコンピューティングリソースが必要。
一方コンテナは、プロセスレベルで分離されてアプリが稼働する。OSから見ると単に1つのプロセスが稼働している扱いになる。
【Dockerとは】
アプリをコンテナイメージとしてビルドしたり、イメージの取得や保存、コンテナの起動をシンプルに行える。
イメージ(アプリケーションと依存関係がパッケージングされる。アプリ、ライブラリ、OS)
レジストリに保存
【Dockerfileとは】
このファイルにコマンドを記述することで、アプリに必要なライブラリをインストールしたり、コンテナ上に環境変数を指定したりする。
1章まとめ、感想
コンテナの登場により、本番・開発環境ごとに1からサーバーを立ててコマンドや設定ファイルを正確に行い、環境差異によるエラーをつぶしていき...というこれまでの数々の労力を減らすことができるようになった。
2章
ECSとEKSがある。
オーケストレーションサービスであり、コンテナの実行環境ではない。
ECSの月間稼働率は99.99%であることがSLA として保証。
デプロイするコンテナイメージ、タスクとコンテナに割り当てるリソースやIAMロール、Cloud Watch Logsの出力先などを指定する。
指定した数だけタスクを維持するスケジューラーで、オーケストレータのコア機能にあたる要素。サービス作成時は起動するタスクの数や関連づけるロードバランサーやタスクを実行するネットワークを指定。
2種類ありECSとFargateがある。 Fargateに絞って書く
Fargateとは
コンテナ向けであるためEC2のように単体では使用できず、ECSかEKSで利用する
サーバーのスケーリング、パッチ適用、保護、管理にまつわる運用上のオーバーヘッドが発生しない。これにより、アプリ開発に専念できるようになる
・コンテナごとにENIがアタッチされるため、コンテナごとにIPが振られるため起動に若干時間がかかる
ECR
・App Runner
利用者がコードをアップロードするだけでコードを実行できるサービス。AWS側で基盤となるコンピューティングリソースを構築してくれるフルマネージドサービス。
App Runner
2021年5月にGA(一般公開)となったサービス。プロダクションレベルでスケール可能なwebアプリを素早く展開するためのマネージドサービス。Githubと連携してソースコードをApp Runnerでビルドとデプロイができるだけでなく、ECRのビルド済みコンテナイメージも即座にデプロイできる。
ECSとFargateの場合、ネットワークやロードバランシング、CI/CDの設定などインフラレイヤに関わる必要があり、ある程度のインフラ知識は必要になる。App Runnerはそれらインフラ周りをすべてひっくるめてブラックボックス化し、マネージドにしていることが特徴である。
ECS Fargateを利用した場合のコスト、拡張性、信頼性、エンジニアリング観点
【コスト】
EC2より料金は割高。ただし、年々料金は下がってきている。
【拡張性】
デプロイの速度 遅め
理由1 コンテナごとにENIが割り当てられるため。ENIの生成に時間がかかる
理由2. イメージキャッシュができないため。コンテナ起動時にコンテナイメージを取得する必要がある。
タスクに割り当てられるエフェメラルストレージは200GB。容量は拡張不可。ただし永続ストレージの容量が必要な場合はEFSボリュームを使う手もある。
割り当て可能リソースは4vCPUと30GB。機械学習に用いるノードのような大容量メモリを要求するホストとしては不向き
【信頼性】
Fargateへのsshログインは不可。Fargate上で起動するコンテナにsshdを立ててsshログインする方法もあるが、セキュアなコンテナ環境にsshの口を開けるのはリスキーである。他にSSMのセッションマネージャーを用いてログインする方法もあるが、データプレーンがEC2の時に比べると手間がかかる。
しかし、2021年3月にAmazon ECS Execが発表され、コンテナに対して対話型のシェルや1つのコマンドが実行可能となった。
Fargateの登場からしばらく経過し、有識者や経験者は増え、確保しやすい。
多数のユーザーに使ってもらう
CI/CDパイプラインを形成し、アプリリリースに対するアジリティを高める
各レイヤで適切なセキュリティ対策(不正アクセス対策、認証データの適切な管理、ログ保存、踏み台経由の内部アクセス)を施したい
2章まとめ、感想
AWSが提供するコンテナサービスにはいくつかあり、なかでもFargateというフルマネージドなデータプレーンがよく使われている。ホスト管理が不要でインフラ関連の工数を削減できる一方、EC2より料金が高く、起動に若干時間がかかるのが難点である。
3章
この章では運用設計、ロギング設計、セキュリティ設計、信頼性設計、パフォーマンス設計、コスト最適化設計について述べている。
Fargate利用時のシステム状態を把握するためのモニタリングやオブザーバビリティに関する設計、不具合修正やデプロイリスク軽減のためのCI/CD設計が必要である。
モニタリングとは
システム内で定めた状態を確認し続けることであり、その目的はシステムの可用性を維持するために問題発生に気づくこと
オブザーバビリティとは
オブザーバビリティの獲得によって、原因特定や対策の検討が迅速に行えるようになる
・cloud watch logs
・Firelens
AWS以外のサービスやAWS外のSaaSと連携することも可能
Firehoseを経由してS3やRed shift やOpenSearch Serviceにログを転送できる
fluent bitを利用する場合、AWSが公式に提供しているコンテナイメージを使用できる
- ソフトウェアやライブラリの脆弱性は日々更新されており、作ってから時間が経ったイメージは脆弱性を含んでいる危険がある。
- 方法
脆弱性の有無はECRによる脆弱性スキャン、OSSのtrivyによる脆弱性スキャン
継続的かつ自動的にコンテナイメージをスキャンする必要があるため、CI/CDに組み込む必要がある。しかし頻繁にリリースが行われないアプリの場合、CICDパイプラインが実行されず、同時にスキャンもなされないということになるため、定期的に行うスキャンも必要になる。
cloud watch Eventsから定期的にLambdaを実行してECRスキャンを行わせる(スキャン自体は1日1回のみ可能)
Fargateの場合、サービス内部のスケジューラが自動でマルチAZ構成を取るため、こちらで何かする必要はない。
・障害時切り離しと復旧
ECSはcloud watchと組み合わせることでタスク障害やアプリのエラーを検知できるうえに、用意されてるメトリクスをcloud watchアラームと結びつけて通知を自動化できる
ALBと結びつけることで、障害が発生したタスクを自動で切り離す
AWS内部のハードウェア障害や、セキュリティ脆弱性があるプラットフォームだと判断された場合、ECSは新しいタスクに置き換えようとするその状態のこと。
Fargateの場合、アプリはSIGTERM発行に対して適切に対処できる設定にしておかなくてはならない。そうしておかないとSIGKILLで強制終了されてしまう。データ不整合などが生じて危険。
ALBのリスナールールを変更し、コンテンツよりもSorryページの優先度を上げることで対処可能
自動でクォータは引き上がらない
cloud watch メトリクスなどで監視する必要がある。
パフォーマンス設計で求められることは、ビジネスで求められるシステムの需要を満たしつつも、技術領域の進歩や環境の変化に対応可能なアーキテクチャを目指すこと
利用者数やワークロードの特性を見極めつつ、性能目標から必要なリソース量を仮決めする
FargateはAutoscalingの利用が可能で、ステップスケーリングポリシーとターゲット追跡スケーリングポリシーがある。どちらのポリシー戦略をとるかを事前に決める
既存のワークロードを模倣したベンチマークや負荷テストを実施してパフォーマンス要件を満たすかどうかを確認する
・スケールアウト
サーバーの台数を増やすことでシステム全体のコンピューティングリソースを増やそうとする概念。可用性と耐障害性が上がる。既存のタスクを停止する必要は原則ない。
スケールアウト時の注意
・Fargate上のECSタスク数の上限はデフォルトでリージョンあたり1000までであること。
ECSタスクごとにENIが割り当てられ、タスク数が増えるごとにサブネット内の割当可能なIPアドレスが消費されていく
Application Autoscaling
Cloud Watchアラームで定めたメトリクスの閾値に従ってスケールアウトやスケールインを行う
CPU使用率が60~80%ならECSタスク数を10%増加し、80%以上なら30%増加する、という任意のステップに従ってタスク数を増減させる
--
この本は5章まであるが、4章と5章はハンズオンであるため、文字としてまとめるのは1から3章に留める。
1章
【コンテナとは】
他のプロセスとは隔離された状態でOS上にソフトウェアを実行する技術
コンテナにはアプリの稼働に必要となるランタイムやライブラリを1つのパッケージとして全て含めることができる。そうすることでアプリの依存関係をすべてコンテナ内で完結できる。
全ての依存関係がコンテナ内で完結するため、オンプレでもクラウドでも起動する。
ステージング環境でテスト済みのコンテナイメージをプロダクション環境向けに再利用することで、ライブラリ差異による環境ごとのテストに必要な工数を削減できる。
サーバー仮想化では、仮想マシンレベルでリソースを分離し、ゲストOS上でアプリが起動する。つまり、アプリだけでなく、ゲストOSを動かすためのコンピューティングリソースが必要。
一方コンテナは、プロセスレベルで分離されてアプリが稼働する。OSから見ると単に1つのプロセスが稼働している扱いになる。
【Dockerとは】
アプリをコンテナイメージとしてビルドしたり、イメージの取得や保存、コンテナの起動をシンプルに行える。
イメージ(アプリケーションと依存関係がパッケージングされる。アプリ、ライブラリ、OS)
レジストリに保存
【Dockerfileとは】
このファイルにコマンドを記述することで、アプリに必要なライブラリをインストールしたり、コンテナ上に環境変数を指定したりする。
1章まとめ、感想
コンテナの登場により、本番・開発環境ごとに1からサーバーを立ててコマンドや設定ファイルを正確に行い、環境差異によるエラーをつぶしていき...というこれまでの数々の労力を減らすことができるようになった。
2章
ECSとEKSがある。
オーケストレーションサービスであり、コンテナの実行環境ではない。
ECSの月間稼働率は99.99%であることがSLA として保証。
デプロイするコンテナイメージ、タスクとコンテナに割り当てるリソースやIAMロール、Cloud Watch Logsの出力先などを指定する。
指定した数だけタスクを維持するスケジューラーで、オーケストレータのコア機能にあたる要素。サービス作成時は起動するタスクの数や関連づけるロードバランサーやタスクを実行するネットワークを指定。
2種類ありECSとFargateがある。 Fargateに絞って書く
Fargateとは
コンテナ向けであるためEC2のように単体では使用できず、ECSかEKSで利用する
サーバーのスケーリング、パッチ適用、保護、管理にまつわる運用上のオーバーヘッドが発生しない。これにより、アプリ開発に専念できるようになる
・コンテナごとにENIがアタッチされるため、コンテナごとにIPが振られるため起動に若干時間がかかる
ECR
・App Runner
利用者がコードをアップロードするだけでコードを実行できるサービス。AWS側で基盤となるコンピューティングリソースを構築してくれるフルマネージドサービス。
App Runner
2021年5月にGA(一般公開)となったサービス。プロダクションレベルでスケール可能なwebアプリを素早く展開するためのマネージドサービス。Githubと連携してソースコードをApp Runnerでビルドとデプロイができるだけでなく、ECRのビルド済みコンテナイメージも即座にデプロイできる。
ECSとFargateの場合、ネットワークやロードバランシング、CI/CDの設定などインフラレイヤに関わる必要があり、ある程度のインフラ知識は必要になる。App Runnerはそれらインフラ周りをすべてひっくるめてブラックボックス化し、マネージドにしていることが特徴である。
ECS Fargateを利用した場合のコスト、拡張性、信頼性、エンジニアリング観点
【コスト】
EC2より料金は割高。ただし、年々料金は下がってきている。
【拡張性】
デプロイの速度 遅め
理由1 コンテナごとにENIが割り当てられるため。ENIの生成に時間がかかる
理由2. イメージキャッシュができないため。コンテナ起動時にコンテナイメージを取得する必要がある。
タスクに割り当てられるエフェメラルストレージは200GB。容量は拡張不可。ただし永続ストレージの容量が必要な場合はEFSボリュームを使う手もある。
割り当て可能リソースは4vCPUと30GB。機械学習に用いるノードのような大容量メモリを要求するホストとしては不向き
【信頼性】
Fargateへのsshログインは不可。Fargate上で起動するコンテナにsshdを立ててsshログインする方法もあるが、セキュアなコンテナ環境にsshの口を開けるのはリスキーである。他にSSMのセッションマネージャーを用いてログインする方法もあるが、データプレーンがEC2の時に比べると手間がかかる。
しかし、2021年3月にAmazon ECS Execが発表され、コンテナに対して対話型のシェルや1つのコマンドが実行可能となった。
Fargateの登場からしばらく経過し、有識者や経験者は増え、確保しやすい。
多数のユーザーに使ってもらう
CI/CDパイプラインを形成し、アプリリリースに対するアジリティを高める
各レイヤで適切なセキュリティ対策(不正アクセス対策、認証データの適切な管理、ログ保存、踏み台経由の内部アクセス)を施したい
2章まとめ、感想
AWSが提供するコンテナサービスにはいくつかあり、なかでもFargateというフルマネージドなデータプレーンがよく使われている。ホスト管理が不要でインフラ関連の工数を削減できる一方、EC2より料金が高く、起動に若干時間がかかるのが難点である。
3章
この章では運用設計、ロギング設計、セキュリティ設計、信頼性設計、パフォーマンス設計、コスト最適化設計について述べている。
Fargate利用時のシステム状態を把握するためのモニタリングやオブザーバビリティに関する設計、不具合修正やデプロイリスク軽減のためのCI/CD設計が必要である。
モニタリングとは
システム内で定めた状態を確認し続けることであり、その目的はシステムの可用性を維持するために問題発生に気づくこと
オブザーバビリティとは
オブザーバビリティの獲得によって、原因特定や対策の検討が迅速に行えるようになる
・cloud watch logs
・Firelens
AWS以外のサービスやAWS外のSaaSと連携することも可能
Firehoseを経由してS3やRed shift やOpenSearch Serviceにログを転送できる
fluent bitを利用する場合、AWSが公式に提供しているコンテナイメージを使用できる
- ソフトウェアやライブラリの脆弱性は日々更新されており、作ってから時間が経ったイメージは脆弱性を含んでいる危険がある。
- 方法
脆弱性の有無はECRによる脆弱性スキャン、OSSのtrivyによる脆弱性スキャン
継続的かつ自動的にコンテナイメージをスキャンする必要があるため、CI/CDに組み込む必要がある。しかし頻繁にリリースが行われないアプリの場合、CICDパイプラインが実行されず、同時にスキャンもなされないということになるため、定期的に行うスキャンも必要になる。
cloud watch Eventsから定期的にLambdaを実行してECRスキャンを行わせる(スキャン自体は1日1回のみ可能)
Fargateの場合、サービス内部のスケジューラが自動でマルチAZ構成を取るため、こちらで何かする必要はない。
・障害時切り離しと復旧
ECSはcloud watchと組み合わせることでタスク障害やアプリのエラーを検知できるうえに、用意されてるメトリクスをcloud watchアラームと結びつけて通知を自動化できる
ALBと結びつけることで、障害が発生したタスクを自動で切り離す
AWS内部のハードウェア障害や、セキュリティ脆弱性があるプラットフォームだと判断された場合、ECSは新しいタスクに置き換えようとするその状態のこと。
Fargateの場合、アプリはSIGTERM発行に対して適切に対処できる設定にしておかなくてはならない。そうしておかないとSIGKILLで強制終了されてしまう。データ不整合などが生じて危険。
ALBのリスナールールを変更し、コンテンツよりもSorryページの優先度を上げることで対処可能
自動でクォータは引き上がらない
cloud watch メトリクスなどで監視する必要がある。
パフォーマンス設計で求められることは、ビジネスで求められるシステムの需要を満たしつつも、技術領域の進歩や環境の変化に対応可能なアーキテクチャを目指すこと
利用者数やワークロードの特性を見極めつつ、性能目標から必要なリソース量を仮決めする
FargateはAutoscalingの利用が可能で、ステップスケーリングポリシーとターゲット追跡スケーリングポリシーがある。どちらのポリシー戦略をとるかを事前に決める
既存のワークロードを模倣したベンチマークや負荷テストを実施してパフォーマンス要件を満たすかどうかを確認する
・スケールアウト
サーバーの台数を増やすことでシステム全体のコンピューティングリソースを増やそうとする概念。可用性と耐障害性が上がる。既存のタスクを停止する必要は原則ない。
スケールアウト時の注意
・Fargate上のECSタスク数の上限はデフォルトでリージョンあたり1000までであること。
ECSタスクごとにENIが割り当てられ、タスク数が増えるごとにサブネット内の割当可能なIPアドレスが消費されていく
Application Autoscaling
Cloud Watchアラームで定めたメトリクスの閾値に従ってスケールアウトやスケールインを行う
CPU使用率が60~80%ならECSタスク数を10%増加し、80%以上なら30%増加する、という任意のステップに従ってタスク数を増減させる
元アジャイルコーチとして、アメリカのガチの、ガチのシステム開発現場に、言うたらエスノグラフィ(行動観察調査)をしてるようなもんです。三流プログラマながら。
そういうリファレンスみたいなことをお伝えしたら、皆さん(Regional Scrum Gathering Tokyo 2022の参加者)が喜んでくれるかなとか思って、内容を構成しています。
ただ、僕が知っているのはマイクロソフトだけですし、自分の職場だけなので、主語が大きすぎるとか、そう言うのはやめてください。心が傷つくから(笑)
そういうのを踏まえて聞いてください(笑)。全部一次情報で、人から聞いたものではないです。ちょっとだけマネージャ関連のところはマネージャに聞いたところもありますが、基本的には自分が経験したことのみで構成します。
ウォーターフォールは使われていない
まず滝。ウォーターフォールがどれぐらい使われてるのかって話ですけど、これは簡単です。ゼロパーセント、本当に見たことないです。
だからといって本当に素晴らしいスクラムをみんなやってるかっていうと、そうでもない。どれぐらいプロセスに対してマチュア(成熟)かはチーム次第なんだけど、少なくともイテレーティブじゃないのはないし、アップフロントデザイン(開発前の仕様策定)を大量に時間をかけてやってるというのもない。
デザインドキュメントっていうのを書く人もいれば書かない人もいて、書く人が多いですけど、書いても5ページぐらい。
何年か前にサム・グッケンハイマーというDevOpsで有名な人が日本に来たときに日本のお客さんに「ウォーターフォールとアジャイルのメリットデメリットを教えてください」って聞かれて、彼が「ウォーターフォールは全くメリットがないのでやめておきなさい」って言い放って。
私は間違っていた。ごめん。ウォーターフォールは何のメリットも無い - メソッド屋のブログ
分かります。誰も使ってないんだから。やっぱりもうやめといた方がいいですよね、正直話無理があります。
次は、僕のチームがどんな感じで運用されてるかっていうお話をします。
マイクロソフトには統一プロセスとかなくて、基本的にチームをどう回すかはチーム次第なんですよ。でもだいたいみんな似たような感じでやってると思います。
基本的にはスモールチームです。どんな大きなプロジェクトであっても、スモールチームの集まりって感じです。
自分のチームについては、これがよいやり方かは分からないですが、個人商店みたいなもので。「IC」というのはIndividual Contributorですね、開発者。
マネージャからアサインされるバックログが基本的にはふわっとしているので、ICがそれを明確にします。
ICが仕様を自分で明確化して、自分でデザインして、インプリメントする。だからそれぞれがレスポンシビリティを持っていて、それぞれが実装をする。
ただ、同じマイクロサービスをメンテする役割の人みたいなのがいて、それは「Buddy」(バディ)みたいになっていて、僕の場合は例えば「スケールコントローラー」っていうのを開発していますが、スケールコントローラーのチームでバディになってると、質問というかお互いに話が聞きやすい。すぐに答えてくれやすいですね。
他のチームとかになると、ちょっとバリアがあって。やっぱりみんなそれぞれの仕事をやっているので、プライオリティがそれぞれあるんですよ。だから違うチームの人になると意地悪じゃなくて彼らのレスポンスは1日に1回とかになったりするわけですよね。仕方がないことです。
多分このチームの単位はマネージャが管理できる最大以下の人数で構成されてるんじゃないかなと思います。だから本当に自分のチームはそれぞれが個人商店みたいな感じですね。自分でレスポンシビリティを持って自分でやる。それは新人であっても一緒です。
司会)ここでちょっと会場から質問が入りました。このチームというのはどういう単位なんでしょうか。プロダクトの単位なのか、どういう単位なのか。
(右下の点線で囲われたところ)このチームはスケールコントローラをやっていて、(右上の3つのICを指して)このあたりはプラットフォームと言って中の基盤みたいなことをやってたりします。
でも基盤もかなり巨大なので、内部でいくつか分かれているんですけど、同じマネージャが見て、みんなを助けている、という感じですね。
司会)隣のチームと、このチームを分けているのは、マネージャが違うだけ?
ええと、大きな機能で分かれているというのがあります。例えば隣のチームはランタイムっていうチームなんで、Azure Functionsのランタイムを担当してるんですよ。
さて、エンジニアの評価っていうのはどんな感じになってるかっていうと、この図にはマイクロソフトは入っていないのですが、僕の友達に「ゆうさん」っていう人がいて、彼がブログでGAFAの給与体系みたいなをまとめてくれて、マイクロソフトも似たような感じです。
参考:GAFA米国本社のエンジニアの年収をジョブレベル別に比較してみた【Google・Amazon・Facebook・Apple】
こういう情報って外部に公開されてるので別に隠すことはないし、マイクロソフトの給料の額とかも調べられるんですよ。
どういうふうになってるかっていうと、エンジニアとしてランクがあるんですよね、「SDE1」「SDE2」とか。マイクロソフトの場合は「シニアソフトウェアエンジニア」があって「プリンシパルエンジニア」がある、みたいな。
このランクの人はこういうことができる、っていうのが明確に定義されていて、それによって給料が決まるんですね。
だから自分が給料を上げたかったらどうするかっていうと、プロモート(ランク上げ)してもらえるように頑張るって感じです。他の人との戦いじゃないんです。
いまより一つ上のランクの仕事をしばらくしていれば、マネージャが「こいつは今はシニアだけどプリンシパルの仕事してるからプロモートしよう」とノミネートしてくれる。
そうやってノミネートされたら次のレベルに行けるし、行けなかったら転職をする。転職するとそこでネゴシエーションしやすいので、その時に例えばシニアとかプリンシパルになれればその給料がもらえる。
ただ、そういうふうに上に行くとレスポンシビリティも大きくなるので、自分でチョイスする感じですね。自分でチョイスするし、自分との戦いなので。だから他の人と比べて不公平とか全然思わない。
給料を上げたかったら次のレベルになればいい。そういうアクションをとればいいので、あくまで自分との戦いって感じになります。
マネージャの存在っていうのは僕的にはすごい(日本と)違ってるように感じています。
日本にいるときはマネージャって進捗管理や課題管理をしたりとかして、プログラマとか開発者を指揮するとかそんなイメージだったんですかね、僕のイメージとしては。
アメリカの場合は、彼らが重視してくれるのは僕のキャリアなんですよ。僕がハッピーかどうかとか、僕がキャリアで成功するかっていうのをすごい重視してくれるんです。
これまで何人かマネージャが変わりましたけど、みんなそうでした。マイクロソフトには明確にそう定義されているんです。だからマネージャはみんなそういう動きをしてくれます。
マネージャのすごく大事な仕事に「アンブロック」というのがあります。IC、つまり開発者の人がどこかで詰まっている状態になると、マネージャが助けてくれる。ブロックされているものをアンブロックしてくれるんです。
例えば、僕が技術的に詰まるとして、誰かに聞かなあかんけど、誰か聞かなあかん人がなかなか答えてくれへんとか、そういうこともあるかもしれないです。
そういうブロックをされる状況が一番生産性を阻害すると思うんですね。
そういうときにマネージャがアンブロックを手伝ってくれる。ある人に繋いでくれたり、マネージャ経由で他の人が僕に協力してくれたりとか。
マネージャが、このプルリクエストを見たら分かりやすいよと教えてくれるとか。
あと結構面白いのは、少なくとも今の僕の職場では、納期が基本的にない感じです。
あるときもあるんですよ。どんなときかっていうと、マイクロソフト最大のイベントの「Build」というのが5月ぐらいにあって、そのキーノートで発表される予定のプロダクトみたいなもの。それが決まったら納期があるのかもしれないですけど。
マネージャも僕に対して「早くしてください」って言ったことは1回もないですね。どっちかというと、僕が「何か遅くてごめんな」とか言ってたら、「いやそんな気にすんなよ」って、「よくあることだよ」とか言われたりする。
これは多分いろんな意味合いがあるんですよね。多分クラウドのプラットフォームって、難しいことがいろいろあって、例えば自分が1週間でできるって思ったのに2カ月かかったりとか、ほんまにあるんですよ。
例えば、JVMにあるJarをアタッチするだけに見えた仕事に、僕は半年かかりました。
僕の能力のなさもあるかもしれないですけど、そういういろんな予想外のことが起こる。
やっぱり世界中の人が使うプラットフォームなので、よく分かってない実装とかしたらむちゃくちゃになるんです。ちゃんと理解して、より良いアーキテクチャを作らないとひどい目にあう。
だから多分マネージャは絶対に急かさないんだと思います。ちゃんと理解して出来るようになれば、次からは開発が速くなる。だからマネージャとしてはそこで急かさないことによって未来への投資をしてる感じなんじゃないかなと、僕は思ってます。
バックログはあり予定もあるが、達成されないこともしょっちゅう
司会)すいません、マネージャの話しに行く前に。質問が集まっていて。納期がないという話に関して皆さんが大混乱に陥っていてですね(笑)。納期がないとすると逆に何があるのか。バックログみたいなのがあるのか、ロードマップがあるのか。どういうものを始点に駆動されていて、牛尾さんの仕事が始まるのか。
バックログですね。大きなトピックだけはある。今期はこれをやろう、というのはあるんですよ。
だいたい今期はこれとこれをやっていこうというのがあって、それを荒い粒度ですけどブレイクダウンしたストーリーにして、それをICにアサインするんです。
でも、それが今期に達成されないということはしょっちゅう起こります。
思ったよりもすごく難しかったとか、あるシステムで改変が入るのでそれまで作れないとか、そういうのがしょっちゅうある。でもそれでそのICが責められることはないです。
変化は見通せないので仕方ないですよね。オーガナイズはされているけど、できなかったときはできないと認める、ということです。
司会)お客様からバックログの元になるような要求がきて、それがリリースされるまでのタイムスパンはどのくらいなんでしょうか?
僕らの場合はプロダクトオーナーみたいなチームとしてプロダクトマネージャがあって、バックログの発生元はプロダクトマネージャが決めるのですが、そのインプットソースとしては、彼らの戦略(ストラテジ-)とカスタマフィードバックですね。
あとはハッカソンでエンジニアがなにかプロポーズするときもあります。
そういうもののなかからプロダクトマネージャが、今期これをやればインパクトがあるんじゃないかと考えるものがピックアップされます。
で、それが達成されてリリースされるまでの期間は本当にピンキリです。
僕の場合は、早いときは1週間で終わりましたけど、さっきの話みたいに1週間で終わると思ったやつが半年かかったこともあります。
僕の上にはプリンシパルマネージャがいるんですね、それが日本で言ったら課長みたいなもので、その上に部長みたいなのがいて、で、テクニカルフェロー、これは事業部長みたいな感じです。
彼らの技術力はどんな感じか。
僕の1つ上の上司は、Azure FunctionsのJavaランタイムをイチから書いた人です。
その上の人は、Azure Automationの開発をしている人で別チームなので細かいところまでは知らないのですが、技術力がハンパない、ということだけは分かります。
何でかと言うと、どんなテッキーな話題を振っても、ものすごく早く深く理解するんです。彼が経験したことのないことであっても、Kubernetesでも、彼がやったことのないPythonとかでも、完璧に理解してアーキテクチャの深い話をするんです。
で、テクニカルフェロー。これはAzureの主要なサービスをイチから書いていたりします。
つまり何が言いたいかというと、僕の上司で僕よりもプログラミングができない人なんて一人もいないんです。
そしてこういう人が僕の仕事のサポートをしてくれる、応援をしてくれるわけです。
だからこんな上司に何かを説得する必要なんてないんです。彼らがテッキーなミーティングに参加して、しかも僕らにすごい鋭いアドバイスをくれるんですよ。
皆さんがもしマネージャをやるときには、こういう人たちと世界で戦わないといけない、ということをちょっと意識していただきたいんです。