Nie bez powodu nazywają to Real World ™.
99% tego, co napotkasz w prawdziwym świecie korporacyjnym, będzie uważane za gówno i nie bez powodu to wyjaśnię. 1%, który nie jest uważany za badziewia, w końcu stanie się badziewiem.
# 1 Napisz kod, # 2 ????, # 3 Zysk!
Po pierwsze, istnieją firmy, które przynoszą zysk, nie istnieją, aby generować góry o idealnie teoretycznie czystym, zaprojektowanym i nieskazitelnym kodeksie akademickim, mieszczącym się w złotych repozytoriach doskonałości. Nawet blisko, nawet tych zajmujących się sprzedażą kodu źródłowego, który produkują.
W świecie biznesu kod jest środkiem do celu . Jeśli jakiś kod rozwiązuje problem biznesowy i zarabia więcej niż kosztuje jego utworzenie i utrzymanie, jest to pożądane dla firmy. Zatrudnianie Ciebie do pisania kodu to tylko jeden ze sposobów uzyskania kodu przez firmę.
Teoria 0 - Ćwicz ∞
Idealna konserwacja powinna być większym problemem, ale zwykle nie jest, ponieważ w krótkim okresie nie wygrywa finansowo. W dłuższej perspektywie oprogramowanie zwykle ma stosunkowo krótki cykl życia, zwłaszcza aplikacje internetowe, szybko się dezaktualizują i częściej zapisują.
Wewnętrzne aplikacje biznesowe to te, które są postrzegane jako niekończące się projekty zombie z wielu powodów opartych na pędu. Projekty te są w rzeczywistości sukcesami, które kontynuują, ponieważ nadal przynoszą firmie zysk.
Teoretycznie nie ma różnicy między teorią a praktyką. W praktyce jest. - Yogi Berra
Teoretycznie idealnie zaprojektowane absolutnie czyste, nieskazitelne bazy kodu ze 100% pokryciem kodu powinny zaoszczędzić pieniądze firmom, w praktyce nie jest nawet bliskie dostarczenia rzeczy zbliżonej do prawidłowego zwrotu z inwestycji.
Fizyka cyklu życia oprogramowania
W świecie oprogramowania działa również bardzo potężna siła entropii. Jest to czarna dziura nieuchronności, która skazuje wszystkie programy na degenerację w Wielką Kulę Błota .
Im dalej zaczniesz od BBM, tym lepiej, ale każdy system oprogramowania w końcu się tam dostanie, mając wystarczająco dużo czasu. To, jak szybko zbliżysz się do 100% entropii, zależy od tego, od czego zaczynasz i jak szybko nakładasz zadłużenie techniczne oraz jak wysokie są na nim odsetki.
Systemy oprogramowania degenerują się i gniją z powodu konserwacji, a nie z powodu jej braku. System działający od lat bez zmian kodu z definicji spełnia wszystkie jego wymagania i cele i odnosi sukces.
To systemy wymagają ciągłej zmiany, ponieważ zaczęły się bliżej maksymalnej entropii, są to systemy, które są ciągle szturchane i szturchane, a konserwacja przyspiesza negatywną zmianę.
Good Enough to Good Enough
Systemy z krótkim cyklem życia, takie jak strony internetowe, które ciągle się zmieniają, nie korzystają z drogiego, dużego projektu z góry 100% pokrycia kodu w testach jednostkowych, ponieważ czas amortyzacji jest zbyt krótki, aby odzyskać koszty.
Systemy o długim cyklu życia, takie jak wspomniana wyżej wewnętrzna linia aplikacji biznesowych, również nie korzystają z ogromnych inwestycji w 100% testy jednostek pokrycia kodu, ponieważ tempo zmian w trakcie trwania projektu zbliża się do stałej bliskiej zeru w moda nieliniowa.
Dlatego plany wycofania z eksploatacji są ważniejsze, a systemy zastępcze powinny być planowane tak, jak coś jest wypuszczane na rynek, a nie po tym, jak minęło kilka lat i jest nieobsługiwane, więc nowy system musi zostać wdrożony.
O ile mi wiadomo, nie uczą o BBM, nigdy nie spotkałem niedawnego absolwenta CS, który wiedziałby, co to jest, a tym bardziej dlaczego tak się dzieje.
Właśnie dlatego Good Enough jest Good Enough , nic więcej nie jest.
Oprogramowanie Slumlords
Nie bez powodu są lordowie slumsów, którzy czerpią zyski z zaniedbanych szantowych budynków. Zarób więcej niż wydają na stopniowe utrzymanie zaniedbanej nieruchomości. Jeśli tego nie zrobią, zburzą budynek i zastąpią go. Ale nie robią tego, ponieważ koszty przyrostowe są znacznie mniejsze niż remont lub wymiana całego budynku. Są też klienci (najemcy), którzy są skłonni zapłacić za zaniedbaną nieruchomość.
Żaden właściciel budynku, pan slumsów, czy nie, nie wyda pieniędzy na nieruchomość tylko z powodu akademickiego pojęcia doskonałości, która nie przekłada się na znaczny zysk w stosunku do związanych z tym kosztów.
Żaden klient nie zapłaci za uaktualnienia systemu oprogramowania, który działa dla niego akceptowalnie. Żadna firma nie wyda pieniędzy na samo pisanie i ponowne pisanie kodu, bez żadnego wymiernego znacznego zysku.
Microsoft jest najbardziej dominującym i odnoszącym sukcesy lenistwem oprogramowania. System Windows zaczął otrzymywać podstawowe podstawowe zapisy dopiero od niedawna. I nadal nie usunęli całego starszego kodu z jądra. Nie ma to dla nich sensu biznesowego, ludzie są bardziej niż gotowi zaakceptować niski poziom oczekiwań, jaki postawili w ciągu ostatniej dekady.
Rokowanie
Jest to wzór od ponad 20 lat, gdy zajmuję się programowaniem. To się wkrótce nie zmieni. To nie tak ludzie chcą, żeby wyszedł z jakiegoś systemu wierzeń, to rzeczywistość sił zewnętrznych działających na biznes. Biznes napędza podejmowanie decyzji, zyski nie są złe, płacą twoją pensję, krótkoterminowa lub długoterminowa wizja jest nieistotna, jest to branża krótkoterminowa z ciągłą zmianą z definicji. Każdy, kto spiera się na tyle dobrze, by osiągnąć zysk , nie rozumie biznesu.
Spędziłem 15 lat na konsultacjach i bardzo szybko nauczyłem się, że wystarczy, że wszystko inne kosztuje mnie pieniądze. Tak, chciałem, żeby wszystko było idealnie, ale jeśli nie sprzedajesz bazy kodu, co stanowi 99,99999% czasu, gdy sprzedajesz rozwiązanie , cały ten prefekt czysty, uporządkowany elegancki kod jest tracony i po prostu tracisz czas, za który nigdy nie otrzymasz zwrotu .
Postęp i nadzieja
Metodologie zwinne są dobrym krokiem we właściwym kierunku, przynajmniej filozoficznie. Zajmują się chaosem i ciągłymi zmianami jako obywatele pierwszej klasy i akceptują to. Odrzucają praktyki dogmatyczne, uznając, że metodologie i praktyki powinny ulec zmianie, a także wymagania i technologie.
Akceptują entropię, którą wprowadza brak czasu lub zmieniające się wymagania, zmieniający się personel i żywotność oprogramowania z koncepcją długu technicznego.
Ale Agile nie jest panaceum, nie zmieni podstawowych praw fizyki, a podstawy kodu będą gnić niezależnie od tego. Od zarządu zależy, czy poradzisz sobie ze zgnilizną, zanim całkowicie wymknie się ona spod kontroli i stanie się niemożliwe do opanowania.
Zwinne, gdy wykonane poprawnie, pomaga zarządzać entropią, spowalnia ją, śledzi, mierzy i radzi sobie z nią w zaplanowany sposób. To nie zatrzyma!
Decyzja o karierze
Jeśli jest to dla ciebie prawdziwy problem filozoficzny, prawdopodobnie powinieneś rozważyć inne wybory zawodowe, ponieważ sposób, w jaki działa praca, ma uzasadnioną wartość biznesową. Projekty Open Source nie mają lepszych osiągnięć, aw wielu przypadkach kod jest nawet gorszy niż większość kodu firmowego, jaki widziałem.