Kiedy wiesz, że wpakowałeś się w bagno w projekcie IT
Zawsze się nad tym zastanawiałem - kiedy to, co piszę, przestaje być hackowaniem, a staje się po prostu walką o to, by nie stracić wszystkich ciuchów, próbując wydostać się z bagna? Łatwo jest przeginać w swoich odczuciach – przeważnie wydaje nam się, że jest gorzej niż w rzeczywistości. Tylko, czy aby na pewno? Nie wiem, szczerze nie wiem. Myślę o tym za każdym razem, kiedy jestem w projekcie, który zaczyna mi ciążyć. Ale nie ciążyć, bo to praca. Ciążyć, bo już tyle było dziwnych przypadków, że aż strasznie obawiam się kolejnego - ale też na niego czekam. Bo on po prostu musi się zdarzyć. Nie ma innej opcji.
Przeważnie to, czy coś było złe, czy dobre, przychodzi do mnie dopiero po projekcie. Jednak są takie projekty, kiedy w środku wiesz: ooo kolego, wpakowałeś się... W jednym z takich projektów po trzech miesiącach tworzenia oprogramowania - zgodnie z informacją o specyfikacji, którą dostałem od pośrednika - klientowi w ogóle nie o to chodziło, całe te wymagania były o ... potłuc i trzeba było to pisać od nowa, przy czym cena za utwór nie ulegała zmianie. Wtedy rąbnąłem pięścią w stół, jak mała dziewczynka tupnąłem nogą i powiedziałem: basta.
Ostatnio zaś w jednym z projektów napisałem linijkę przy jednym zdarzeniu, które jest odpowiedzialne za obsługę aktywacji obiektu Inspector w Outlooku. Ogólnie zdarzenie powinno być wykonane tylko raz, ale jakiś cudem było wywoływane dwa razy. Przy pisaniu rozszerzenia korzystam z produktu firmy trzeciej - umożliwia on po prostu trochę przyjemniejsze pisanie rozszerzeń, jednocześnie dla wielu wersji Office. Okazało się, że twórcy biblioteki wywołują zdarzenie ręcznie, na wszelki wypadek przy tworzeniu instancji obiektu ,a zaraz potem jest wykonywany oficjalny event. Mogłem czekać, aż to naprawią (ale wątpię, by to zrobili), mogłem też napisać taki oto kod:
if (Environment.StackTrace.Contains("DoNewInspector"))
{
_log.Trace("OnOutlookInspectorActive|…speechless…");
return;
}
Jak tylko napisałem tę linijkę z miejsca poczułem, że tracę grunt pod nogami. Pierwszy raz w życiu poczułem się źle, bo skoro już teraz musiałem zrobić coś takiego, to co się może wydarzyć potem? Jak ja to będę debuggował? Skąd wiem, że to, co teraz zgłasza użytkownik, to moja wina czy nie?
Bagno? Chyba tak. Byleby dało się z niego wyjść :)
PS: Nikomu nie życzę wpadnięcia w bagno, ale jak to się stanie, to… keep calm, inaczej będzie tylko gorzej.