Vistaで実際に起こったこずむンサむダヌ回顧



埓来、Windows開発チヌムは、Windowsの新しいバヌゞョンのリリヌスでポスタヌこの堎合はDVDむメヌゞに眲名したす。 リリヌスパヌティが終了するたでに、数癟たたは数千の眲名がありたす。



「経隓は、必芁なずきにのみ埗られるものです。」-スティヌブン・ラむト


Terry Crowleyの有益なブログ 「Vistaで実際に䜕が起こったのか」 が気に入りたした。 TerryはOfficeグルヌプで働き、Windows Vistaを取り巻く耇雑な陰謀ず関連するが攟棄されたLonghornプロゞェクトを倖郚の芳察者の芳点から説明する玠晎らしい仕事をしたした。



圌はプロゞェクトを悩たせた問題の倚くを正しく指摘したした、そしお私は再びそれらに぀いお繰り返したくありたせん。 同じむベントをむンサむダヌに芋おもらうのは正盎だず思いたした。 私はテリヌず同じ雄匁たたは網矅的な説明は期埅しおいたせんが、䜕がうたくいかなかったのかを明らかにしたいず思っおいたす。 Windows Vistaの最初のバヌゞョンがリリヌスされおから10幎が経過したしたが、これらの教蚓は今ではか぀おないほど関連性がありたす。



Windowsはモンスタヌです。 数千人の開発者、テスタヌ、プログラムマネヌゞャヌ、セキュリティ専門家、UIデザむナヌ、アヌキテクトなど そしお、これは、人事郚門のスタッフ、リクルヌタヌ、マヌケティング担圓者、営業担圓者、匁護士、そしおもちろん、これらの各分野の倚くのマネヌゞャヌ、ディレクタヌ、副瀟長を数えおいたせん。 このグルヌプ党䜓は、パヌトナヌマむクロ゜フトの内倖䞡方からの䜕千人もの埓業員に囲たれおいたす。埓業員は、機噚やデバむスドラむバヌからプラットフォヌムで実行されるアプリケヌションたですべおを提䟛したした。









Microsoftのサッカヌ堎でのWindows開発チヌムの航空写真



圓時、Windowsは組織䞊、実際にはコア、サヌバヌ、クラむアントの3぀のグルヌプに分かれおいたした。 Coreグルヌプはフレヌムワヌクを提䟛したしたすべおのバヌゞョンのWindowsに共通のオペレヌティングシステムのすべおの䞻芁コンポヌネントカヌネル自䜓、ストレヌゞ、セキュリティ、ネットワヌクサブシステム、デバむスドラむバヌ、むンストヌルおよび曎新モデル、Win32など。 次に、サヌバヌグルヌプはサヌバヌ垂堎のテクノロゞヌタヌミナルサヌビス、クラスタリングおよびスムヌズな運甚、䌁業管理ツヌルなどに焊点を圓お、クラむアントグルヌプはデスクトップおよびナヌザヌバヌゞョンWebブラりザヌ、メディアプレヌダヌ、グラフィックスに関連するテクノロゞヌを担圓したした、シェルなど。



もちろん、倚くの再線成がありたしたが、Windowsの人気が高たり、グルヌプ自䜓の芏暡が倧きくなった堎合でも、基本的な構造は垞に残りたした。 たた、文化的および組織的な芳点から、コアグルヌプはクラむアントグルヌプよりもサヌバヌグルヌプに近かったず蚀っおも過蚀ではありたせん-少なくずもVista以前はそうでした。



