{"id":24,"date":"2009-01-30T22:35:11","date_gmt":"2009-01-30T21:35:11","guid":{"rendered":"http:\/\/bielamowicz.info\/blog\/?p=24"},"modified":"2018-07-04T21:01:27","modified_gmt":"2018-07-04T20:01:27","slug":"joel-i-27-krasnoludkow","status":"publish","type":"post","link":"http:\/\/bielamowicz.info\/index.php\/2009\/joel-i-27-krasnoludkow\/","title":{"rendered":"Joel i 27 krasnoludk\u00f3w"},"content":{"rendered":"<p>Fanem <a title=\"Joel Spolsky\" href=\"http:\/\/www.joelonsoftware.com\/AboutMe.html\" target=\"_blank\" rel=\"noopener\">Joela Spolsky\u2019ego<\/a> jestem od paru lat. Ten niesamowicie trze\u017awo my\u015bl\u0105cy w\u0142a\u015bciciel niewielkiej nowojorskiej firmy softwareowej przeszed\u0142 ca\u0142\u0105 \u015bcie\u017ck\u0119, od szeregowego programisty, poprzez managera produktu a na w\u0142a\u015bcicielu firmy sko\u0144czywszy. <a title=\"Joel On Software\" href=\"http:\/\/www.joelonsoftware.com\/\" target=\"_blank\" rel=\"noopener\">Jego witryna<\/a>, prezentuj\u0105ca rozs\u0105dne podej\u015bcie do informatyki, stopniowo zaczyna przedostawa\u0107 si\u0119 do \u201eg\u0142\u00f3wnego nurtu\u201d biznesu informatycznego \u2013 ostatnio na porady rekrutacyjne Joela powo\u0142ywa\u0142 si\u0119 Computerworld.<\/p>\n<p>Na podstawie pisanego przez lata blogu, Joel wysma\u017cy\u0142 zreszt\u0105 kilka ksi\u0105\u017cek (w sk\u0142ad kt\u00f3rych wchodz\u0105 rozbudowane i przeredagowane wpisy z blogu). Par\u0119 lat temu wydawca Joela postanowi\u0142 (jak s\u0105dz\u0119) zrobi\u0107 \u201eskok na kas\u0119\u201d i pokaza\u0107 nam, czytaj\u0105cym Joela, co czytam sam Joel. Rezultatem jego selekcji by\u0142 wyb\u00f3r 29 \u201etekst\u00f3w\u201d autorstwa 27 os\u00f3b. Ka\u017cdy z rozdzia\u0142\u00f3w opatrzony jest komentarzem Joela (i czasami zdarza si\u0119 niestety, \u017ce komentarz ten jest ciekawszy ni\u017c tekst owego cytowanego autora&#8230;). Ksi\u0105\u017cka nosi polski tytu\u0142 &#8220;Sztuka pisania oprogramowania. Wyb\u00f3r i redakcja Joel Spolsky&#8221;, za\u015b w wersji angielskiej po prostu &#8211; &#8220;The Best Software Writing I: Selected and Introduced by Joel Spolsky&#8221;. Niestety,to ju\u017c kolejny przyk\u0142ad jak dowcipne i wieloznaczne tytu\u0142yJoela trac\u0105 przy przek\u0142adzie&#8230;<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/bielamowicz.info\/images\/\/2009\/01\/artopr.jpg\" alt=\"Sztuka pisania oprogramowania. Wyb\u00f3r i redakcja Joel Spolsky\" align=\"right\" border=\"2\" hspace=\"10\" vspace=\"10\" \/><\/p>\n<p>Ksi\u0105\u017cka rozpoczyna si\u0119 od rozwa\u017cania <strong>Kena Arnolda<\/strong> o wa\u017cno\u015bci stylu w programowaniu. Styl rozumiany jest tu jak najbardziej dos\u0142ownie \u2013 ilo\u015b\u0107 spacji, rodzaje wci\u0119\u0107, wielko\u015b\u0107 liter w nazwach zmiennych, etc. Ka\u017cdy z nas zna uczucie, gdy chce (musi) pozna\u0107 dzia\u0142anie jakiego\u015b kawa\u0142ka systemu i \u2013 \u0142up \u2013 zostaje og\u0142uszony jakim\u015b kosmicznie zamotanym stylem. Ken proponuje do\u015b\u0107 kontrowersyjne rozwi\u0105zanie tego problemu. Czy ma szans\u0119 si\u0119 ono przyj\u0105\u0107? C\u00f3\u017c&#8230; zobaczymy \ud83d\ude09<!--more--><\/p>\n<p>Wbrew temu, co mog\u0142oby wynika\u0107 z pierwszego rozdzia\u0142u, ksi\u0105\u017cka nie dotyczy jedynie oprogramowania rozumianego jako tworzenie pojedynczych linijek kodu. Oto bowiem <strong>Michael Bean<\/strong> rozprawia si\u0119 z koncepcjami outsourcingu programistycznego, a jego tekst, czytany z perspektywy polskiej, wyja\u015bnia dlaczego polskie oddzia\u0142y du\u017cych informatycznych korporacji \u201ebabraj\u0105 si\u0119 w jakim\u015b g*****\u201d. Problem z\u0142o\u017cono\u015bci procesu tworzenia oprogramowania atakuje z innej strony <strong>Adam Bosworth<\/strong>, promuj\u0105cy zasad\u0119 tworzenia prostych rozwi\u0105za\u0144, kt\u00f3re b\u0119d\u0105 zrozumia\u0142e dla wielu i przez to uniwersalne, podaj\u0105c jako przyk\u0142ad j\u0119zyk SGML, kt\u00f3rego prawie nikt nie rozumia\u0142, a kt\u00f3ry po znacz\u0105cych \u201eci\u0119ciach\u201d dokonanych przez Barnesa \u2013 Lee jako HTML opanowa\u0142 \u015bwiat. Wiele o tym, na czym tak naprawd\u0119 polega biznes informatyczny m\u00f3wi kr\u00f3tki esej <strong>Raymonda Chena<\/strong>, kt\u00f3ry odpowiada\u0142 miedzy innymi za kompatybilno\u015b\u0107 wsteczn\u0105 Windows 95. Raymond opisuje jak projektanci Windows 95 zezwolili aplikacji SimCity na dokonywanie rzeczy, kt\u00f3rej system operacyjny absolutnie nie powinien tolerowa\u0107: na pisanie po zwolnionym obszarze pami\u0119ci. Dzia\u0142anie takie by\u0142o konieczne, gdy\u017c tw\u00f3rcy SimCity stworzyli swoj\u0105 aplikacj\u0119 w spos\u00f3b i\u015bcie hakerski, wykonuj\u0105c triki, kt\u00f3re cho\u0107 nielegalne, pod Dosem by\u0142y mo\u017cliwe, lecz w Windows nie powinny w og\u00f3le dzia\u0142a\u0107. Microsoft wiedzia\u0142 jednak, \u017ce je\u015bli SimCity przestanie dzia\u0142a\u0107 w Windows 95 \u2013 zdesperowani u\u017cytkownicy SimCity stwierdz\u0105 \u017ce \u201ew Dosie dzia\u0142a, Windows jest do bani\u201d. St\u0105d wprowadzono \u201eza\u015blepk\u0119\u201d. Podej\u015bcie Chena, obecnie zarzucone, nie jest jednak pozbawione logiki: sam wielokrotnie czyta\u0142em r\u00f3\u017cne fora dyskusyjne, gdzie gracze narzekali na Windows Vista, i\u017c w tym systemie nie dzia\u0142aj\u0105 ich ulubione gry, przestrzegaj\u0105c innych graczy przed upgradem&#8230;<\/p>\n<p>Tego typu praktyki zwi\u0105zane s\u0105 z testowaniem, kt\u00f3rego wag\u0119 stara si\u0119 podkre\u015bli\u0107 <strong>Bruce Eckel<\/strong>, proponuj\u0105cy rezygnacj\u0119 z ca\u0142ej tej okaza\u0142ej mena\u017cerii wyj\u0105tk\u00f3w w Javie, i zamiast nich rzucanie jedynie RuntimeException. Uzyskany w ten spos\u00f3b czas, nale\u017ca\u0142oby przeznaczy\u0107 na bardziej skrupulatne testowanie. Czasami my\u015bl\u0119 sobie, \u017ce Bruce Eckel prze\u017cy\u0142 ten komentarz tylko dlatego, \u017ce bez nowych wyda\u0144 \u201eThinking In Java\u201d \u015brodowisko programist\u00f3w Javy umar\u0142oby niczym ryba bez wody&#8230;<\/p>\n<p>Ciekawie kszta\u0142tuj\u0105 si\u0119 tematy dotycz\u0105ce spraw \u201eludzkich\u201d w informatyce. Autor (lub autorka) ukrywaj\u0105cy si\u0119 pod pseudonimem <strong>ea_spouse<\/strong> przedstawia nam prawdziwe realia pracy w Electronic Arts nad kolejnymi edycjami gry FIFA, nad kt\u00f3rymi pracuje jej \/ jego m\u0105\u017c. Pracowa\u0142em w kilku firmach, ale takiej plantacji bawe\u0142ny, jak w tym rozdziale w \u017cyciu nie widzia\u0142em. C\u00f3\u017c, rotacja 50% powoduje, \u017ce w firmie zostaj\u0105 sami nieudacznicy lub z\u0142apani na korpolep absolwenci. Czynnik ludzki zdaje si\u0119 wszak decydowa\u0107: o wp\u0142ywie dobrych ludzi na projekt pisze tak\u017ce <strong>Paul Graham<\/strong>, rozwa\u017caj\u0105cy poj\u0119cie \u201eWielkiego Hakera\u201d. Haker jest tu rozumiany w pierwotnym znaczeniu, jako superspecjalista. Rekrutacj\u0119 specjalist\u00f3w omawia <strong>Erik Sink<\/strong>, pisz\u0105c o niebezpiecze\u0144stwach i loterii zwi\u0105zanej z zatrudnianienim (nie tylko specjalist\u00f3w, ale i handlowc\u00f3w, kt\u00f3rych to Sink omawia przy okazji dwucz\u0119\u015bciowej rozprawy o tym, jak ma\u0142e firmy IT winny przybli\u017ca\u0107 klienta do siebie i w ten spos\u00f3b zwi\u0119ksza\u0107 sprzeda\u017c).<\/p>\n<p>W tekstach przewijaj\u0105 si\u0119 tak\u017ce sprawy zwi\u0105zane z organizacj\u0105 <strong>\u2013 Mary Poppendick<\/strong> opisuje jak systemy motywacyjne w firmach mog\u0105 zabija\u0107 motywacj\u0119 (vide obiecywanie wielkich premii za dotrzymanie terminu, o kt\u00f3rym wszyscy wiedz\u0105, \u017ce jest absolutnie niemo\u017cliwy do dotrzymania), natomiast <strong>Larry Osterman<\/strong> pokazuje jak NIE wynagradza\u0107 tester\u00f3w (i dlaczego). Ciekawy jest te\u017c kr\u00f3tki poradnik dla \u015bwie\u017co mianowanego kierownika technicznego projektu, kt\u00f3rego autorem jest Michael \u201eRands\u201d Loop. W przyjemny spos\u00f3b polepsza on humor, opisuj\u0105c jak obsuwaj\u0105cy si\u0119 termin nie jest tak wielkim problemem, jakby si\u0119 nam mog\u0142o zdawa\u0107.<\/p>\n<p>Autorzy poszczeg\u00f3lnych rozdzia\u0142\u00f3w opisuj\u0105 nam te\u017c \u015bwiat, kt\u00f3rego istnienia cz\u0119sto nie zauwa\u017camy. <strong>Eric Lippert<\/strong> opisuje na przyk\u0142ad, ilu pracownik\u00f3w Microsoftu potrzeba do napisania jednej prostej funkcji. Trzeba przyzna\u0107, \u017ce rezultat jest zaskakuj\u0105cy \u2013 o ile samo napisanie kodu zajmuje pi\u0119\u0107 minut, o tyle analiza pod k\u0105tem bezpiecze\u0144stwa, stabilno\u015bci, dost\u0119pno\u015bci trwa kilka dni. Dodanie do systemu dokumentacji i przet\u0142umaczenie jej na wszystkie niezb\u0119dne j\u0119zyki (dla nas z regu\u0142y ca\u0142a dokumentacja jest dokumentacj\u0105 angielsk\u0105, nie zapominajmy jednak, \u017ce angielski jest jednym z g\u0142\u00f3wnych j\u0119zyk\u00f3w w Microsoft \u2013 hiszpa\u0144ski czy japo\u0144ski s\u0105 dla nich r\u00f3wnie wa\u017cne). Wydaje si\u0119, \u017ce to co pisze Lippert stanowi jasn\u0105 granic\u0119 mi\u0119dzy programowaniem studenckim, a wielkoskalowym programowaniem przemys\u0142owym \u2013 mo\u017ce granica ta nie jest wprost zaznaczona, jednak jej istnienie zaczynamy po lekturze zauwa\u017ca\u0107.<\/p>\n<p>Ciekaw\u0105 rozrywk\u0119 stanowi\u0105 z kolei kr\u00f3tkie humoreski i pastisze: <strong>Ken Bambrick<\/strong> na\u015bmiewa si\u0119 z \u201epsa do wyszukiwania\u201d w Windows XP, <strong>Rory Blyth<\/strong> pokazuje jak marketingowcy u\u017cywaj\u0105 Excela, <strong>Kelvin Cheng<\/strong> i <strong>Tom Chi<\/strong> \u201ekopi\u0105 lam\u0119\u201d a <strong>Aaron Swartz<\/strong> \u201emiksuje\u201d eseje w Power Poincie.<\/p>\n<p>Niestety, pomimo tylu pie\u015bni pochwalnych, w zbiorze s\u0105 tak\u017ce teksty niestrawne, dotykaj\u0105ce mo\u017ce ciekawej tematyki, ale zupe\u0142nie, zupe\u0142nie niestrawne. Fanem jednego z tych autor\u00f3w jest Joel Spolsky, pisz\u0105cy o \u201epi\u0119knych zdaniach\u201d. Nie wiem, by\u0107 mo\u017ce pi\u0119kne owe zdania by\u0142y po angielsku, ale jak dla mnie s\u0105 one grafomani\u0105 i be\u0142kotem. Pozwol\u0119 sobie nie podawa\u0107 nazwisk autor\u00f3w owych tekst\u00f3w \u2013 kto przeczyta ksi\u0105\u017ck\u0119, sam b\u0119dzie si\u0119 mia\u0142 okazj\u0119 przekona\u0107.<\/p>\n<p>Ca\u0142o\u015b\u0107 tomu domkni\u0119ta jest przez istn\u0105 pere\u0142k\u0119 w \u015bwiecie dydaktyki \u2013 jest to \u201eKr\u00f3tka, ilustrowana i (mam nadziej\u0119) bezstresowa wycieczka po j\u0119zyku Ruby napisana przez autora ukrywaj\u0105cego si\u0119 pod pseudonimem <strong>why the lucky stiff<\/strong>. Kr\u00f3tki i sprawiaj\u0105cy niesamowit\u0105 rado\u015b\u0107 w czytaniu tekst, okraszony wieloma komiksowymi rysunkami i dygresjami opisuje ca\u0142y j\u0119zyk Ruby. Joel podaje go jako przyk\u0142ad jak mo\u017cna ciekawie napisa\u0107 o j\u0119zyku. I trudno si\u0119 z Joelem w tym miejscu nie zgodzi\u0107&#8230;<\/p>\n<p><strong>Joel Spolsky (wyb\u00f3r i redakcja)<\/strong>: <em>Sztuka pisania oprogramowania. Wyb\u00f3r i redakcja Joel Spolsky<\/em>, Helion, Gliwice 2007<\/p>\n<p>PS: Wcale nie jestem w Helionie na prowizji \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fanem Joela Spolsky\u2019ego jestem od paru lat. Ten niesamowicie trze\u017awo my\u015bl\u0105cy w\u0142a\u015bciciel niewielkiej nowojorskiej firmy softwareowej przeszed\u0142 ca\u0142\u0105 \u015bcie\u017ck\u0119, od szeregowego programisty, poprzez managera produktu a na w\u0142a\u015bcicielu firmy sko\u0144czywszy. Jego witryna, prezentuj\u0105ca rozs\u0105dne podej\u015bcie do informatyki, stopniowo zaczyna przedostawa\u0107 si\u0119 do \u201eg\u0142\u00f3wnego nurtu\u201d biznesu informatycznego \u2013 ostatnio na porady rekrutacyjne Joela powo\u0142ywa\u0142 si\u0119 Computerworld. &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/bielamowicz.info\/index.php\/2009\/joel-i-27-krasnoludkow\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Joel i 27 krasnoludk\u00f3w&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-24","post","type-post","status-publish","format-standard","hentry","category-informatyka"],"_links":{"self":[{"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/posts\/24","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/comments?post=24"}],"version-history":[{"count":2,"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/posts\/24\/revisions"}],"predecessor-version":[{"id":202,"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/posts\/24\/revisions\/202"}],"wp:attachment":[{"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/media?parent=24"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/categories?post=24"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bielamowicz.info\/index.php\/wp-json\/wp\/v2\/tags?post=24"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}