sobota, 28 września 2013

Czasami szkoda czasu na najlepsze rozwiązania

Kilka dni temu rozmawiałem z członkiem mojego zespołu na temat niektórych defectów, które zgłaszamy.
Stwierdził on, że o ile zazwyczaj nie ma się nad czym rozwodzić i kłócić, to zastanawia się, czy w niektórych przypadkach nie jest to zwyczajny przerost formy nad treścią (nie cytuję, więć z góry przepraszam za wszelkie odstępstwa). O co mianowicie chodziło?
Zastanawiał się czy rzeczywiście zawsze warto inwestować czas w poprawianie kawałka kodu tak, aby był jeszcze lepszy, skoro spełnia on swoje założenia i wcale zły nie jest.

Cóż, jako, że jestem perfekcjonistą, niekiedy ciężko mi zrezygnować z poprawienia czegoś (mówię o nowym kodzie, nie o refaktoryzacji, bo tu umiar jest podstawą) w przypadku kodu, który sam tworzę. Jednak nie mogłem się nie zgodzić. Prawda jest taka, że zawsze można napisać lepszy kod, jednak jeżeli spełnia on swoje założenia i jest dobry (a z przyjemnością stwierdzam, że pracuję z ludźmi, którzy innego nie piszą:), to rzeczywiście, dalsze jego poprawianie może okazać się niepotrzebną inwestycją czasu. W takich przypadkach warto właśnie wziąć pod uwagę owy czas i się zastanowić ile zmiana będzie kosztowała i czy w danym momencie jestem w stanie sobie na te koszta pozwolić. Jeżeli nie, to nie stanie się absolutnie nic, gdy kod pozostanie w takiej formie w jakiej został zaprezentowany pierwotnie. Prawda jest taka, że nawet gdyby był wymagany w przyszłości refaktoring usprawiedliwony rozwojem danej funkcjonalności, to przy dobrze napisanym kodzie, również nie będzie on stanowił problemu.

Mój kolega oczywiście ma rację - niekiedy nie warto tracić czasu na szukanie najlepszych rozwiązań, nawet przysłowie mówi, że lepsze jest wrogiem dobrego :) Więc jeżeli kod, który napiszecie jest dobry, przetestowany i późniejsza praca z nim nie powinna sprawić problemów, a czas Wam ucieka (czy też nie macie go w nadmiarze), to zostawcie go w bieżącym stanie.

A swojemu koledze powiedziałem, żeby następnym razem prosił trzecią osobę o wyrażenie opini. Gdzie dwóch się nie może zgodzić, jest to zazwyczaj najlepszy i najszybszy sposób na rozwiązanie konfliktu:)