1998幎の初めにマむクロ゜フトに入瀟した時点では、WindowsはWindows NTを意味しおいたした-アヌキテクチャ、組織、および補品自䜓に関しお。 Windows 95コヌドベヌスはほが攟棄され、Windows NTは、ラップトップからクラスタ内のサヌバヌたで、Windowsの各タむプに導入されたした。 2幎埌、Windows 95/98コヌドベヌスは最埌の1぀のリリヌス非垞に話題になったWindows MEそのもので埩掻するこずになっおいたすが、このプロゞェクトは小さなグルヌプによっお実行され、倧倚数はNTコヌドベヌスで䜜業したした。 私は幞運にも、怪物の子宮で10幎以䞊過ごしたした。 私はWindows 2000の開発の最䞭に開始し、Windows 7が完成するたで滞圚したした。



最初の7幎間は、ストレヌゞ、ファむルシステム、皌働時間/クラスタリング、ファむルレベルのネットワヌクプロトコル、分散ファむルシステム、および関連技術を担圓するグルヌプで過ごしたした。 その埌、マむクロ゜フトセキュリティ管理チヌムで1〜2幎過ごしたした。 これには、Windowsセキュリティテクノロゞからりむルス察策補品、セキュリティマヌケティング、セキュリティ曎新プログラムのリリヌスなどの緊急察応たで、すべおが含たれおいたした。 りむルスやワヌムがWindowsをひどくし、安党で安党な゜フトりェアの開発者ずしおのMicrosoftの評刀が倧衆にひどく打ち負かされたずき、それはVistaのラむフサむクルの終わりに近づきたした。



過去3〜4幎間、Windows 7のリリヌスの準備䞭に、Windowsでコアグルヌプの開発党䜓を管理したした。 これは、「ボンネット内」で動䜜し、サヌバヌグルヌプずクラむアントグルヌプの䞡方で䜿甚されるほがすべおのテクノロゞヌを所有しおいるこずを意味したす。 Vistaのリリヌス埌、Windowsチヌム党䜓が組織のすべおのレベルで方向ずトラむアドDev、Test、PMで線成されたため、私は2人の犯眪パヌトナヌを抱えおいたした。 私は開発チヌムを率いたしたが、テストチヌムず管理グルヌプをそれぞれ率いおいたした。



過去のWindowsチヌムは、数幎埌に攟棄たたは再蚭蚈された野心的で倧芏暡なプロゞェクトを圧倒しようずするこずがよくありたした。 前の䟋は野心的なCairoプロゞェクトであり、最終的には砎壊されたした。Windows2000に含たれる䞀郚のパヌツのみが保存されたした。



私の謙虚な意芋では、これたでのWindowsの最倧の問題は各リリヌスの長さでした。 平均しお、各リリヌスは開発の開始から完了たで3幎かかりたしたが、「新しい」コヌドの開発にかかったのはこの6〜9か月だけでした。 残りの時間は、統合、テスト、アルファおよびベヌタステヌゞに費やされたした-それぞれ数か月間。



䞀郚のプロゞェクトでは、䞻芁な開発に6か月以䞊を芁したため、䞊行しお䜜成され、完了時にメむンコヌドベヌスずマヌゞされたした。 これは、倧きな機胜が远加たたは倉曎されたため、メむンブランチが垞に限定されおいるこずを意味したす。 Windows 7の開発䞭に、継続的に健党で機胜するコヌドベヌスを保蚌するために、より厳密な制埡が確立されたしたが、以前のバヌゞョンは数か月連続で䞍安定で垞に䞍健党な状態でした。



開発の混oticずした性質により、開発チヌムはスケゞュヌルを立おお危険なゲヌムをプレむするこずがよくありたした。 圌らは、自分たちのコヌドは他のプロゞェクトよりも良い状態にあり、残りのフラグメントを時間通りに「研磚」できるので、コンポヌネントを半完成状態にできるず確信したした。



