Dlaczego pet projekty są ważne
No właśnie, dlaczego? Zacznijmy od początku, czym jest „pet projekt”?
Pet projekt (PP), jest to projekt rozwijany hobbystycznie mający na celu samodoskonalenie się.
Oczywiście projekt taki może rozwinąć się do pełnoprawnego rozwiązania (np. Linux), ale znacznie częściej porzucamy go w pewnym momencie. Zazwyczaj nie mamy czasu na zabawę lub zabrnęliśmy w ślepy zaułek. Niektóre PP są wdrażane na niewielką skalę. Co do zasady służą one tylko autorowi (patrz moje zabawy ze skryptami).
A dlaczego ważne jest tworzenie takich zabawek? Z własnego doświadczenia mogę zdefiniować trzy główne grupy projektów.
Samodoskonalenie się
Czyli tak po prostu nauka. Świat idzie do przodu, a w codziennej pracy zazwyczaj nie mamy możliwości testowania nowych rozwiązań. Nikt przy zdrowych zmysłach nie pozwoli nam w połowie projektu zacząć przepisywać go na jakąś nową seksi technologię (nie dotyczy to projektów w JS). Nikt też nie pozwoli nam na wdrożenie nowego języka czy frameworku.
W tej grupie znajdują się najmniej odkrywcze projekty. Bardzo dużo z nich to przerobione tutoriale, czy proste, wtórne do bólu aplikacji w stylu listy TODO.
PoCe i pomysły
Czasami mamy jakiś pomysł, ale nie mamy czasu na wdrożenie go w pracy. Albo przeczytaliśmy coś i chcemy to wypróbować „na własnej skórze”. Takie PP realizujemy w dobrze nam znanych technologiach. Cały nasz wysiłek kierujemy na realizację idei, a nie walkę z technologią. Przykładem może być chociażby zabawa z widokami parametryzowanymi w Postgresie.
Tutaj wykuwa się nasza „głęboka wiedza” o używanych narzędziach. Bardzo często chcemy rozwiązać problem, który wymaga zanurkowania w dokumentację, przeczytania dodatkowych materiałów lub zapoznania się z teorią. Z tego miejsca wychodzą też te PP, które mają duży potencjał na szerszą publikację.
Eksperymenty
Czyli rzeczy, które robimy choć wiemy, że nie wyjdą. Przykładowo Ordered Lock. Czy jest bez sensu? Tak. Czy jest głupi? No raczej. Czy warto? Oczywiście! Takie zabawy pozwalają wam na poznanie granic absurdu danej technologii. Po to jednak to robić? Po to, żeby odkrywać nowe możliwości, bo czasami takie właśnie bezsensowne kawałki kodu pozwalają nam na pisanie czegoś sensownego. Możemy przemyśleć pomysły i skonfrontować je z ekstremum.
To miejsce gdzie powstają najdziwniejsze rzeczy. Bardzo często są one ogólnie nieprzydatne, ale mają dla nas dużą wartość dydaktyczną. Mamy tu pełną swobodę twórczą i możemy dać upust naszej fantazji.
Dlaczego to takie ważne?
Zaczynając taki PP mamy z tyłu głowy jakiś pomysł i próbujemy go zrealizować. Często możemy też przetestować, jak bardzo nasze umiejętności pozwalają na tworzenie oprogramowania od a do z. I w końcu okazuje się, że pomimo lektury wielu mądrych książek, wydania miliona monet na kursy i wielu lat doświadczenia nie potrafimy sklecić kawałka sensownego softu. To uczy pokory, a pokora jest ważną cnotą dla inżyniera. Dzięki niej wiemy, że popełniamy błędy. Jednocześnie PP pokazują nam gdzie jest nasz indywidualny limit i mogą wskazać ścieżkę do dalszego rozwoju.