Prawie wszystkie odpowiedzi zostały powiedziane na śmierć w wielu miejscach tutaj i gdzie indziej. A przynajmniej słyszałem to na śmierć. Naucz się swojego IDE, naucz się pisać szybciej, używać frameworków, generowania kodu itp. Tak. Oczywiście te rzeczy pomogą i wątpię, że jest wielu programistów, którzy są mistrzami ich wszystkich. Ale będąc programistą, który zadaje te pytania i odwiedza witryny takie jak Stack Overflow , już o tym wiedziałeś . Czy po prostu chciałeś je tutaj powtórzyć, czy po prostu chciałeś trochę odpowiedzieć?
Ale co, jeśli uda nam się dojść do tego stanu? Mam na myśli opanowanie tych wszystkich sugestii? Co by się wtedy stało? Dobrze. Sądzę, że linie czasu zostaną jeszcze bardziej skrócone. I znowu powrócimy do postrzegania jakości. Chodzi o to, że nasze rzemiosło zdecydowanie się rozwijało i stawało się coraz bardziej produktywne w ciągu dziesięcioleci. Ale czy w tym czasie wzrosła jakość (oczywiście z wyłączeniem bardzo wczesnych lat)?
Moja odpowiedź jest prosta: oprogramowanie wysokiej jakości wymaga czasu ! Możesz handlować tylko jeden za drugim (jakość / szybkość). Ale tak, wszyscy wiemy, że jednak nie jesteśmy uczciwi w kwestii tego, w jakim stopniu ta kompromis często kończy się na końcu skali prędkości. I jesteśmy jeszcze większymi kłamcami na wczesnych etapach projektów!
Mówię, że nie jesteś tutaj winny. Problemem jest postrzeganie , jak długo powinno trwać oprogramowanie wysokiej jakości. Oszukujemy samych siebie, wierząc, że jesteśmy w stanie stworzyć oprogramowanie wysokiej jakości z typami linii czasowych naszych menedżerów, a nawet zgadujemy. Nie produkujemy wysokiej jakości oprogramowania . Piszemy oprogramowanie, które działa, ale czasami z błyskami jakości w niektórych rogach aplikacji.
Co więc możemy z tym zrobić? Nie możemy po prostu przekonać naszych szefów, że musimy podwoić lub potroić inwestycje w każdy z naszych projektów. Mówię dawać przykład. Stwórz naprawdę świetne oprogramowanie jako projekt poboczny. Poświęć na to swój czas i nie idź na kompromis. Przez cały czas zwracaj uwagę na swoje postępy. Zanotuj pozornie niezwiązane zadania, na które musiałeś poświęcić nieoczekiwany czas i sprawdź, czy możesz to uzasadnić. Porównaj to ze wszystkimi innymi projektami, które pracowałeś. Bądź brutalnie szczeryze sobą i wszystkimi aspektami tej analizy. Czy dodatkowe rzeczy, które zrobiłeś ze swoim wysokiej jakości oprogramowaniem, można pominąć w „prawdziwych” projektach w pracy? Ale może twoja próba się nie powiodła. Co było powodem? Znudziło ci się i po prostu spieszyłeś, aby wykonać podstawowe funkcje? Sam jeszcze nie zrobiłem czegoś takiego i dlatego kończę tę myśl z pewnymi wątpliwościami - ale zamierzam spróbować. Będę was informować :).
Wreszcie, myślę, że większość (jeśli nie wszystkie) oceny wydajności są pokręcone i wyjątkowo manipulacyjne. Nie można dusić jakości i prędkości na 100%. Twój szef powinien oceniać cię w stosunku do standardu ustalonego przez organizację. Standard organizacji dotyczący kompromisu między jakością a szybkością. Wyobraźmy sobie, że OrangeSoft Inc. oczekuje 33% jakości i 66% prędkości. Więc jeśli piszesz kod, który może ma jedną trzecią testów jednostkowych, powinien, ale nadrabiając go szybkością i skróconym czasem dostawy, powinieneś uzyskać wynik blisko 100% na swojej recenzji! (Są to dość szorstkie analogie, ale masz rację). Ale zamiast tego dzieje się tak, że Bob pisze kod bardzo szybko, ale notorycznie jest on błędny. Na podstawie swojej oceny wyników zdobędzie 3/5 za jakość i 5/5 za szybkość. Z drugiej strony Carol pisze kod znacznie wolniej, ale powoduje znacznie mniej błędów. Uzyskuje 5/5 za jakość, ale 3/5 za szybkość. Tak czy inaczej Bob i Carol zostają zadokowani na swojej podwyżce. Czy każdy pracownik może uzyskać doskonały wynik? Czy to jest sprawiedliwe?