3幎のリリヌスサむクルは、リリヌスの時点で競合環境ず倖郚゚コシステムがどのように芋えるかをほずんど想像しおいなかったこずを意味したした。 機胜の開発にリリヌスの時間がなかった堎合、開発の開始から6幎埌にほずんど意味をなさないため完党に攟棄されたか、さらに悪いこずに、「シベリアに送信された」、぀たり、ほずんどの郚分が無芖されたコンポヌネントの開発が続けられたした組織の残りの郚分ず倱敗たたは無益に運呜づけられた-しかし、グルヌプたたは管理は、単に開発を攟棄するこずを決定するこずができたせんでした。 私は個人的にこれらのプロゞェクトのいく぀かを担圓したした。 過去を芋るずきのビゞョンは100になりたす。



各チヌムがリリヌスで独自の蚈画ず䞀連の機胜の宣䌝に忙しかったため、他のコンポヌネント、ナヌザヌむンタヌフェむス、゚ンドツヌ゚ンドのテスト、および曎新などの䞍快で退屈なものずの統合を頻繁に省略し、これらの困難なものを埌から残す。 蚀い換えるず、これはいく぀かのグルヌプが開発党䜓のボトルネックになり、土壇堎で党員がUIの䜜業を完了したり、曎新メカニズムをテストしたりするために走りたした。



それぞれの時点で、開発䞭のいく぀かのメゞャヌリリヌスず倚数のサむドプロゞェクトがありたした。 さたざたなグルヌプが準備状況の異なるコヌドベヌスを担圓し、最終的には「金持ちは金持ちになり、貧しい人は貧乏になる」ずいう結果に至りたした。 䜕らかの理由で遅れ始めたグルヌプは、通垞、遅れをずっおいたした。



プロゞェクトが完了に近づいたずき、プログラムマネヌゞャヌは次のリリヌスの芁件を䜜成し始め、「健党な」状態リッチのグルヌプは新しいコヌドの実装を開始したしたが、組織貧しいのほずんどは珟圚のリリヌスを匕き続き調査したした。 特に、テストグルヌプがリリヌス前にリリヌスされるこずはめったになかったため、プロゞェクトの開始時には、新しいコヌドは培底的にテストされおいたせんでした。 「䞍健康な」グルヌプは垞に遅れをずっおおり、珟圚のリリヌスの最埌の仕䞊げを行い、たすたす遅れおいたす。 これらのグルヌプでは、士気が最も䜎く、疲れ果おた開発者がしばしば働いおいたした。 これは、グルヌプの新しい埓業員が退圹した人の代わりに-箄Per。圌らが曞いおいないため理解できなかった脆匱なコヌドを継承するこずを意味したす。



Vista / Longhornの開発期間のほが党䜓にわたっお、ストレヌゞずファむルシステムを担圓したした。 これは、私がWinFSプロゞェクトに関䞎しおいたこずを意味したすが、䞻にWindowsチヌムの姉効構造であるSQL DBMSグルヌプの埓業員が䞻導したした。



Bill Gatesは個人的に非垞に詳现なレベルでプロゞェクトに参加し、冗談で「WinFS PMプロゞェクトマネヌゞャヌ」ず呌ばれたした。 数千人幎ではないにしおも、数癟人が、時間の経過したアむデアの開発に費やしおきたしたDBMSク゚リの機胜ず、非構造化デヌタのストリヌミングず保存のためのファむルシステム機胜を組み合わせお、独自の新しいリッチアプリケヌションを䜜成するためのプログラミングパラダむムずしおそれを開いたらどうでしょうか



埌から考えるず、Googleが非構造化デヌタの透過的か぀迅速なむンデックス䜜成を提䟛するこずでこの問題を巧みに解決したこずは明らかです。 そしお、圌らはあなたのロヌカルドラむブだけでなく、むンタヌネット党䜓に察しおそれをしたした。 たた、このシステムを掻甚するためにアプリケヌションを曞き盎す必芁もありたせん。 WinFSプロゞェクトが成功したずしおも、アプリケヌションを曞き換えお利甚できるようにするには䜕幎もかかりたす。



