Hogyan lehet programozásnál az időbecslést jól csinálni?
Nem mondta senki, hogy az egyetemen a programozás szakhoz előfeltétel az ezoterika OKJ vagy a jóslástan, esetleg a boszorkányság művészete, és mindenféle okkult szektákhoz kell belépni :) Vagy esetleg időgépet kell építeni hozzá :)
Alapvetően ezt az - egyébként roppant nehéz - feladatot nekem az egyetemen nem tanították. Olyan módszereket már hallottam, hogy veszed azt az értéket, amit gondolsz, majd azt kezded el megszorozgatni meg elosztogatni. De mit csináljon az, aki azt sem tudja, milyen értéket gondoljon? Hiszen rendben, veszel egy értéket, ami az egyszeri megoldáshoz kell (ez is csak egy random szám). De azt még úgyis átvariálják, megtoldják, összeakad valamivel, vagy érdemes refaktorálni adott idő után jobbról, balról, mert különben bizonytalan a működése, akkor még esetleg frissítgeted vagy háromszor hozzá a unit testet, meg még a tesztelő is talál vele valamit.
A legnagyobb problémám az, hogy annyira különböző programozási feladatokat kellett eddig mindig megoldanom, hogy még csak összehasonlítási alapom sem volt soha. És minden egyes alkalommal összekapódik a gyomrom, ha valaki ilyesmit kér, mert ebben csak és kizárólag hibázni lehet.
Ha túl alacsony óraszámot mond az ember, az a baj. (mert utána ki kellene elméletben dolgoznia a belét, sőt, ha annyira alacsony, akkor még túlórázásokkal és hétvégi munkával sem fogja tudni teljesíteni)
Ha túl magasat, akkor meg az. (hallottam olyat, hogy ha valaki túl magasat mondott, megkérdeztek mást, aki alacsonyabbat mondott - az mindegy, hogy meg is oldja-e annyi idő alatt - és aki sokat mondott, attól elköszöntek)
Pontosat meg lehetetlen mondani. Biztos vagyok benne, hogy még veterán fejlesztők sem mondanának jó becsléseket, ha totál új feladattípusokkal néznek szembe, amikre nem csinált előtte semmilyen kódot.
De azt gondolom - bár ezt sosem próbáltam - hogy megtagadom az időbecslést, és helyette a When it's done elvet követem, és legfeljebb kamerázzanak be, hogy dolgozok rendesen addig is.
Meg gondolom azt sem érdemes mondogatni, hogy "én ennyit mondok, de ne alapozz rá, mert amúgy fogalmam sincs", mert onnantól a junior aljának gondolják a fejlesztőt.
Szóval mi itt a jó megoldás?
10-es:
Átgondoltam, de nem nagyon látom, mit veszítene azzal a módszerrel a megrendelő.
A megrendelő ugyanannyi pénzt fizetne, mintha a becsült idő alatt végig fizette volna a programozót, sőt, lehet, hogy végül több pénze maradna meg.
A munka így is elkészülne, mert itt a "büntetése" a programozónak csak annyi lenne, hogy kevesebbet kapna egy idő után, ha rosszul becsülne. Amekkora hányadot becsült rosszul, annyival kevesebbet kap végül. De attól végig a projekten maradna, és a programozó inná meg így is a félrebecslés levét.
Nem csak annyi az érdeke a megrendelőnek, hogy minél kevesebb pénzért készüljön el a tervezett terméke? Mert ha igen, akkor ezt teljes mértékben teljesítené ez az ötlet.
Az az érdeke, hogy ár/érték arányban a legjobbat kapja. És itt az értékben benne van az, mikorra készül el, milyen a kód minősége, mekkora erőforrás kell a futáshoz, karbantartáshoz, MTBF meg még ezer dolog. Ez nem egy kiló krumpli, hogy csak az ár számít, hiszen amíg nem rohad, jólvanaz.
Ja, és te egy programozó vagy a sok közül, akik egy projekten dolgoznak. A te megildásod évekkel tolna ki egy projektet. Az pedig a megrendelőnek kőkemény bevételkiesés. Hiszen már termelhetne neki a sw, de nem teszi. Attól nem lesz jobb neki, hogy az ár ugyanannyi marad.
Mint mondtam, a projekt manager munkája épp arról szól, hogy a scope-határidő-projektcél háromszögében lavírozzon. Mindhárom fontos. Messze nem csak az ár.
5, 10
12-es:
"A te megildásod évekkel tolna ki egy projektet. "
Hát az ötletemmel, amit írtam, a programozó sem szeretne hónapokig vagy évekig éhbérért dolgozni, így az ő érdeke is lenne hamar befejezni a dolgot.
De akkor mondok jobbat:
Miért nincs egy olyan rendszer, amibe a világ minden tájáról programozók armadája tudna feladattípusok és technológiák címkéit megadni és becsléseket írni rá? Pl X részfeladat Y technológiával ennyi óra, más ugyanúgy tudna rá egy becslést mondani.
Így lenne egy rakás címke, minél több programozó hozzájárul a rendszerhez, annál több és részletesebb címkék születnének, amik szűrhetőek lennének, és adott idő után összegyűlne annyi, hogy egy projektet elég részletesen körül tudna írni, meg annak minden tervezett feladatát.
És az egyes címkékre adnak a programozók becsléseket. A sok címke becslése pedig összegződni tudna egy-egy projektre. Így a rendszer mondaná meg sok-sok programozó becsléséből, hogy kb mennyi idő alatt lehetne megoldani egy projektet tól-ig.
Nyilván hosszú idő alatt tökéletesedne a rendszer, sok idő, mire a címkékből annyira sok összegyűlik, hogy körül lehessen vele írni egy teljes projektet az összes feladattípusával (és h azok milyen technológiával készülnének, és ha azzal csinálják, akkor mennyi idő, stb.), de egy idő után szerintem nagyon szépen kirajzolna egy helyes időbecslést legalább a legtöbb típusfeladatra. Ha projektekre pontatlanabb is lenne az eredmény.
De szerintem ha nem sima időbecslés átlagolás, hanem valamiféle MI javítaná a megadott becsléseket, szerintem adott idő után mindenki ilyen rendszereket használna.
Állítom, hogy ez az időbecslő, jövőbe látó, jósolgató módszer sok év múlva már veszélyes és nem ajánlott módszer lesz, és ilyen rendszerek fognak úgy létezni, mint manapság a projektkezelő rendszerek.
14-es:
Hát mivel nem mond senki megoldást, amivel kicsit veszélytelenebbé válna a dolog, így szerintem érthető, hogy stresszelek rajta bőven.
A rutinszerzés egyedül az, ami tetszik, mint tanács. Szóval ha biztosra vehető, hogy X idő után ez jobban megy, akkor nincs baj.
Gyakorolni kellene fellengzősködés és arrogancia helyett és akkor el tudnád dönteni, hogy mi az, amit meg tudsz csinálni és neked az mennyi idő.
Nem vagyunk "JöVőBeLáTók", nem végeztünk "eZoTeRiKa OkJ-t" olyan rohadt érdekes, hogy mindenki más be tudja lőni ebben a rohadt szakmában, hogy mivel mennyi időt kell foglalkoznia, hogy eredményeket tudjon prezentálni, csak te nem.
Ha sok projekt múltbeli adatait megvizsgált, valóban pontosabb becslések is adhatnánk, mint most. Ez kb mindenre igaz az időjárástól a forgalomelőrejelzésig. Nyilvános adatbázis ehhez nem lesz, túl sok üzleti titkot kellene hozzá nyilvánossá tenni.
És igen, idővel jobb lesz, márpedig ha valamit pusztán az idő megold, azt úgy kell kezelni, mint egy megoldott problémát, hiszen nincs vele tennivaló.
16-os:
Köszönöm, akkor én elkezdek tervezni más szakmával, ha ennyire arrogánsnak meg fellengzősnek tartotok. És akkor legalább nem idegesítek fel senkit gyakorikérdéseken a kérdéseimmel.
Nem akartam semmi rosszat, csak nem igazán tudom, mit és hogyan gyakoroljak. De majd valahogy megoldom.
Köszönöm, akkor én elkezdek tervezni más szakmával, ha ennyire arrogánsnak meg fellengzősnek tartotok. És akkor legalább nem idegesítek fel senkit gyakorikérdéseken a kérdéseimmel.
buhum buhum. anyuci majd megvigasztal.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!