วิธีการประมาณค่ารหัสแหล่งที่มาคืออะไร?


10

ฉันทำงานเกี่ยวกับโครงการบางอย่างในเวลาว่างของฉันในช่วงสองสามเดือนที่ผ่านมา เมื่อเร็ว ๆ นี้ฉันได้รับการติดต่อจากเพื่อน ๆ เพื่อสร้างการเริ่มต้นและซอร์สโค้ดนี้จะมีค่ามากสำหรับเรา

ในฐานะผู้ร่วมก่อตั้งรหัสนี้อาจนับรวมถึงบางสิ่งในเมืองหลวงของ บริษัท และสามารถแลกเปลี่ยนเป็นหุ้นได้ แต่คุณจะประมาณมูลค่าของมันได้อย่างไร คุณแค่คูณค่าจ้างมาตรฐานอุตสาหกรรมตามเวลาที่ฉันใช้ไปหรือมีวิธีอื่นหรือไม่?


3
คุณสามารถตรวจสอบคำตอบของ Joel Spolskyบนเว็บไซต์ SE อื่นได้ มันอธิบายความยุติธรรมระหว่างผู้ถือหุ้นในรายละเอียดที่เพิ่งเริ่มต้น
Hakan Deryal

คำตอบ:


10

COCOMOระบบมีอยู่ภายในรูปแบบสำหรับการประเมินเวลาในการเขียนซอฟแวร์ เมื่อเวลาเป็นเงินคุณก็จะได้รับคุณค่าของซอฟต์แวร์จากมุมมองของ "ราคาเท่าไหร่ที่จะมีคนเขียน" สูตรปัจจุบันของรุ่นนี้เป็นCOCOMO IIซึ่งมีค่อนข้างดีเครื่องมือบนเว็บ

ด้วยเครื่องมือเว็บนี้คุณสามารถประเมินขนาด (คุณไม่มีการประมาณขนาดคุณจะได้จำนวนจริงของรหัสคือ ... ) และรับการวางแผนการทดสอบและค่าใช้จ่ายโดยประมาณ

สมมติว่า 20k sloc (ซอร์สโค้ดของโค้ด) และมูลค่า $ 10k / เดือนสำหรับนักพัฒนา (และสิ่งอื่น ๆ ทั้งหมดที่ระบุ) คุณจะได้รับเวลาโดยประมาณ 79.3 คนต่อเดือนในการทำ (จำไว้ว่านี่คือการวางแผนการก่อสร้างและการทดสอบ) สำหรับมูลค่า $ 793k

ค่านี้ควรถูกพิจารณาว่าเป็นค่าต่ำสุดของโค้ด มูลค่าที่แท้จริงจะสูงขึ้นเพราะสร้างรายได้และเป็นทรัพย์สินทางปัญญาหลักของ บริษัท ที่มีศักยภาพ


4
ฉันไม่เห็นด้วยที่มีค่าต่ำสุดในการเขียนโค้ดคุณสามารถให้โครงการ 1M sloc ไร้ค่าได้อย่างสมบูรณ์หากไม่ได้สร้างมูลค่าให้กับลูกค้า
MaximR

@ MaximR: ฉันเห็นด้วย แต่อย่างน้อยก็มีความพยายามในการกำหนดการวัดบางอย่างในขณะที่อ้างว่าคุณเป็นเจ้าของความจริงและเจ้านายของทั้งหมดที่ revolves รอบเริ่มต้นเพราะคุณมีส่วนร่วมรหัสเดิมดูเหมือนว่าไกล และมีอุดมการณ์ที่ไร้เดียงสาสำหรับฉัน มันเป็นการ์ดที่ยุติธรรมสำหรับเล่น (พยายาม) แต่มันจะมีประสิทธิภาพมากกว่าถ้าคุณสามารถสำรองข้อมูลได้ ในท้ายที่สุดสิ่งที่ OP ต้องการที่นี่คืออำนาจต่อรองและนั่นจะทำให้เขามีบางอย่าง (ไม่ว่าจะถูกต้องหรือไม่เป็นปัญหาที่แตกต่างก็จะให้ประโยชน์บางอย่างแม้ว่า)
haylem

