Jak stwierdzili DeMarco i Lister w Peopleware około 20ish lat temu, ogromna większość nieudanych projektów oprogramowania kończy się niepowodzeniem nie z powodu problemów technicznych, ale problemów socjologicznych . Nie zmieniło się to w ciągu ostatnich dziesięcioleci, bez względu na to, jak bardzo ulepszono nasze narzędzia.
Niewłaściwe zarządzanie, nierealistyczne oczekiwania, niedostosowanie odpowiednich ludzi do pracy i / lub niedopuszczenie do wykonywania pracy, w konsekwencji ich nie dotrzymanie; miejsca pracy i narzędzia, które nie są odpowiednie do prac programistycznych; nierozwiązane konflikty osobiste; polityka ; to tylko kilka typowych problemów, które od samego początku mogą skazać projekt na niepowodzenie.
Dlaczego pisanie dobry kod jest trudniejszy?
Nie jestem do końca przekonany, że naprawdę trudniej jest teraz napisać dobry kod niż dziesięć lat temu. W rzeczywistości, w porównaniu do kodu maszynowego lub zestawu, wszystko, co mamy teraz w głównym nurcie, jest o wiele łatwiejsze w obsłudze. Może właśnie musimy produkować więcej.
Czy to tylko ze względu na wspomniane czynniki, czas i złożoność?
Tak, na pewno osiągalne złożoność wzrosła (i ciągle rośnie) jako moc naszych narzędzi wzrasta. Innymi słowy, ciągle przekraczamy granice. Który mi tłumaczy tak, że równie trudno rozwiązać dzisiejsze największe wyzwania, jak to było 30 lat temu, aby rozwiązać ten dzień największe wyzwania.
OTOH ponieważ pole wzrosła tak ogromnie, istnieje sposób bardziej „małe” lub „znany” problemy teraz niż było 30 lat temu. Problemy te są technicznie (powinien) nie (być) to wyzwanie już, ale ... tu wejdzie wyżej maksyma :-(
Także liczba programistów od tego czasu wzrosła ogromnie. A przynajmniej moja osobista percepcja jest taka, że przeciętny poziom wiedzy i doświadczenia zmalała, po prostu dlatego, że jest o wiele więcej juniorzy przyjeżdżający nieprzerwanie do pola niż istnieją seniorzy, którzy mogliby je kształcić.
Czy metodologie nie są praktykowane poprawnie?
IMHO na pewno nie. DeMarco i Lister mają ostre słowa na temat dużych metodologii. Mówią, że żadna metodologia nie może doprowadzić do sukcesu projektu - tylko ludzie w zespole mogą. OTOH Small-m metodologie chwalić są dość zbliżone do tego, co obecnie znamy jako „agile”, który rozprzestrzenia się szeroko (IMHO dobrego powodu). Nie wspominając już o takich wzorców jak testowanie jednostkowe i refaktoringu, który zaledwie 10 lat temu nie były powszechnie znane, a obecnie nawet wielu absolwentów wiedzieć nich.