Longhornがキャンセルされ、Vistaがその残り火から急いで組み立おられたずき、WinFSはすでにOSリリヌスから陀倖されおいたした。 SQLグルヌプは、別のプロゞェクトずしお数幎間䜜業を続けたした。 この時点で、Windowsには組み蟌みのむンデックス゚ンゞンず統合された怜玢があり、アプリケヌションを倉曎するこずなく玔粋にサむドに実装されおいたした。 そのため、WinFSの必芁性はさらにあいたいになりたしたが、プロゞェクトは以前ず同様に継続されたした。



Longhornのセキュリティに関連する倧芏暡なアヌキテクチャの倉曎は、Longhornの「再起動」埌もWindows Vistaプロゞェクトの䞀郚ずしお継続されたした。 急速に拡倧するむンタヌネットの䞖界でセキュリティに぀いお倚くのこずを孊び、この知識をOSのアヌキテクチャレベルで適甚しお、すべおのナヌザヌの党䜓的なセキュリティを改善したいず考えたした。



遞択の䜙地はありたせんでした。 Windows XPは、私たち自身の成功の犠牲者であるこずを瀺したした。 利䟿性のために蚭蚈されたこのシステムは、むンタヌネット時代の珟実に盎面しお、明らかにセキュリティ芁件を満たしおいたせんでした。 これらのセキュリティ問題を解決するには、䞊行プロゞェクトが必芁でした。 Windows XP Service Pack 2その名前にもかかわらずは、Longhornから䜕千ものリ゜ヌスを吞い蟌んだ巚倧な事業でした。



次の䞻芁なOSリリヌスでは、セキュリティ芁件を確実に埌退させるこずはできたせんでした。 したがっお、VistaはMicrosoftがこれたでにリリヌスした他のどのOSよりもはるかに安党になりたしたが、このプロセスは、゚コシステムにずっお前䟋のないレベルでアプリケヌションずデバむスドラむバヌの互換性を砎るこずに成功したした。 ナヌザヌは、Vistaが埩掻したAppleず競争するために急いでリリヌスしおいるため、アプリケヌションが機胜しなかったためにそれを嫌い、パヌトナヌはドラむバヌずアプリケヌションを曎新および認蚌する十分な時間がないように思われたため、それを嫌いたした。



倚くの点で、これらのセキュリティの倉曎には、アヌキテクチャを倧幅に倉曎するためにサヌドパヌティのアプリケヌションが必芁でした。 たた、ほずんどの゚コシステムベンダヌは、レガシヌプログラムの倉曎にあたり投資する準備ができおいたせんでした。 それらのいく぀かは、機胜を実装し、通垞のAPIをバむパスし、システムで混乱を匕き起こすこずが倚いマルチプロセッサロックのために、デヌタ構造やカヌネル内の呜什を倉曎するために型砎りなアプロヌチを䜿甚したした。 ある段階で、Windowsのすべおの「ブルヌスクリヌン」の玄70は、これらのサヌドパヌティドラむバヌず、その機胜を実装するために通垞のAPIを䜿甚するこずに抵抗があるためです。 特に倚くの堎合、このアプロヌチはアンチりむルス開発者によっお䜿甚されたした。



マむクロ゜フトのセキュリティ責任者ずしお、私は個人的にアンチりむルスメヌカヌに、カヌネル呜什ずメモリ内のデヌタ構造を「パッチ」できないようにする理由、これがセキュリティリスクをもたらす理由、そしお今埌通垞のAPIを䜿甚する理由を個人的に説明したした。ハッカヌがナヌザヌシステムを攻撃するために䜿甚するたさにその方法である、Windowsカヌネルぞの深いフックを備えた埓来のプログラムをサポヌトしなくなりたす。 アンチりむルスのメヌカヌである「友人」は振り返っお蚎え、圌らの生蚈を奪い、独占的地䜍を濫甚したず非難したした そのような友人ず、誰が敵を必芁ずしたすか 圌らは、䞀般的なナヌザヌのセキュリティを䜎䞋させるこずを意味する堎合でも、叀い゜リュヌションが匕き続き機胜するこずを望んでいたした。たさに、このセキュリティを改善する必芁がありたした。



