October 2018 Update to aktualizacja, w którą od chwili wydania była wpisana wewnętrzna sprzeczność. Z jednej strony jest on uważany za najlepszą wersję Windows 10 od dnia jego premiery, z drugiej zaś - na jego programistów spadły gromy krytyki, swoją drogą całkiem dobrze uzasadnione. Jak jest zatem naprawdę? Wzbudzająca wiele kontrowersji wersja 1809 została dziś wydana ponownie. Oznacza to, że Microsoft doprowadził ją do stanu używalności, a przynajmniej taką mamy nadzieję. Co na to sam Microsoft? Otóż opublikował on dziś obszerne wyjaśnienia, w których tłumaczy złożoność swoich procesów zapewniania jakości.
Dziś został ponownie wydany October 2018 Update. Ponownie, bo pierwotne wydanie okazało się falstartem. Okres, w którym przerwana była dystrybucja aktualizacji, Microsoft - jak sam pisze - spędził na badaniu niewielkiego, ale poważnego problemu. To pierwszy taki incydent w historii Windows 10, co naturalnie rodzi wiele pytań, dotyczących testowania i sprawdzania jakości aktualizacji przed ich wydaniem. Michael Fortin, CVP Windows, podaje liczby: 700 mln aktywnych urządzeń z Windows 10, ponad 35 mln aplikacji (tak, w końcu dowiadujemy się, ile jest programów dla Windows) i 175 mln ich wersji, oraz 16 mln unikalnych kombinacji sprzętu/sterowników. W pewien sposób tworzy to obraz tego, na jaką skalę działa i jak dynamiczny jest ekosystem Windows 10. Wymaga on stałej uwagi przy każdej aktualizacji. Czy tym razem jej zabrakło?
Fortin nawiązuje do wcześniejszej krytyki, która zarzucała Microsoftowi to, że obowiązki testerów zrzucił na samych programistów:
Windows 10 wyznaczył zmianę tego, jak rozwijamy, dostarczamy i aktualizujemy Windows. Nazywamy to "Windows as a Service". Przenieśliśmy odpowiedzialność za podstawowe testy funkcjonalności na nasze zespoły deweloperów, aby dostarczać wyższej jakości kod już na starcie.
Corporate Vice President działu Windows jest przekonany, że funkcjonujące w nim połączenie testów, programów zaangażowania, feedbacku, telemetrii, wglądów w czasie rzeczywistym w złożonych środowiskach i zaangażowanie bliskich partnerów zapewniają zespołowi Windows podejście, które pozwala mu dostarczać miesięcznych aktualizacji o lepszej jakości. Podejście te zmieniło też sposób monitorowania jakości. Przez ostatnie 3 lata Microsoft badał jakość już nie na podstawie rozmów klientów z pomocą techniczną, lecz poprzez Net Promoter Scores (NPS), gdzie firma prosi klientów o ocenę doświadczenia Windows, a następnie śledzi współczynnik "promotorów" i "przeciwników". Dziś April 2018 Update ma najwyższy wskaźnik promotorów spośród wszystkich wersji Windows 10 - wyjaśnia Fortin. Wie on jednak, że trend ów nie ma znaczenia dla tych, którzy doświadczają problemów.
Dość ciekawie przedstawia się udostępniony przez Microsoft wykres "wskaźnika incydentów", podany w setkach na milion urządzeń. Od chwili wydania i pierwszego boomu ustawicznie on spada. October 2018 Update ma bardzo niski wskaźnik takich incydentów. Naszym zdaniem można to rozumieć dwojako - albo rzeczywiście problemy z aktualizacją były "niewielkie, ale poważne", albo trudno było osiągnąć wyższy wskaźnik, gdyż Microsoft w miarę szybko wstrzymał dystrybucję tej aktualizacji.
Jeśli chodzi o testowanie w Redmond, Fortin twierdzi, że zaczyna się to od słuchania klientów i odzwierciedlania ich feedbacku we wszystkich aspektach procesu rozwoju. Początkowo opinie te pomagają kształtować specyfikację produktu i jego ramy, a proces polega na wykonywaniu testów i pomiarach sukcesu.
Zatrudniamy szeroką gamę zautomatyzowanych procesów testowych, kiedy rozwijamy funkcje, co pozwala nam rozpoznawać i szybko poprawiać błędy. Regularnie staramy się zaadresować luki w testach i zwykle odnajdujemy je w oparciu o nasze wewnętrzne doświadczenia i problemy, które odnotowujemy z insiderami. Pakiet automatycznych testów rośnie wraz z czasem. Najbardziej fundamentalne testy muszą przepuścić funkcje i kod, by "zintegrowały się" z głównym buildem Windows i ostatecznie mogły trafić do klientów.
Michael Fortin wyjaśnia też, że Windows posiada "agresywną, samowystarczalną kulturę". Oznacza to, że:
Pracownicy, którzy pracują z Windows, uruchamiają najnowsze wewnętrzne wersje na swoich maszynach, by upewnić się, że żyją z Windows. "Agresywna" część odnosi się do wytrwałego dążenia, by mieć pewność, że lokalne zespoły używają swoich własnych buildów, i ścigać wszelkie znalezione problemy.
Testy wychodzą oczywiście poza kampus w Redmond i odbywają się również w dedykowanych laboratoriach testowych Windows na całym świecie oraz w placówkach partnerów. Uczestniczą w nich:
- Zewnętrzne laboratoria testowe, nieprzerwanie i globalnie ogarniające kompatybilność aplikacji, sprzętu i urządzeń peryferyjnych.
- Niezależni dostawcy oprogramowania (ISV), testujący szeroką gamę aplikacji, w tym antywirusów (AV).
- Partnerzy OEM, którzy testują i zapewniają jakość na szerokiej gamie systemów, urządzeń i sterowników.
Samo tylko podejście do ekosystemu sterowników zasługuje na oddzielny tekst. Microsoft przedstawił wykres, który pokazuje udostępnianie sterowników w Windows Update na przestrzeni miesięcy. W samym tylko czerwcu udostępniono ich 15 tysięcy.
Krytyka zarzucała wcześniej Microsoftowi, że Windows Insider Program jest średnio udanym sposobem na testy, gdyż brakuje mu profesjonalizmu. Microsoft odnosi się także do tego, tłumacząc, że oprócz cennych wglądów Insiderzy zwiększają ilość oraz różnorodność urządzeń, których nie można by było utrzymać w warunkach kontrolowanych. Pomaga to w ustabilizowaniu aktualizacji publicznych, choć - jak widać na przykładzie October 2018 Update - nie zawsze się sprawdza w stu procentach.
Microsoft wymienia też inne zasady, którymi kieruje się przy ocenie jakości. Są to dane, w tym dane telemetryczne, przetwarzane m.in. przez algorytmy machine learningowe. To właśnie ML decyduje, na które urządzenia jako pierwsze ma być dostarczona aktualizacja. Dzięki temu, jeśli maszynowe uczenie prognozuje możliwy problem przy danej konfiguracji, aktualizacja nie powinna być oferowana do czasu wypuszczenia poprawek. No dobrze, ale co w takim razie zawiodło?
Nawet składający się z wielu elementów proces rozpoznawania może przeoczyć problemy w ekosystemie tak dużym, zróżnicowanym i złożonym, jak Windows. Chociaż zawsze pracujemy pilnie, by wyeliminować błędy przed wydaniem, zawsze istnieje szansa, że błąd może wystąpić. Kiedy tak się dzieje, dążymy do zminimalizowania wpływu i reagujemy szybko i przejrzyście, by poinformować i ochronić naszych klientów.
Cóż więc z tego wszystkiego wynika? Microsoft - jak sam dowodzi - dysponuje złożonym łańcuchem procesów, mających na celu zapewnienie jakości, ale docelowy ekosystem sprzętu i sterowników jest jeszcze bardziej złożony, dlatego może dojść do tego, że nie wszystkie błędy zostaną wychwycone zawczasu. Tak najwyraźniej stało się w przypadku October 2018 Update, którego uwolniono od poważnych błędów zamiast przed, to dopiero po publicznym wydaniu.
Nie ma zatem wskazanego konkretnego winowajcy. Jest to odpowiedzialność zbiorowa całego łańcucha testów. Microsoft zapowiedział, że będzie ulepszał wszystkie jego ogniwa, a także poprawi komunikację i klarowność w informowaniu o potencjalnych problemach. Trzymamy za słowo!