1
@MaximR หากมีมูลค่าที่แท้จริงสำหรับรหัสที่สามารถทำการตลาดได้มูลค่าของรหัสจะมากกว่าเวลาที่ใช้ในการเขียนตั้งแต่เริ่มต้น นั่นคือรูปแบบที่ระบุ - เวลาในการเขียนรหัส หากโค้ดไม่มีค่า บริษัท ก็จะก่อตั้งขึ้นโดยไร้ค่าเช่นเดียวกันและมูลค่าที่ บริษัท ได้รับนั้นมีค่าเป็นศูนย์เปอร์เซ็นต์ คำถามที่ว่านี่คือคำถามที่ว่า "ถ้าฉันเขียนโค้ด 20k บรรทัดและคุณลงทุน $ 800k ลงใน บริษัท การแบ่งหุ้นจะเป็นอย่างไร"

@MichaelT หากคำถามคือ 1 คนลงทุน $ 800k และอีกคนตกลงที่จะเขียนโค้ด 20k บรรทัด - นี่เป็นวิธีที่ยุติธรรม อย่างไรก็ตามหากผู้เขียนโค้ด 20k ไปแล้ว - มูลค่าของผู้เขียนนั้นเป็นเพียงสิ่งที่พวกเขาสามารถขายให้ผู้อื่นได้ และคุณค่าต่อ บริษัท / ผู้ก่อตั้งอื่น ๆ นั้นไม่มากไปกว่าสิ่งที่จะต้องจ่ายให้คนอื่นเพื่อให้ได้มา
MaximR

@Haylem Fair point แต่ฉันคิดว่าการเข้าใจเศรษฐศาสตร์พื้นฐานสามารถช่วยได้เช่นกัน และผู้ก่อตั้งคนอื่น ๆ อาจไม่ใจง่ายพอที่จะโต้แย้งเรื่อง "ฉันใช้เวลา 400 ชั่วโมงกับเรื่องนี้ มิฉะนั้นการรวบรวมคำตอบทั้งหมดใน codegolf.stackexchange.com จะไม่มีค่า
MaximR

9

อย่าสับสนเวลาที่ใช้ไปกับสิ่งที่คุ้มค่า คุณมีความคิดออกแบบและเสี่ยงเวลาของคุณเพื่อสร้างมันขึ้นมา นี่เป็นวิธีที่เกินกว่าต้นทุนของโปรแกรมเมอร์รับจ้าง

ณ ตอนนี้คุณควรเป็นเจ้าของ 100% ของการเริ่มต้น ขึ้นอยู่กับพันธมิตรที่เหลือเพื่อแสดงสิ่งที่พวกเขามีค่า ฉันจะแบ่งปันสิ่งที่เกิดขึ้นโดยบังเอิญในการผลิตบางสิ่งเช่นกัน (การขาย, การตลาด, การติดต่อทางอุตสาหกรรม, การเข้ารหัสเพิ่มเติม, ฯลฯ )


2
+1 เครื่องมือค้นหาของ Google มีมูลค่าเท่าไหร่ในช่วงแรก ๆ เพียงแค่เวลาในการพัฒนาหรือไม่ ไม่มันมีค่ามากขึ้นเพราะอนาคตหลายพันล้านที่สามารถทำจากมันได้
MarkJ

ฉันเข้าใจแล้วว่าเวลาที่ใช้ไปไม่เกี่ยวข้องกับมูลค่าที่แท้จริง นอกจากนี้ผู้ร่วมก่อตั้งรายอื่น ๆ จะนำเงินมาลงทุนและการทำงานและเวลาในพื้นที่ที่ฉันไม่สนใจจริง ๆ และถึงแม้ว่าฉันจะทำสิ่งนี้เพื่อความบันเทิงฉันก็ไม่ใช่คนที่มาพร้อมกับความคิดที่จะเปลี่ยน ผลิตภัณฑ์จริงและ (ลอง) ทำเงินจากมัน ดังนั้นฉันไม่คิดว่ามันเป็นธรรมที่ฉันเป็นเจ้าของ 100% เพราะฉันจะไม่เป็นคนเดียวที่รับความเสี่ยง
แอนทอน

6

มูลค่าเริ่มต้นมูลค่าสุดท้ายความเป็นธรรมในการขาย

คุณอาจประหยัดเวลาและปวดใจในการเจรจานี้หากคุณพิจารณารหัสที่เกี่ยวข้องกับสิ่งที่จำเป็นสำหรับ MVP ของคุณ (ผลิตภัณฑ์ที่มีศักยภาพขั้นต่ำ) ถ้ารหัสนั้นเป็นครึ่งหนึ่งของ MVP คุณต้องมีอะไรที่เป็นธรรม หากรหัสคือ 10%, 5% หรือแม้แต่น้อยเพียง 1% ของความพยายามมันจะมีความสำคัญน้อยลง

