WEBVTT 00:00:06.220 --> 00:00:08.490 (Brawa) 00:00:09.940 --> 00:00:10.800 Witam! 00:00:10.800 --> 00:00:14.140 Nazywam się Marcin Kawalerowicz i przyszedłem tutaj, żeby opowiedzieć 00:00:14.140 --> 00:00:16.250 o najnudniejszym zawodzie świata. 00:00:16.250 --> 00:00:17.750 Przynajmniej według Hollywood. 00:00:18.190 --> 00:00:23.500 Czy zastanawialiście się kiedyś, jaki to jest ten najnudniejszy zawód? 00:00:24.060 --> 00:00:25.500 Może księgowy? 00:00:27.000 --> 00:00:29.000 A może sprzątaczka? 00:00:30.000 --> 00:00:32.000 A może jednak urzędnik w banku? 00:00:33.000 --> 00:00:36.500 A może kurier przynoszący przesyłki? 00:00:37.400 --> 00:00:38.446 Jak myślicie? 00:00:38.446 --> 00:00:39.643 No, nie! 00:00:39.643 --> 00:00:40.690 Przynajmniej nie według Hollywood. 00:00:40.690 --> 00:00:43.880 Według Hollywood księgowy to bardzo ciekawy zawód. 00:00:43.880 --> 00:00:48.960 Na tyle, że głównym bohaterem filmu "Skazani na Shawshank", 00:00:48.960 --> 00:00:52.500 jednego z najlepszych filmów Hollywood, jest księgowy. 00:00:52.500 --> 00:00:58.310 Internetowa baza danych filmów znajduje 197 postaci księgowych 00:00:58.310 --> 00:01:00.180 w różnych filmach. 00:01:00.500 --> 00:01:02.500 Dobrze, a sprzątaczka? 00:01:03.000 --> 00:01:05.550 Sprzątaczka jest na tyle ciekawym zawodem, 00:01:05.550 --> 00:01:09.640 żeby poświęcić mu 77 filmów. 00:01:10.000 --> 00:01:13.970 Trochę sprzątaczką, trochę nianią był nieodżałowany Robin Williams 00:01:13.970 --> 00:01:15.550 w filmie "Pani Doubtfire". 00:01:16.000 --> 00:01:18.000 A co z urzędnikiem bankowym? 00:01:18.730 --> 00:01:24.000 A może rekiny finansjery, bankierzy inwestycyjni w filmie "Wall Street", 00:01:24.000 --> 00:01:26.760 grani przez Michaela Douglasa i Charliego Sheena? 00:01:27.280 --> 00:01:29.000 A kurier? 00:01:29.750 --> 00:01:33.840 Kurierem był główny bohater filmu "Cast Away - poza światem", 00:01:33.840 --> 00:01:35.300 grany przez Toma Hanksa. 00:01:40.000 --> 00:01:42.530 A policjanci i złodzieje? 00:01:44.450 --> 00:01:46.000 Kowboje i artyści? 00:01:46.000 --> 00:01:49.530 Tak à propos, 200 to maksymalna liczba trafień zwracana 00:01:49.530 --> 00:01:51.650 przez internetową bazę danych filmów. 00:01:52.000 --> 00:01:54.680 Podobnie jest ze sportowcami, pilotami i lekarzami. 00:01:55.000 --> 00:01:59.000 Może Doktor No nie był lekarzem, ale jakimś tam doktorem był. 00:02:00.580 --> 00:02:03.610 Popatrzmy na prawników. 00:02:03.610 --> 00:02:05.070 199. 00:02:05.070 --> 00:02:07.020 Dziennikarzy - 198. 00:02:07.020 --> 00:02:08.270 Strażaków - 200. 00:02:08.270 --> 00:02:09.500 Detektywów - 200. 00:02:09.510 --> 00:02:11.980 Magików - 74. 00:02:11.980 --> 00:02:13.840 Cyrkowców - 111. 00:02:13.840 --> 00:02:17.540 "La Strada" może nie jest hollywoodzka, 00:02:17.540 --> 00:02:19.900 ale na pewno o cyrkowcach. 00:02:20.520 --> 00:02:24.470 To jak myślicie, jaki jest najnudniejszy zawód świata według Hollywood? 00:02:24.820 --> 00:02:28.210 Najnudniejszym zawodem świata według Hollywood 00:02:28.570 --> 00:02:30.360 jest programista komputerowy. 00:02:30.360 --> 00:02:34.320 Internetowa baza danych filmów zwraca trzy trafienia. 00:02:34.320 --> 00:02:36.140 Trzy trafienia tego typu. 00:02:37.320 --> 00:02:43.490 Dobrze, powiecie, może w różnych filmach znajdziemy postaci hakerów 00:02:43.490 --> 00:02:47.260 włamujących się do systemów Jurassic Park jak na załączonym obrazku. 00:02:48.000 --> 00:02:53.280 Ale są to najczęściej postaci stanowiące tło dla o wiele ważniejszych postaci, 00:02:53.280 --> 00:02:56.330 typu wojownik ninja, kucharz albo inny zbawca ludzkości. 00:02:57.000 --> 00:03:00.030 Programista z pewnością jest jednym 00:03:00.030 --> 00:03:03.000 z najnudniejszych zawodów świata według Hollywood. 00:03:03.140 --> 00:03:07.840 Ja jestem programistą i od dziesięciu lat tworzę oprogramowanie. 00:03:08.050 --> 00:03:13.500 Przyszedłem tutaj, żeby udowodnić, że Hollywood się myli. 00:03:15.500 --> 00:03:21.330 Mimo że faktycznie większość dnia spędzam 00:03:21.330 --> 00:03:25.040 w znanej wam pewnie pozycji odwróconej ewolucji. 00:03:25.040 --> 00:03:28.880 Zgarbiony nad klawiaturą i wpatrzony w ekran. 00:03:29.880 --> 00:03:33.800 W takiej pozycji złapała mnie kiedyś 00:03:33.800 --> 00:03:36.810 moja w tej chwili 5-letnia córka, Zosia. 00:03:37.130 --> 00:03:38.510 Przyszła i zapytała: 00:03:39.310 --> 00:03:43.500 "Tato, mama uczy dzieci liczyć, a ty co robisz?". 00:03:44.600 --> 00:03:49.240 Oderwałem ręce od klawiatury, zrzuciłem środowisko programowania 00:03:49.240 --> 00:03:50.840 i pocztę elektroniczną do paska. 00:03:51.050 --> 00:03:53.060 Odwróciłem się do Zosi i powiedziałem: 00:03:53.070 --> 00:03:56.800 "Wiesz Zosiu... Yyy..." 00:03:57.000 --> 00:04:01.200 No tak, kolejna "mission impossible" od mojej żony, nauczycielki matematyki. 00:04:01.200 --> 00:04:04.900 Ona po prostu uczy dzieci liczyć w szkole, 00:04:04.900 --> 00:04:10.000 a jak ja mam opowiedzieć 5-letniej dziewczynce, co robię ja, programista? 00:04:10.680 --> 00:04:13.000 Zebrałem się w sobie i powiedziałem: 00:04:13.460 --> 00:04:17.930 "Wiesz Zosiu, rozmawiam z różnymi ludźmi 00:04:17.930 --> 00:04:22.000 i uczę komputery robić to, co oni chcą." 00:04:22.000 --> 00:04:25.000 "Rozmawiasz i uczysz komputery?" - zdziwiła się Zosia. 00:04:28.010 --> 00:04:30.260 "Tak Zosiu, rozmawiam. 00:04:30.260 --> 00:04:33.520 Ci ludzie mówią mi, czego chcieliby od komputerów, a ja uczę komputer 00:04:33.520 --> 00:04:36.080 robić to, czego oni ode mnie chcieli." 00:04:36.090 --> 00:04:39.500 "Aha!" - myślę, że udało mi się wtedy. 00:04:39.500 --> 00:04:44.860 Przez chwilę napawałem się tą parafrazą mojego zawodu, ale zaraz dotarło do mnie 00:04:44.860 --> 00:04:50.350 coś bardzo ważnego: "Rozmawiam i uczę komputery.". 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ę? 00:04:57.460 --> 00:05:03.170 Czy cały czas wiszę na telefonie, uczestniczę w różnych warsztatach, 00:05:03.170 --> 00:05:07.570 omawiając szczegóły implementacyjne z klientami, 00:05:08.000 --> 00:05:12.000 rozmawiam z moimi programistami, żeby przekazać im zapotrzebowania, 00:05:12.600 --> 00:05:17.440 bądź przelewam wszystko na "papier" w jakimś edytorze tekstów. 00:05:17.780 --> 00:05:21.000 Czy ja jeszcze coś programuję, będąc programistą? 00:05:22.580 --> 00:05:29.320 Otóż, pierwsze symptomy problemów w tym obszarze pojawiły się dość dawno. 00:05:29.320 --> 00:05:33.380 W 2008 roku, będąc jeszcze na etacie programisty, 00:05:33.380 --> 00:05:36.740 zainstalowałem sobie program szpiegujący na komputerze. 00:05:36.740 --> 00:05:41.130 Program ten zapisuje statystyki na temat oprogramowania, w którym najczęściej 00:05:41.130 --> 00:05:42.940 przebywam podczas dnia pracy. 00:05:42.940 --> 00:05:46.580 Tutaj widzicie tygodniową statystykę z 2008 roku. 00:05:46.580 --> 00:05:50.090 Już wtedy większość czasu, bo 9 godzin, 00:05:50.090 --> 00:05:51.770 spędzałem w poczcie elektronicznej. 00:05:51.770 --> 00:05:54.790 Dopiero na drugim miejscu, bo prawie 7 godzin, był czas 00:05:54.790 --> 00:05:57.500 w zintegrowanym środowisku programowania. 00:05:57.500 --> 00:06:01.980 Później jeszcze tworzyłem prezentacje bądź prezentowałem. 00:06:01.980 --> 00:06:04.110 Resztę czasu spędzałem w innym oprogramowaniu 00:06:04.110 --> 00:06:06.530 lub zupełnie poza komputerem. 00:06:09.000 --> 00:06:11.520 Ostatni tydzień wyglądał nie lepiej. 00:06:11.520 --> 00:06:19.000 25% czasu spędziłem komunikując się pocztą elektroniczną, komunikacją głosową. 00:06:19.500 --> 00:06:22.490 Około 30% czasu spędziłem w różnego rodzaju narzędziach, 00:06:22.490 --> 00:06:28.100 a tylko 10% w środowisku programowania. 00:06:28.100 --> 00:06:31.780 Podejrzewam, że i tak przeglądałem wtedy kod wpisany przez moich programistów, 00:06:31.780 --> 00:06:33.680 a nie sam go tworzyłem. 00:06:44.700 --> 00:06:48.560 W dziedzinie inżynierii oprogramowania istnieje kilka kanonicznych dzieł. 00:06:50.000 --> 00:06:55.480 Jednym z nich jest "Mityczny osobomiesiąc" autorstwa Fredericka Brooksa. 00:06:55.480 --> 00:06:59.440 Przytacza on kilka badań, z których jasno wynika, 00:06:59.440 --> 00:07:05.100 że przeciętny programista pisze 10 linii kodu dziennie. 00:07:05.100 --> 00:07:06.150 10 linii kodu! 00:07:06.150 --> 00:07:09.790 Dla początkującego adepta sztuki może być to szokująca liczba. 00:07:10.410 --> 00:07:15.110 Być może różni się ona trochę w przypadku nowego projektu, 00:07:15.110 --> 00:07:17.550 który rozpoczynamy, typu "green field", 00:07:17.550 --> 00:07:20.900 czyli mamy taką zieloną łączkę, którą możemy zaorać naszym kodem. 00:07:20.900 --> 00:07:23.500 Piszemy wtedy, być może, więcej linii. 00:07:24.000 --> 00:07:27.680 Jeżeli mamy projekt typu "brown field", 00:07:27.680 --> 00:07:30.970 czyli mamy brązowe pole zaorane kodem, 00:07:30.970 --> 00:07:33.710 a więc prowadzimy projekt, który żyje od dłuższego czasu, 00:07:33.710 --> 00:07:36.680 to tych linii może być zdecydowanie mniej. 00:07:38.000 --> 00:07:43.500 Ale co się dzieje w czasie, kiedy przeciętny inżynier oprogramowania 00:07:43.500 --> 00:07:46.270 nie tworzy kodu źródłowego? 00:07:46.620 --> 00:07:53.020 Powoli staje się wdrożeniowcem, specjalistą od instalacji 00:07:53.020 --> 00:07:57.100 swojego oprogramowania, od rozmów z klientem o nowych funkcjonalnościach, 00:07:57.100 --> 00:08:01.450 od wprowadzania poprawek w oprogramowaniu, 00:08:01.450 --> 00:08:04.800 od wypuszczania nowych wersji i tak dalej. 00:08:05.000 --> 00:08:07.050 Staje się wdrożeniowcem. 00:08:07.050 --> 00:08:10.390 Pamiętam jak dziś moje pierwsze wdrożenie. 00:08:15.000 --> 00:08:18.610 Była to aplikacja webowa. 00:08:18.610 --> 00:08:21.760 Instalację trzeba było przeprowadzić na serwerze u klienta. 00:08:23.000 --> 00:08:27.070 Późna jesień, gdzieś w górach Szwajcarii. 00:08:27.070 --> 00:08:32.920 A warunki bardzo partyzanckie jak na szwajcarski bank, 00:08:32.920 --> 00:08:39.270 bo ja z pendrivem przenoszę skompilowane na moim laptopie 00:08:39.270 --> 00:08:42.680 oprogramowanie do serwerowni klienta i fizycznie wgrywam je na jeden 00:08:42.680 --> 00:08:44.710 ze stojących tam serwerów. 00:08:45.100 --> 00:08:46.560 Uruchamiam. 00:08:46.760 --> 00:08:47.770 Nie działa! 00:08:48.740 --> 00:08:49.630 Co się dzieje? 00:08:49.630 --> 00:08:56.070 Zdenerwowany wracam do laptopa i szukam błędu, poprawiam, wgrywam na pendrive. 00:08:56.080 --> 00:09:01.510 Biegnę z powrotem do serwerowni, gdzie panuje dosyć arktyczna atmosfera, 00:09:01.510 --> 00:09:05.910 bo nie wiem czy wiecie, ale serwery muszą mieć bardzo niską temperaturę. 00:09:07.610 --> 00:09:11.040 Wgrywam to oprogramowanie i jest lepiej, ale nie idealnie, 00:09:11.040 --> 00:09:14.120 więc wracam do laptopa. 00:09:14.120 --> 00:09:19.870 Wewnątrz jest cieplutko, żeby zagłuszyć jesienną słotę na zewnątrz. 00:09:19.880 --> 00:09:25.410 Kolejne kilka godzin spędzam, kursując tam i z powrotem. 00:09:25.410 --> 00:09:29.030 I w końcu udaje mi się, stwierdzam zachrypnięty. 00:09:30.000 --> 00:09:33.380 A następny dzień mam wysoką gorączkę, a kolejny tydzień spędzam 00:09:33.380 --> 00:09:34.890 przeziębiony w łóżku. 00:09:36.640 --> 00:09:38.940 To był punkt zwrotny w mojej karierze. 00:09:38.940 --> 00:09:42.650 Zrozumiałem wtedy, że żeby być najlepszym 00:09:42.650 --> 00:09:46.700 w tej branży, nie można być tylko i wyłącznie kowbojem klawiatury. 00:09:47.500 --> 00:09:49.930 Potrzebne jest coś więcej. 00:09:49.930 --> 00:09:53.910 Coś, co pozwoli uniknąć konieczności 00:09:53.910 --> 00:09:58.280 naklejania na nasze oprogramowania naklejki "works on my machine", 00:09:58.280 --> 00:10:00.000 czyli "u mnie działa". 00:10:00.000 --> 00:10:03.930 To jest dość częsty problem w naszej branży, gdzie oprogramowanie ze względu 00:10:03.930 --> 00:10:09.600 na różne zależności sprzętowe lub programowe 00:10:09.600 --> 00:10:15.910 działa na komputerze programisty, ale błędnie lub wcale u klienta. 00:10:15.910 --> 00:10:19.780 Jak nie trudno sobie wyobrazić, jest to zdecydowanie niepożądane. 00:10:19.780 --> 00:10:22.010 Tak być nie może! 00:10:22.500 --> 00:10:28.560 Wziąłem się więc ostro do pracy, zautomatyzowałem całe środowisko 00:10:28.560 --> 00:10:31.040 budowy naszego oprogramowania, wprowadziłem zasady 00:10:31.040 --> 00:10:36.600 automatycznego testowania, statycznej analizy kodu i tak dalej. 00:10:39.750 --> 00:10:41.220 Nawet napisałem o tym książkę. 00:10:41.220 --> 00:10:44.220 Mniej więcej wtedy dowiedziałem się, 00:10:44.220 --> 00:10:47.770 że właściwie to ja już nie jestem programistą, ale DevOps-em. 00:10:49.000 --> 00:10:53.530 Mniej więcej wtedy ukuto ten nowy termin. 00:10:54.010 --> 00:10:57.420 To skrót od Dev, czyli Development, czyli programowanie, 00:10:57.420 --> 00:11:01.960 i Ops, czyli Operations, a więc wszystko związane z IT. 00:11:02.850 --> 00:11:04.520 Serwery, ale nie tylko. 00:11:04.520 --> 00:11:06.000 Kontakty z klientem. 00:11:06.000 --> 00:11:11.200 Niektórzy dołączają aspekty kontroli jakości, 00:11:11.200 --> 00:11:16.260 czyli bardzo szeroko pojęte testy. 00:11:17.140 --> 00:11:20.040 "No, dobrze." - pomyślałem - "Nie jestem sam.". 00:11:21.400 --> 00:11:26.050 Inni też dostrzegli tego typu problemy. 00:11:26.385 --> 00:11:29.815 Zacząłem pracować nad umiejętnościami miękkimi. 00:11:30.710 --> 00:11:34.270 W naszej branży, tak jak w innych, dzielimy umiejętności na twarde, 00:11:34.270 --> 00:11:38.290 czyli związane z programowaniem, językami programowania, strukturami 00:11:38.290 --> 00:11:41.250 danych, semaforami, kolejkami i tak dalej, 00:11:41.250 --> 00:11:47.790 i miękkie, czyli związane z dyskusją, mediacją, rozmowami z klientem, 00:11:47.790 --> 00:11:51.760 ustalaniem zapotrzebowania, 00:11:51.760 --> 00:11:54.580 dbaniem, żeby zapotrzebowanie nie zmieniało się zbyt często, 00:11:54.580 --> 00:11:58.570 co może prowadzić do konfliktów w projekcie, 00:11:58.570 --> 00:12:02.660 a projekt musi trwać i dążyć do sukcesu. 00:12:05.500 --> 00:12:10.400 Coraz więcej obcowałem z ludźmi, 00:12:10.400 --> 00:12:15.500 których czasami ciężko zrozumieć. 00:12:15.500 --> 00:12:21.510 Ja komputery rozumiem od podszewki, od poziomu tranzystora 00:12:21.510 --> 00:12:23.360 budującego bramkę logiczną. 00:12:23.360 --> 00:12:29.860 I to daje mi pewność, a praca z ludźmi jest przygodą samą w sobie. 00:12:29.860 --> 00:12:36.500 Jak widzicie, dla mnie bycie programistą wcale nie jest nudnym zawodem. 00:12:37.000 --> 00:12:43.500 Jest raczej pasmem wyzwań i przygód jak z najlepszego hollywoodzkiego filmu! 00:12:44.000 --> 00:12:49.080 Teraz, po dziesięciu latach w zawodzie, prowadząc firmę programistyczną 00:12:49.080 --> 00:12:54.300 tutaj w Opolu, myślę, że wiem, co tworzy świetnego programistę. 00:12:55.000 --> 00:13:00.770 Wbrew pozorom nie jest to tylko umysł jak żyleta, miłość do komputerów 00:13:00.770 --> 00:13:03.500 i zamiłowanie do algorytmiki. 00:13:03.500 --> 00:13:09.000 To też jest potrzebne, ale żeby wznieść się na wyżyny tego zawodu 00:13:09.000 --> 00:13:14.500 trzeba uświadomić sobie też, że w świecie komputerów, jak i codziennym życiu, 00:13:14.500 --> 00:13:16.340 to człowiek jest najważniejszy! 00:13:16.340 --> 00:13:17.690 Dziękuję bardzo! 00:13:17.690 --> 00:13:20.040 (Brawa)