1 00:00:06,220 --> 00:00:08,490 (Brawa) 2 00:00:09,940 --> 00:00:10,800 Witam! 3 00:00:10,800 --> 00:00:14,140 Nazywam się Marcin Kawalerowicz i przyszedłem tutaj, żeby opowiedzieć 4 00:00:14,140 --> 00:00:16,250 o najnudniejszym zawodzie świata. 5 00:00:16,250 --> 00:00:17,750 Przynajmniej według Hollywood. 6 00:00:18,190 --> 00:00:23,500 Czy zastanawialiście się kiedyś, jaki to jest ten najnudniejszy zawód? 7 00:00:24,060 --> 00:00:25,500 Może księgowy? 8 00:00:27,000 --> 00:00:29,000 A może sprzątaczka? 9 00:00:30,000 --> 00:00:32,000 A może jednak urzędnik w banku? 10 00:00:33,000 --> 00:00:36,500 A może kurier przynoszący przesyłki? 11 00:00:37,400 --> 00:00:38,446 Jak myślicie? 12 00:00:38,446 --> 00:00:39,643 No, nie! 13 00:00:39,643 --> 00:00:40,690 Przynajmniej nie według Hollywood. 14 00:00:40,690 --> 00:00:43,880 Według Hollywood księgowy to bardzo ciekawy zawód. 15 00:00:43,880 --> 00:00:48,960 Na tyle, że głównym bohaterem filmu "Skazani na Shawshank", 16 00:00:48,960 --> 00:00:52,500 jednego z najlepszych filmów Hollywood, jest księgowy. 17 00:00:52,500 --> 00:00:58,310 Internetowa baza danych filmów znajduje 197 postaci księgowych 18 00:00:58,310 --> 00:01:00,180 w różnych filmach. 19 00:01:00,500 --> 00:01:02,500 Dobrze, a sprzątaczka? 20 00:01:03,000 --> 00:01:05,550 Sprzątaczka jest na tyle ciekawym zawodem, 21 00:01:05,550 --> 00:01:09,640 żeby poświęcić mu 77 filmów. 22 00:01:10,000 --> 00:01:13,970 Trochę sprzątaczką, trochę nianią był nieodżałowany Robin Williams 23 00:01:13,970 --> 00:01:15,550 w filmie "Pani Doubtfire". 24 00:01:16,000 --> 00:01:18,000 A co z urzędnikiem bankowym? 25 00:01:18,730 --> 00:01:24,000 A może rekiny finansjery, bankierzy inwestycyjni w filmie "Wall Street", 26 00:01:24,000 --> 00:01:26,760 grani przez Michaela Douglasa i Charliego Sheena? 27 00:01:27,280 --> 00:01:29,000 A kurier? 28 00:01:29,750 --> 00:01:33,840 Kurierem był główny bohater filmu "Cast Away - poza światem", 29 00:01:33,840 --> 00:01:35,300 grany przez Toma Hanksa. 30 00:01:40,000 --> 00:01:42,530 A policjanci i złodzieje? 31 00:01:44,450 --> 00:01:46,000 Kowboje i artyści? 32 00:01:46,000 --> 00:01:49,530 Tak à propos, 200 to maksymalna liczba trafień zwracana 33 00:01:49,530 --> 00:01:51,650 przez internetową bazę danych filmów. 34 00:01:52,000 --> 00:01:54,680 Podobnie jest ze sportowcami, pilotami i lekarzami. 35 00:01:55,000 --> 00:01:59,000 Może Doktor No nie był lekarzem, ale jakimś tam doktorem był. 36 00:02:00,580 --> 00:02:03,610 Popatrzmy na prawników. 37 00:02:03,610 --> 00:02:05,070 199. 38 00:02:05,070 --> 00:02:07,020 Dziennikarzy - 198. 39 00:02:07,020 --> 00:02:08,270 Strażaków - 200. 40 00:02:08,270 --> 00:02:09,500 Detektywów - 200. 41 00:02:09,510 --> 00:02:11,980 Magików - 74. 42 00:02:11,980 --> 00:02:13,840 Cyrkowców - 111. 43 00:02:13,840 --> 00:02:17,540 "La Strada" może nie jest hollywoodzka, 44 00:02:17,540 --> 00:02:19,900 ale na pewno o cyrkowcach. 45 00:02:20,520 --> 00:02:24,470 To jak myślicie, jaki jest najnudniejszy zawód świata według Hollywood? 46 00:02:24,820 --> 00:02:28,210 Najnudniejszym zawodem świata według Hollywood 47 00:02:28,570 --> 00:02:30,360 jest programista komputerowy. 48 00:02:30,360 --> 00:02:34,320 Internetowa baza danych filmów zwraca trzy trafienia. 49 00:02:34,320 --> 00:02:36,140 Trzy trafienia tego typu. 50 00:02:37,320 --> 00:02:43,490 Dobrze, powiecie, może w różnych filmach znajdziemy postaci hakerów 51 00:02:43,490 --> 00:02:47,260 włamujących się do systemów Jurassic Park jak na załączonym obrazku. 52 00:02:48,000 --> 00:02:53,280 Ale są to najczęściej postaci stanowiące tło dla o wiele ważniejszych postaci, 53 00:02:53,280 --> 00:02:56,330 typu wojownik ninja, kucharz albo inny zbawca ludzkości. 54 00:02:57,000 --> 00:03:00,030 Programista z pewnością jest jednym 55 00:03:00,030 --> 00:03:03,000 z najnudniejszych zawodów świata według Hollywood. 56 00:03:03,140 --> 00:03:07,840 Ja jestem programistą i od dziesięciu lat tworzę oprogramowanie. 57 00:03:08,050 --> 00:03:13,500 Przyszedłem tutaj, żeby udowodnić, że Hollywood się myli. 58 00:03:15,500 --> 00:03:21,330 Mimo że faktycznie większość dnia spędzam 59 00:03:21,330 --> 00:03:25,040 w znanej wam pewnie pozycji odwróconej ewolucji. 60 00:03:25,040 --> 00:03:28,880 Zgarbiony nad klawiaturą i wpatrzony w ekran. 61 00:03:29,880 --> 00:03:33,800 W takiej pozycji złapała mnie kiedyś 62 00:03:33,800 --> 00:03:36,810 moja w tej chwili 5-letnia córka, Zosia. 63 00:03:37,130 --> 00:03:38,510 Przyszła i zapytała: 64 00:03:39,310 --> 00:03:43,500 "Tato, mama uczy dzieci liczyć, a ty co robisz?". 65 00:03:44,600 --> 00:03:49,240 Oderwałem ręce od klawiatury, zrzuciłem środowisko programowania 66 00:03:49,240 --> 00:03:50,840 i pocztę elektroniczną do paska. 67 00:03:51,050 --> 00:03:53,060 Odwróciłem się do Zosi i powiedziałem: 68 00:03:53,070 --> 00:03:56,800 "Wiesz Zosiu... Yyy..." 69 00:03:57,000 --> 00:04:01,200 No tak, kolejna "mission impossible" od mojej żony, nauczycielki matematyki. 70 00:04:01,200 --> 00:04:04,900 Ona po prostu uczy dzieci liczyć w szkole, 71 00:04:04,900 --> 00:04:10,000 a jak ja mam opowiedzieć 5-letniej dziewczynce, co robię ja, programista? 72 00:04:10,680 --> 00:04:13,000 Zebrałem się w sobie i powiedziałem: 73 00:04:13,460 --> 00:04:17,930 "Wiesz Zosiu, rozmawiam z różnymi ludźmi 74 00:04:17,930 --> 00:04:22,000 i uczę komputery robić to, co oni chcą." 75 00:04:22,000 --> 00:04:25,000 "Rozmawiasz i uczysz komputery?" - zdziwiła się Zosia. 76 00:04:28,010 --> 00:04:30,260 "Tak Zosiu, rozmawiam. 77 00:04:30,260 --> 00:04:33,520 Ci ludzie mówią mi, czego chcieliby od komputerów, a ja uczę komputer 78 00:04:33,520 --> 00:04:36,080 robić to, czego oni ode mnie chcieli." 79 00:04:36,090 --> 00:04:39,500 "Aha!" - myślę, że udało mi się wtedy. 80 00:04:39,500 --> 00:04:44,860 Przez chwilę napawałem się tą parafrazą mojego zawodu, ale zaraz dotarło do mnie 81 00:04:44,860 --> 00:04:50,350 coś bardzo ważnego: "Rozmawiam i uczę komputery.". 82 00:04:51,310 --> 00:04:57,460 Tak właściwie, po 10 latach w branży, to czy ja w ogóle coś jeszcze programuję? 83 00:04:57,460 --> 00:05:03,170 Czy cały czas wiszę na telefonie, uczestniczę w różnych warsztatach, 84 00:05:03,170 --> 00:05:07,570 omawiając szczegóły implementacyjne z klientami, 85 00:05:08,000 --> 00:05:12,000 rozmawiam z moimi programistami, żeby przekazać im zapotrzebowania, 86 00:05:12,600 --> 00:05:17,440 bądź przelewam wszystko na "papier" w jakimś edytorze tekstów. 87 00:05:17,780 --> 00:05:21,000 Czy ja jeszcze coś programuję, będąc programistą? 88 00:05:22,580 --> 00:05:29,320 Otóż, pierwsze symptomy problemów w tym obszarze pojawiły się dość dawno. 89 00:05:29,320 --> 00:05:33,380 W 2008 roku, będąc jeszcze na etacie programisty, 90 00:05:33,380 --> 00:05:36,740 zainstalowałem sobie program szpiegujący na komputerze. 91 00:05:36,740 --> 00:05:41,130 Program ten zapisuje statystyki na temat oprogramowania, w którym najczęściej 92 00:05:41,130 --> 00:05:42,940 przebywam podczas dnia pracy. 93 00:05:42,940 --> 00:05:46,580 Tutaj widzicie tygodniową statystykę z 2008 roku. 94 00:05:46,580 --> 00:05:50,090 Już wtedy większość czasu, bo 9 godzin, 95 00:05:50,090 --> 00:05:51,770 spędzałem w poczcie elektronicznej. 96 00:05:51,770 --> 00:05:54,790 Dopiero na drugim miejscu, bo prawie 7 godzin, był czas 97 00:05:54,790 --> 00:05:57,500 w zintegrowanym środowisku programowania. 98 00:05:57,500 --> 00:06:01,980 Później jeszcze tworzyłem prezentacje bądź prezentowałem. 99 00:06:01,980 --> 00:06:04,110 Resztę czasu spędzałem w innym oprogramowaniu 100 00:06:04,110 --> 00:06:06,530 lub zupełnie poza komputerem. 101 00:06:09,000 --> 00:06:11,520 Ostatni tydzień wyglądał nie lepiej. 102 00:06:11,520 --> 00:06:19,000 25% czasu spędziłem komunikując się pocztą elektroniczną, komunikacją głosową. 103 00:06:19,500 --> 00:06:22,490 Około 30% czasu spędziłem w różnego rodzaju narzędziach, 104 00:06:22,490 --> 00:06:28,100 a tylko 10% w środowisku programowania. 105 00:06:28,100 --> 00:06:31,780 Podejrzewam, że i tak przeglądałem wtedy kod wpisany przez moich programistów, 106 00:06:31,780 --> 00:06:33,680 a nie sam go tworzyłem. 107 00:06:44,700 --> 00:06:48,560 W dziedzinie inżynierii oprogramowania istnieje kilka kanonicznych dzieł. 108 00:06:50,000 --> 00:06:55,480 Jednym z nich jest "Mityczny osobomiesiąc" autorstwa Fredericka Brooksa. 109 00:06:55,480 --> 00:06:59,440 Przytacza on kilka badań, z których jasno wynika, 110 00:06:59,440 --> 00:07:05,100 że przeciętny programista pisze 10 linii kodu dziennie. 111 00:07:05,100 --> 00:07:06,150 10 linii kodu! 112 00:07:06,150 --> 00:07:09,790 Dla początkującego adepta sztuki może być to szokująca liczba. 113 00:07:10,410 --> 00:07:15,110 Być może różni się ona trochę w przypadku nowego projektu, 114 00:07:15,110 --> 00:07:17,550 który rozpoczynamy, typu "green field", 115 00:07:17,550 --> 00:07:20,900 czyli mamy taką zieloną łączkę, którą możemy zaorać naszym kodem. 116 00:07:20,900 --> 00:07:23,500 Piszemy wtedy, być może, więcej linii. 117 00:07:24,000 --> 00:07:27,680 Jeżeli mamy projekt typu "brown field", 118 00:07:27,680 --> 00:07:30,970 czyli mamy brązowe pole zaorane kodem, 119 00:07:30,970 --> 00:07:33,710 a więc prowadzimy projekt, który żyje od dłuższego czasu, 120 00:07:33,710 --> 00:07:36,680 to tych linii może być zdecydowanie mniej. 121 00:07:38,000 --> 00:07:43,500 Ale co się dzieje w czasie, kiedy przeciętny inżynier oprogramowania 122 00:07:43,500 --> 00:07:46,270 nie tworzy kodu źródłowego? 123 00:07:46,620 --> 00:07:53,020 Powoli staje się wdrożeniowcem, specjalistą od instalacji 124 00:07:53,020 --> 00:07:57,100 swojego oprogramowania, od rozmów z klientem o nowych funkcjonalnościach, 125 00:07:57,100 --> 00:08:01,450 od wprowadzania poprawek w oprogramowaniu, 126 00:08:01,450 --> 00:08:04,800 od wypuszczania nowych wersji i tak dalej. 127 00:08:05,000 --> 00:08:07,050 Staje się wdrożeniowcem. 128 00:08:07,050 --> 00:08:10,390 Pamiętam jak dziś moje pierwsze wdrożenie. 129 00:08:15,000 --> 00:08:18,610 Była to aplikacja webowa. 130 00:08:18,610 --> 00:08:21,760 Instalację trzeba było przeprowadzić na serwerze u klienta. 131 00:08:23,000 --> 00:08:27,070 Późna jesień, gdzieś w górach Szwajcarii. 132 00:08:27,070 --> 00:08:32,920 A warunki bardzo partyzanckie jak na szwajcarski bank, 133 00:08:32,920 --> 00:08:39,270 bo ja z pendrivem przenoszę skompilowane na moim laptopie 134 00:08:39,270 --> 00:08:42,680 oprogramowanie do serwerowni klienta i fizycznie wgrywam je na jeden 135 00:08:42,680 --> 00:08:44,710 ze stojących tam serwerów. 136 00:08:45,100 --> 00:08:46,560 Uruchamiam. 137 00:08:46,760 --> 00:08:47,770 Nie działa! 138 00:08:48,740 --> 00:08:49,630 Co się dzieje? 139 00:08:49,630 --> 00:08:56,070 Zdenerwowany wracam do laptopa i szukam błędu, poprawiam, wgrywam na pendrive. 140 00:08:56,080 --> 00:09:01,510 Biegnę z powrotem do serwerowni, gdzie panuje dosyć arktyczna atmosfera, 141 00:09:01,510 --> 00:09:05,910 bo nie wiem czy wiecie, ale serwery muszą mieć bardzo niską temperaturę. 142 00:09:07,610 --> 00:09:11,040 Wgrywam to oprogramowanie i jest lepiej, ale nie idealnie, 143 00:09:11,040 --> 00:09:14,120 więc wracam do laptopa. 144 00:09:14,120 --> 00:09:19,870 Wewnątrz jest cieplutko, żeby zagłuszyć jesienną słotę na zewnątrz. 145 00:09:19,880 --> 00:09:25,410 Kolejne kilka godzin spędzam, kursując tam i z powrotem. 146 00:09:25,410 --> 00:09:29,030 I w końcu udaje mi się, stwierdzam zachrypnięty. 147 00:09:30,000 --> 00:09:33,380 A następny dzień mam wysoką gorączkę, a kolejny tydzień spędzam 148 00:09:33,380 --> 00:09:34,890 przeziębiony w łóżku. 149 00:09:36,640 --> 00:09:38,940 To był punkt zwrotny w mojej karierze. 150 00:09:38,940 --> 00:09:42,650 Zrozumiałem wtedy, że żeby być najlepszym 151 00:09:42,650 --> 00:09:46,700 w tej branży, nie można być tylko i wyłącznie kowbojem klawiatury. 152 00:09:47,500 --> 00:09:49,930 Potrzebne jest coś więcej. 153 00:09:49,930 --> 00:09:53,910 Coś, co pozwoli uniknąć konieczności 154 00:09:53,910 --> 00:09:58,280 naklejania na nasze oprogramowania naklejki "works on my machine", 155 00:09:58,280 --> 00:10:00,000 czyli "u mnie działa". 156 00:10:00,000 --> 00:10:03,930 To jest dość częsty problem w naszej branży, gdzie oprogramowanie ze względu 157 00:10:03,930 --> 00:10:09,600 na różne zależności sprzętowe lub programowe 158 00:10:09,600 --> 00:10:15,910 działa na komputerze programisty, ale błędnie lub wcale u klienta. 159 00:10:15,910 --> 00:10:19,780 Jak nie trudno sobie wyobrazić, jest to zdecydowanie niepożądane. 160 00:10:19,780 --> 00:10:22,010 Tak być nie może! 161 00:10:22,500 --> 00:10:28,560 Wziąłem się więc ostro do pracy, zautomatyzowałem całe środowisko 162 00:10:28,560 --> 00:10:31,040 budowy naszego oprogramowania, wprowadziłem zasady 163 00:10:31,040 --> 00:10:36,600 automatycznego testowania, statycznej analizy kodu i tak dalej. 164 00:10:39,750 --> 00:10:41,220 Nawet napisałem o tym książkę. 165 00:10:41,220 --> 00:10:44,220 Mniej więcej wtedy dowiedziałem się, 166 00:10:44,220 --> 00:10:47,770 że właściwie to ja już nie jestem programistą, ale DevOps-em. 167 00:10:49,000 --> 00:10:53,530 Mniej więcej wtedy ukuto ten nowy termin. 168 00:10:54,010 --> 00:10:57,420 To skrót od Dev, czyli Development, czyli programowanie, 169 00:10:57,420 --> 00:11:01,960 i Ops, czyli Operations, a więc wszystko związane z IT. 170 00:11:02,850 --> 00:11:04,520 Serwery, ale nie tylko. 171 00:11:04,520 --> 00:11:06,000 Kontakty z klientem. 172 00:11:06,000 --> 00:11:11,200 Niektórzy dołączają aspekty kontroli jakości, 173 00:11:11,200 --> 00:11:16,260 czyli bardzo szeroko pojęte testy. 174 00:11:17,140 --> 00:11:20,040 "No, dobrze." - pomyślałem - "Nie jestem sam.". 175 00:11:21,400 --> 00:11:26,050 Inni też dostrzegli tego typu problemy. 176 00:11:26,385 --> 00:11:29,815 Zacząłem pracować nad umiejętnościami miękkimi. 177 00:11:30,710 --> 00:11:34,270 W naszej branży, tak jak w innych, dzielimy umiejętności na twarde, 178 00:11:34,270 --> 00:11:38,290 czyli związane z programowaniem, językami programowania, strukturami 179 00:11:38,290 --> 00:11:41,250 danych, semaforami, kolejkami i tak dalej, 180 00:11:41,250 --> 00:11:47,790 i miękkie, czyli związane z dyskusją, mediacją, rozmowami z klientem, 181 00:11:47,790 --> 00:11:51,760 ustalaniem zapotrzebowania, 182 00:11:51,760 --> 00:11:54,580 dbaniem, żeby zapotrzebowanie nie zmieniało się zbyt często, 183 00:11:54,580 --> 00:11:58,570 co może prowadzić do konfliktów w projekcie, 184 00:11:58,570 --> 00:12:02,660 a projekt musi trwać i dążyć do sukcesu. 185 00:12:05,500 --> 00:12:10,400 Coraz więcej obcowałem z ludźmi, 186 00:12:10,400 --> 00:12:15,500 których czasami ciężko zrozumieć. 187 00:12:15,500 --> 00:12:21,510 Ja komputery rozumiem od podszewki, od poziomu tranzystora 188 00:12:21,510 --> 00:12:23,360 budującego bramkę logiczną. 189 00:12:23,360 --> 00:12:29,860 I to daje mi pewność, a praca z ludźmi jest przygodą samą w sobie. 190 00:12:29,860 --> 00:12:36,500 Jak widzicie, dla mnie bycie programistą wcale nie jest nudnym zawodem. 191 00:12:37,000 --> 00:12:43,500 Jest raczej pasmem wyzwań i przygód jak z najlepszego hollywoodzkiego filmu! 192 00:12:44,000 --> 00:12:49,080 Teraz, po dziesięciu latach w zawodzie, prowadząc firmę programistyczną 193 00:12:49,080 --> 00:12:54,300 tutaj w Opolu, myślę, że wiem, co tworzy świetnego programistę. 194 00:12:55,000 --> 00:13:00,770 Wbrew pozorom nie jest to tylko umysł jak żyleta, miłość do komputerów 195 00:13:00,770 --> 00:13:03,500 i zamiłowanie do algorytmiki. 196 00:13:03,500 --> 00:13:09,000 To też jest potrzebne, ale żeby wznieść się na wyżyny tego zawodu 197 00:13:09,000 --> 00:13:14,500 trzeba uświadomić sobie też, że w świecie komputerów, jak i codziennym życiu, 198 00:13:14,500 --> 00:13:16,340 to człowiek jest najważniejszy! 199 00:13:16,340 --> 00:13:17,690 Dziękuję bardzo! 200 00:13:17,690 --> 00:13:20,040 (Brawa)