ฉันควรรวมต้นทุนทางออกไว้ในการเลือกโซลูชันหรือไม่


10

ฉันกำลังเลือกระหว่างการออกแบบ / การแก้ปัญหาซอฟต์แวร์ที่ทำงานได้สองแบบ โซลูชันที่ 1 ใช้งานง่าย แต่จะล็อคข้อมูลบางอย่างในรูปแบบที่เป็นกรรมสิทธิ์และจะยากที่จะเปลี่ยนแปลงในภายหลัง โซลูชันที่ 2 นั้นยากที่จะนำไปใช้ แต่จะเปลี่ยนได้ง่ายขึ้นในภายหลัง

ฉันควรจะไป YAGNI ในเรื่องนี้หรือฉันควรรวมต้นทุนการออกในการตัดสินใจ? หรือถามต่างกันค่าใช้จ่ายในการออกเป็นส่วนหนึ่งของ TCO หรือไม่

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

PS ต้นทุนการออกเป็นคำที่ถูกต้องหรือไม่


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

ในสาระสำคัญไม่ใช่รูปแบบทั้งหมดที่เป็นกรรมสิทธิ์แม้คนที่ควรจะเป็น 'มาตรฐาน' หรือ 'เปิด' Yagni อาจนำไปใช้หากรูปแบบ 'กรรมสิทธิ์' นั้นง่ายต่อการใช้งานส่งตรงต่อให้ใช้และ / หรือรูปแบบ defacto เพื่อแลกเปลี่ยน
JustinC

โดยไม่ต้องเจาะจง คิดว่าเป็นการวางแผ่นงาน Excel (ออกแบบโดยลูกค้า) ลงในระบบการจัดการเอกสาร (โซลูชันที่ 1) กับการสร้างตารางและ GUI ที่เหมาะสมและสร้างแผ่นงาน Excel ตามความต้องการ (โซลูชันที่ 2) ยกเว้นว่าไม่ใช่ Excel
dvdvorle

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

@JustinC ในที่สุดเราก็พูดถึงเงินสดที่นี่ มันถูกกว่าการใช้รูปแบบ 'กรรมสิทธิ์' ในระยะยาวหรือไม่? นั่นคือสิ่งที่ฉันคิดว่าสำคัญที่สุดสำหรับผู้สนับสนุนโครงการ
dvdvorle

คำตอบ:


4

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

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

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

(และตอนนี้เมื่อเขียนคำตอบนี้ฉันจะลงคะแนนให้ปิดเพื่อปิดหัวข้อนี้)


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

1
ทำให้รู้สึกถึงฉันและนั่นก็เป็นข้อสรุปที่ฉันมา คุณไม่สามารถคิดหาผลรวมที่แท้จริงได้จนกว่าสิ่งทั้งหมดจะจบลงและหมดไป
Blrfl

ฉันเห็นด้วยเกี่ยวกับความยากลำบากในการประเมิน 'ต้นทุนการออก' อย่างแม่นยำฉันคิดว่ามีค่าในการให้บริการแม้ว่าจะเป็นเงินในปัจจุบัน เปรียบเทียบ "สิ่งนี้อาจเป็นเรื่องยากและใช้เวลานาน" และ "อาจมีค่าใช้จ่ายระหว่าง $ 25,000 ถึง $ 50,000 หากทำในวันพรุ่งนี้"
vaughandroid

@Blrfl สิ่งที่ทำให้คำถามนี้อยู่นอกหัวข้อ?
neontapir

1
@neontapir: เนื้อของคำถามเป็นจริงเกี่ยวกับการจัดการโครงการ ความจริงที่ว่ามันเกี่ยวกับโปรแกรมไม่ได้เกี่ยวกับการเขียนโปรแกรมจริงๆ สิ่งเดียวกันนี้สามารถนำไปใช้กับสวิตช์โทรศัพท์หรือเตาอบพิซซ่าได้อย่างง่ายดาย
Blrfl

2

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

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

อาจมีบางแง่มุมที่ละเอียดยิ่งขึ้นที่ควรพิจารณาเมื่อคุณทำ / นำเสนอประมาณการต้นทุนของคุณ:

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

1

ทำงานจากความคิดเห็นของคุณเกี่ยวกับสถานการณ์ไฟล์ Excel ฉันมองว่า:

  • ไม่เปลี่ยนรูปแบบปัจจุบัน (โซลูชัน 1)
  • เมื่อเทียบกับการแยกวิเคราะห์รูปแบบในขณะนี้และจัดเก็บในรูปแบบที่แตกต่างกัน (อาจเป็น / หวังว่าเหมาะสมกว่า / พร้อมในอนาคต) (โซลูชัน 1 + ขั้นตอนการแยกวิเคราะห์โซลูชัน aka 2)

ฉันเชื่อว่า YAGNI ใช้กับขั้นตอนการแยกวิเคราะห์ ตรวจสอบให้แน่ใจว่าคุณเก็บความรู้เกี่ยวกับโครงสร้างปัจจุบันไว้ แต่ยังไม่ได้ใช้การแยกวิเคราะห์

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


เพื่อความชัดเจนในปัจจุบันไม่มีวิธีแก้ปัญหา (วิธีแก้ปัญหา 0 ถ้าคุณต้องการ) พวกเขากำลังเก็บข้อมูลทั้งหมดในไฟล์กระดาษ ฉันจะเห็นด้วยอย่างยิ่งกับคำตอบนี้หากพวกเขาใช้ไฟล์ "Excel" ในระบบการจัดการเอกสารอยู่แล้ว แต่ยังมีตัวเลือกที่นี่
dvdvorle

หรือคุณคิดว่าไม่เกี่ยวข้องเพราะการใช้โซลูชัน 1 มีราคาถูก
dvdvorle

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

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

0

หากคุณไม่ได้ 95% แน่นอนว่าจะมีการเปลี่ยนแปลงในอนาคต - โซลูชันที่ 1 - YAGNI =)

แน่นอนมันขึ้นอยู่กับลูกค้าของคุณและประสบการณ์การเขียนโปรแกรมบางสิ่งบางอย่างของคุณสำหรับการนี้ของลูกค้า


2
คุณกำลังบอกว่าค่าใช้จ่ายใด ๆ ที่เกี่ยวข้องกับโอกาส 5% ที่โซลูชันจะเปลี่ยนนั้นไม่เกี่ยวข้องหรือไม่?
dvdvorle

ฉันหมายถึงความรู้สึกแบบนี้ ... คุณรู้จักตัวเองว่า "YAGNI" หมายถึงอะไร - ส่วนที่เหลือคือความรู้สึก =)
MikroDel

0

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

หากคุณคิดว่า # 1 นั้นง่ายต่อการติดตั้งและตั้งคำถามว่าจะใช้เวลานานแค่ไหน # 2 ฉันจะฟังคำถามนั้น ใช้อันดับ 1 ตอนนี้และคิดถึงการออกแบบที่ยิ่งใหญ่กว่าเดิม ที่จะช่วยคุณในภายหลังถ้าคุณต้องการบูรณาการมัน

ในทางกลับกันถ้า # 1 ดูไม่ง่ายอย่างที่คุณคิดให้ข้ามไปที่ # 2

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.