more school relevant files
This commit is contained in:
49
school/effort-estimation.py
Normal file
49
school/effort-estimation.py
Normal file
@@ -0,0 +1,49 @@
|
||||
import array
|
||||
import math
|
||||
|
||||
# estimate based on:
|
||||
# P3D1: 240h ( 8 weeks, 30hrs) -> 200
|
||||
# P3D2: 300h (10 weeks, 30hrs) -> 250
|
||||
# P3D3: 240h ( 8 weeks, 30hrs) -> 200
|
||||
# P3D4: 60h ( 2 weeks, 30hrs) -> 50
|
||||
|
||||
ph_est = 840
|
||||
#ph_est = 700 # if 25hrs instead of 30
|
||||
|
||||
ph_perc = array.array('f', [0.15, 0.28, 0.42, 0.075, 0.175])
|
||||
baseline_mh = round(ph_est / ph_perc[2])
|
||||
|
||||
def calculate_person_months(man_hours):
|
||||
person_months = 114
|
||||
return man_hours / person_months
|
||||
|
||||
def ovza(person_months):
|
||||
return math.sqrt(person_months) + 1
|
||||
|
||||
print("Man-Hour baseline: ", baseline_mh)
|
||||
|
||||
total_mh = 0
|
||||
total_pm = 0
|
||||
total_ovza = 0
|
||||
|
||||
man_hours = array.array("I")
|
||||
person_months = array.array("f")
|
||||
optimal_fte = array.array("f")
|
||||
|
||||
for i in range(5):
|
||||
man_hours.append(round(baseline_mh * ph_perc[i]))
|
||||
total_mh += man_hours[i]
|
||||
print("Phase", i+1, "Man-Hours: ", man_hours[i])
|
||||
|
||||
person_months.append(calculate_person_months(baseline_mh * ph_perc[i]))
|
||||
total_pm += person_months[i]
|
||||
print("Phase", i+1, "Person-Months:", round(person_months[i],2))
|
||||
|
||||
optimal_fte.append(ovza(person_months[i]))
|
||||
total_ovza += optimal_fte[i]
|
||||
print("Phase", i+1, "OVZA :", round(optimal_fte[i],1))
|
||||
print("Phase", i+1, "WVZA? :", round(ovza(optimal_fte[i]),1))
|
||||
|
||||
print("Total Man-Hours: ", total_mh)
|
||||
print("Total Person-Months: ", round(total_pm,2))
|
||||
print("Total OVZA : ", round(total_ovza,1))
|
||||
Reference in New Issue
Block a user