{"id":699,"date":"2020-04-23T10:39:03","date_gmt":"2020-04-23T10:39:03","guid":{"rendered":"https:\/\/kalkus.dev\/?p=699"},"modified":"2023-08-24T23:25:31","modified_gmt":"2023-08-24T23:25:31","slug":"dlaczego-programisci-nie-lubia-szacowac-czasu-wykonania-zadania","status":"publish","type":"post","link":"https:\/\/kalkus.dev\/blog\/2020\/04\/23\/dlaczego-programisci-nie-lubia-szacowac-czasu-wykonania-zadania\/","title":{"rendered":"Dlaczego programi\u015bci nie lubi\u0105 szacowa\u0107 czasu wykonania zadania?"},"content":{"rendered":"\n<p>Do zadania tytu\u0142owego pytania i pr\u00f3by udzielenia na nie odpowiedzi sk\u0142oni\u0142 mnie ten artyku\u0142: <a href=\"https:\/\/wedlugplanu.pl\/zarzadzanie-projektami\/noestimate-manifest-wycen\/\">https:\/\/wedlugplanu.pl\/zarzadzanie-projektami\/noestimate-manifest-wycen\/<\/a> , w kt\u00f3rym autor odnosi si\u0119 do idei #noestimate, czyli postulatu porzucenia wyceny zada\u0144, Dla wielu os\u00f3b zabrzmi to pewnie, jak zgrzyt paznokci na tablicy i wierutna bzdura, ale prawd\u0119 m\u00f3wi\u0105c co\u015b jest moim zdaniem na rzeczy.<\/p>\n\n\n\n<p>Programi\u015bci oczywi\u015bcie wiedz\u0105, czemu nie lubi\u0105 wycenia\u0107 zada\u0144. Wydaje mi si\u0119 jednak, \u017ce osoby z biznesu mog\u0105 nie do ko\u0144ca rozumie\u0107 t\u0119 awersj\u0119 do deklarowania szacowanego czasu wykonania pracy&#8230;<\/p>\n\n\n\n<p><strong>Wstyd i poczucie winy<\/strong><\/p>\n\n\n\n<p>Zacz\u0105\u0142bym od tego, \u017ce spora cz\u0119\u015b\u0107 programist\u00f3w jest dobrymi, pracowitymi lud\u017ami. Taka osoba nie lubi rzuca\u0107 s\u0142\u00f3w na wiatr. Je\u015bli m\u00f3wi, \u017ce co\u015b zajmie tydzie\u0144, a okazuje si\u0119, \u017ce nie da si\u0119 go wykona\u0107, odczuwa negatywne emocje. Wstyd, poczucie braku wymaganych umiej\u0119tno\u015bci, wra\u017cenie, \u017ce si\u0119 kogo\u015b zawiod\u0142o. Rozwi\u0105zania w tej sytuacji s\u0105 dwa \u2013 odmowa udzielania kolejnych wycen lub ich zawy\u017canie.<\/p>\n\n\n\n<p><strong>Zadanie niemo\u017cliwe<\/strong><\/p>\n\n\n\n<p>Fundamentalny problem polega na tym, \u017ce w wielu przypadkach prawid\u0142owe wykonanie wyceny, oszacowanie czasu wykonania zadania jest po prostu niemo\u017cliwe.<\/p>\n\n\n\n<p>Kiedy kto\u015b zapyta nas, ile czasu zajmie nam przygotowanie kotleta schabowego, jeste\u015bmy w stanie odpowiedzie\u0107 w miar\u0119 konkretnie. Zak\u0142adamy przy tym, \u017ce mamy wszystkie sk\u0142adniki i nic si\u0119 nie wydarzy oraz \u017ce ju\u017c kiedy\u015b to robili\u015bmy.<\/p>\n\n\n\n<p>Zwr\u00f3\u0107my uwag\u0119 na te za\u0142o\u017cenia. Zastan\u00f3wmy si\u0119, co si\u0119 dzieje, gdy nie s\u0105 spe\u0142nione.<\/p>\n\n\n\n<p>Zaczynamy prac\u0119 nad schabowym. Oszacowali\u015bmy j\u0105 na 30 minut. Otwieramy lod\u00f3wk\u0119 i okazuje si\u0119, \u017ce mi\u0119so jest zepsute. Idziemy wi\u0119c do mi\u0119snego. Po 45 minutach wracamy z mi\u0119sem. M\u00f3wimy sobie \u2013 powinni\u015bmy o tym pomy\u015ble\u0107. Nauczeni na b\u0142\u0119dzie rozgl\u0105damy si\u0119 po kuchni i zastanawiamy si\u0119, co jest nam niezb\u0119dne. T\u0142uszcz, patelnia, kuchenka, panierka, t\u0142uczek, deska, jajka. Wydaje si\u0119, \u017ce wszystko mamy. Zaczynamy raz jeszcze. I nagle okazuje si\u0119, \u017ce mimo dobrego terminu przydatno\u015bci do spo\u017cycia wszystkie cztery jajka, jakie mieli\u015bmy w domu s\u0105 zepsute. Oczywi\u015bcie powinni\u015bmy mie\u0107 ich wi\u0119cej, mo\u017ce dwie paczki, my\u015blimy. Idziemy do sklepu i kupujemy jajka. &#8220;Zmarnowali\u015bmy&#8221; kolejne 30 minut, a jeszcze nie zacz\u0119li\u015bmy sma\u017cy\u0107 mi\u0119sa&#8230;<\/p>\n\n\n\n<p>Mamy nowe jajka. Mamy mi\u0119so. Mamy wszystko. Ubili\u015bmy mi\u0119so t\u0142uczkiem, obtoczyli\u015bmy w panierce. Zaczynamy sma\u017cy\u0107. I nie wierzymy w\u0142asnym oczom. Wy\u0142\u0105czono pr\u0105d.<\/p>\n\n\n\n<p>Na szcz\u0119\u015bcie tylko na 15 minut. W ko\u0144cu uda\u0142o si\u0119 co\u015b ugotowa\u0107. Z pocz\u0105tkowych 30 minut zrobi\u0142o si\u0119 jednak&#8230; ponad dwie godziny.<\/p>\n\n\n\n<p><strong>Rzetelna wycena<\/strong><\/p>\n\n\n\n<p>Zak\u0142adaj\u0105c, \u017ce chcieliby\u015bmy wykona\u0107 rzeteln\u0105 wycen\u0119 musieliby\u015bmy mie\u0107:<\/p>\n\n\n\n<ul><li>kompletn\u0105 specyfikacj\u0119 zadania, bez \u017cadnych niespodzianek i improwizacji<\/li><li>do\u015bwiadczenie w wykonywaniu analogicznych zada\u0144<\/li><li>znamy narz\u0119dzia i zale\u017cno\u015bci oraz system<\/li><li>wszystkie nasze zale\u017cno\u015bci ju\u017c istniej\u0105 i s\u0105 niezawodne<\/li><\/ul>\n\n\n\n<p>Do\u015bwiadczenie uczy, \u017ce nie tylko nie wszystko powy\u017csze udaje si\u0119 spe\u0142ni\u0107, lecz zwykle wr\u0119cz nic. Co wi\u0119cej zrealizowanie tak rzetelnej wyceny zajmuje ogrom czasu i jest po prostu dysfunkcjonalne.<\/p>\n\n\n\n<p><strong>Wsp\u00f3\u0142czynnik fi<\/strong><\/p>\n\n\n\n<p>Patrz\u0105c na powy\u017csze problemy pr\u00f3bujemy zatem wycen\u0119 zawy\u017cy\u0107. Niekt\u00f3rzy mno\u017c\u0105 przez dwa, inni przez wsp\u00f3\u0142czynnik fi, czy inne pi albo sta\u0142\u0105 Plancka. Nic to nie daje, bo jak niesko\u0144czono\u015b\u0107 mno\u017cona przez sta\u0142\u0105 daje niesko\u0144czono\u015b\u0107, tak iloraz \u2013 czy cho\u0107by iloczyn &#8211; niepewno\u015bci przez dowoln\u0105 liczb\u0119 r\u00f3wnie\u017c r\u00f3wna si\u0119 niepewno\u015bci.<\/p>\n\n\n\n<p><strong>Czy jest na tym bo\u017cym \u015bwiecie zadanie estymowalne?<\/strong><\/p>\n\n\n\n<p>Rozk\u0142adaj\u0105c ju\u017c r\u0119ce w \u017ca\u0142osnym ge\u015bcie zadajemy sobie powy\u017csze pytanie. I w zasadzie odpowied\u017a brzmi: tak. Owszem, w wielu scenariuszach da si\u0119 sensownie wycenia\u0107. Kiedy robimy kolejn\u0105 stron\u0119 wizyt\u00f3wk\u0119 w tej samej technologii, kiedy po edycji produktu tworzymy feature edycji kategorii w tym samym projekcie itp.<\/p>\n\n\n\n<p>Niestety jednak sposobu wyceny projekt\u00f3w nowych, nowych feature\u2019\u00f3w, implementacji w nieznanych frameworkach, wykonywanych przez nowo powsta\u0142e zepo\u0142y &#8211; nie ma. Po prostu nie ma.<\/p>\n\n\n\n<p><strong>Po co zatem szacowa\u0107?<\/strong><\/p>\n\n\n\n<p>Na koniec odnios\u0119 si\u0119 zn\u00f3w do wspomnianego na pocz\u0105tku artyku\u0142u. Wyja\u015bnia on dobrze do czego &#8211; mimo ich pozornego braku logiki i ich niedok\u0142adno\u015bci &#8211; potrzebne s\u0105 wyceny. Warto rzuci\u0107 okiem: <a href=\"https:\/\/wedlugplanu.pl\/zarzadzanie-projektami\/noestimate-manifest-wycen\/\">https:\/\/wedlugplanu.pl\/zarzadzanie-projektami\/noestimate-manifest-wycen\/<\/a><\/p>\n\n\n\n<p>W wielkim jednak skr\u00f3cie, by nie powtarza\u0107 niepotrzebnie argument\u00f3w, potrzebne s\u0105 do planowania biznesu, bud\u017cetowania i alokacji zasob\u00f3w. Mo\u017cemy si\u0119 w wycenie pomyli\u0107, cho\u0107by i dwukrotnie, wa\u017cne tylko, by nie o rz\u0105d wielko\u015bci, by z dw\u00f3ch godzin nie zrobi\u0142o si\u0119 godzin dwie\u015bcie. Warto o tym pami\u0119ta\u0107 zar\u00f3wno b\u0119d\u0105 programist\u0105, jak i zarz\u0105dzaj\u0105c projektem.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Do zadania tytu\u0142owego pytania i pr\u00f3by udzielenia na nie odpowiedzi sk\u0142oni\u0142 mnie ten artyku\u0142: https:\/\/wedlugplanu.pl\/zarzadzanie-projektami\/noestimate-manifest-wycen\/ , w kt\u00f3rym autor odnosi si\u0119 do idei #noestimate, czyli postulatu porzucenia wyceny zada\u0144, Dla wielu os\u00f3b zabrzmi to pewnie, jak zgrzyt paznokci na tablicy i wierutna bzdura, ale prawd\u0119 m\u00f3wi\u0105c co\u015b jest moim zdaniem na rzeczy. Programi\u015bci oczywi\u015bcie wiedz\u0105, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":705,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[103,204],"tags":[117,106,118,16,15],"_links":{"self":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/699"}],"collection":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/comments?post=699"}],"version-history":[{"count":10,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/699\/revisions"}],"predecessor-version":[{"id":725,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/699\/revisions\/725"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/media\/705"}],"wp:attachment":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/media?parent=699"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/categories?post=699"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/tags?post=699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}