2007-11-20

Często słyszy się jak robienie softu jest porównywane do budowania budynku.
I że wprowadzanie zmian do softu (w tym poprawianie błędów) jest tym kosztowniejsze, im później następuje. Racja, tylko że przy projektach trwających po kilkanaście miesięcy i pamięci złotej rybki u managementu, który to doskonale pamięta slogany, ale ich nie stosuje (rewiu dokumentu i projektu rewiułem, ale terminy muszą być dotrzymane, więc można nie napisać nic i wielkiego halo nie będzie), tekst o kosztach wprowadzania zmian jest tylko sloganem.
Analogia z mieszkaniem jest uderzająca - na wczesnym etapie budowy można próbować wprowadzić zmiany typu podwójne rj-45, inna lokalizacja ścian, rur itp, bo napierdalanie po ścianach i ciągnięcie druta po dostaniu mieszkania jest drastyczne.
Ale na taki slogan jest doskonały kontrargument - wprowadzenie zmian w projekcie mieszkania w poprzek developerowi ma podobne szanse powodzenia jak wprowadzenie zmian w projekcie softu w poprzek managos i marketoidos.
Zmiany mogą nawet zostać zaakceptowane, ale zupełnie przypadkiem umknąć w wykonaniu, albo zostać opacznie zrozumiane, więc i tak trzeba niektóre późne zmiany porobić samemu i po cichu, bo mimo wszystko wyjdzie taniej na koniec, albo dopiero wtedy bedzie wolno, jak już nikt nie będzie patrzył.
Analogia jest pełniusieńka, tylko wydaje mi się, że wymachujący tym sloganem mogą być lekko zaskoczeni jej szczegółowością.

Etykiety:

2007-11-08

Dzisiaj przeżyłem swego rodzaju oświecenie: od jakiegoś czasu przebijam się przez kod w postaci
BOOL funkcja(void) { if (FALSE == innaFunkcja(odZmiennejGlobalnej)) { printf("Error w funkcji"); goto Error_Handling; } return TRUE; Error_Handling: return FALSE; }
i zwoje mi trzeszczały, od goto, od tego porównania stała == zmienna, za cholerę nie wiedziałem skąd komuś się cośtakiego bierze, ani to wygodne, ani wygląda (pomijając już porównanie do stałej TRUE/FALSE w C++).
I w końcu się dowiedziałem. Mętne wytłumaczenie było, że od razu widać, do czego się porównuje - nad wyraz mętne.
Otóż - jak się przypadkowo napisze if (zmienna = STAŁA) to kompilator to skompiluje, a jak się napisze if (STAŁA = zmienna) to walnie błędem.
Ręce mi opadły - to mogło być prawdą w czasach kamienia łupanego, ale teraz jest znane coś takiego jak warning - kompiler pyta się, czy rzeczywiście przypisanie miało być w ifie, jak jakiś debilasty programista wyłącza warningi, to jest sam sobie kurna winien.

Etykiety: