WN

WN (https://www.wn.se/forum/index.php)
-   Allmänt (https://www.wn.se/forum/forumdisplay.php?f=2)
-   -   Timmar per rader kod? (https://www.wn.se/forum/showthread.php?t=1048287)

linusoleander 2011-05-19 14:50

Timmar per rader kod?
 
Jag försöker estimera en tid som skett för en applikation baserat på antal rader kod som implementeras.

Enligt de siffrorna jag sett så tar det i snitt 1 timme per 5 rader kod som skrivis.

Är detta en bra estimering, eller är det någon som har en bättre?

Siffran är förmodligen baserat på tiden det tar att gå från ide till slutprodukt.

Droog 2011-05-19 15:16

Det är inte optimalt, för i slutändan så belönar man personer som skriver mycket kod istället för de som skriver ren och optimerad kod. Det är bättre att ta betalt för funktionalitet och kvalitét. Då tjänar båda parter på det då man vet vad man får betalt för.

Om en kodsnutt kan skrivas med tre rader kod, buggfritt, varför ska man då belöna någon för att de skriver samma funktionalitet på 100 rader med en massa buggar istället?

jonny 2011-05-19 18:30

Att faktiskt skriva koden är en mycket liten del av utvecklingsarbetet. Ditt exempel känns inte orimligt.

linusoleander 2011-05-19 19:12

Citat:

Ursprungligen postat av Droog (Inlägg 20405988)
Det är inte optimalt, för i slutändan så belönar man personer som skriver mycket kod istället för de som skriver ren och optimerad kod. Det är bättre att ta betalt för funktionalitet och kvalitét. Då tjänar båda parter på det då man vet vad man får betalt för.

Om en kodsnutt kan skrivas med tre rader kod, buggfritt, varför ska man då belöna någon för att de skriver samma funktionalitet på 100 rader med en massa buggar istället?

Nu handlade inte frågan om vad projektet var värt utan hur mycket tid som har lags ner på ett projekt. Jag försöker bara estimera hur mycket tid jag lagt ner på ett utav mina hobby-projekt, inget mer.

qson 2011-05-19 19:12

Räkneexemplet blir väldigt missvisande. Det skulle vara som att säga att mäta en snickares arbete efter antal spikar. Det mesta arbetet har ju inte med spikarna att göra. Dessutom kanske han i så fall använder fler spikar för att kunna ta mer betalt.
De stora delarna i applikationsutveckling är t.ex. planering, dokumentation och testning. Kodningen är som de andra skriver bara en liten del.

qson 2011-05-19 19:16

Citat:

Ursprungligen postat av linusoleander (Inlägg 20406022)
Nu handlade inte frågan om vad projektet var värt utan hur mycket tid som har lags ner på ett projekt. Jag försöker bara estimera hur mycket tid jag lagt ner på ett utav mina hobby-projekt, inget mer.

Jag tror ändå att det är svårt att estimera tidsåtgång i efterhand genom att kolla på antalet rader kod. Visserligen kan du ju jämföra med något annat du gjort (inte vad andra gjort eftersom andra kodar på annat sätt).

linusoleander 2011-05-19 19:28

Citat:

Ursprungligen postat av qson (Inlägg 20406023)
[...]De stora delarna i applikationsutveckling är t.ex. planering, dokumentation och testning. Kodningen är som de andra skriver bara en liten del.

Just därför är siffran så pass låg.

Har du någon annan statistik så får du gärna redovisa den.
Jag har bara hört lite siffror ryktesvägen.

Perben 2011-05-19 21:46

Jag skulle för tappa förtroendet och tekniska respekten för någon kollega eller uppdragsgivare som ens föreslår att räkna på rader kod. Hur stjärnorna står vid fullmånen eller hur kaffesumpen svirar sig är bättre. Med all välmening, tänk om!

Har personen som gjort koden absolut ingen uppfattning om hur många timmar han lagt ner? Förstod inte riktigt om koden var skriven redan.

linusoleander 2011-05-19 21:54

Citat:

Ursprungligen postat av Perben (Inlägg 20406035)
[...]Har personen som gjort koden absolut ingen uppfattning om hur många timmar han lagt ner? Förstod inte riktigt om koden var skriven redan.

Jag har ingen som helst koll på hur mycket tid jag lagd ner på mina hobbyprojekt, det är enligt min mening de som skiljer ett jobb från ett hobbyprojekt.

Tiden jag spenderar att planera kodbasen, före och under själva implementeringen är så oerhört hög, bra mycket större än vad man i många fall anar.

Själv har jag löst en hel del problem i duschen och på bussen, inte har jag en tanke på att räkna med den här tiden när någon frågar hur långt tid det tog att bygga projektet.

Conny Westh 2011-05-20 01:03

Jag deltog i ett projekt som bestod av ca 3 miljoner rader kod, och som tidsestimerat till 250 manår, men vi skrev det klart på 30 manår.

Det betyder ca 3 000 000 / (30*1200) dvs 3 000 000 / 36 000 dvs 83 rader /timme.
Det betyder ca 3 000 000 / (250*1200) dvs 3 000 000 / 300 000 dvs 10 rader /timme.
Systemet bestod av ca 555 tabeller i en relationsdatabas. Det betyder ca 65-540 timmar per databastabell.

Med andra ord så kan estimaten skilja sig en del beroende på hur komplex ett system är.

När man använder tumregler så är det bra att ha flera olika att jämföra med.

I fallet med 83 rader per timme så var 97% genererad kod.

När man estuimerar hur många timmar ett stsem har tagit att utveckla så behöver man veta massor av olika "metrics":

- hur många databastabeller
- Hur många Releationer mellan tabeller
- Hur många skärmar (indelade i minst 3 oliak sårighetsgrader)
- Hur många "functionpoints"
- Hur många "fält" för data, beräkningar m.m.
- Hur många "användningsfall"

Flera kan delas in i olkika svårighetsgrader.

Kaugesaar 2011-05-20 08:23

Skiljer ju otroligt mycket. I vissa fall kommer vi behöva använda oss utav algoritmer som består utav endast 1-3 rader. Men som kanske tar 3-4 timmar att lösa. Samtidigt kan vi ju mycket väl hinna med en enklare funktion med 150 rader på motsvarande tid.

Man får nog helt enkelt se till hur komplext systemet är som man har byggt.

MRDJ 2011-05-20 09:24

Citat:

Ursprungligen postat av linusoleander (Inlägg 20405982)
Jag försöker estimera en tid som skett för en applikation baserat på antal rader kod som implementeras.

Enligt de siffrorna jag sett så tar det i snitt 1 timme per 5 rader kod som skrivis.

Är detta en bra estimering, eller är det någon som har en bättre?

Siffran är förmodligen baserat på tiden det tar att gå från ide till slutprodukt.

Idag är ju utveckling mer än ren kod, det kan t.ex vara API:er "molnet" och då skriver man ju väldigt lite kod på klientsidan, så det går inte att räkna antalet rader kod.


Om du skall beräkna tid så bör du först och främst ta fram en detaljerad kravspecifikation, Efter det bryter man ner varje punkt och gör en beräkning av hur lång tid det tar att göra. I slutändan får ni då en ungefärlig siffra hur lång tid det tar att utveckla. Dubbla den siffran med 2 så har ni en ganska rimlig tid på hur låg tid det tar att utveckla.

Dessutom är ett stort antal rader kod ofta en indikation på att man byggt systemet fel. Desto mindre rader kod desto bättre system, så funkar det nuförtiden!

qson 2011-05-20 10:52

Vad TS är ute efter är att uppskatta hur mycket arbete han själv lagt ner på ett projekt.
Det är inte bra att räkna i antal rader kod, men för att få en rimlig måttstock kan du jämföra med ett annat projekt du själv gjort där du vet hur mycket tid du lagt ner. Om du då räknar ut tid per rad kod så kan du uppskatta ditt hobbyprojekt ganska bra. Detta förutsätter att det är du själv som har skrivit båda projekten. Det går inte att jämföra "rader kod per timma" mellan olika utvecklare. Det är också svårt att jämföra mellan olika projekt, men två liknande projekt med samma utvecklare bör ha samma ungefärliga tidsåtgång "per rad kod".
Det bästa är självklart att löpande föra anteckningar men det vet man ju hur kul det är när det är ett hobbyprojekt :p

pelmered 2011-05-20 12:11

Hur lång tid det tar per kodrad skiljer sig nog väldigt mycket mellan olika utvecklingsmetodiker(vissa fokuserar på att minimera slack, vissa på att göra rätt ifrån början etc.), olika utvecklare(olika utvecklare arbetar på väldigt olika sätt, speciellt frilansare eller hobbykodare) och olika projekt(Komplexiteten och planeringsbehovet skiljer sig väldigt mycket mellan olika projekt).
Därtill vet man ju kanske inte så mycket om hur mycket av koden som gjorts om eller hur mycket kod som kastats. I de fallen innebär det ju mycket dubbelarbete som inte alls syns i antalet kodrader.

I de flesta större projekt är det oftast bara 10-20% av arbetstiden som läggs på faktiskt utveckling/programmering. Så genom att mäta antalet kodrader får man ju då bara med en liten del.

Mitt tips är väl att du mäter tiden och antalet kodrader på något annat av dina projekt med ungefär samma komplexitet och planeringsbehov för att sedan jämföra. Det är nog det sätt du skulle kunna få en hyfsad, men ändå väldigt grov, uppskattning.


Alla tider är GMT +2. Klockan är nu 09:44.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson