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))