Szybki quiz. Skąd wiesz, że Twoja aplikacja działa? Możliwe, że się kompiluje. Możliwe, iż wszystkie testy jednostkowe przechodzą. Możliwe też, że przeszła próbę w dziale QA. Możliwe, iż została szczęśliwie wdrożona na serwer produkcyjny bądź spakowana do instalera. Może nawet beta testerzy potwierdzili jej poprawność. Ale to nie oznacza, że aplikacja działa. Czy tak naprawdę użytkownicy rozumieją Twoją aplikację? Czy potrafią oni wyk...
Joseph Conney miał fantastyczny pomysł na nowy program certyfikacyjny dla aplikacji. Tylko że przyjemna odznaka w stylu Visty (kolorystyka biały-na-szarym) nie do końca komunikuje, hmm..., autorytatywny charakter tego programu. Z pomocą Jona Gallowaya sprawiliśmy, że odznaka jest trochę bardziej cool. [tłum. oryginalna odznaka znajduje się tutaj] Można pomyśleć, że zdobycie tak prestiżowego, rygorystycznego poziomu cer...
Uradowałem się, gdy zobaczyłem, że James Hague wybrał książkę The Zen of Assembly Language Programming jako jedną z pięciu, godnych zapamiętania książek o programowaniu. Całkowicie się z tym zgadzam. Nawet jeśli podczas swojej zawodowej kariery nie planujesz nawet liznąć asemblera, to ta książka jest i tak fantastyczna oraz całkowicie godna polecenia. Byłem zwykłym programistą Visual Basica w momencie, gdy natrafiłem na tę ...
Oryginalny post: Every User LiesAutor: Jeff Atwood Heidi Adkisson zaznacza, iż to funckjonalności sprzedają produkt, ale ludzie, którzy kupują te produkty, często nie używają własności, które zasądziły o zakupie. Kilka lat temu przeprowadziłam obszerne badanie polegające na obserwowaniu używania określonego sprzętu komputerowego. Większość ludzi posiadało najnowsze modele, z ogromem możliwości. Ale w moich obserwacjach zauważyłam, że tylko jeden "zaawansowany użytkownik" wyszedł poza użycie bazow...
Pisałem już wcześniej o nieodpowiedzialnym używaniu okien dialogowych, ale coś co przeczytałem ostatnio, podkreśliło interesujący aspekt tego tematu, którego wcześniej nie rozważyłem. Najpierw, Joel Spolsky: Może to zabrzmieć surowo, ale zdasz sobie z tego sprawę, kiedy zrobisz testy z użytkownikami, że znajdzie się trochę takich, którzy nie czytają słów, które umieściłeś na ekranie. Jeśli pokażesz okno z jakimkolwiek błędem, po prostu go ...
Oryginalny post: Autor: Jeff Atwood W artykule Niełatwo jest wypuścić produkt (ale ktoś to musi robić) Shawn Burk tłumaczy, dlaczego powinieneś opierać się pokusie wprowadzania zmian pod koniec projektu, niezależnie od tego, jak bardzo uzasadnione bądź racjonalne mogą wydawać Ci się ku temu powody. Nawet najmniejsza zmiana to rzeczywiste ryzyko wprowadzenia nowych błędów. Pierwsza osoba, która skomentowała ten artykuł, zażartowała: W TeXu nie ma błędów... Być może jest to wyjątek, który potwierdz...
Oryginalny post: Code Reviews: Just Do ItAutor: Jeff Atwood W artykule The Soft Side of Peer Reviews Karl Wiegers zaczął od mocnego oświadczenia: Wzajemne przeglądy -- czynność, podczas której osoby inne niż autor kawałka kodu przyglądają się mu pod kątem błędów oraz możliwości poprawy -- są jednym z bardziej potężnych, dostępnych narzędzi do podtrzymywania jakości kodu. Wzajemne przeglądy zawierają w sobie inspekcje, kontrole ogólne, wzajemne symulowanie logiki i inne podobne czynności. ...
Już nie pamiętam ile razy zasiadałem do projektowania po czym, podczas programowania porzucałem bądź radykalnie modyfikowałem projekt, ponieważ.. Zapomniałem o czymś bardzo ważnym Znalazłem inne, łatwiejsze rozwiązanie To co robiłem, nie miało sensu Na nowo wynajdywałem koło, a powinienem był znaleźć gotowca w sieci Hej, przecież nawet nie muszę tego robić jako pierwsze! W prawdziwym świecie istnieje ciasna pętla przyczynowo-skutkowa pomiędzy fazą implementacji a projektowania. Jeśli używasz Ph...
Oryginalny post: Being technologically savvy isn't enoughAutor: Jeff Atwood: Nie zdawałem sobie sprawy, że Dan Appleman znów pisze bloga! W jednym z jego ostatnich wpisów, porusza doskonały temat, który jest powiązany z moimi ostatnimi wpisami na temat różnic umiejętności w programowaniu oraz o byciu dobrym w tym, co się robi: czasami, to nietechniczne umiejętności czynią z Ciebie lepszego programistę niż kogoś z Indii. Mocy prezencji osobistej nie da się przecenić: I nawet jeśli produktywno...
Zauważyłeś, że nowi programiści .NET mają tendencję do używaniu dziedziczenia do... hmm... wszystkiego? W pewnym stopniu jest to zrozumiałe, ponieważ dziedziczenie jest wykorzystywane w całym frameworku; wszystko w .NET dziedziczy z jednej głównej klasy. Jest jednak drobna różnica: my piszemy jakąś tam logikę biznesową, nie tworzymy języka. To co jest właściwe podczas tworzenia języka może nie być odpowiednie dla prostego kodu, który przede wszystkim musi...
Oryginalny post: The Rise and Fall of Homo LogicusAutor: Jeff Atwood Pośród całej apodyktycznej dumy, którą zaobserwowałem wśród programistów, prawdopodobnie największym grzechem ze wszystkich jest to, iż uważamy siebie za typowych użytkowników. Obsesyjnie używamy komputerów, wiele wiemy o tym jak one działają, nawet udzielamy rad przyjaciołom i rodzinie. Jesteśmy ekspertami. Któż mógłby lepiej zaprojektować oprogramowanie niż my? Większość programistów nie zdaje sobie sprawy z tego, jak bardzo odstaj...
Oryginalny post: Computer Workstation Ergonomics Autor: Jeff Atwood Niemal każdą chwilę, kiedy nie śpię, spędzam przy komputerze. Jestem tym, kogo mógłbyś nazwać domowym entuzjastą. Jestem szczęściarzem, ponieważ nie doświadczyłem żadnego urazu związanego z komputerem w związku z długotrwałą pracą przy nim, ale jest to bardzo realne ryzyko zawodowe. Miewam czasem bóle w dłoniach bądź nadgarstkach, zazwyczaj po maratońskich hulankach, gdzie oczywiście przesadzam -- ale to nie jest tematem tego wpisu. O ...
Oryginalny post: Your Favorite NP-Complete Cheat Autor: Jeff Atwood Czy kiedykolwiek słyszałeś, żeby inżynier oprogramowania odnosił się do jakiegoś problemu mianem "NP-zupełny"? To wymyślny, żargonowy skrót do "niesamowicie trudny". Najbardziej znana cecha problemów NP-zupełnych to to, że nieznany jest sposób na ich szybkie rozwiązanie; to oznacza, że czas jaki jest wymagany na rozwiązanie danego problemu przy użyciu obecnie znanych algorytmów, wzrasta bardzo szybko w miarę wzrostu rozmiaru ...
Bruce Eckel zręcznie identyfikuje źródło wszystkich problemów związanych z tworzeniem oprogramowania: Pracujemy w młodej branży. W zasadzie to prymitywnej -- nie wiemy za bardzo co działa i wydaje nam się, że znaleźliśmy prosty sposób, który rozwiązuje wszystkie problemy. W rezultacie przechodzimy przez wieloletnie okresy wzlotów i upadków, w miarę jak nowe pomysły się pojawiają, startujemy, wyczerpujemy możliw...
Oryginalny post: How To Achieve Ultimate Blog Success In One Easy Step Autor: Jeff Atwood Zawsze szturchaj. Zawsze dostarczaj. Zawsze strzelaj. To ta sama rada wyrażona w różnych formach dla różnych odbiorców. Według mojej teorii, pozyskiwanie potencjalnych klientów wywodzi się z rankingu Google, a najlepszym sposobem na zwiększenie tego rankingu jest postępowanie jak zawodowy wojownik: ani uderzenia, ani sierpowe nie wystarczają. Musisz zawsze szturchać i regularnie uderzać sierpowym. Bloguj nieust...
W przeciwieństwie do mitu, nie ma czternastu rodzajów programistów. Są tylko dwa, jak przypomniał nam Ben Collins-Sussman. W świecie tworzenia oprogramowania istnieją dwie "klasy" programistów: nazwę ich 20% i 80%.
Oryginalny post: Does More Than One Monitor Improve Productivity? Autor: Jeff Atwood Począwszy od mrocznych czasów Windowsa Millenium jestem entuzjastą pracy na wielu monitorach. W ciągu ostatnich czterech lat pisałem już kilka razy o rozmaitych przyjemnościach płynących z pracy na kilku monitorach. Posiadam trzy monitory w domu jak i w pracy. Jestem tym, kogo mógłbyś nazwać prawdziwym zwolennikiem. Zawsze szukam argumentów dla kolegów po fachu, którzy żądają drugiego (albo nawet trzeciego) monitora, ...
Oryginalny post: A Question of Programming EthicsAutor: Jeff Atwood Z Kodeksu Etycznego ACM: Jako członek ACM będę Przyczyniał się do dobrobytu społeczności oraz ludzi. Unikał krzywdy innych. Był uczciwym i godnym zaufania. Uznawał prawa własności włączając w to prawa autorskie i patenty. Doceniał własność intelektualną. Resp...
Oryginalny post: JavaScript: The Lingua Franca of the WebAutor: Jeff Atwood Mike Shaver, członek-założyciel Mozilla Organization wyraża mocne przekonania na temat przyczyn popularności Internetu:Jeśli wybierasz platformę powiązaną z konkretnymi narzędziami, jeśli porzucasz swobodną współpracę przez Zobacz Źródło, mashupy robione na zasadzie copy-and-paste i możliwość zapakowania jQuery tam gdzie wcześniej siedział Prototype, wtedy tracisz to, co spowodowało rozrost i rozproszoną ewolucję sieci. Tracisz t...
Wymień jakąkolwiek ważną technologię oprogramowania, a znajdziesz odpowiednią ścieżkę certyfikacyjną. Odpłatną oczywiście. To dezorientujący i zastraszający szereg akronimów: MCSD, SCJD, RHCE, ACSA. A firma oferująca daną certyfikację jest najczęściej tą samą firmą, co firma sprzedająca dany produkt. Nie ma tu konfliktu interesów. Ale czy te certyfikaty w rzeczywistości sprawdzają się? Czy są uzasadnionymi referencjami?