หากคุณต้องการเงินหรือมีส่วนร่วมมากขึ้น (อืมดูเหมือนว่า oxymoron) ให้แน่ใจว่าคุณสามารถขายได้ดีจากมุมมองของความเป็นธรรมในแบบที่สามารถทนต่อสิ่งที่อาจเป็นความท้าทายมากมายตลอดการขาย สินค้า

พิจารณาสิ่งต่าง ๆ อย่างสมมาตร คู่ค้าของคุณจะเขียนรหัสและสามารถหรือไม่พวกเขาจะทันหรือเกินสนับสนุนของคุณ? คุณจะจ่ายเท่าไหร่ให้คู่ค้าของคุณเพื่อรับความสนใจในรหัสผลลัพธ์หากธุรกิจสิ้นสุดลง น้ำเสียงและความคาดหวังที่คุณกำหนดในตอนนี้ส่วนใหญ่จะกำหนดเสียงและความคาดหวังในภายหลัง

เศรษฐศาสตร์วิศวกรรมซอฟต์แวร์

ฉันถือว่าDr. Barry Boehmเป็นบิดาของเศรษฐศาสตร์วิศวกรรมซอฟต์แวร์ ท่ามกลางความสำเร็จของเขาคือการคิดค้น COCOMO เพื่อนำเสนอวิธีการทฤษฎี-W ในการจัดการโครงการและการสร้างรูปแบบของรูปแบบการพัฒนาซอฟต์แวร์ที่เรียกว่าMBASE นางแบบของเขาหารือเกี่ยวกับแบบจำลองของผลิตภัณฑ์ที่อธิบายถึงสิ่งที่ถูกสร้างขึ้น (เช่นไดอะแกรม UML) แบบจำลองกระบวนการ (เช่น Scrum, Waterfall, ฯลฯ ) แบบจำลองคุณสมบัติที่อธิบายคุณลักษณะของผลิตภัณฑ์หรือองค์กร (ราคากำหนดการความน่าเชื่อถือ) และแบบจำลองความสำเร็จ .

รูปแบบความสำเร็จและกลยุทธ์ทางออกที่มีศักยภาพ

คุณควรคิดอย่างแน่นอนว่าความสำเร็จของคุณขึ้นอยู่กับสิ่งที่เป็นทางการเช่น Theory-W หรือสิ่งที่ไม่เป็นทางการเช่น IKIWISI (ฉันจะรู้เมื่อเห็น) แบบจำลองความสำเร็จอาจช่วยให้คุณกำหนดความคาดหวังว่าจะใช้เวลาและความพยายามมากแค่ไหนในการเริ่มต้นของคุณเกณฑ์ที่คุณใช้สำหรับการเดินทาง / ไม่ต้องไปจำเป็นต้องหมุนหมุนขายหรือปิดกิจการและการกระจายสินทรัพย์ทั้งในเหตุการณ์ ของความสำเร็จหรือล้มเหลว ปู่ของฉันถูกขว้างหลักทรัพย์เมื่อหลายปีก่อนที่มีชื่อเช่น "Silver Screen Limited Partnership 7" ซึ่งเป็นเงินทุนหลักสำหรับภาพยนตร์ฮอลลีวูดที่เริ่มก่อนภาพยนตร์เรื่องนี้จากนั้นก็จบลงหลังจากภาพยนตร์เรื่องนี้ฉายในโรงภาพยนตร์ วัน) ถ้าฉันเป็นคุณฉันจะทำให้แน่ใจว่าการเริ่มต้นของฉันไม่ใช่พันธสัญญาตลอดชีวิตก่อนที่จะเริ่ม

ต้นแบบไม่ใช่ผลิตภัณฑ์

หนึ่งในเอกสาร Boehm แรกที่ฉันอ่านได้รวมไดอะแกรมที่เปรียบเทียบต้นแบบกับผลิตภัณฑ์ มันใช้สี่เหลี่ยมจัตุรัสสำหรับต้นแบบและตารางสี่เหลี่ยมสามสูงและสามกว้างสำหรับผลิตภัณฑ์ ขึ้นอยู่กับความเชื่อมั่นของคุณและความสมจริงคุณอาจยกเลิกความคิดนี้หรือเริ่มนึกถึงโครงการที่ผ่านมาซึ่งขนาดของผลิตภัณฑ์คือ 25 หรือ 81 หรือ 100 เท่าของต้นทุนและความพยายามของต้นแบบ

การประเมินค่าการสนับสนุนที่ไม่ซ้ำของคุณ