長幎にわたり、コンピュヌタヌ業界には非垞に倚くの劇的な倉化がありたした。むンタヌネットの出珟、携垯電話の普及、クラりドコンピュヌティングの出珟、広告に基づく新しいビゞネスモデルの䜜成、゜ヌシャルメディアのバむラル成長、ムヌアの法則の容赊ない行列、フリヌ゜フトりェアの人気です。 これらは、あらゆる偎面からWindowsを攻撃した芁因の䞀郚にすぎたせん。



その答えは、倧成功を収めたプラットフォヌムにずっおは非垞に論理的でした。頑固にコヌスを継続し、既存のシステム、぀たり革新者のゞレンマを次第に改善したす。 コヌドを远加すればするほど、システムが耇雑になり、スタッフが増え、゚コシステムが倧きくなり、競合他瀟からの成長したバックログを補うこずが難しくなりたした。



競争の圧力が十分ではないかのように、か぀お、圓瀟の゚ンゞニアずプログラムマネヌゞャヌの軍隊党員が、数時間、数日、数週間、数ヶ月を法務省の代衚者や䌁業匁護士ず話し合い、政府の反トラスト芏制に準拠するために以前のリリヌスからの既存のAPIを文曞化したした。



厳しい珟実は、ラむフサむクルのその時点で、Windowsのメむンリリヌスをリリヌスするのに玄3幎かかり、急速に倉化する垂堎には長すぎたずいうこずです。 WinFS、セキュリティ、およびマネヌゞコヌドは、Longhornのアゞェンダにあった倧芏暡なプロゞェクトのほんの䞀郚です。 そしお、䜕癟もの小さな賭けがありたした。



数千人の埓業員ず文字通り数十億のナヌザヌからなる組織がある堎合、絶察にすべおを想定する必芁がありたす。 タブレットずスマヌトフォンで起動するはずの同じOSリリヌスは、ラップトップ、デヌタセンタヌのサヌバヌ、ネットワヌク接続ストレヌゞなどの組み蟌みデバむス、「Powered by Windows」ボックスで動䜜するはずです-ハむパヌバむザヌの䞊で動䜜するこずは蚀うたでもありたせん HyperVクラりド。 これらの芁件により、すべおの垂堎セグメントで同時に進歩を達成しようずしたため、チヌムは反察方向に匕っ匵られたした。











LonghornずVistaを別々に衚瀺するこずはできたせん。 それらは、Windows 2000ずXP、Windows Server 2008ずWindows 7の前埌のバヌゞョンず、レトロスペクティブにおける業界の幅広いコンテキストを完党に理解した堎合にのみ意味がありたす。



Windowsは、それ自䜓が成功した犠牲者です。 圌女はあたりにも倚くの垂堎を埁服するこずに成功し、これらの各セグメントのビゞネスは珟圚、オペレヌティングシステムの蚭蚈に䜕らかの圱響を及がし、異なる方向に匕っ匵っおいたした。



90幎代に非垞に成功したアヌキテクチャは、組織がそれに远い぀けようずする間に呚囲の環境があたりにも急速に倉化しおいたため、10幎埌に単玔に消滅したした。 明確にするために、これらすべおの傟向を確認し、それらに順応するように努力したしたが、隠allowを混ぜるこずを蚱可した堎合、3幎間の攟出の劊嚠の2幎目にある堎合、゚アラむナヌを反察方向に向けるこずは困難です。



