Jak powstaje system Windows?

Pewnie za stosunkowo niedługi czas zaczną się pierwsze dyskusje o Windows 8, pojawią się pierwsze plotki, zrzuty ekranów a nawet pierwsze instalki.

Pewnie wielu czytelników mojego bloga wie jak wyglądają kolejne etapy powstawania kolejnych buildów przed wydaniem finalnej wersji Windows.

Ale jest też pewnie grupa osób, która nie zawsze jest pewna co znaczą skróty: Milestone1, Beta, CTP, RC czy RTM. Poza tym jest pewnie jeszcze kilka ciekawostek o których może nie wszyscy wiedzą.

Dziś chciałbym parę słów na ten temat napisać, bo może jest tak, że wydaje Wam się, że tak dużo już wiecie, a później się okazuje, że jednak na przykład pojawia się hasło Checked Build i nie bardzo wiadomo co to jest.

Zespół tworzący Windows

Nie będę opowiadał o żadnej konkretnej wersji systemu, ale ogólnie o procesie tworzenia naszych systemów operacyjnych.

Sporo się jednak zmieniło od czasów Visty. Po niej za budowę kolejnej wersji (czyli Windows 7) został odpowiedzialny Steven Sinofsky, który kiedyś kierował grupą odpowiedzialną za stworzenie Office 2007.

To co się zmieniło to całe podejście jakie wprowadził Sinofsky. Po pierwsze słychać było, że jest bardzo wymagającym i surowym szefem. Ale dzięki temu udało się osiągnąć myślę dwie rzeczy.

Po pierwsze Windows 7 miał ściśle określone ramy czasowe, które udało się utrzymać (a nawet wyprzedzić). Myślę, że podobnie będzie właśnie z Windows 8.

Po drugie ze względu na wprowadzoną politykę zachowania poufności, tym razem informacje o nowym systemie nie przedostawały się tak łatwo do świata zewnętrznego. Ale – o dziwo – wewnętrznego również.

I nie powiem – to była jedna z bardziej irytujących rzeczy z mojego punktu widzenia (aczkolwiek wiem, że dla firmy była ona naprawdę OK). Otóż chodziło o to, że przy Windows 7 pracownicy bardzo często nie mieli dostępu ani do informacji o nowym systemie, ani najnowszych buildów. A przynajmniej nie było to tak wcześnie jak zawsze. Często takie buildy pojawiały się (często z podejrzanych źródeł) w sieciach P2P wcześniej niż na wewnętrznych serwerach Microsoft – do których dostęp tym razem był bardzo mocno limitowany.

Dzięki temu jednak programiści spokojnie mogli pracować, konkurencja nie wiedziała zbyt wiele o tym co robimy i mogliśmy pozytywnie zaskoczyć świat.

Jak tworzy się Windows?

Z tego co mi wiadomo Windows tworzony jest w 3 głównych etapach. Składają się na nie:

  • zbieranie założeń projektowych (ok. 1 roku)
  • kodowanie systemu (ok. 1 roku)
  • wdrażanie i testowanie systemu + poprawki (ok. 1 roku)

Każdy z tych etapów jest bardzo istotny w całym procesie.

Zbieranie założeń

Pierwszym etapem przy produkcji systemu Windows jest zbieranie informacji o tym, co w nowej wersji powinno się znaleźć.

Dzieje się to zarówno przy rozmowach z największymi Klientami na świecie, ale też poprzez analizę tego co się dzieje na rynku IT. Ważnym aspektem są też rozmowy z producentami sprzętu, którzy mogą wiedzieć dużo wcześniej jakie urządzenia pojawią się za rok czy dwa lata.

Duży wpływ ma również cały dział R&D (Research & Development), którego wizje Sci-Fi bardzo często są przekuwane w rzeczywistość w kolejnych wersjach systemów.

Na tej podstawie tworzone są założenia projektowe dla nowego systemu operacyjnego. Często powstają one nawet przed wydaniem poprzedniej wersji systemu (można pewnie spekulować, że założenia dla Windows 8 są już bliżej końca niż początku).

Kodowanie