หากต้องการให้คุณค่ารหัสของคุณในบริบทของการเริ่มต้นคุณควรให้คุณค่ากับบทบาทและความเป็นเอกลักษณ์ของการเริ่มต้น หากคุณเป็นผู้พัฒนาและคู่ค้าของคุณเป็นผู้สนับสนุนทางการเงินหรือพนักงานขายคุณเป็นเหมือนหมูสุภาษิตและพวกเขาเป็นไก่ที่เข้าสู่ธุรกิจสำหรับร้านอาหารที่ให้บริการอาหารเช้า พวกเขามีความเสี่ยงเพียงเล็กน้อยจนกว่าพวกเขาจะเขียนเช็คและอาจทำงานได้ค่อนข้างน้อยจนกระทั่งมีบางอย่างขาย หากคุณเป็นนักพัฒนาแต่ละคนอาจเป็นไปได้ว่าหากพวกเขาไม่มีรหัสที่จะใส่ลงไปในพ็อตตั้งแต่เริ่มต้นมันอาจกลายเป็นเรื่องยากลำบากมาก เท่าที่ภาพยนตร์เรื่อง " The Social Network " แสดงสิ่งต่าง ๆ ได้อย่างถูกต้องมีการเริ่มต้นที่ประสบความสำเร็จอย่างมหาศาลโดยมีคู่ค้าที่ทำสิ่งเล็ก ๆ น้อย ๆ ที่ใช้ความพยายามน้อยมากเมื่อผลิตภัณฑ์ถูกสร้างขึ้นมา

เริ่มต้นด้วยเริ่มอัพ

ระวังให้ดีว่าคุณผูกมัดตัวเองกับคู่ค้าเพื่อเริ่มต้นอย่างไร จัดทำข้อตกลงการดำเนินงานที่ครอบคลุมถึงสิ่งที่อาจเกิดขึ้นในช่วงอายุการใช้งานของการเริ่มต้นให้มากที่สุด พิจารณาการกำหนดขอบเขตที่แคบมากและทำตามโมเดลการเริ่มต้นแบบลีน ค้นหาวิธีที่ปลอดภัยในการลองทำโครงการของทีม โรงเรียนเป็นวิธีที่ยอดเยี่ยม บางมหาวิทยาลัยและผู้สนับสนุนอื่น ๆ ได้สร้างสิ่งที่ต้องการอย่างรวดเร็วเริ่มต้นขึ้นของโรงเรียน วิธีการที่แพร่หลายมากในการได้รับรสชาติของสิ่งที่เริ่มต้นขึ้นอาจจะชอบที่จะเข้าร่วมในการเริ่มต้นขึ้นวันหยุดสุดสัปดาห์ มีศูนย์บ่มเพาะชุมชนและผู้ให้การสนับสนุนทางการค้าและ coworking space ประสบการณ์ที่ จำกัด ของฉันเกิดขึ้นในสถานที่ต่าง ๆ เช่นGangplank (ฉันชอบโปรแกรมที่ราคาไม่แพงมากสำหรับ Start Up Weekend) และCohoots.

ใช้การป้องกัน

คุณควรปกป้องตนเองทางกฎหมายการเงินและร่างกายเสมอ ความรับผิดทางอาญาและทางแพ่งสามารถเกิดขึ้นได้เมื่อเริ่มต้นขึ้น หากธุรกิจยืมเงินหรือจ้างคนที่ตัดนิ้วของคุณคุณอาจติดอยู่กับตั๋วเงินที่ยากที่จะจ่าย คุณต้องใช้ขั้นตอนการทำบัญชีที่ถูกต้องและอาจต้องมีการประกันและคุณต้องป้องกันตัวเองและคู่ของคุณจากการค้นพบตัวเองบนทางลาดที่ลื่น

เรื่องเตือนไม่กี่

ในขณะที่มันไม่ใช่การเริ่มต้นฉันรู้ว่าองค์กรที่อนุญาตให้บุคคลที่ไม่ได้ทำงานและอยู่ภายใต้ความกดดันทางการเงินให้เป็นเหรัญญิกของพวกเขา เขารวมเงินจากการขายตั๋วสำหรับงานเลี้ยงประมาณห้าร้อยคนด้วยบัญชีธนาคารของเขาเอง เขาอาจไม่คิดว่าเขาขโมย แต่เขาใช้วิจารณญาณไม่ดีอย่างแน่นอน เมื่อเห็นได้ชัดว่าเงินหายไปมีปัญหาน่าเกลียดกับบุคคลที่ถูกดำเนินคดีในข้อหายักยอกเงิน องค์กรมีประกันที่อนุญาตให้จัดงานเลี้ยง แต่ถ้าหากพวกเขาไม่ได้ซื้อตั๋ว 500 ใบนั้นจะถูกทิ้งไว้ในกระเป๋า

