wtorek, sierpnia 19, 2008

Starzeje się...

I nie, nie chodzi o to, że mam już 30 lat, choć to może być powodem ;-)
Na Wykopie pojawił się link z forum konnekta do propozycji stworzenia nowego komunikatora o podobnej do konnekta filozofii.
Nie projekt jest tu jednak ważny, a moja reakcja...... OK, może nie jest ciekawa dla innych, ale dla mnie jest, więc się dziele.
Moja reakcja była mniej więcej taka:
"Po co? Przecież mają już taką bazę kodu, trzeba to wykorzystać, a nie pisać od postaw. Tak mogą robić tylko studenci."
Fakt, pomysł rzucił student.... ;-) Ale wracając do meritum. Na wejściu odrzuciłem pomysł pisania czegoś od nowa... OK, w wielu przypadkach odrzucenie takich pomysłów jest dobre. Gdybyśmy za każdym razem wymyślali koło nie dotarlibyśmy zbyt daleko... pewnie nadal bylibyśmy na etapie epoki kamienia, ale fakt faktem każde narzędzie mielibyśmy stworzone z dbałością o każdy szczegół i z podziałem na warstwy.... jakby się obsydian złamał to moglibyśmy spokojnie wykorzystać trzonek w nowej siekierze ;-) [chyba za dużo we mnie sarkazmu jeśli chodzi o podział na warstwy ;-)]
Ale problem w tym, że pisanie od nowa nie zawsze jest złym pomysłem. Czasem jest lepszym wyjściem i to nie dlatego, że pozwala zapanować nad całą bazą kodu, ale po prostu znamy już błędy jakie popełniliśmy i powinniśmy dać szansę nowym ;-)
Czasem zdrowiej jest napisać na podstawie złego kodu wymagania i dać to komuś do napisania od początku. Zwykle nie trzeba tak robić bo nowy kod byłby lepszy od starego tylko w paru miejscach, a w innych wnosiłby całą nową klasę błędów i problemów, przy tym oznaczałby całkowite zatrzymanie developmentu i wydanie kupy kasy. Ale czasem takie postępowanie ma sens.
Wszystko zależy od kontekstu.
Przerażające jest to, że zamiast spojrzeć na problem i go przemyśleć prawie od razu uznałem pomysł za nierozsądny. Wniosek jest taki, że trzeba nad sobą popracować coby się oduczyć decydowania bez myślenia. Swoją szosą to jest chyba tak, jak masz te naście lat czy między 20 a 30 to chcesz robić wszystko po swojemu i od początku. Z czasem się uczysz i nabierasz doświadczenia i od tego momentu chcesz robić wszystko tak jak już umiesz. Przy pierwszym podejściu możesz albo dać kompletnie plamę [zwykle częściej], albo stworzyć coś nowatorskiego [znacznie rzadziej ;-)], przy drugim tworzysz dobre i bardzo dobre, ale rzadko nowatorskie. Drugie podejście wygląda na bardziej rozsądne ekonomicznie....
Ale czy nie byłoby lepiej działać tak by zawsze próbować czy lepiej w danym momencie użyć starego sprawdzonego sposobu, czy może jakiegoś szalonego? ;-)
Jeżeli zrobienie czegoś dobrze i starą metodą zajmie mi tydzień, to czy nie lepiej zmarnować jeszcze z 2-3 dni żeby sprawdzić czy nie da się zrobić tego lepiej? ;-)


Podobne postybeta
Todo - Efekt ciążenia ku dołowi listy ;-)
Plug-in master ;-)
Pat Condell - Boże, pobłogosław ateizm!
Bycie człowiekiem jest dziwne.
Sprzeczność ;-)

2 komentarze:

  1. Nie ulega wątpliwości, że temat trzeba by przemyśleć. Ważną kwestią było by czy stare rozwiązanie jest dobrze zaprojektowane. Może nie było a na poprawki architektury nigdy nie było czasu. Teraz jest czas więc można w końcu porządnie zaprojektować szkielet biorąc pod uwagę, że mamy doświadczenie przy pisaniu poprzedniego. Nie powinniśmy także popełniać błędów wieku dziecięcego. Poza tym, pisanie od nowa nie musi być równoważne z całkowitym usunięciem starego. Można pewne rzeczy wykorzystać.

    OdpowiedzUsuń
  2. Tak, portowanie... Widziałem już to w działaniu ;-) Na początku była mowa o całkiem nowym produkcie, który powali konkurencję na kolana, z czasem pojawiły się opinie, że produkt powstanie przez portowanie kodu ze starego rozwiązania i ruszyły prace... które przez pewien czas niewiele dały bo nie było jeszcze sprzętu ;-) W końcu pojawił się sprzęt w jakiejś wczesnej wersji to zaczęto kodować, ale że czasu brakowało to z rewolucyjnych rozwiązań coraz więcej znikało. I w końcu powstał produkt dobry, ale nie rewolucyjny i chyba nie do końca lepszy do starego ;-)
    Dlatego z portowaniem też trzeba uważać.

    OdpowiedzUsuń