Tu pojawia się pierwsze pojęcie, które później zbiorę na końcu, czyli Milestone. Podczas tworzenia kodu tworzone są kamienie milowe (właśnie Milestones), czyli takie elementy systemu, które są kluczowe i bez których nie ma nawet co dalej myśleć o systemie.

Zazwyczaj takich buildów jest 2-3, i najczęściej testowane są na poprzednim stabilnym systemie (bo nowego zupełnie nie ma jeszcze).

Kolejną wersją w procesie kodowania jest Alpha. Wtedy zbierane są kluczowe części kodu stworzone w poprzednim etapie. Dodawane są inne istotne komponenty i tworzony jest pierwszy działający system w nowej wersji.

Te wersje nie są dostępne dla szerokiego grona. Najczęściej dostęp mają tylko wybrane firmy zewnętrzne (produkujące sprzęt czy oprogramowanie).

W tym momencie można jeszcze decydować jakie elementy zostaną w nowym systemie, jakie należy zmienić a jakie całkiem usunąć.

Wdrażanie, testowanie i poprawki

W kolejnym etapie powstają wersje beta, RC i RTM. To etap kiedy dzieje się dużo przy testowaniu tego co zostało stworzone.

Natomiast jest to już system, który powinien działać i nie powinien mieć bardzo dużych problemów.

W wersjach beta kod jest prawie zamknięty, ale możliwe są jeszcze pewne poprawki a nawet wymiana całych modułów (najczęściej tylko w pierwszej becie).

Jeśli chcemy udostępnić szerzej taką wersję to albo po prostu wystawia się wersję beta na zewnątrz, albo tworzy dodatkową wersję Community Technology Preview, która może być przekazana szerzej. Ta wersja bardzo często ma opcje powiadamiania Microsoft o ewentualnych problemach.

Praktycznie finalna wersja produktu wchodzi w fazę Release Candidate (RC), gdzie poprawia się tylko małe błędy.

Finalna wersja to RTM, gdzie wiadomo, że prace zostały zakończone, a płyty zaczną się zaraz produkować w tłoczniach.

Podsumowanie

Żeby więc podsumować całą wiedze na temat kolejnych etapów powstania Windows zbierzmy to w całość:

  1. Milestone (M1, M2, M3)
    Pierwsze wersje nowego kodu, testowane zazwyczaj na poprzednim systemie. Tych buildów praktycznie nie udostępniamy (poza wąskim gronem)
  2. Alpha
    Etap tworzenia całego systemu z wielu komponentów. Tu jeszcze można zmieniać, usuwać lub dodawać funkcjonalności. Bardzo mało osób ma wgląd w te buildy.
  3. Beta
    To prawie gotowy produkt. Tu już praktycznie niewiele zostaje zmieniane. Raczej jest to poprawianie błędów. Tu pojawiają się większe grupy testerów, choć nadal jest to limitowana grupa.
  4. Community Technology Preview (CTP)
    Tą wersję wydajemy jeśli chcemy przetestować produkt szerzej (choć funkcjonalnie nie różni się bardzo od wersji bera). Najczęściej pojawia się przy okazji różnych konferencji. Często te wersje mają opcję powiadamiania Microsoft o zauważonych problemach.
  5. Release Candidate (RC)
    Praktycznie gotowy produkt, w którym zmieniane są niewielkie błędy. Jeśli pojawia się coś co trzeba dodać/zmienić/usunąć to najczęściej będzie się to działo dopiero w Service Packu do tego systemu.
  6. Ready to Manufacture (RTM)
    Produkt skończony - wersja gotowa do wysłania do tłoczni. Tu mogą nastąpić jeszcze nieznaczące zmiany (jak np. tłumaczenie, itp.). Często produkt pojawia się w specjalnych kanałach typu subskrypcja TechNet.
  7. General Availability (GA)
    To dzień/moment kiedy produkt faktycznie można już kupić w sklepach i jest on dostępny dla każdego.

Mam nadzieję, że nawet wyjadacze technologiczni dowiedzieli się czegoś ciekawego z mojego przydługiego dziś postu :)

No i zapewne niedługo będziecie mogli usłyszeć jakieś pierwsze informacje o następcy Windows 7.