芁するに、3、4幎前にこのOSリリヌスを蚈画しおいたずきに知っおいたこずが、補品が぀いにリリヌスされたずき、途方もなく時代遅れになり、時には明らかに間違っおいたした。 最善の方法は、新しいクラりドサヌビスを埐々に簡玠化されたデバむスに段階的か぀簡単に提䟛するこずでした。 代わりに、モノリシッククラむアントシステムに機胜を远加し続けたした。各リリヌスの前に䜕ヶ月もテストする必芁があったため、スピヌドアップが必芁な堎合は速床が萜ちたした。 そしおもちろん、叀いバヌゞョンのWindowsのアプリケヌションずの互換性に必芁な叀い機胜を削陀するこずに぀いおは気にしたせんでした。



数十億のナヌザヌ、数癟䞇の䌁業、数千のパヌトナヌ、数癟のナヌスケヌス、数十のフォヌムファクタヌで同じOSを10幎以䞊サポヌトするず想像しおみおください。



振り返っおみるず、Linuxはこの点でより成功しおいるこずが蚌明されおいたす。 ゜リュヌションの疑いのない郚分は、オヌプン゜ヌスコミュニティずそのような開発ぞのアプロヌチでした。 モゞュヌルおよびプラグむンのUnix / Linuxアヌキテクチャも、この点で重芁なアヌキテクチャの改善です。



遅かれ早かれ、どの組織も組織図を補品ずしお提䟛し始めたすが、Windowsも䟋倖ではありたせん。 オヌプン゜ヌスにはそのような問題はありたせん。









「戊争宀」りィンドり、埌に「橋」船宀に改名



必芁に応じお、これに内郚組織のダむナミクスず個性を远加したす。 私たちはそれぞれ独自のお気に入りの機胜を備えおおり、独自の゚コシステムのパヌトナヌは、プラットフォヌムでの認定を取埗し、特定のシナリオにAPIを远加するための新しい暙準をサポヌトするように私たちを抌したした。 誰もが私たちの技術、私たちのアむデアが勝぀こずを蚌明したいずいう野望ず欲求を持っおいたした... Windowsの次のリリヌスにそれを含めお、䜕癟䞇人ものナヌザヌに即座にそれを届けるならば。 私たちは、戊争宀での毎日の䌚議で戊いを繰り広げるのに十分に匷いず信じおいたした。 それぞれには、圱響力の範囲を拡倧し、拡倧しようずするマネヌゞャヌがいたした。このマネヌゞャヌは、このパスに沿った䞭間ステップずしお埓業員の数を増やしたした。



開発チヌムずテストチヌムはしばしば衝突したした。 前者はコヌド怜蚌の完了を䞻匵したしたが、埌者は、クラむアント環境に実際には䌌おいない、たすたす耇雑で難解なテストケヌスを芋぀けるこずで報われたした。 控えめに蚀っおも、内郚ダむナミクスは耇雑でした。これでは䞍十分であるかのように、少なくずも幎に䞀床、䌚瀟は倧芏暡な再線成を受け、新しい組織のダむナミクスに察凊しおいたした。



ずころで、これのどれも謝眪や蚀い蚳ずしお受け入れられるべきではありたせん。これはそれに぀いおではありたせん。



間違いを犯しおいたせんかはい、豊富です。



特に間違った決定をしたこずがありたすかいいえ、1぀だけ芚えおいたせん。



それは信じられないほど巚倧な゚コシステムを備えた信じられないほど耇雑な補品でしたか圓時は䞖界最倧。はい、ありたした。



もっず良くできたすかはい、他の方法。



今日、他の決定を䞋したすかはい過去を芋るずきのビゞョンは100になりたす。それから、私たちは今知っおいるこずを知りたせんでした。



倱望したり埌悔したりしお振り返るべきでしょうかいいえ、孊んだ教蚓を孊びたいです。私たちは誰もその埌のプロゞェクトで同じ間違いを犯したこずはないず確信しおいたす。その経隓から教蚓を埗たした。぀たり、次回はたったく異なる間違いを犯すこずになるずいうこずです。誀るこずは人間です。



All Articles