อีกกรณีหนึ่งที่ฉันรู้ว่าการเริ่มต้นอย่าง จำกัด ของ บริษัท รับผิดกลายเป็นความยุ่งยากครั้งใหญ่ มีการตัดสินกับหนึ่งในพันธมิตรและเมื่อมันยากที่จะรวบรวมทนายความส่งเซิร์ฟเวอร์กระบวนการไปที่บ้านของพันธมิตรที่ลืมพวกเขาลงนามใน บริษัท มีการเรียกร้องกับคู่ค้าและการตอบสนองทางกฎหมายถูกต้อง หลังจากการเยี่ยมชมศาลและขอคำแนะนำทางกฎหมายหุ้นส่วนดูแล แต่อาการปวดหัวเหล่านี้มักจะไม่หายไปจนกว่าเงินจริงจะออกมาจากกระเป๋าของใครบางคน

ทำงานอย่างขยันขันแข็งและขยันเนื่องจาก

การสร้างทีมและการหาพันธมิตรที่เหมาะสมเป็นสิ่งสำคัญอย่างยิ่ง Larry Page พูดถึงการใช้เวลานานในการมองหาพันธมิตรเพื่อค้นหา Google


2

ให้คุณค่าเหมือนกันกับที่คุณทำกับผลิตภัณฑ์ "ของจริง":

ราคาเปลี่ยนทดแทนคืออะไร:
หากไม่มีผลิตภัณฑ์ที่เปรียบเทียบกันได้ - จะมีค่าใช้จ่ายในการจ้างใครสักคนเพื่อทำซ้ำตั้งแต่ต้น? ค่าใช้จ่ายในการทำงานเกี่ยวกับทรัพย์สินทางปัญญา / สิทธิบัตรบางอย่างอยู่ในนั้น?
หากมีผลิตภัณฑ์ที่เปรียบเทียบได้ - ผลิตภัณฑ์ของคุณดีขึ้นในทางใดในทางที่แย่ลง - อะไรคือความแตกต่างที่คุ้มค่า?

ค่าใช้จ่าย "จม" - เวลาที่คุณใช้ไปแล้วและไม่สามารถ "เลิกใช้จ่าย" ได้นั้นไม่เกี่ยวข้องกับการตัดสินใจของคุณ
แม้กระทั่ง "ต้นทุน" ในอนาคตนั้นไม่เกี่ยวข้องกับราคา / มูลค่า - สิ่งต่าง ๆ มีค่ามากกว่าสิ่งที่ต้องสร้าง (เช่น Mona Lisa มีค่ามากกว่าแรงงาน + ทาสี + กรอบ + ผ้าใบ + 30%)


1

Ohloh มีบทความ wiki เกี่ยวกับวิธีคำนวณต้นทุนสำหรับโครงการที่ติดตาม มันเชื่อมโยงไปยังบทความ Wikipedia ที่ดูเหมือนว่าละเอียดเพียงพอ

Ohloh wiki

ฉันหวังว่านี่จะช่วยได้


1

หากเป็นเพื่อนกันทำไมคุณไม่แยกค่าของ บริษัท เท่า ๆ กัน? การพูดการเริ่มต้นของคุณทางสถิติจะล้มเหลวดังนั้นจึงไม่เป็นไร และถ้าคุณประสบความสำเร็จอย่างดีคุณก็ยังมีเงินมากมายดังนั้นมันก็ไม่สำคัญ


ฉันชอบคำตอบนี้ แต่ฉันคิดว่าการเริ่มต้นด้วยการบริจาคที่ไม่เท่ากันกับสัญญาของรางวัลในอนาคตที่เท่าเทียมกันสามารถกำหนดความคาดหวังที่อาจนำไปสู่การสูญเสียมิตรภาพบางอย่าง Paul Allen เดินจาก Bill Gates ด้วยเงินมากมาย แต่หนังสือของเขาแสดงให้เห็นว่าสิ่งต่าง ๆ ไม่สมบูรณ์แบบระหว่างพวกเขา เดิมที Woz เป็นผู้มีส่วนร่วมด้านเทคนิคที่มากขึ้น แต่จ็อบส์นั้นถูกเผาไหม้ที่สว่างไสวออกมา อาจเป็นเรื่องยากขึ้นที่จะยกตัวอย่างว่าการเริ่มต้นล้มเหลวส่งผลกระทบต่อมิตรภาพ แต่ฉันคาดหวังว่าสักสองสามคนอาจจบลงที่ศาล
DeveloperDon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.