Czasem proste prawdy przyjmują postać skomplikowanych manifestów. Jurgen Appelo na swoim blogu noop.nl prezentuje swoje przemyślenia z obszaru zarządzania ludźmi w projektach informatycznymi i nie tylko. Ostatnio przestawił manifest złożoności argumentując jedną prostą prawdę zauważoną dawno temu przez Frederica Brooksa:
„There is no silver bullet”
Ponieważ warto podkreślać tą jakże pożyteczną zasadę pozwoliłem sobie przetłumaczyć ten manifest na nasz ojczysty język.
1. Każdy problem ma wiele rozwiązań
Jest więcej niż jeden sposób na ułożenie kostki Rubika. Nie ma najlepszego sposobu na prowadzenie firmy. Jest wiele strategii wygrania w grach strategicznych. I wiele sposobów prowadzenia projektu informatycznego. Tak, jesteśmy ludźmi i lubimy mieć rację (ja też :) ), ale przyznajemy, że inni też mogą mieć rację.
2. Rozwiązania zależą od sytuacji w jakiej pojawia się problem
Forma każdego gatunku zależy od jego środowiska. Najlepsze strategie w piłce nożnej zależą od przeciwnika. Najlepszy marketing zależy od klientów docelowych. A najlepsze praktyki tworzenia oprogramowania zależą od projektu. W tworzeniu oprogramowania jest wiele szlachetnych i książęcych rozwiązań ale to kontekst jest władcą.
3. Zmiana otoczenia wymaga zmiany rozwiązania
Gdy zmienia się środowisko, gatunki się dostosowują. Dobre strategie tworzenia relacji sieciowych teraz są inne inż kiedyś. Jeżeli zmienia się otoczenie projektu informatycznego, jego proces też musi się dostosować.
4. Ryba Blobfish, niektóre rozwiązania są bardziej powszechne niż inne
Zanim pojawili się ludzie, mrówki i antarktyczne kryle były najbardziej udanymi gatunkami na świecie. Wet za wet jest jedną z najbardziej rozpowszechnionych strategii przetrwania. Ale śmiesznie wyglądająca ryba Blobfish też ma swoje miejsce na Ziemi. Żadna strategia gry nie jest zawsze wygrywająca. Podobnie jest z praktykami tworzenia oprogramowania, niektóre odnoszą olbrzymie sukcesy ale nie są w stanie zastąpić _wszystkich_ innych w _każdej_ sytuacji.
5. Dla każdego rozwiązania istnieje najlepsza sytuacja
Jest czas i miejsce na istnienie wombata australijskiego. To prawda, że jego miejsce w wielkim drzewie życia nie jest zbyt duże, ale jest. I można wygrać w gry strategiczne używając bardzo dziwnych strategii. Podobnie nawet bardzo rzadko spotykane praktyki tworzenia oprogramowania mają odpowiednie miejsce i czas na świecie.
6. Rozwiązania zmieniają się zmieniając swoje otoczenie
Filmy, które wchodzą na ekrany zmieniają otoczenie biznesu filmowego i wpływają na nowe filmy, które powstają. Memy, które przyswoiliśmy zmieniają sposób w jaki myślimy i to jakie nowe memy jesteśmy skłonni przyswoić. Podobnie praktyki tworzenia oprogramowania zmieniają środowisko naszego projektu oraz sposób w jaki my zmieniamy same praktyki. Każda statyczna praktyka najprawdopodobniej w końcu poniesie porażkę.
7. Poważne zrozumienie złożoności pomaga w zastosowaniu prostoty
Biolodzy, firmy i rządy często powodują wiele zła przez niezrozumienie złożoności świata. Ci, którzy nie rozumieją tego jak coś działa, będą mieli problem z przewidzeniem, które proste rozwiązania mogą pomóc w rozwiązywaniu złożonych poblemów. Co gorsza proste przepisy mogą miec tragiczne skutki jeżeli niedocenimy złożoności problemu.
8. Nie można przewidzieć najlepszego rozwiązania
Pomimo, że przewidywanie to cenna rzecz, nie da się wiedzieć zawczasu, które rozwiązania będą, a które nie będą działały. Tylko przez doświadczalne zbadanie w rzeczywistej sytuacji można rościć sobie prawo do oceny sukcesu rozwiązania. Przyznajemy, że nie wiemy co jest najlepsze, i że będziemy musieli spróbować praktyk tworzenia oprogramowania, żeby wiedzieć czy zadziałają w naszej sytuacji.
Złożoność w cytatach
Jasne i proste prawdy są rzadko jasne i nigdy proste. - Oscar Wilde
Wszystko powinno być tak proste jak to możliwe ale nie prostsze. - Albert Einstein
Dla każdego problemu istnieje rozwiązanie, które jest jasne, proste i błędne. - Henry Louis Mencken
Nic nie jest tak proste jak byśmy chcieli. - Jim Horning