เมื่อไรที่จะเสียสละ "ความเรียบร้อย" ของการออกแบบเพื่อให้โครงการเสร็จสิ้น?


15

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


3
เมื่อจำเป็นเท่านั้น
FrustratedWithFormsDesigner

1
เป็นเรื่องปกติที่ฉันทำงาน "คุณสามารถชำระเงินได้ในตอนนี้หรือคุณสามารถจ่ายภายหลังได้" ไม่เคยเป็นเช่นนั้น
MetalMikester

เสียงเหมือนกำหนดเวลาที่ปรากฏ ...

1
ฉันจะใช้มุมมองที่แตกและพูดเสมอ ถ้าโครงการยังไม่เสร็จไม่มีใครสนใจถ้ามันเรียบร้อย
drxzcl

1
@MrJ ฉันคิดเกี่ยวกับผู้ใช้จริง ๆ
drxzcl

คำตอบ:


18

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

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

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


3
ฉันเห็นด้วยกับวิญญาณของคำตอบของคุณ แต่คุณไม่มีรายละเอียด You need to strike a balance between a technically perfect solution, and the time to market of your productฉันไม่เห็นด้วยที่อยู่นอกเหนือความรับผิดชอบของนักพัฒนา พวกเขาจะต้องตระหนักถึงมันอย่างแน่นอนแต่พวกเขาควรให้ข้อมูลกับคนที่รับผิดชอบในการตัดสินใจทางธุรกิจ
StuperUser

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

1
ฉันเห็นด้วยอย่างยิ่งกับ @StuperUser และ @Peter Rowell บ่อยครั้งที่นักพัฒนาต้องรับผิดชอบในการสื่อสารความเสี่ยงทางเทคนิคปัญหาเกี่ยวกับการตัดมุม ฯลฯ ให้กับผู้คนในระดับสูงขึ้นในห่วงโซ่อาหารที่ตัดสินใจ หากนั่นคือบทบาทของคุณมากกว่าที่คุณควรมุ่งเน้นไปที่การสื่อสารที่ถูกต้องที่สุด อย่างไรก็ตามยิ่งคุณเข้าใจสิ่งที่ผลักดันห่วงโซ่คุณค่าของธุรกิจมากเท่าไหร่คุณก็ยิ่งมีการสื่อสารที่ดีขึ้นเท่านั้น
RationalGeek

1
@Falcon Blizzard อาจเสียสละกำไรระยะสั้นในช่วงต้นเกมระยะยาวในเกมที่มั่นคงมั่นคงและสนุกสนาน นั่นอาจเป็นสมดุลที่เหมาะสมสำหรับพวกเขา แต่มันไม่ได้เป็นความสมดุลที่เหมาะสมในทุกกรณี
RationalGeek

4
ความจริงก็คือผลิตภัณฑ์ซอฟต์แวร์ใหม่ส่วนใหญ่จะล้มเหลวในตลาดไม่ใช่เพราะปัญหาคุณภาพ แต่เนื่องจากลูกค้าไม่ต้องการพวกเขา ดังนั้นการทุ่มเทเวลา / ความพยายามอย่างมากในการสร้างสถาปัตยกรรมที่มีความแข็งแกร่งในผลิตภัณฑ์รุ่น 1 อาจไม่ใช่การใช้ทรัพยากรที่ดีที่สุด นักธุรกิจที่ผลักดันเพื่อออกไปนอกประตูไม่ใช่คนโง่ที่พวกคุณหลายคนคิดว่าเป็น การนำผลิตภัณฑ์เข้าสู่มือลูกค้าเพื่อพิจารณาความมีชีวิตเป็นสิ่งที่ต้องทำ
Kristopher Johnson

12

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

ต้องบอกว่าหนี้ทางเทคนิคไม่ใช่อัตราส่วน 1: 1 ณ เวลาคืนทุน บั๊กมีราคาแพงกว่าที่จะแก้ไขหลังจากปล่อยออกมาและผลกระทบต่อประสิทธิภาพการผลิตในอนาคตเมื่อพัฒนาจากระบบเดิมที่ยุ่งเหยิงอาจรุนแรง คุณอาจมองว่าใช้เวลาสองเท่าในการแก้ไขข้อผิดพลาดของคุณหรืออาจเป็น 1,000 เท่าของเวลาทำงานและทรัพยากร

งานของคุณในการตัดสินใจครั้งนี้คือการทำความเข้าใจการแยกชิ้นส่วนของการตัดมุมที่คุณกำลังพิจารณาแล้วทำการสื่อสารการแบ่งย่อยเหล่านั้นให้กับคนที่ตัดสินใจทางธุรกิจ ทักษะการประมาณค่านี้อาจใช้เวลาในการวิจัยและพัฒนาเพื่อพัฒนาให้ดีในตอนนี้ แต่มันจะมีค่ามากสำหรับอาชีพของคุณ


1
+1 หนี้ทางเทคนิคเป็นวิธีที่ชัดเจนที่สุดในการอธิบายเรื่องนี้
crazy2be

8

เมื่อได้รับการยอมรับและเจ้าของ / ลูกค้า / ผู้ใช้จะเข้าใจผลที่ตามมา

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

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


