{"id":704986,"date":"2023-03-13T10:49:33","date_gmt":"2023-03-13T10:49:33","guid":{"rendered":"https:\/\/www.capgemini.com\/pl-pl\/?page_id=704986"},"modified":"2025-12-05T14:06:39","modified_gmt":"2025-12-05T14:06:39","slug":"techchatter-odcinek-3-czy-dobry-programista-to-leniwy-programista","status":"publish","type":"page","link":"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/","title":{"rendered":"Odcinek 3. Czy dobry programista to leniwy programista?"},"content":{"rendered":"\n<div class=\"wp-block-cg-blocks-hero-picture-card undefined  heroPictureCard\"><div class=\"heroPictureCardBgs\"><picture><source srcset=\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg?w=2880&amp;quality=70 1x, https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg?w=2880&amp;quality=70 2x\" media=\"(min-width: 1500px)\"\/><source srcset=\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg?w=1440&amp;quality=70 1x, https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg?w=2880&amp;quality=70 2x\" media=\"(min-width: 992px)\"\/><source srcset=\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg?w=1024&amp;quality=70 1x, https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg?w=1024&amp;quality=70 2x\" media=\"(min-width: 768px)\"\/><source srcset=\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg?w=768&amp;quality=70 1x, https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg?w=768&amp;quality=70 2x\" media=\"(min-width: 0)\"\/><img decoding=\"async\" src=\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg\" class=\"desktopImage\" alt=\"\" style=\"object-fit:cover;object-position:53% 8%\" loading=\"eager\"\/><\/picture><picture><source srcset=\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg?w=2880&amp;quality=70 1x, https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg?w=2880&amp;quality=70 2x\" media=\"(min-width: 1500px)\"\/><source srcset=\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg?w=1440&amp;quality=70 1x, https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg?w=2880&amp;quality=70 2x\" media=\"(min-width: 992px)\"\/><source srcset=\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg?w=1024&amp;quality=70 1x, https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg?w=1024&amp;quality=70 2x\" media=\"(min-width: 768px)\"\/><source srcset=\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg?w=768&amp;quality=70 1x, https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg?w=768&amp;quality=70 2x\" media=\"(min-width: 0)\"\/><img decoding=\"async\" src=\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg\" class=\"mobileImage\" alt=\"\" style=\"object-fit:cover;object-position:53% 8%\" loading=\"eager\"\/><\/picture><\/div><div class=\"heroPictureCardHeaderShape\"><\/div><div class=\"container\"><div class=\"row\"><div class=\"col-md-8 col-lg-6\"><div class=\"heroPictureCardBox\"><div class=\"heroPictureCardBoxTitle\"><h1 data-maxlength=\"144\">Podcast TechChatter<br>Odcinek 3<\/h1><\/div><\/div><\/div><\/div><\/div><div class=\"small-device\"><div class=\"brandLogoWrapper\"> <\/div><\/div><\/div>\n\n\n\n<section class=\"wp-block-cg-blocks-group undefined section section--article-content\"><div class=\"article-main-content\"><div class=\"container\"><div class=\"row\"><div class=\"col-12 col-md-11 col-lg-10 offset-md-1 offset-lg-1\"><div class=\"article-text article-quote-text\">\n<h2 class=\"wp-block-heading\" id=\"h-odcinek-3-czy-dobry-programista-to-leniwy-programista\">Odcinek 3. Czy dobry programista to leniwy programista?<\/h2>\n\n\n\n<p>S\u0142ownik J\u0119zyka Polskiego definiuje lenistwo jako &#8220;niech\u0119\u0107 do pracy&#8221;. S\u0142ownik Wyraz\u00f3w Bliskoznacznych proponuje, \u017ceby zamiast &#8220;le\u0144&#8221; m\u00f3wi\u0107 &#8220;pr\u00f3\u017cniak&#8221; lub &#8220;leniuch&#8221;. Za to definicji lenistwa nie znajdziemy w s\u0142owniku psychologicznym, poniewa\u017c nie jest chorob\u0105, a po prostu cech\u0105 charakteru.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Zapraszamy do s\u0142uchania!<\/h4>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-spotify wp-block-embed-spotify wp-embed-aspect-21-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Spotify Embed: Czy dobry programista to leniwy programista?\" style=\"border-radius: 12px\" width=\"100%\" height=\"152\" frameborder=\"0\" allowfullscreen allow=\"autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture\" loading=\"lazy\" src=\"https:\/\/open.spotify.com\/embed\/episode\/679IqXoFGPjVG595Xu0hh0?utm_source=oembed\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-outline is-style-outline--1\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/open.spotify.com\/episode\/679IqXoFGPjVG595Xu0hh0\">Spotify<\/a><\/div>\n\n\n\n<div class=\"wp-block-button is-style-outline is-style-outline--2\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/podcasts.apple.com\/pl\/podcast\/czy-dobry-programista-to-leniwy-programista\/id1599140666?i=1000604430515\">Apple Podcast <\/a><\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-outline is-style-outline--3\"><a class=\"wp-block-button__link wp-element-button\" href=\"bit.ly\/3ZS2naZ\">Pos\u0142uchaj w przegl\u0105darce <\/a><\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>W trzecim odcinku Bartek z Jackiem staraj\u0105 si\u0119 udowodni\u0107, \u017ce leniwy nie zawsze oznacza co\u015b negatywnego, a wr\u0119cz przeciwnie. W poszukiwaniu rozwi\u0105za\u0144 i narz\u0119dzi, dzi\u0119ki kt\u00f3rym praca programisty staje si\u0119 bardziej efektywna, nasi eksperci eksploruj\u0105 m.in. obszary:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>automatyzacji proces\u00f3w<\/li>\n\n\n\n<li>agile\u2019owych regu\u0142 i ceremonii scrumowych<\/li>\n\n\n\n<li>clean code i clean architecture<\/li>\n\n\n\n<li>pair programmingu<\/li>\n\n\n\n<li>tworzenia dokumentacji<\/li>\n<\/ul>\n\n\n\n<p><strong>Eksperci Capgemini:<\/strong><\/p>\n\n\n\n<p><strong>Bart\u0142omiej Gajowczyk<\/strong> &#8211; W wieku 10 lat poprzestawia\u0142 kilka znak\u00f3w w przyk\u0142adowym kodzie QBasica i wpad\u0142 w programowanie po uszy. Wierny Javowiec, zwolennik metodyk zwinnych, fan TDD i BDD. Programistyczny purysta &#8211; propagator czystego kodu i czystej architektury. Mi\u0142o\u015bnik g\u00f3r i pasjonat fotografii.<\/p>\n\n\n\n<p><strong>Jacek Panachida<\/strong> &#8211;&nbsp; Ponad 15 lat do\u015bwiadczenia w rozwijaniu i dostarczaniu system\u00f3w wymagaj\u0105cych intensywnego przetwarzania danych, z wykorzystaniem technologii javowych i metodyk zwinnych. Zwolennik czystego kodu i architektury oraz pragmatycznego podej\u015bcia do wytwarzania oprogramowania.<\/p>\n\n\n\n<p><strong>Linki do materia\u0142\u00f3w wspomnianych w odcinku:<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/dpokusa\/linux-terminal-efficiency\">https:\/\/github.com\/dpokusa\/linux-terminal-efficiency<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/software-empathy.pl\/speaker\/ \">https:\/\/software-empathy.pl\/speaker\/ <\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/lubimyczytac.pl\/ksiazka\/75292\/pragmatyczny-programista-od-czeladnika-do-mistrza\">https:\/\/lubimyczytac.pl\/ksiazka\/75292\/pragmatyczny-programista-od-czeladnika-do-mistrza<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/lubimyczytac.pl\/ksiazka\/154212\/pulapki-myslenia-o-mysleniu-szybkim-i-wolnym\">https:\/\/lubimyczytac.pl\/ksiazka\/154212\/pulapki-myslenia-o-mysleniu-szybkim-i-wolnym<\/a><\/p>\n\n\n\n<p>Je\u015bli odcinek Ci si\u0119 spodoba\u0142, daj nam o tym zna\u0107 wystawiaj\u0105c ocen\u0119 w Spotify lub Apple Podcasts.<\/p>\n\n\n\n<p>Podcast Capgemini Polska<\/p>\n\n\n\n<p>Produkcja: Cleverhearted Showrunners<\/p>\n\n\n\n<section class=\"wp-block-cg-blocks-how-we-do-it section section--howwedoit block-howwedoit\"><div class=\"container\"><div class=\"section-content\">\n<div class=\"wp-block-cg-blocks-card-howwedoit expanders\"><div class=\"box card-regulated-agreements card-howwedoit\"><div class=\"expander-box filter-box tag-active \"><div class=\"expander-title\" tabindex=\"0\" role=\"button\" aria-pressed=\"false\" aria-expanded=\"false\"><h3 class=\"expander-heading-title\">Transkrypcja <\/h3><\/div><div class=\"expander-content\"><p><strong>Bartek Gajowczyk<\/strong>: Cze\u015b\u0107 wszystkim. Z tej strony Bartek Gajowczyk. Jestem architektem oprogramowania Capgemini, gdzie zajmuj\u0119 si\u0119 zarz\u0105dzaniem portfolio aplikacji dla jednego z klient\u00f3w z bran\u017cy finansowej. I do dzisiejszego podcastu zaprosi\u0142em swojego koleg\u0119 Jacka, \u017ceby porozmawia\u0107 o oprogramowaniu i lenistwie. Witaj Jacku.<br><strong>Jacek Panachida:<\/strong> Cze\u015b\u0107. Nazywam si\u0119 Jacek Panachida. Pracuj\u0119 jako deliver architekt. Obecnie nad systemami z obszaru data governance, data management. W\u0142a\u015bciwie interesuj\u0119 si\u0119 wszystkimi systemami, kt\u00f3re przetwarzaj\u0105 du\u017c\u0105 ilo\u015b\u0107 danych. Dodatkowo pracuj\u0119 jako people development leader, oraz jestem fanem, du\u017cym fanem Agile\u2019a.\u00a0<br><strong>Bartek Gajowczyk<\/strong>: No to jak to jest z tym lenistwem? Czym w\u0142a\u015bciwie jest lenistwo? Ja tak sobie pozwoli\u0142em zajrze\u0107 do s\u0142ownika j\u0119zyka polskiego. No i lenistwo jest tam okre\u015blane jako niech\u0119\u0107 do wysi\u0142ku, niech\u0119\u0107 do pracy. I gdyby\u015bmy to prze\u0142o\u017cyli na programowanie, ja my\u015bl\u0119, \u017ce programi\u015bci z natury s\u0105 niech\u0119tni do nadmiernego wysi\u0142ku. Wszelkie rozwi\u0105zania, kt\u00f3re s\u0105 nadmiarowe, powtarzalne, wpisuj\u0105 si\u0119 \u015bwietnie w natur\u0119 programowania. No bo po co robi\u0107 co\u015b dwa razy, jak mo\u017cna robi\u0107 raz. Po co robi\u0107 dziesi\u0119\u0107, jak mo\u017cna robi\u0107 dwa. I tak dalej. I tak dalej. Id\u0105c tym tropem zacz\u0105\u0142em si\u0119 zastanawia\u0107, czy lenistwo mo\u017ce by\u0107 konstruktywne. Jacku, co ty o tym s\u0105dzisz?<br><strong>Jacek Panachida:<\/strong> Ja my\u015bl\u0119, \u017ce zdecydowanie. Gdy\u017c tak samo, je\u017celi b\u0119dziemy rozpatrywa\u0107 to na wy\u017cszym poziomie, jakby praca nad programowaniem, tak naprawd\u0119 niezliczona w liczbie napisanych linii kod\u00f3w, wykonanych commit\u00f3w, b\u0105d\u017a liczby napisanych klas. Tak naprawd\u0119 liczy si\u0119 ta warto\u015b\u0107. Warto\u015b\u0107, kt\u00f3ra zosta\u0142a stworzona, dostarczona klientowi. I tak samo, je\u017celi chodzi o lenistwo. Ja my\u015bl\u0119, \u017ce po prostu warto spojrze\u0107 na to jakby z wy\u017cszego poziomu, tak? Czyli nie z tej, powiedzmy, liczny spalonych kalorii, tylko w\u0142a\u015bciwie na oszcz\u0119dzonej, zb\u0119dnej, nudnej pracy i w\u0142a\u015bciwie na skupieniu si\u0119 na tym clue problemu, tak? Czyli w\u0142a\u015bciwie mo\u017cna powiedzie\u0107, \u017ce zwi\u0119kszenie efektywno\u015bci i produktywno\u015bci.<br><strong>Bartek Gajowczyk:<\/strong> No w\u0142a\u015bnie. Czyli wychodzi na to, \u017ce mo\u017cna wysun\u0105\u0107 tez\u0119, \u017ce dobry programista, to leniwy programista. No bo je\u017celi mamy automatyzowa\u0107, je\u017celi mamy wdra\u017ca\u0107 usprawnienia, no to takie konstruktywne lenistwo tutaj nam jak najbardziej pomaga. Ja nawet o\u015bmieli\u0142bym si\u0119 powiedzie\u0107, \u017ce lenistwo poniek\u0105d jest motorem rozwoju. No bo pomy\u015blmy sobie o takim biznesmenie, kt\u00f3ry prowadzi sklep, no i oczywi\u015bcie on chcia\u0142by, \u017ceby ten sklep sam dzia\u0142a\u0142, \u017ceby on m\u00f3g\u0142 tylko le\u017ce\u0107 na wakacjach, wylegiwa\u0107 si\u0119 do g\u00f3ry brzuchem, opala\u0107 si\u0119, p\u0142ywa\u0107 w basenie i \u017ceby gdzie\u015b tam z ty\u0142u ca\u0142y czas kaska lecia\u0142a. No jak to osi\u0105gn\u0105\u0107? No mo\u017cna to osi\u0105gn\u0105\u0107. No oczywi\u015bcie jest na to pewien narzut, ale no tutaj trzeba wdro\u017cy\u0107 pewne rozwi\u0105zania, kt\u00f3re cz\u0119sto s\u0105 dostarczane przez \u015bwiat IT. No bo zamiast siedzie\u0107 za lad\u0105 w sklepu, mo\u017cemy p\u00f3j\u015b\u0107 online i wyj\u015b\u0107 z rozwi\u0105zaniem do szerszego grona odbiorc\u00f3w. Mo\u017cemy zautomatyzowa\u0107 pewne procesy. Oczywi\u015bcie, do tego wszystkiego potrzeba ludzi, czasu, inwestycji. Ale efektem ko\u0144cowym, my\u015bl\u0119, \u017ce jest ca\u0142kiem fajne rozwi\u0105zanie, kt\u00f3re pozwala nam zaoszcz\u0119dzi\u0107 czas, czyli poniek\u0105d leni\u0107 si\u0119.\u00a0<br><strong>Jacek Panachida:<\/strong> Zdecydowanie. Jedn\u0105 w\u0142a\u015bciwie z roli programist\u00f3w jest tak naprawd\u0119 stworzenie sobie tego, jakby warunk\u00f3w do pracy. To znaczy w\u0142a\u015bnie zautomatyzowanie tych nudnych proces\u00f3w, a jednocze\u015bnie sprawienie, \u017ce ta praca jest wydajna i przyjemna, tak? Czyli mo\u017cna powiedzie\u0107, \u017ce to lenistwo tak naprawd\u0119 w moim przypadku na przyk\u0142ad bardzo cz\u0119sto rozpoczyna si\u0119 od czasu, kt\u00f3ry przeznaczam na rozmy\u015blania, tak? W jaki spos\u00f3b chc\u0119 rozwi\u0105za\u0107 dany problem, jak podej\u015b\u0107 do tego problemu, co tak naprawd\u0119 stanowi istot\u0119 problemu. Dopiero p\u00f3\u017aniej, po rozmowie na przyk\u0142ad z wieloma osobami, przyst\u0119puj\u0119 do dzia\u0142ania. Te\u017c by\u0107 leniwym, wed\u0142ug mnie, to te\u017c jest unikanie takich, powiedzmy, zb\u0119dnych dzia\u0142a\u0144. Czyli unikanie takiego samopoczucia, gdzie po ca\u0142ym dniu jestem zm\u0119czony, okaza\u0142o si\u0119, \u017ce tak naprawd\u0119 kr\u0105\u017cy\u0142em w k\u00f3\u0142ko, moja praca nie przynios\u0142a \u017cadnych efekt\u00f3w. I pomimo tego, \u017ce czuj\u0119 si\u0119 zm\u0119czony, tak naprawd\u0119 nie zrobi\u0142em kroku dalej, wi\u0119c tak jak wspomnia\u0142em, warto zacz\u0105\u0107 od zastanowienia si\u0119, co chc\u0119 tak naprawd\u0119 zrobi\u0107. A dopiero p\u00f3\u017aniej realizowa\u0107 kolejne na to kroki.<br><strong>Bartek Gajowczyk:<\/strong> W\u0142a\u015bciwie dochodzimy tutaj do wniosku, \u017ce te wszystkie jakby regu\u0142y, kt\u00f3re kr\u0105\u017c\u0105 w \u015bwiecie programist\u00f3w, bardzo mocno si\u0119 z tym spajaj\u0105, bo je\u017celi pomy\u015blimy o chocia\u017cby ca\u0142ym Agile\u2019u i cookbookach, o kt\u00f3rych ostatnio rozmawiali\u015bmy, wszelkich ceremoniach scrumowych, no to one staraj\u0105 si\u0119 u\u0142o\u017cy\u0107 prac\u0119 programist\u00f3w w ten spos\u00f3b, \u017ceby ona nie by\u0142a nadmiarowa. \u017beby zosta\u0142y wprowadzone konkretne regu\u0142y, kt\u00f3rych wszyscy si\u0119 trzymamy, kt\u00f3rych upraszczaj\u0105 nam zar\u00f3wno komunikacj\u0119, jak i dowo\u017cenie ca\u0142o\u015bci. Dowo\u017cenie, czy to jakich\u015b malutkich zada\u0144, czy to wielkich epik\u00f3w, story i tak dalej. I wczoraj jak rozmawiali\u015bmy sobie podczas lunchowej pogaw\u0119dki, wspomina\u0142e\u015b nawet o kilku takich regu\u0142ach kr\u0105\u017c\u0105cych, my\u015bl\u0119, \u017ce zw\u0142aszcza na rozmowach kwalifikacyjnych do wielu firm, jak to akronimy bardzo popularne drajki, zjagni i tak dalej. Czy my\u015blisz, \u017ce to te\u017c jest w\u0142a\u015bnie niejako przejaw takiego konstruktywnego lenistwa? Co by\u015b powiedzia\u0142 o tych regu\u0142ach?<br><strong>Jacek Panachida:<\/strong> Absolutnie. To znaczy wbrew pozorom tak naprawd\u0119 stosowanie tych regu\u0142 wymaga wysi\u0142ku. To znaczy, one tak naprawd\u0119 w du\u017cej cz\u0119\u015bci sprowadzaj\u0105 si\u0119 do uporz\u0105dkowania \u015bwiata, ale takiego abstrakcyjnego, w kt\u00f3rym si\u0119 poruszamy, jako architekci. I wbrew pozorom uporz\u0105dkowanie tego \u015bwiata, wprowadzenie pewnych regu\u0142 jest to ci\u0119\u017cka praca. Natomiast ona pozwala nam oszcz\u0119dzi\u0107 wiele pracy p\u00f3\u017aniej, a jednocze\u015bnie by\u0107 pewnym, \u017ce to nad czym pracujemy jest jak najbli\u017cej, powiedzmy, A, wymaga\u0144 klienta. I tutaj w\u0142a\u015bnie wymieni\u0142e\u015b te akronimy, typu don\u2019t repeat yourself, keep it simple stupid, you aren\u2019t gonna need it. I te wszystkie rzeczy sprawiaj\u0105, \u017ce architektura, cho\u0107by kt\u00f3r\u0105 tworzymy, jest bardziej przejrzysta I \u0142atwiejsza w utrzymaniu.\u00a0<br><strong>Bartek Gajowczyk:<\/strong> No w\u0142a\u015bnie, bo przecie\u017c kto chcia\u0142by pracowa\u0107 nad kodem, gdzie pojedyncza zmian, taka z punktu widzenia biznesu, wymaga dziesi\u0105tek, o ile nie setek, modyfikacji, kod\u00f3w w r\u00f3\u017cnych miejscach. Poniewa\u017c kto\u015b zamiast zaprojektowa\u0107 dobrze rozwi\u0105zanie, to po prostu je skopiowa\u0142. No ja nie raz widzia\u0142em kod napisany w nienajlepszy spos\u00f3b, gdzie nie by\u0142y zastosowane wzorce programistyczne i rozwi\u0105zanie by\u0142o straszeni rozwleczone, zduplikowane. I nawet prosta modyfikacja, kt\u00f3ra z punktu widzenia biznesu wydawa\u0142a si\u0119 trywialna, okazywa\u0142a si\u0119 niezwykle wymagaj\u0105ca dla programist\u00f3w. No trzeba by\u0142o si\u0119 przebi\u0107 przez spaghetti r\u00f3\u017cnych popl\u0105tanych warstw ze sob\u0105, poniewa\u017c nie by\u0142o tam odpowiedniego podej\u015bcia. I tutaj wychodzi na to, \u017ce dobrze przemy\u015blane rozwi\u0105zanie, dobrze zaprojektowana architektura, a nawet na ni\u017cszym poziomie, nawet poszczeg\u00f3lna klasa, fragment kodu, znacznie pozwalaj\u0105 oszcz\u0119dzi\u0107 czas, kt\u00f3ry jest potrzebny na dowiezienie zadania.\u00a0<br><strong>Jacek Panachida:<\/strong> Zdecydowanie. Jakby tytu\u0142owe bycie leniwym tak naprawd\u0119 w wielu przypadkach sprowadza si\u0119 do my\u015blenia d\u0142ugoterminowego. Dbanie nie tylko o rzeczy, kt\u00f3re dostarczamy, ale r\u00f3wnie\u017c jest to dbanie o innych cz\u0142onk\u00f3w zespo\u0142u. Tak w\u0142a\u015bnie. \u017beby poczuli si\u0119 cz\u0142onkami zespo\u0142u. \u017be wszyscy pracujemy nad tym rozwi\u0105zaniem. Wspomnia\u0142e\u015b o tych cookbookach, kt\u00f3re na przyk\u0142ad w\u0142a\u015bnie jako firma Capgemini rozwijamy w wieku obszarach, na przyk\u0142ad Agile\u2019a. S\u0105 to materia\u0142y, kt\u00f3re sprawiaj\u0105, \u017ce osoby nowe w danym temacie, poczuj\u0105 bardziej, jakby bli\u017cej danego zagadnienia i szybciej mog\u0105 sta\u0107 si\u0119 efektywne. Jednocze\u015bnie wskazuje pewne kierunki rozwoju, by\u0107 mo\u017ce inspiruje. Ja my\u015bl\u0119, \u017ce to jest niezwykle wa\u017cne.\u00a0<br><strong>Bartek Gajowczyk:<\/strong> Mi tutaj na my\u015bl przychodzi przyk\u0142ad w sumie z ostatnich kilku dni, gdzie takie nieszablonowe podej\u015bcie w\u0142a\u015bnie jednego z moich koleg\u00f3w, Piotrka, pozwoli\u0142o nam rozwi\u0105za\u0107, mo\u017ce nie mega powa\u017cny problem, ale do\u015b\u0107 irytuj\u0105cy problem, je\u017celi chodzi o aktualizacj\u0119 w jednym z system\u00f3w po stronie klienta. Okaza\u0142o si\u0119, \u017ce mamy do wykonania tak\u0105 zbiorow\u0105 aktualizacj\u0119 pewnych danych w formularzu na stronie internetowej, aplikacji webowej, gdzie niestety nie mo\u017cna robi\u0107 wielu zmian jednocze\u015bnie. Okaza\u0142o si\u0119, \u017ce taka zmiana mo\u017ce przechodzi\u0107 jedna po drugiej, czyli mo\u017cemy wprowadzi\u0107 jeden rekord, potem kolejny i za ka\u017cdym razem te rekordy musz\u0105 by\u0107 rozwi\u0105zywane, zapisywane i tak dalej i tak dalej. No i mieli\u015bmy taki przypadek, \u017ce tych rekord\u00f3w musieli\u015bmy wpisa\u0107 kilkaset. No i oczywi\u015bcie jak programista spojrzy na tego typu problem, no to m\u00f3wi, no zaraz, zaraz, ale dlaczego? Przecie\u017c powinno da\u0107 si\u0119 to zaktualizowa\u0107 w spos\u00f3b zbiorowy. My niestety nie mieli\u015bmy do API pod spodem. Natomiast kr\u00f3tka analiza ruchu sieciowego i wszystkich request\u00f3w, kt\u00f3re lecia\u0142y pod spodem, pozwoli\u0142a w\u0142a\u015bnie Piotrkowi na znalezienie takiego workeranda, kt\u00f3ry by umo\u017cliwi\u0142 w\u0142a\u015bnie zmodyfikowanie oryginalnego \u017c\u0105dania i wys\u0142anie tak zwanego batch update. Czyli zbiorowej aktualizacji. Dzi\u0119ki temu no dostali\u015bmy pe\u0142n\u0105 kontrol\u0119 nad aktualizacjami tego formularza i id\u0105c dalej t\u0105 \u015bcie\u017ck\u0105 wpadli\u015bmy na pomys\u0142 stworzenia w og\u00f3le oskryptowanego rozwi\u0105znia, kt\u00f3re docelowo mo\u017ce by\u0107 w pe\u0142ni zautomatyzowane. Gdzie konfiguracja dotycz\u0105ca warto\u015bci w tym\u017ce formularzu mo\u017ce le\u017ce\u0107 sobie gdzie\u015b w repozytorium kodu. A pipeline odpowiedzialny za na przyk\u0142ad uderzenie do API, uruchamianego pod spodem, w efekcie sprawia, \u017ce jakakolwiek zmiana z repozytorium mo\u017ce automatycznie zaktualizowa\u0107 ten formularz bez konieczno\u015bci r\u0119cznej ingerencji i, dajmy na to, wielkiego narzutu takiego manualnego.<br><strong>Jacek Panachida:<\/strong> Poda\u0142e\u015b \u015bwietny przyk\u0142ad zwi\u0105zany z takim nieszablonowym my\u015bleniem. W\u0142a\u015bciwie skoncentrowaniem si\u0119 na dostarczeniu rozwi\u0105zania. I je\u017celi chodzi o automatyzacj\u0119, ja mog\u0119 poda\u0107 inny przyk\u0142ad, wi\u0119c praca w pewnym projekcie wymaga\u0142a od nas dostarczenia zmian na bazie danych w konkretnym formacie danych. A by\u0142o wymagane od nas, \u017ceby\u015bmy poszczeg\u00f3lne skrypty rozbili na cz\u0119\u015bci, odpowiednio je pogrupowali, zagregowali i tylko w taki spos\u00f3b te skrypty mog\u0142y zosta\u0107 wykonane p\u00f3\u017aniej przez administrator\u00f3w na bazie danych. W zwi\u0105zku z tym, \u017ce to by\u0142 akurat czas, w kt\u00f3rym intensywnie pracowali\u015bmy nad rozwojem aplikacji, w\u0142a\u015bciwie co sprint dowozili\u015bmy nowe funkcje, a wi\u0119c zmian na bazie danych by\u0142o ca\u0142kiem sporo. Praca nad tymi zmianami, czy w\u0142a\u015bciwie opis tych zmian na bazie danych, to by\u0142a czynno\u015b\u0107 k\u0142opotliwa, czasoch\u0142onna i w\u0142a\u015bciwie rozwi\u0105zanie nasze polega\u0142o na tym, \u017ce jeden z naszych koleg\u00f3w przygotowa\u0142 skrypty, kt\u00f3re odpowiednio obrabiaj\u0105 te zmiany pozytonowe, kt\u00f3re przygotowali\u015bmy w godny dla nas spos\u00f3b i przygotowuj\u0105 ten format dl agamy p\u00f3\u017aniej przez DBE-\u00f3w. I w\u0142a\u015bciwie ten skrypt zosta\u0142 napisany na jednym z pocz\u0105tkowych etapie projektu i p\u00f3\u017aniej by\u0142 sukcesywnie u\u017cywany przez d\u0142ugi czas.<br><strong>Bartek Gajowczyk:<\/strong> W takim razie mo\u017cna powiedzie\u0107, \u017ce dzi\u0119ki nieszablonowemu podej\u015bciu lenistwo twojego kolegi z zespo\u0142u, no bo nie chcia\u0142 w k\u00f3\u0142ko robi\u0107 tego samego, zaprocentowa\u0142o bardzo du\u017c\u0105 oszcz\u0119dno\u015bci\u0105 czasu w p\u00f3\u017aniejszych iteracjach. Jak tak patrz\u0119 na te tematy, kt\u00f3re do tej pory poruszyli\u015bmy, to ukazuje mi si\u0119 taki obraz, w kt\u00f3rym mamy pewne procedury, mamy procesy i mamy podej\u015bcie ludzi, co sprawia, \u017ce sumarycznie, jak to z\u0142o\u017cymy w ca\u0142o\u015b\u0107 d\u0105\u017cymy do, no powiedzmy, doskona\u0142o\u015bci. Ale d\u0105\u017cymy przede wszystkim do p\u0142ynno\u015bci. D\u0105\u017cymy do takiej zwinno\u015bci w dostarczaniu oprogramowania. I my\u015bl\u0119, \u017ce sama nazwa agile jest tutaj \u015bwietna w tym kontek\u015bcie, no bo w\u0142a\u015bnie ta zwinno\u015b\u0107, ten spryt i ta p\u0142ynno\u015b\u0107 w dostarczaniu rozwi\u0105za\u0144 moim zdaniem robi prawdziw\u0105 robot\u0119 w \u015bwiecie programist\u00f3w. Jakby p\u00f3j\u015b\u0107 dalej tym tropem pewnie natrafiliby\u015bmy na mo\u017ce bardziej konkretne rozwi\u0105zania, kt\u00f3re wspieraj\u0105 nas wszystkich w codziennej pracy. I tutaj do g\u0142owy przychodz\u0105 mi wszelkie konwencje i regu\u0142y. My\u015bl\u0119, \u017ce nie raz podczas pracy projektowej ka\u017cdy z nas, ka\u017cdy z programist\u00f3w, architekt\u00f3w, czy nawet analityk\u00f3w, zetkn\u0105\u0142 si\u0119 z dyskusjami dotycz\u0105cymi konwencji tworzonych rozwi\u0105za\u0144. Jak ma wygl\u0105da\u0107 kod, jakich s\u0142\u00f3w powinni\u015bmy u\u017cywa\u0107, jak on ma by\u0107 sformatowany, jaka powinna by\u0107 sk\u0142adnia. Czy powinny klamry si\u0119 zaczyna\u0107 w tej samej linii, czy w nowej linii. I tak dalej i tak dalej. Tak\u017ce wszelkie regu\u0142y formatowania, wszelkie regu\u0142y dotycz\u0105ce sk\u0142adni, oraz narz\u0119dzia, kt\u00f3re wspieraj\u0105 w trzymaniu porz\u0105dku z kodzie. Chocia\u017cby jakiekolwiek pluginy mainvenowe albo plugginy do jakiegokolwiek innego narz\u0119dzia do budowania aplikacji, czy te\u017c do \u015brodowiska programistycznego. Tak\u017ce tutaj du\u017co zmieniaj\u0105 i pozwalaj\u0105 oszcz\u0119dzi\u0107 sporo czasu, bo tak d\u0142ugo jak wszyscy w zespole trzymaj\u0105 si\u0119 dobrze opracowanych regu\u0142 i wiedz\u0105, jakie s\u0105 to regu\u0142y, no to mo\u017cemy du\u017co \u0142atwiej si\u0119 komunikowa\u0107. To jest tak troch\u0119 jak z wszelkimi rozmowami dooko\u0142a. BDD albo DDD. Gdzie tam rzeczywi\u015bcie mega istotny jest kontekst i mega istotne jest zrozumienie i wsp\u00f3lne s\u0142ownictwo, bo tak d\u0142ugo jak rozumiemy si\u0119 nawzajem, tak d\u0142ugo mo\u017cemy p\u0142ynnie prowadzi\u0107 wszelkie rozmowy, dyskusje, oraz wymienia\u0107 si\u0119 pomys\u0142ami, oraz ocenia\u0107 swoje rozwi\u0105zania.<br><strong>Jacek Panachida:<\/strong> Zdecydowanie. Tutaj przed chwil\u0105 wspomnia\u0142e\u015b o regu\u0142ach, natomiast ja te\u017c cz\u0119sto poruszam tematyk\u0119 standard\u00f3w. I te standardy mog\u0105 by\u0107 opracowywane na wielu poziomach. Na poziomie kodu s\u0105 to cz\u0119sto interfejsy, kt\u00f3re pomagaj\u0105 w organizacji kodu, pomagaj\u0105 w implementacji tak naprawd\u0119 tego, jak poszczeg\u00f3lne modu\u0142y powinny si\u0119 ze sob\u0105 komunikowa\u0107. Jakie dane powinny ze sob\u0105 wymienia\u0107. P\u00f3\u017aniej te zespo\u0142y ju\u017c indywidualnie pracuj\u0105 nad poszczeg\u00f3lnymi, nad swoimi cz\u0119\u015bciami systemu w\u0142a\u015bnie na podstawie tych dobrze zdefiniowanych interfejs\u00f3w. No dla mnie r\u00f3wnie wa\u017cna jest konwencja nazewnicza. To znaczy \u015bwiadomo\u015b\u0107 ca\u0142ego zespo\u0142u, jakiego s\u0142ownictwa u\u017cywamy, jak nazywamy poszczeg\u00f3lne komponenty, modu\u0142y. Jak tworzymy jakby nowe. I to wszystko pomaga stworzy\u0107 taki j\u0119zyk, kt\u00f3ry jest u\u017cywany w projekcie i pomaga r\u00f3wnie\u017c unikn\u0105\u0107 takiej dwuznaczno\u015bci, niejednoznaczno\u015bci.\u00a0<br><strong>Bartek Gajowczyk:<\/strong> No. To jest temat mega popularny w\u015br\u00f3d wszelkiej ma\u015bci programist\u00f3w. I te\u017c tak z w\u0142asnego do\u015bwiadczenia, jak spojrz\u0119 wstecz, pami\u0119tam jak no uczy\u0142em si\u0119 jeszcze pisa\u0107 ten kod, uczy\u0142em si\u0119 dobrze nazywa\u0107 metody, klasy i tak bardzo szczeg\u00f3\u0142owo opisywa\u0107 wszystkie rozwi\u0105zania. Niewiele wiedz\u0105c jeszcze o architekturze i niewiele my\u015bl\u0105c o architekturze, no bo nie oszukujmy si\u0119, maj\u0105c tam par\u0119 lat do\u015bwiadczenia, studia i mo\u017ce jakie\u015b tam pierwsze komercyjne projekty, no to o tej architekturze za wiele nie wiedzia\u0142em. By\u0142o to jeszcze za wcze\u015bnie, \u017cebym potrafi\u0142 spojrze\u0107 na to z g\u00f3ry i takim spostrzegawczym okiem powiedzie\u0107, no zaraz, tu jest taka warstwa, tutaj powinien by\u0107 taki interfejs. To przecie\u017c si\u0119 wszystko ze sob\u0105 \u0142\u0105czy i nadaje kszta\u0142tu ca\u0142o\u015bci. Dlaczego o tym wspominam? No chodzi o to, \u017ce jak patrz\u0119 na taki sw\u00f3j wczesny kod, troch\u0119 si\u0119 \u015bmiej\u0119, \u017ce te nazwy zar\u00f3wno klas, metod i zmiennych, no s\u0105 strasznie d\u0142ugie i przypominaj\u0105 troch\u0119 takie wy\u015bmiewane rozwi\u0105zania, gdzie to rzeczywi\u015bcie wydaje si\u0119 takie skomplikowane, ci\u0119\u017ckie, rozpas\u0142e i tak dalej. I jak spojrz\u0119 na co\u015b, co staram si\u0119, przynajmniej teraz, dowozi\u0107, no to widz\u0119, \u017ce te wszystkie kontrakty, o kt\u00f3rych wspomnia\u0142e\u015b, czyli ta czysta architektura, bardzo pomagaj\u0105 upro\u015bci\u0107 zar\u00f3wno nazewnictwo metod, zmiennych, klas, ca\u0142ych komponent\u00f3w i paczek, bo dobrze zaprojektowany kod jest bardzo specyficzny. Jest bardzo ograniczony w swojej odpowiedzialno\u015bci. I dzi\u0119ki temu te\u017c \u0142atwo zarz\u0105dzalny. Czyli mamy taki malutki byt, kt\u00f3ry odpowiada za realizacj\u0119 pewnego wycinka wymaga\u0144 biznesowych. Ale to pomaga mu w\u0142a\u015bnie w bardzo przejrzysty spos\u00f3b zrealizowa\u0107 dan\u0105 funkcjonalno\u015b\u0107. Wi\u0119c mo\u017cemy mie\u0107, dajmy na to, jaki\u015b interfejs, kt\u00f3ry jeste\u015bmy w stanie opisa\u0107 jednym, dwoma s\u0142owami, no bo on jest umieszczony w jakim\u015b kontek\u015bcie. Jakakolwiek metoda wewn\u0105trz te\u017c mo\u017ce by\u0107 jednym czasownikiem opisana. No bo my wiemy, \u017ce to jest w\u0142a\u015bnie na przyk\u0142ad kontroler tego widoku. I nie musimy m\u00f3wi\u0107, \u017ce metoda w tym kontrolerze jest odpowiedzialna za przetwarzanie danych, kt\u00f3re przysz\u0142y z bazy danych i lec\u0105 sobie po restowym api gdzie\u015b dalej. My mo\u017cemy po prostu powiedzie\u0107 przetw\u00f3rz. I to jest to, bo ca\u0142y kontekst, ca\u0142a ta architektura dooko\u0142a, odpowiada na wszystkie inne pytania. Wystarczy na to spojrze\u0107 i w bardzo \u0142atwy spos\u00f3b wida\u0107 zale\u017cno\u015bci mi\u0119dzy innymi warstwami.\u00a0<br><strong>Jacek Panachida:<\/strong> To jest zreszt\u0105 zgodne z tak\u0105 zasad\u0105, kt\u00f3ra m\u00f3wi, \u017ceby nie mno\u017cy\u0107 byt\u00f3w ponad potrzeb\u0119. To te\u017c praca, czy w\u0142a\u015bciwie rozpocz\u0119cie pracy w nowym projekcie, a r\u00f3wnie\u017c kontynuacja pracy polega wielokrotnie na tym, \u017ceby po\u0142\u0105czy\u0107 pewne kropki. Tak z\u0142apa\u0107 ten szerszy obraz i kontekst. I to, moim zdaniem, w\u0142a\u015bnie pozwala na dostarczenie takiego prawid\u0142owego rozwi\u0105zania, kt\u00f3re w\u0142a\u015bnie jest oczekiwane od dobrego programisty. I tutaj mo\u017ce te\u017c porusz\u0119 nast\u0119pny temat. Nast\u0119pny temat, kt\u00f3ry jest zwi\u0105zany z tak\u0105 jakby proaktywno\u015bci\u0105 dobrego programisty. To znaczy, dobry programista my\u015bli d\u0142ugoplanowo i dba o r\u00f3\u017cne aspekty rozwoju oprogramowania. Czyli nie tylko o t\u0105 jakby faz\u0119 tworzenia tego kodu, jak r\u00f3wnie\u017c o faz\u0119 cho\u0107by testowania, tak? I tutaj m\u00f3wi\u0119 nie tylko o testach jednostkowych, ale r\u00f3wnie\u017c o innego rodzaju testach, na przyk\u0142ad wydajno\u015bciowych, kt\u00f3re maj\u0105 zapewni\u0107, \u017ce ten produkt ju\u017c u\u017cywany przez u\u017cytkownika ko\u0144cowego spe\u0142nia jego oczekiwania. I tutaj mam przyk\u0142ad w\u0142a\u015bnie takiej innej automatyzacji, kt\u00f3r\u0105 wprowadzili\u015bmy w projekcie. Podczas developmentu rozwoju jednego z komponent\u00f3w musieli\u015bmy generowa\u0107, czy w\u0142a\u015bciwie pos\u0142ugiwa\u0107 si\u0119, du\u017c\u0105 liczb\u0105 r\u00f3\u017cnego rodzaju plik\u00f3w. I w zale\u017cno\u015bci od wymaga\u0144, od sytuacji danego testu, te pliki mia\u0142y mie\u0107 r\u00f3\u017cn\u0105 posta\u0107. I w\u0142a\u015bnie ta automatyzacja, kt\u00f3r\u0105 wdro\u017cyli\u015bmy, polega\u0142a na tym, \u017ce napisali\u015bmy pewien generator tych plik\u00f3w. Czyli ustawiaj\u0105c poszczeg\u00f3lne opcje mogli\u015bmy wygenerowa\u0107 pliki, kt\u00f3re odpowiada\u0142y r\u00f3\u017cnym scenariuszom testowym. Wi\u0119c je\u017celi chodzi w\u0142a\u015bnie o bycie dobrym programist\u0105, to ja widz\u0119 te\u017c jako element bycia dobrym programist\u0105 r\u00f3wnie\u017c to szersze patrzenie t\u0105 spraw\u0119. Czyli nie tylko jakby samo tworzenie tego oprogramowania, jak r\u00f3wnie\u017c zapewnienie, \u017ce to oprogramowanie rzeczywi\u015bcie dzia\u0142a. I tutaj wspomnia\u0142em o tego r\u00f3\u017cnego rodzaju testach, ale innym przyk\u0142adem mo\u017ce by\u0107 metaprogramowanie. Czyli zapewnienie, \u017ce ten kod, kt\u00f3ry tworzymy jest opisany w odpowiedni spos\u00f3b. Czyli dodajemy tak\u0105 jeszcze dodatkow\u0105 warstw\u0119 abstrakcji, kt\u00f3ra w wielu przypadkach pozwoli nam unikn\u0105\u0107 b\u0142\u0119d\u00f3w. Czyli mo\u017cna powiedzie\u0107, \u017ce konkretne adnotacje, b\u0105d\u017a inne metody ostrzeg\u0105 nas, gdy, powiedzmy, stan systemu wymknie si\u0119 spod jakby oczekiwanego stanu.\u00a0<br><strong>Bartek Gajowczyk:<\/strong> Skoro mowa o otrzymaniu w\u0142a\u015bnie rozwi\u0105za\u0144, wi\u0119c nie tylko tworzeniu nowych, to tutaj mi si\u0119 nasuwa na my\u015bl jeszcze jeden \u015bwietny przyk\u0142ad z mojej kariery. Co prawda nie m\u00f3j, ale mojego kolegi Przemka, kt\u00f3ry do\u0142\u0105czy\u0142 do projektu, w kt\u00f3rym by\u0142em, oj, lata temu to by\u0142o, bodaj\u017ce z 10 lat temu. Mieli\u015bmy wtedy bardzo intensywny okres, gdzie pracowali\u015bmy nad, tak naprawd\u0119, portfolio aplikacji. Wszystko w technologiach oko\u0142o javowych, bo tam by\u0142a Java, Skala, Groovie mo\u017ce do test\u00f3w. Ale g\u0142\u00f3wnie Java i scala. Natomiast by\u0142o kilka ko\u0144cowych aplikacji, bodaj\u017ce pi\u0119\u0107 i one mia\u0142y sporo wsp\u00f3lnych komponent\u00f3w. Sumarycznie pewnie ko\u0142o 50 komponent\u00f3w naszych w\u0142asnych na drzewku zale\u017cno\u015bci. No i w zwi\u0105zku, \u017ce to by\u0142 bardzo gor\u0105cy okres, zesp\u00f3\u0142 oko\u0142o 10, 15 programist\u00f3w rozsianych po ca\u0142ym \u015bwiecie, no to problemem by\u0142o dla nas zarz\u0105dzanie r\u00f3\u017cnymi wersjami nie tylko ko\u0144cowych aplikacji, ale ka\u017cdego sk\u0142adowego komponentu. No bo r\u00f3wnolegle potrafili\u015bmy prowadzi\u0107 prace nad trzema r\u00f3\u017cnymi wersjami tych komponent\u00f3w. W zwi\u0105zku z tym, \u017ce jedna aplikacja ko\u0144cowa zale\u017ca\u0142a jeszcze od tej najstarszej wersji, potem mieli\u015bmy jak\u0105\u015b inn\u0105 aplikacj\u0119, kt\u00f3ra by\u0142a ju\u017c na nowszej wersji jakiego\u015b komponentu. A jeszcze mieli\u015bmy najnowsz\u0105 wersj\u0119 serwera, kt\u00f3ry korzysta\u0142 jeszcze z czego innego, bo tam ju\u017c zupe\u0142nie inne regu\u0142y wprowadzili\u015bmy. No i je\u015bli do tego si\u0119 doda rozbudowanie w\u0142a\u015bnie tego modelu, rozszerzenie tego modelu na jeszcze zale\u017cno\u015bci przechodnie, no to robi si\u0119 ca\u0142kiem du\u017ce, ca\u0142kiem spore zamieszanie z wprowadzaniem wszelkiego rodzaju zmian i dostarczaniem back fix\u00f3w dla tych\u017ce komponent\u00f3w. No i wtedy pocz\u0105tkowo pr\u00f3bowali\u015bmy po prostu jako\u015b merge\u2019owa\u0107 to mi\u0119dzy branchami, zachowa\u0107 kolejno\u015b\u0107, upewni\u0107 si\u0119, \u017ce nie ma konflikt\u00f3w. Zajmowa\u0142o to ca\u0142kiem sporo czasu i najwi\u0119kszym wyzwaniem by\u0142o po prostu synchronizowanie si\u0119 mi\u0119dzy r\u00f3\u017cnymi cz\u0142onkami zespo\u0142u, kt\u00f3rzy mogli pracowa\u0107 nad zupe\u0142nie innymi rozwi\u0105zaniami i wymaganiami. Zupe\u0142nie nawet nie wiedzieli o tym, co dowozi inna osoba. No i Przemek przyszed\u0142, zobaczy\u0142, co tutaj si\u0119 dzieje i on powiedzia\u0142, no zaraz, zaraz. Ale po co my mamy si\u0119 zastanawia\u0107, skoro mo\u017cemy przecie\u017c stworzy\u0107 sobie proste regu\u0142y. Wiemy, kt\u00f3re komponenty s\u0105 najstarsze, a kt\u00f3re s\u0105 najnowsze. W\u0142a\u015bciwie, kt\u00f3re wersje. I mo\u017cemy sobie stworzy\u0107 tak\u0105 struktur\u0119 i konfiguracj\u0119, kt\u00f3ra b\u0119dzie nam m\u00f3wi\u0142a, no okej, wszystkie zmiany z tej wersji powinny wej\u015b\u0107 do tej wersji i tak dalej i tak dalej. Oraz mo\u017cemy mie\u0107 regu\u0142y, \u017ce no wiadomo, tutaj trwa development, no to \u017ceby jeszcze za szybko nie krzycze\u0107 i nie alarmowa\u0107, no to niech b\u0119dzie chocia\u017cby tydzie\u0144, dwa, na domerd\u017cowanie tego wszystkiego. No i Przemek postanowi\u0142 to zautomatyzowa\u0107. I on napisa\u0142 plugin w scali do mainevena, kt\u00f3ry wpi\u0119li\u015bmy we wszystkie projekty i ostatecznie zapomnieli\u015bmy o kwestii w og\u00f3le mergowania tych\u017ce zmian, na zasadzie no nie trzeba by\u0142o si\u0119 zastanawia\u0107, co, gdzie domerd\u017cowa\u0107. Z kt\u00f3rego brancha do kt\u00f3rego. Czy co\u015b jeszcze w danej wersji komponentu brakuje, czy ju\u017c wszystko zosta\u0142o dostarczone. Bo ka\u017cda zmiana pojedyncza no by\u0142a przetwarzana, wtedy to by\u0142 projekt na SVN-ie, wi\u0119c szed\u0142 komit do SVN-a. Natomiast ten plugin przy ka\u017cdym bildzie, ka\u017cdego komponentu, generowa\u0142 raport i sprawdza\u0142 czy regu\u0142y, kt\u00f3re tam wprowadzili\u015bmy, no bo te regu\u0142y te\u017c by\u0142y konfigurowane, no przecie\u017c nie b\u0119dziemy trzyma\u0107 si\u0119 jednej, sztywnej regu\u0142y. Dla r\u00f3\u017cnych aplikacji mog\u0105 by\u0107 te regu\u0142y inne. No to te regu\u0142y nam m\u00f3wi\u0142y, okej, czy tutaj krzycze\u0107 i wywali\u0107 bild, czy tylko na \u017c\u00f3\u0142to za\u015bwieci\u0107 si\u0119 z warningiem i powiedzie\u0107, ej, s\u0142uchajcie, tutaj zosta\u0142a jaka\u015b zmiana wprowadzona, a jeszcze jej nie macie na ten wersji. Mo\u017ce trzeba co\u015b w tym zrobi\u0107. No i dooko\u0142a tego zbudowali\u015bmy sobie taki fajny bildchain, stworzyli\u015bmy sobie nawet dedykowany komponent, kt\u00f3ry generowa\u0142 nam raz, bodaj\u017ce, na dzie\u0144 albo raz na tydzie\u0144 raporty dotycz\u0105ce wszystkich projekt\u00f3w, no a poza tym ka\u017cdy projekt mia\u0142 ten plugin wpi\u0119ty z osobna. I my\u015bl\u0119, \u017ce do ko\u0144ca istnienia tych projekt\u00f3w na SVN-ie, to zrobi\u0142o nam grub\u0105 robot\u0119. Oczywi\u015bcie po latach przeszli\u015bmy do wspierania tylko najnowszych, naj\u015bwie\u017cszych wersji, co nam znacznie upro\u015bci\u0142o proces. Natomiast no dzi\u0119ki Przemkowi, pozdrawiam go serdecznie, je\u015bli nas s\u0142ucha, mieli\u015bmy z g\u00f3rki i to przez kilka \u0142adnych lat.\u00a0<br><strong>Jacek Panachida:<\/strong> Te\u017c mi si\u0119 od razu skojarzy\u0142o, \u017ce dobry programista to jest osoba, kt\u00f3ra stawia sobie wyzwania, a jednocze\u015bnie unika tej powtarzalno\u015bci. Wspomnia\u0142e\u015b jeszcze o automatyzacji. Natomiast s\u0105 znane r\u00f3wnie\u017c inne techniki, kt\u00f3re sprawiaj\u0105, \u017ce praca staje si\u0119 bardziej przyjemna i bardziej efektywna. Taka z jednych, kolejnych rzeczy, kt\u00f3ra mi przychodzi do g\u0142owy, to jest po prostu znajomo\u015b\u0107 narz\u0119dzi, z kt\u00f3rych si\u0119 korzysta. To znaczy na przyk\u0142ad \u015brodowiska programistyczne, kt\u00f3re mamy dost\u0119pne obecnie obfituj\u0105 w r\u00f3\u017cnego rodzaju funkcje. Niezwykle istotne jest to, \u017ceby je pozna\u0107 i rzeczywi\u015bcie m\u00f3c je efektywnie stosowa\u0107. Ja wspomnia\u0142em tutaj tylko o \u015brodowisku programistycznym. Natomiast ta sama zasada w\u0142a\u015bciwie odnosi si\u0119 do r\u00f3\u017cnych framework\u00f3w, bibliotek, system\u00f3w, kt\u00f3re mog\u0119 by\u0107 u\u017cywane do tworzenia, wytwarzania oprogramowania. Albo gotowych narz\u0119dzi, czy gotowych system\u00f3w, z kt\u00f3rych korzystamy, jako cz\u0119\u015b\u0107 sk\u0142adowa.<br><strong>Bartek Gajowczyk:<\/strong> Wiesz co? Jak najbardziej si\u0119 zgodz\u0119 z tym. Dlatego te\u017c bardzo promuj\u0119 pair programming i to w ka\u017cdej mo\u017cliwej formie. Wiadomo, odk\u0105d przyszed\u0142 COVID bardzo mocny jest nacisk na prac\u0119 zdaln\u0105 i w og\u00f3le bardzo du\u017ca ch\u0119\u0107 pracy zdalnej. Natomiast moim zdaniem taki pair programming w formie fizycznej to jest \u015bwietna sprawa, bo nie raz zdarzy\u0142o mi si\u0119 siedzie\u0107 ko\u0142o jakiego\u015b w\u0142a\u015bnie bardziej do\u015bwiadczonego kolegi z zespo\u0142u, kt\u00f3ry po prostu w mgnieniu oka wstuka\u0142 par\u0119 skr\u00f3t\u00f3w klawiszowych i wygenerowa\u0142 sobie w \u015brodowisku programistycznym jakie\u015b rozwi\u0105zanie, albo du\u017co przyspieszy\u0142 analiz\u0119 kodu, albo w \u015bwietny spos\u00f3b potrafi\u0142 zdebugowa\u0107 rozwi\u0105zanie i zdebugowa\u0107 jak\u0105\u015b aplikacj\u0119. Znale\u017a\u0107 problem, rozwi\u0105za\u0107 problem produkcyjny. Tak\u017ce to s\u0105 rzeczy, oczywi\u015bcie mo\u017cna to robi\u0107 zdalnie i te\u017c robimy to zdalnie, natomiast to s\u0105 rzeczy, kt\u00f3re super wida\u0107 podczas programowania w parach. Dlatego ja bardzo lubi\u0119, zw\u0142aszcza jak jaka\u015b m\u0142oda osoba do\u0142\u0105cza do zespo\u0142u, podzieli\u0107 si\u0119 t\u0105 wiedz\u0105. Podzieli\u0107 si\u0119 do\u015bwiadczeniem. Ale nawet w\u015br\u00f3d bardzo zaawansowanych programist\u00f3w, architekt\u00f3w, zdarzy\u0142o nam si\u0119 po prostu na sesji jakiej\u015b wsp\u00f3lnej siedzie\u0107 i nagle takie po prostu zdziwienie wszystkich. Wow, jak ty to zrobi\u0142e\u015b? Cz\u0142owieku, podziel si\u0119 tym. No i okazuje si\u0119, \u017ce jest ca\u0142a masa trik\u00f3w, z kt\u00f3rych korzystamy. Czasem pewnie nawet nie\u015bwiadomie. Ale kt\u00f3re bardzo usprawniaj\u0105 prac\u0119. No i jedno to jest w\u0142a\u015bnie narz\u0119dzie, a drugie to jest framework, bo znajomo\u015b\u0107 taka dog\u0142\u0119bna rozwi\u0105zania pozwala naprawd\u0119, naprawd\u0119 w du\u017co lepszy spos\u00f3b napisa\u0107 sw\u00f3j w\u0142asny kod, dostarczy\u0107 co\u015b dla biznesu. I tutaj wydaje mi si\u0119, \u017ce mega istotne jest do\u015bwiadczenie.\u00a0<br><strong>Jacek Panachida:<\/strong> Tak jest. Te\u017c warto mo\u017ce zaznaczy\u0107, \u017ce ten dobry programista, kt\u00f3ry jest leniwym programist\u0105, ma \u015bwiadomo\u015b\u0107 tego, \u017ce jednak czas to jest zas\u00f3b ograniczony. Dlatego przede wszystkim skupia si\u0119 na rzeczach wa\u017cnych. Potrafi sobie pogrupowa\u0107 te rzeczy tak, \u017ceby m\u00f3c zacz\u0105\u0107 w\u0142a\u015bnie prac\u0119 od tych rzeczy najwa\u017cniejszych. Tak, \u017ceby p\u00f3\u017aniej m\u00f3c znale\u017a\u0107 czas na te wszystkie rzeczy, kt\u00f3re musi wykona\u0107. I tutaj wspomnia\u0142e\u015b te\u017c o tym, \u017ce praca dobrego programisty w wielu przypadkach skupia si\u0119 na komunikacji z innymi lud\u017ami. Ja te\u017c chcia\u0142bym to prze\u0142o\u017cy\u0107 mo\u017ce nad prac\u0119 nad systemem, wi\u0119c je\u017celi dokonujemy codziennych zmian w systemie w postaci commit\u00f3w, niezwykle wa\u017cne jest to, \u017ceby te zmiany, kt\u00f3re wprowadzamy by\u0142y jasne dla innych cz\u0142onk\u00f3w zespo\u0142u. To oczywi\u015bcie mo\u017ce sprowadza\u0107 si\u0119 do dobrego opisu tekstowego tej zmiany. Natomiast tutaj te\u017c wraz tutaj z podej\u015bciem Agile\u2019owym wa\u017cne na przyk\u0142ad jest dla mnie to, \u017ceby ka\u017cda wprowadzona zmiana mia\u0142a jak\u0105\u015b warto\u015b\u0107 biznesow\u0105. Tak, \u017ceby by\u0142a \u0142atwa do zrozumienia przez wszystkich cz\u0142onk\u00f3w zespo\u0142u, jak r\u00f3wnie\u017c p\u00f3\u017aniej przez naszych stakeholder\u00f3w.\u00a0<br><strong>Bartek Gajowczyk:<\/strong> No dobra. Czyli podsumowuj\u0105c, mamy clean code, mamy clean architecture, mamy procesy i narz\u0119dzia, kt\u00f3re nas w tym wspieraj\u0105, ale przede wszystkim ponad to mamy podej\u015bcie. I my\u015bl\u0119, \u017ce podej\u015bcie jest tutaj kluczowe. Takie dobre lenistwo, sprytne, sprawia, \u017ce te rozwi\u0105zania, nad kt\u00f3rymi pracujemy, mog\u0105 by\u0107 coraz to lepsze, coraz to szybsze. A je\u017celi nie, no to przynajmniej dowiezione w rozs\u0105dnym czasie i z wykorzystaniem optymalnego bud\u017cetu.\u00a0<br><strong>Jacek Panachida:<\/strong> Mi te\u017c wpad\u0142o w\u0142a\u015bnie do g\u0142owy takie mo\u017ce stwierdzenie, \u017ce jakby bycie dobrym programist\u0105, to jest w\u0142a\u015bnie szukanie takich element\u00f3w, kt\u00f3re sprawiaj\u0105 rado\u015b\u0107, czyli w\u0142a\u015bnie unikania takich nudnych. Czyli sprawienia, \u017ce w\u0142a\u015bciwie mamy wi\u0119ksz\u0105 kontrol\u0119 nad tym, co robimy. Czyli zamiast na przyk\u0142ad produkowanie r\u0119czne tych r\u00f3\u017cnych plik\u00f3w testowych, mo\u017cemy napisa\u0107 w ramach na przyk\u0142ad w innym jakim\u015b nowym j\u0119zyku programowania. Je\u017celi u\u017cywamy na co dzie\u0144 javy mo\u017cemy napisa\u0107 w\u0142a\u015bnie ten program w kotlinie, kt\u00f3ry nam generuje pliki. Moim zdaniem to jest jakby, daje nam poczucie takiej sprawczo\u015bci. Spycha, powiedzmy, t\u0105 nud\u0119 na bok i te\u017c no pozwala w\u0142a\u015bnie na automatyzacj\u0119 tego rozwi\u0105zania, no i zwi\u0119kszenie efektywno\u015bci.\u00a0<br><strong>Bartek Gajowczyk:<\/strong> No rutyna nigdy nie jest dobra. Rutyna i taka nuda wynikaj\u0105ca z powtarzalno\u015bci. Ja spotka\u0142em na swojej drodze my\u015bl\u0119, \u017ce dwa rodzaje programist\u00f3w. Osoby, kt\u00f3re s\u0105 leniwe \u017ale, tak negatywnie i po prostu chc\u0105 szybko zrobi\u0107 \u0142atwym kosztem swoje zadanie, ale na zasadzie odb\u0119bni\u0107 je. No wi\u0119c zajrz\u0105 sobie na jaki\u015b ju\u017c istniej\u0105ce rozwi\u0105zanie, skopiuj\u0105 je, wklej\u0105 gdzie\u015b. Niespecjalnie zastanowi\u0105 si\u0119 nad tym. No i spotka\u0142em na swojej drodze te\u017c ludzi takich leniwych pozytywnie, kt\u00f3rzy te\u017c zajrz\u0105 na to rozwi\u0105zanie, por\u00f3wnaj\u0105 i zastanowi\u0105 si\u0119, czy mo\u017cna wyci\u0105gn\u0105\u0107 cz\u0119\u015bci wsp\u00f3lne, bo teraz przysz\u0142o takie wymaganie. Tak naprawd\u0119 p\u00f3\u0142 roku temu mieli\u015bmy podobne wymaganie, wi\u0119c to ju\u017c jest drugi raz, gdzie musimy co\u015b zmieni\u0107. To mo\u017ce warto tutaj pewn\u0105 warstw\u0119 abstrakcji zrobi\u0107, a mo\u017ce warto to jako\u015b przepisa\u0107? No i wtedy pojawiaj\u0105 si\u0119 pomys\u0142y, kt\u00f3re rzeczywi\u015bcie usprawniaj\u0105 prac\u0119. Tak\u017ce jak najbardziej trzeba troch\u0119 sp\u0119dzi\u0107 czasu na g\u0142\u00f3wkowaniu i potem do przodu, bo efekty naprawd\u0119, naprawd\u0119 mog\u0105 by\u0107 super.<br><strong>Jacek Panachida:<\/strong> Id\u0105c dalej mo\u017cna powiedzie\u0107, \u017ce bycie leniwym programist\u0105 to jest ograniczenie sobie zb\u0119dnej pracy. To znaczy przed implementacj\u0105 jakie\u015b nowej funkcji w systemie niezwykle wa\u017cne jest to, by pozna\u0107 wszystkie wymagania funkcjonalne i niefunkcjonalne. I dopiero wtedy, gdy te wymagania, a mo\u017cna powiedzie\u0107 spe\u0142niaj\u0105 definition of ready, mo\u017cna przyst\u0105pi\u0107 wtedy do pracy. Po prostu gdy ma si\u0119 pe\u0142ne zrozumienie problemu. Albo mo\u017cna te cz\u0119\u015bci zmienne po prostu enkapsulowa\u0107. Wiedz\u0105c, \u017ce potencjalnie one mog\u0105 si\u0119 zmieni\u0107 w przysz\u0142o\u015bci. Czyli zbytnio nie usztywni\u0107 tych element\u00f3w. I to wszystko przychodzi po cz\u0119\u015bci z do\u015bwiadczeniem, ale te\u017c jest wynikiem po prostu rozm\u00f3w albo z cz\u0142onkami zespo\u0142u albo w\u0142a\u015bnie z klientem.<br><strong>Bartek Gajowczyk:<\/strong> Szczerze m\u00f3wi\u0105c ja nie raz si\u0119 przejecha\u0142em na takich zewn\u0119trznych zale\u017cno\u015bciach, czyli fragmencie kodu, biblioteki, kt\u00f3ry gdzie\u015b tam do nas zosta\u0142 dostarczony i zdecydowali\u015bmy si\u0119 go wpi\u0105\u0107 bez jakiej\u015b enkapsulacji, bez dodatkowej warstwy abstrakcji. A potem okaza\u0142o si\u0119, \u017ce mamy straszne problemu z nim, czy to z samym testowaniem. Chyba ka\u017cdy programista lubi sobie ponarzeka\u0107 na rokowania statycznych wywo\u0142a\u0144, albo finalnych wywo\u0142a\u0144. I w ostatnim czasie po prostu, je\u017celi gdzie\u015b co\u015b takiego widzimy w projektach, to unikamy jak ognia, bo wiemy, \u017ce s\u0105 z tym problemy i to ju\u017c do\u015bwiadczenie pokazuje, \u017ce nie ma co pcha\u0107 si\u0119 w\u0142a\u015bnie w t\u0105 stron\u0119. Lepiej rzeczywi\u015bcie troszk\u0119 wyabstrahowa\u0107, troch\u0119 si\u0119 odci\u0105\u0107 i mie\u0107 pe\u0142n\u0105 kontrol\u0119 nad tym, co si\u0119 dowozi. No ale tak jak wspomnia\u0142e\u015b, to nie od razu Rzym zbudowano. Troch\u0119 trzeba do\u015bwiadczenia albo wsparcia kogo\u015b z boku, kto jednak swoje ju\u017c prze\u017cy\u0142. Swoje na \u015bcie\u017cce programistycznej przeszed\u0142 i mo\u017ce pochwali\u0107 si\u0119 tym wyczuciem i do\u015bwiadczeniem.\u00a0<br><strong>Jacek Panachida:<\/strong> Je\u017celi wspomnia\u0142e\u015b o pracy w grupie, niezwykle wa\u017cnym dla mnie aspektem jest dokumentacja. A i ta dokumentacja mo\u017ce mie\u0107 r\u00f3\u017cn\u0105 form\u0119. Mo\u017ce mie\u0107 posta\u0107 dokumentacji w kodzie, na przyk\u0142ad w javie za pomoc\u0105 java dok\u00f3w. Natomiast r\u00f3wnie\u017c stosujemy dokumentacj\u0119 na przyk\u0142ad architektury zastosowanych rozwi\u0105za\u0107 b\u0105d\u017a proces\u00f3w, kt\u00f3re nie zosta\u0142y jeszcze zautomatyzowane, b\u0105d\u017a trudno je tak naprawd\u0119 zautomatyzowa\u0107. I dla mnie wa\u017cne, jako odbiorcy, kt\u00f3ry czyta t\u0105 dokumentacj\u0119, b\u0105d\u017a tworzy, jest przygotowanie jej w niezwykle ustrukturyzowanej formie. Tak, \u017ceby by\u0142a przyjemna dla u\u017cytkownika. Tak, \u017ceby osoba nawet nie zaznajomiona z tym tematem mog\u0142a go, powiedzmy, mo\u017cna powiedzie\u0107 w spos\u00f3b leniwy przeczyta\u0107 krok po kroku od pocz\u0105tku do ko\u0144ca. I b\u0119d\u0105c pewna, \u017ce te wszystkie wykonane kroki po drodze doprowadz\u0105 j\u0105 do prawid\u0142owego rozwi\u0105zania. Wi\u0119c ja zawsze upatruj\u0119, \u017ce gotowe rozwi\u0105zanie sk\u0142ada si\u0119 nie tylko z kodu, ale r\u00f3wnie\u017c z odpowiednich test\u00f3w, jak i dokumentacji. I dopiero te trzy elementy stanowi\u0105 warto\u015b\u0107 dla klienta, ale r\u00f3wnie\u017c dla pozosta\u0142ych cz\u0142onk\u00f3w zespo\u0142u.\u00a0<br><strong>Bartek Gajowczyk:<\/strong> Z t\u0105 dokumentacj\u0105 to jest ciekawa sprawa, no bo wiadomo, programi\u015bci uwielbiaj\u0105 tworzy\u0107 tony dokumentacji. Natomiast musz\u0119 powiedzie\u0107, \u017ce nie jest tak \u017ale, bo to lenistwo w przypadku dokumentacji te\u017c si\u0119 ca\u0142kiem fajnie zako\u0144czy\u0142o. Znaczy zako\u0144czy\u0142o, no to ca\u0142y czas si\u0119 dzieje, ale s\u0105 narz\u0119dzia na rynku, kt\u00f3re i to pozwalaj\u0105 zautomatyzowa\u0107. Ostatnio jak by\u0142em na konferencji JDD w Krakowie, to w\u0142a\u015bnie by\u0142a prelekcja dotycz\u0105ca mi\u0119dzy innymi automatyzacji dokumentacji dotycz\u0105cej bazy danych. Nie pami\u0119tam dok\u0142adnie szczeg\u00f3\u0142\u00f3w teraz, natomiast, je\u017celi kto\u015b jest zainteresowany, to mo\u017ce sobie poszuka\u0107 tego typu rozwi\u0105za\u0144 i sprawdzi\u0107 jak to mo\u017cna sobie zmieniaj\u0105cy si\u0119 model bazy danych \u0142atwo wygenerowa\u0107 przy u\u017cyciu odpowiednich narz\u0119dzi i zapomnie\u0107 o tym, \u017ce jakie\u015b diagramy maj\u0105 si\u0119 pojawia\u0107. Je\u017celi tak jest akurat wymaganie klienta. No bo to wszystko da si\u0119 w sensowny spos\u00f3b zautomatyzowa\u0107. Tak\u017ce ka\u017cde powtarzalne czynno\u015bci nale\u017cy pami\u0119ta\u0107, \u017ce zawsze jest na nie spos\u00f3b. Trzeba tylko chwil\u0119 si\u0119 zastanowi\u0107 i na pewno b\u0119dzie sensowna droga do dowiezienia tego.<br><strong>Jacek Panachida:<\/strong> Tak jest. Tutaj, je\u017celi chodzi o temat bycia leniwym programist\u0105, to przyszed\u0142 mi te\u017c r\u00f3wnie\u017c do g\u0142owy spos\u00f3b podejmowania, czy dostarczania rozwi\u0105zania. Jest takie znane powiedzenie, \u017ce w\u0142a\u015bciwie raz zrobiona robota, to dobra robota, tak? Czyli ten dobry programista, kt\u00f3ry jest leniwym programist\u0105 nie wraca ju\u017c do tego, co zosta\u0142o stworzone. To znaczy ma pewno\u015b\u0107, \u017ce to, co zosta\u0142o dostarczone do tej pory jest dobre, zosta\u0142o zweryfikowane, ma jak\u0105\u015b warto\u015b\u0107. No i wie, \u017ce mo\u017ce si\u0119 skupi\u0107 na dalszych rzeczach. A to, co ju\u017c dostarczy\u0142 mo\u017ce stanowi\u0107 fundament dla innych do dalszego jakby rozwoju na przyk\u0142ad systemu.<br><strong>Bartek Gajowczyk:<\/strong> No jak najbardziej, my\u015bl\u0119, \u017ce takie poczucie, tudzie\u017c prze\u015bwiadczenie o dowiezieniu, o zako\u0144czeniu pewnego etapu, o zrealizowaniu zadania jest na pewno buduj\u0105ce. Ale id\u0105c Agile\u2019owym tropem bym powiedzia\u0142 continuous refactoring, to jest co\u015b, co nigdy si\u0119 nie powinno ko\u0144czy\u0107. My nie powinni\u015bmy osiada\u0107 na laurach i tak naprawd\u0119 zamra\u017ca\u0107 jakiegokolwiek fragmentu kodu. Chyba, \u017ce nie ma \u017cadnej potrzeby. S\u0105 takie biblioteki, kt\u00f3re, chocia\u017cby w Apache Commons od 10 lat si\u0119 nie zmieni\u0142y. No bo nie ma takiej potrzeby. One robi\u0105 swoje i maj\u0105 robi\u0107 tylko tyle, co wtedy zaimplementowano i to jest okej. Natomiast w wi\u0119kszo\u015bci jakich\u015b takich bardziej zaawansowanych biznesowych rozwi\u0105za\u0144 wszystko ewoluuje i trzeba si\u0119 z tym pogodzi\u0107. No i nie ba\u0107 si\u0119. Nie ba\u0107 si\u0119 dotyka\u0107 czego\u015b, zmienia\u0107, usprawnia\u0107. W miar\u0119 potrzeb oczywi\u015bcie.<br><strong>Jacek Panachida:<\/strong> I tutaj my\u015bl\u0119, \u017ce ogromn\u0105 rol\u0119 odgrywa automatyzacja. Natomiast ju\u017c na poziomie integracji i dostarczania oprogramowania na produkcj\u0119. Czyli tutaj m\u00f3wi\u0119 konkretnie o rozwi\u0105zaniach CICD, kt\u00f3re odpowiednio napisane sprawiaj\u0105, \u017ce programi\u015bci w\u0142a\u015bnie nie boj\u0105 si\u0119 podj\u0105\u0107 zmian w systemie, wiedz\u0105, czy maj\u0105 jakby zwi\u0119kszon\u0105 pewno\u015b\u0107 tego, \u017ce zmiany, kt\u00f3re dokonuj\u0105 s\u0105 testowane po drodze zanim trafi\u0105 na produkcj\u0119. Na przyk\u0142ad w jednym z obecnych system\u00f3w mamy zaimplementowane quality gatesy, kt\u00f3re weryfikuj\u0105 na bie\u017c\u0105co kod pod wzgl\u0119dem metryk. Daj\u0105 nam zna\u0107, gdy nast\u0105pi jaki\u015b b\u0142\u0105d, powiedzmy po naszej stronie, kt\u00f3ry wymaga naszej uwagi.\u00a0<br><strong>Bartek Gajowczyk:<\/strong> Pipeline\u2019y, wszelkiego rodzaju rozwi\u0105zania buildowe robi\u0105 du\u017c\u0105 r\u00f3\u017cnic\u0119 w por\u00f3wnaniu z jakimi\u015b takimi manualnymi podej\u015bciami. Mi si\u0119 wydaje, \u017ce to jest obecnie standard, ale wiem, \u017ce s\u0105 jeszcze projekty, gdzie nie jest tak g\u0142adko i nie s\u0105 w pe\u0142ni rozwi\u0105zania CICD zaimplementowane, ale naprawd\u0119 to daje du\u017cy spok\u00f3j. Spokojn\u0105 g\u0142ow\u0119, bo nie musimy si\u0119 po pierwsze ba\u0107, \u017ce nasza zmiana co\u015b namiesza. No mamy to otestowane jednostkowo, integracyjnie. Idealnie by by\u0142o, \u017ceby to jeszcze lecia\u0142o sobie przez wszystkie stage\u2019a, no i je\u017celi mamy dobrze napisane regu\u0142y, no to niech leci kod na produkcj\u0119. Czemu nie? Tak\u017ce dobry przep\u0142yw, continuous integration, continous delivery, continous deployment, jak najbardziej pomaga. I my\u015bl\u0119, \u017ce te\u017c daje dodatkowe poczucie satysfakcji, bo nie tylko widzimy jak si\u0119 testy odpalaj\u0105, nie tylko sprawdzamy sobie lokalnie na naszej maszynie, tudzie\u017c na jakim\u015b testowym serwerze, jak rozwi\u0105zanie dzia\u0142a, tylko widzimy, \u017ce to przechodzi przez te wszystkie etapy i mo\u017cemy si\u0119 cieszy\u0107, \u017ce jest zielono. O ile jest. No ale \u017cycz\u0119 wszystkim, \u017ceby by\u0142o.<br><strong>Jacek Panachida:<\/strong> Tutaj te\u017c w temacie w\u0142a\u015bnie bycia tym leniwym programist\u0105, \u015bwietnie wpisuje si\u0119 spos\u00f3b tworzenia test\u00f3w jednostkowych. To znaczy piszemy tak ma\u0142o kodu, jak to jest tylko mo\u017cliwe, \u017ceby te testy, poprawne testy przesz\u0142y, tak? I my\u015bl\u0119, \u017ce to te\u017c jest niezwyk\u0142a warto\u015b\u0107, kt\u00f3r\u0105 powinien si\u0119 kierowa\u0107 dobry programista. I w\u0142a\u015bnie uskuteczniana za pomoc\u0105 sposobu tworzenia oprogramowania po\u0142\u0105czonego z testowaniem jednostkowym.<br><strong>Bartek Gajowczyk:<\/strong> No dobra. Wiemy jak to wszystko si\u0119 robi, albo jak powinno si\u0119 robi\u0107. Natomiast zastanawiam si\u0119, co nam przyniesie przysz\u0142o\u015b\u0107? Jacku, jak my\u015blisz, jakie zmiany nas czekaj\u0105 albo co w najbli\u017cszym czasie mo\u017ce si\u0119 zmieni\u0107 na rynku? Albo jakie rozwi\u0105zania mog\u0105 pom\u00f3c wszystkim programist\u0105 rozkoszowa\u0107 si\u0119 tym b\u0142ogim lenistwem?\u00a0<br><strong>Jacek Panachida:<\/strong> Wi\u0119c pierwsze co przychodzi mi do g\u0142owy to s\u0105 rozwi\u0105zania typu AI, machine learning i w\u0142a\u015bnie jedno z tych rozwi\u0105za\u0144 zastosowali\u015bmy w naszym ostatnim projekcie. To znaczy wiele weryfikacji, kt\u00f3re by\u0142y dokonywane przez ludzi zast\u0105pili\u015bmy przez, poprzez modele machine learningowe i dzi\u0119ki temu znie\u015bli\u015bmy nie tylko liczb\u0119 tych nieprawid\u0142owych odpowiedzi, ale r\u00f3wnie\u017c odci\u0105\u017cyli\u015bmy ludzi, kt\u00f3rzy robili te weryfikacje. A jednocze\u015bnie w du\u017co kr\u00f3tszym czasie byli\u015bmy w stanie udzieli\u0107 tych wszystkich odpowiedzi i zwr\u00f3ci\u0107 je do kolejnego systemu. Wi\u0119c tak naprawd\u0119 my\u015bl\u0119, \u017ce to jest bardzo dobry przyk\u0142ad takiego rozwi\u0105zania, kt\u00f3re pozwala odci\u0105\u017cy\u0107 ludzi takimi powtarzalnymi zadaniami. Drugi pomys\u0142, kt\u00f3ry przychodzi mi do g\u0142owy jest po prostu wirtualna rzeczywisto\u015b\u0107. Wielokrotnie w pracy pomog\u0142aby mi podczas wizualizacji poszczeg\u00f3lnych element\u00f3w system\u00f3w, czy nawet ca\u0142ych system\u00f3w. Ja chcia\u0142bym mie\u0107 mo\u017cliwo\u015b\u0107 w\u0142a\u015bnie przedstawienia tego, jak system dzia\u0142a w 3D. jak systemy si\u0119 ze sob\u0105 komunikuj\u0105, jakie dane przetwarzaj\u0105, z jak\u0105 pr\u0119dko\u015bci\u0105, jakie istniej\u0105 pomi\u0119dzy nimi powi\u0105zania. To obecnie funkcjonuje, to znaczy mo\u017cna generowa\u0107 r\u00f3\u017cnego rodzaju raporty, natomiast my\u015bl\u0119, \u017ce taka w\u0142a\u015bnie mo\u017cliwo\u015b\u0107 zapoznania si\u0119 z tymi informacjami w formie 3D ogromnie u\u0142atwia\u0142aby mi prac\u0119.<br><strong>Bartek Gajowczyk:<\/strong> Jak najbardziej si\u0119 tutaj zgodz\u0119 z tob\u0105. Takie koncepcje, kt\u00f3re znamy, czy to z film\u00f3w, czy z ksi\u0105\u017cek Stanis\u0142awa Lema, to wcale nie jest pie\u015b\u0144 przysz\u0142o\u015bci. To jest co\u015b, co si\u0119 ju\u017c dzieje. No ja my\u015bl\u0119, \u017ce niewiele nam potrzeba, \u017ceby ju\u017c ca\u0142kiem nied\u0142ugo skorzysta\u0107 z rozwi\u0105za\u0144, kt\u00f3re pozwol\u0105 nam zastosowa\u0107 augmented reality, wizualizacje. Co\u015b, co znamy chocia\u017cby, nie wiem, z urz\u0105dzania domu, bo my\u015bl\u0119, \u017ce to jest standardowe rozwi\u0105zanie, jak kto\u015b pr\u00f3buje urz\u0105dzi\u0107 sobie mieszkanie. Zamawia u architekta wizualizacj\u0119, no \u017ceby wiedzie\u0107 jak to jednak b\u0119dzie w 3D wygl\u0105da\u0142o. No i tak jak wspomnia\u0142e\u015b, je\u017celi by\u015bmy w\u0142a\u015bnie mogli zamiast spogl\u0105da\u0107 na papierki, na jakie\u015b diagramy, kt\u00f3re s\u0105 do\u015b\u0107 p\u0142askie, zanurzy\u0107 si\u0119 w tej wirtualnej rzeczywisto\u015bci i pochodzi\u0107 sobie mi\u0119dzy komponentami w taki spos\u00f3b interaktywny, no to pozwoli\u0142oby nam du\u017co lepiej, raz, \u017ce zrozumie\u0107 system, a dwa, \u017ce wyt\u0142umaczy\u0107 jego dzia\u0142anie wszystkim ludziom. Szczeg\u00f3lnie tym mniej technicznym. No bo wiadomo, programista, architekt, analityk, doskonale sobie radz\u0105 w tym swoim obszarze, ale ju\u017c u\u017cytkownik ko\u0144cowy, cz\u0142owiek z biznesu, osoba z marketingu, kto\u015b, kto to sprzedaje, mened\u017cer, nie maj\u0105 takiej technicznej p\u0142ynno\u015bci. A taki dodatkowy bodziec, czyli to dzia\u0142anie na wzrok, my\u015bl\u0119, \u017ce na pewno pomo\u017ce w odbiorze i w zrozumieniu. Dobra. Fajnie nam si\u0119 rozmawia\u0142o Jacku. Dzi\u0119kuj\u0119 ci bardzo za udzia\u0142. Rok temu ty mnie zaprosi\u0142e\u015b do innej dyskusji, te\u017c oko\u0142o architektonicznej. Tak\u017ce ciesz\u0119 si\u0119, \u017ce mog\u0142em ja si\u0119 zrewan\u017cowa\u0107 i porozmawia\u0107 na te\u017c mo\u017ce podobne tematy, ale w troch\u0119 innym tonie. Mam nadziej\u0119, \u017ce jeszcze kiedy\u015b co\u015b nam razem uda si\u0119 zrobi\u0107. Dzi\u0119ki wielkie, no i wszystkich s\u0142uchaczy pozdrawiam i \u017cycz\u0119 b\u0142ogiego lenistwa w programowaniu.\u00a0<br><strong>Jacek Panachida: <\/strong>Dzi\u0119kuj\u0119 Bartku za zaproszenie. By\u0142o mi niezwykle mi\u0142o porozmawia\u0107 na tematy dla mnie wa\u017cne. Czyli tematy zwi\u0105zane z byciem dobrym programist\u0105. Z mo\u017cliwo\u015bci\u0105 rozwoju na tej \u015bcie\u017cce. Om\u00f3wili\u015bmy tutaj wiele, wiele temat\u00f3w, kt\u00f3re mam nadziej\u0119 oka\u017c\u0105 si\u0119 przydatne dla naszych s\u0142uchaczy. No i r\u00f3wnie\u017c dzi\u0119kuj\u0119 za udzia\u0142 w tym podca\u015bcie.\u00a0<br><strong>Bartek Gajowczyk:<\/strong> Do dalszej lektury polecam Githuba, jak i blog Daniela Pokusy, na kt\u00f3rym porusza on tematy zwi\u0105zane z wydajno\u015bci\u0105, z automatyzacj\u0105, z usprawnieniami w kodowaniu. No i zw\u0142aszcza materia\u0142em godnym polecenia b\u0119dzie jego pomys\u0142 na usprawnienie efektywno\u015bci w wykorzystywaniu terminala linuxowego.\u00a0<br><strong>Jacek Panachida:<\/strong> Ja polecam ksi\u0105\u017ck\u0119 Andrew Hampta \u201cPragmatyczny programista. Od czeladnika do mistrza\u201d. Jest to ksi\u0105\u017cka, kt\u00f3ra opisuje w przyst\u0119pny spos\u00f3b r\u00f3\u017cne sposoby, kt\u00f3re pomagaj\u0105 sta\u0107 si\u0119 lepszym programist\u0105. Pokazuje na konkretnych przyk\u0142adach, jak mo\u017cemy dostarcza\u0107 lepsze oprogramowanie. Oprogramowanie, kt\u00f3re b\u0119dzie bardziej zrozumia\u0142e dla u\u017cytkownik\u00f3w. Drug\u0105 pozycj\u0105 jest ksi\u0105\u017cka z zakresu psychologii Daniela Kahnemana \u201cO pu\u0142apkach my\u015blenia, o my\u015bleniu szybkim i wolnym.\u201d Jest to niezwykle bogata pozycja, kt\u00f3ra porusza wiele temat\u00f3w. Natomiast, je\u017celi chodzi o nasz dzisiejszy temat, to ja my\u015bl\u0119, \u017ce w bardzo fajny spos\u00f3b obrazuje spos\u00f3b w jaki my\u015blimy. W jaki podejmujemy decyzje. I tutaj my\u015bl\u0119, \u017ce wiele os\u00f3b mog\u0142oby by\u0107 zainteresowanych tym, w jaki spos\u00f3b dzia\u0142a nasz m\u00f3zg i w\u0142a\u015bnie kiedy pozwalamy sobie na zbytnie lenistwo, a kiedy to lenistwo jest wr\u0119cz po\u017c\u0105dane.\u00a0<br><\/p><div class=\"bg-color video-align-right\"><div class=\"container\"><div class=\"row video-align-left\"><div class=\"col-md-12\"><div class=\"video-align-left row box box--4 box--mini\"><div class=\"col-md-3\"><\/div><div class=\"col-md-8 box-img-wrapper\"><div class=\"video-box\"><\/div><\/div><\/div><\/div><\/div><\/div><\/div><div class=\"content-more\"><\/div><\/div><\/div><\/div><\/div>\n<\/div><\/div><\/section>\n<\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":413,"featured_media":0,"parent":700947,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"cg_dt_proposed_to":[],"cg_seo_hreflang_relations":"[]","cg_seo_canonical_relation":"","cg_seo_hreflang_x_default_relation":"{\"uuid\":\"a97cdae5-4139-4f3a-a40e-a85d5b0de12e\",\"blogId\":\"\",\"domain\":\"\",\"sitePath\":\"\",\"postLink\":\"\",\"postId\":null,\"isSaved\":true,\"isCrossLink\":false,\"hasCrossLink\":false}","cg_dt_approved_content":true,"cg_dt_mandatory_content":false,"cg_dt_notes":"","cg_dg_source_changed":false,"cg_dt_link_disabled":false,"_yoast_wpseo_primary_brand":"","footnotes":"","featured_focal_points":"","partner_card_description":"","gsap_animation":0},"brand":[],"partner_type":[],"service":[],"industry":[],"partners":[],"page-type":[],"content-group":[],"class_list":["post-704986","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.8 (Yoast SEO v22.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Odcinek 3. Czy dobry programista to leniwy programista? - Capgemini Poland<\/title>\n<meta name=\"description\" content=\"Odcinek 3. Czy dobry programista to leniwy programista?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Odcinek 3. Czy dobry programista to leniwy programista?\" \/>\n<meta property=\"og:description\" content=\"Odcinek 3. Czy dobry programista to leniwy programista?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/\" \/>\n<meta property=\"og:site_name\" content=\"Capgemini Poland\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-05T14:06:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prod.ucwe.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/\",\"url\":\"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/\",\"name\":\"Odcinek 3. Czy dobry programista to leniwy programista? - Capgemini Poland\",\"isPartOf\":{\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg\",\"datePublished\":\"2023-03-13T10:49:33+00:00\",\"dateModified\":\"2025-12-05T14:06:39+00:00\",\"description\":\"Odcinek 3. Czy dobry programista to leniwy programista?\",\"breadcrumb\":{\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/#primaryimage\",\"url\":\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg\",\"contentUrl\":\"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg\",\"width\":1080,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.capgemini.com\/pl-pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kariera\",\"item\":\"https:\/\/www.capgemini.com\/pl-pl\/kariera\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Podcast techchatter\",\"item\":\"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Odcinek 3. Czy dobry programista to leniwy programista?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.capgemini.com\/pl-pl\/#website\",\"url\":\"https:\/\/www.capgemini.com\/pl-pl\/\",\"name\":\"Capgemini Polska\",\"description\":\"Capgemini\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.capgemini.com\/pl-pl\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Odcinek 3. Czy dobry programista to leniwy programista? - Capgemini Poland","description":"Odcinek 3. Czy dobry programista to leniwy programista?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/","og_locale":"pl_PL","og_type":"article","og_title":"Odcinek 3. Czy dobry programista to leniwy programista?","og_description":"Odcinek 3. Czy dobry programista to leniwy programista?","og_url":"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/","og_site_name":"Capgemini Poland","article_modified_time":"2025-12-05T14:06:39+00:00","og_image":[{"url":"https:\/\/prod.ucwe.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/","url":"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/","name":"Odcinek 3. Czy dobry programista to leniwy programista? - Capgemini Poland","isPartOf":{"@id":"https:\/\/www.capgemini.com\/pl-pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/#primaryimage"},"image":{"@id":"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/#primaryimage"},"thumbnailUrl":"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg","datePublished":"2023-03-13T10:49:33+00:00","dateModified":"2025-12-05T14:06:39+00:00","description":"Odcinek 3. Czy dobry programista to leniwy programista?","breadcrumb":{"@id":"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/#primaryimage","url":"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg","contentUrl":"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/uploads\/sites\/27\/2023\/03\/TECHCHATTER-ODCIENK-3.jpg","width":1080,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.capgemini.com\/pl-pl\/"},{"@type":"ListItem","position":2,"name":"Kariera","item":"https:\/\/www.capgemini.com\/pl-pl\/kariera\/"},{"@type":"ListItem","position":3,"name":"Podcast techchatter","item":"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/"},{"@type":"ListItem","position":4,"name":"Odcinek 3. Czy dobry programista to leniwy programista?"}]},{"@type":"WebSite","@id":"https:\/\/www.capgemini.com\/pl-pl\/#website","url":"https:\/\/www.capgemini.com\/pl-pl\/","name":"Capgemini Polska","description":"Capgemini","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.capgemini.com\/pl-pl\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"}]}},"brand_term":[],"parsely":{"version":"1.1.0","canonical_url":"https:\/\/capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/","smart_links":{"inbound":0,"outbound":0},"traffic_boost_suggestions_count":0,"meta":{"@context":"https:\/\/schema.org","@type":"WebPage","headline":"Odcinek 3. Czy dobry programista to leniwy programista?","url":"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/","mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/"},"thumbnailUrl":"","image":{"@type":"ImageObject","url":""},"articleSection":"Uncategorized","author":[],"creator":[],"publisher":{"@type":"Organization","name":"Capgemini Poland","logo":""},"keywords":[],"dateCreated":"2023-03-13T10:49:33Z","datePublished":"2023-03-13T10:49:33Z","dateModified":"2025-12-05T14:06:39Z"},"rendered":"<meta name=\"parsely-title\" content=\"Odcinek 3. Czy dobry programista to leniwy programista?\" \/>\n<meta name=\"parsely-link\" content=\"https:\/\/www.capgemini.com\/pl-pl\/kariera\/twoja-kariera\/role-eksperckie-menedzerskie\/podcast-techchatter\/sezon2-odcinek3\/\" \/>\n<meta name=\"parsely-type\" content=\"index\" \/>\n<meta name=\"parsely-pub-date\" content=\"2023-03-13T10:49:33Z\" \/>\n<meta name=\"parsely-section\" content=\"Uncategorized\" \/>","tracker_url":"https:\/\/cdn.parsely.com\/keys\/capgemini.com\/p.js"},"archive_status":false,"featured_image_src":"https:\/\/www.capgemini.com\/pl-pl\/wp-content\/themes\/capgemini2025\/assets\/images\/mockup.png","featured_image_alt":false,"jetpack_sharing_enabled":true,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Capgemini Poland","distributor_original_site_url":"https:\/\/www.capgemini.com\/pl-pl","push-errors":false,"_links":{"self":[{"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/pages\/704986","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/users\/413"}],"replies":[{"embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/comments?post=704986"}],"version-history":[{"count":20,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/pages\/704986\/revisions"}],"predecessor-version":[{"id":913795,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/pages\/704986\/revisions\/913795"}],"up":[{"embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/pages\/700947"}],"wp:attachment":[{"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/media?parent=704986"}],"wp:term":[{"taxonomy":"brand","embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/brand?post=704986"},{"taxonomy":"partner_type","embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/partner_type?post=704986"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/service?post=704986"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/industry?post=704986"},{"taxonomy":"partners","embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/partners?post=704986"},{"taxonomy":"page-type","embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/page-type?post=704986"},{"taxonomy":"content-group","embeddable":true,"href":"https:\/\/www.capgemini.com\/pl-pl\/wp-json\/wp\/v2\/content-group?post=704986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}