Obiektywne podejmowanie decyzji technologicznych

2008-07-04

Niedawno znowu miałem do czynienia z wybieraniem systemu kontroli wersji (VCS). Spotykam się z tym zagadnieniem średnio raz na rok w różnych okolicznościach i za każdym razem wyboru trzeba dokonywać od nowa. Jest tak głównie dlatego, że od kilku lat mamy do czynienia z prawdziwą eksplozją ilości systemów VCS i wreszcie jest w czym wybierać.

O tym co wybrałem i dlaczego napiszę kiedy indziej, teraz chciałem się skupić na spostrzeżeniu dotyczącym samego procesu wyboru.

Rozproszonych systemów kontroli wersji jest wiele. Przynajmniej cztery stanowią w tej chwili czołówkę: darcs, git, mercurial (hg) i bzr. Zarówno sama technologia śledzenia wersji jak i systemy w tym pomagające są niezmiernie skomplikowane. Mam tu na myśli skomplikowanie samej dziedziny problemu -- nie da się uprościć czegoś, co z natury jest trudne.

Jak zachowuje się umysł ludzki gdy ma dokonać wyboru spośród kilku trudnych do zrozumienia możliwości w niezmiernie skomplikowanym środowisku? Kieruje się intuicją!

Intuicja jest znakomitym sposobem na podejmowanie decyzji i z pewnością w czasach gdy byliśmy rasą polującą na zwierzynę w lesie nie raz ratowała nam życie i napełniała żołądki. Niestety, zawodzi kompletnie przy skomplikowanych technologicznych zagadnieniach. Tu porównywać powinniśmy starannie, krok po kroku, robiąc notatki, wypełniając tabele. Nic na skróty.

Tymczasem warto poczytać fora dyskusyjne albo posłuchać dowolnej dyskusji informatyków na temat systemów DVCS. “git jest za skomplikowany żeby się go dało używać”, “darcs jest wolny”, “mercurial jest jedynym sensownym systemem, jest wspaniały, a reszta jest gorsza”, “bazaar jest najlepszy, bo jest w pythonie i łatwo go modyfikować” -- to tylko niektóre ze stwierdzeń, jakie już usłyszałem. Problem w tym, że każde z nich wygłaszane było przez osobę, która nie zadała sobie trudu przetestowania kilku systemów! Każdy z wypowiadających się zaczął proces testowania i gdy tylko znalazł jeden system, który w miarę spełniał jego wymagania (i którego się w miarę nauczył), zaprzestawał poszukiwań. Dlaczego? Bo tak jest łatwiej! Trzeba włożyć wysiłek i przełamać się, by nauczyć się kolejnego systemu, umysł intuicyjnie odrzuca wszystko co z nim związane. Ten pierwszy wydaje nam się najlepszy, tylko dlatego, że już włożyliśmy tyle wysiłku w nauczenie się go.

Do tego dochodzi intuicja: jeśli czegoś używa więcej osób, to pewnie jest lepsze. Jeśli strona WWW dotycząca jednego systemu jest lepsza niż innego, to ów system jest lepszy. Jeśli...

Problem dotyczy nie tylko wyboru systemu kontroli wersji. Mnóstwo decyzji technologicznych podejmowanych jest bez odpowiedniego zbadania opcji, na podstawie intuicji. Zbyt często też trzymamy się kurczowo pierwszej lepiej zrozumianej opcji, zamiast włożyć wysiłek w zrozumienie wszystkich.

Znacie podobne przypadki? Nie zgadzacie się?Piszcie do mnie.