5

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

ถึงกระนั้นในตอนท้ายของวันซอฟต์แวร์ที่ประสบความสำเร็จเพียงอย่างเดียวคือซอฟต์แวร์ที่จัดส่ง


"ในตอนท้ายของวันซอฟต์แวร์ที่ประสบความสำเร็จเพียงอย่างเดียวคือซอฟต์แวร์ที่จัดส่ง" จนกว่าจะเกิดปัญหาและการเผาไหม้ไม่กี่ปีที่ถนนเพราะมันไม่ได้ออกแบบอย่างถูกต้อง การใช้สายตาสั้น
Wayne Molina

1
ถ้าคุณไม่เคยจัดส่งคุณจะไม่ทำมันหลายปี ...
Jeremy

หากคุณไม่สามารถจัดส่งบางสิ่งที่จะไม่ทำให้คุณเครียดในระยะยาวเนื่องจากการจัดการสายตาสั้นคุณไม่สมควรทำธุรกิจตั้งแต่แรก!
Wayne Molina

3

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

นอกจากนี้ยังเกิดหนี้สินทางเทคนิค สำหรับทุก ๆ ชั่วโมง / วันคุณใช้มุมตัดในความคิดแบบ git-er-made มันจะทำให้คุณเสียเวลามากขึ้นสองเท่าเมื่อคุณต้องสัมผัสโครงงานนี้ หากคุณต้องรีบเร่งจัดส่งแล้วเริ่มซ่อมเทปเป็ดของคุณทันที การกลับมาที่โครงการแฮ็คอายปีต่อมาเป็นฝันร้าย หากคุณจะไม่แตะต้องมันอีกเลยไม่ว่าจะเป็นใครก็ไม่มีใครสนใจ แต่ครั้งเดียวที่ฉันออกจากโครงการโกหกตลอดไปคือเมื่อฉันเปลี่ยนงาน

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


2

คำตอบอื่น ๆ ทั้งหมดที่โพสต์ที่นี่เป็นสิ่งที่ดี ฉันต้องการเพิ่มว่าในฐานะผู้พัฒนาโครงการคุณเป็นผู้พิทักษ์ (ผู้พิทักษ์) ของการออกแบบ

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

หวังว่าถ้าคุณอยู่ในองค์กรที่เหมาะสมการประนีประนอมจะมาถึงซึ่งจะช่วยให้ตรงตามกำหนดเวลาและไม่หลงทางไกลจากการออกแบบในเวลาเดียวกัน

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

เกือบทุกเส้นตายที่ฉันเคยอยู่ภายใต้ตาราง PM นั้นส่วนใหญ่จะเป็นการประดิษฐ์ พวกเขาจะปกป้องมันฟันและเล็บและแสร้งทำเป็นอย่างอื่นอย่างไรก็ตามถ้า PM ผลักดันเส้นตายแล้ว PM ก็ดูแย่!

เพียงเพราะ PM ดูไม่ดีไม่ได้หมายความว่าโครงการล้มเหลว หากคุณเข้าใจสิ่งนี้คุณจะประหลาดใจว่าคุณจะได้รับ PM กลับมามากแค่ไหน


1

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

สิ่งหนึ่งที่คุณไม่ต้องการทำคือบอกให้ลูกค้าคิดว่าพวกเขามีซอฟต์แวร์ที่ออกแบบมาอย่างสวยงามเมื่อพวกเขาจ่ายเงิน (และรับ) ขยะที่ยังไม่ทดลองเท่านั้น หากมีสิ่งผิดปกติ (ซึ่งน่าจะเกิดขึ้น) ในสถานการณ์แรกพวกเขาจะดูไม่ดี แต่ในสถานการณ์ที่สองคุณจะดูไม่ดี


1

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


0

ทั้งหมดนี้ขึ้นอยู่กับคำถามที่ว่า "คุณหรือใครก็ตามที่ต้องการจะแก้ไขในภายหลัง" ถ้าใช่คุณควรลองออกแบบที่“ เรียบร้อย” ไม่เช่นนั้นคุณอาจเสี่ยงที่จะทิ้งทุกอย่างออกไปและเริ่มอีกครั้งในอีก 6 เดือนต่อมา

แน่นอนว่าคุณสามารถใช้ความเรียบร้อยได้ไกลเกินไป แต่โดยทั่วไปความเรียบร้อยจะช่วยให้คุณทำงานได้ในภายหลัง


4
ไม่มีสิ่งใดเป็นผลิตภัณฑ์ที่ไม่ต้องการการบำรุงรักษาไม่ว่าลูกค้าจะบอกอะไรคุณ
Edward Strange

@ crazy-eddie สวยมากไม่ มันมีความหมายว่าเป็นคำถามที่โหลด; ฉันไม่สามารถนึกถึงหลาย ๆ กรณีที่คุณจะตอบว่า "ไม่" สำหรับคำถามนั้น แม้แต่สคริปท์สั้น ๆ ก็มีความหมายเพียงสิ่งเดียวเท่านั้นและจะไม่ถูกนำมาใช้อีกต่อไปสามารถแก้ไขและตกแต่งใหม่ได้ในภายหลัง
Jo-Herman Haugholt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.