“ บริษัท ซอฟต์แวร์ที่กำหนดเอง” จัดการกับหนี้ทางเทคนิคได้อย่างไร


20

"บริษัท ซอฟต์แวร์ที่กำหนดเอง" คืออะไร?

โดย "บริษัท ซอฟต์แวร์ที่กำหนดเอง" ฉันหมายถึง บริษัท ที่สร้างรายได้เป็นหลักจากการสร้างซอฟต์แวร์ที่กำหนดเองหนึ่งครั้งบิตของซอฟต์แวร์ ตัวอย่างเช่นมีหน่วยงานหรือ บริษัท เครื่องกลางหรือผู้รับเหมา / ที่ปรึกษาเช่นRedify

ตรงกันข้ามกับ "บริษัท ซอฟต์แวร์ที่กำหนดเอง" คืออะไร?

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

วิธีที่แน่นอนในการสร้างหนี้ทางเทคนิค:

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

นี่เป็นวิธีที่แน่นอนในการก่อหนี้ด้านเทคนิค ตอนนี้เรามีซอฟต์แวร์นิดหน่อยที่จะรักษาซึ่งไม่เพิ่มอะไรเข้าไปในผลิตภัณฑ์หลักของเรา

หากงานที่กำหนดเองเป็นวิธีที่แน่นอนในการสร้างหนี้ทางเทคนิคเอเจนซี่จะจัดการกับมันอย่างไร

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


5
ทำไมฉันถึงมีความต้องการอันแรงกล้าที่จะพูดว่า "ไม่ดี"?
HLGEM

5
นี่เป็นคำถามเกี่ยวกับหนี้ทางเทคนิคหรือซอฟต์แวร์และซอฟต์แวร์ไคลเอนต์เดียวคืบคลาน ? หนี้ทางเทคนิคคือผลรวมของการปฏิบัติที่ไม่ดีที่กลับมาหลอกหลอนคุณในภายหลัง ฟีเจอร์คืบคลานและซอฟต์แวร์ไคลเอนต์เดียวเท่านั้นเป็นฝันร้ายของการจัดการประเภทต่าง ๆ
Phil

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

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

2
@WyattBarnett จากมุมมองของร้านค้าที่กำหนดเอง: ลูกค้าจำนวนมากมีความเข้าใจที่ไม่ดีของหนี้ทางเทคนิคและความพยายามที่จะให้ความรู้พวกเขาเพียงทำให้เกิดแรงเสียดทาน พวกเขายืนยันอย่างมีประสิทธิภาพ ว่าคุณช่วยให้พวกเขาชำระหนี้ทางเทคนิคโดยไม่ต้องพูดถึงข้อดีและข้อเสีย
MarkJ

คำตอบ:


13

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

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

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

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

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


+1 คำตอบที่ยอดเยี่ยม dslh มันได้มาถึงประเภทของการดัดแปลงหรือแฮ็คที่เราต้องทำ ฉันชอบความคิดที่หมดอายุ ... น่าสนใจจริงๆ
andy

+1 ไม่มีปัญหากับการรับฟีเจอร์เล็ก ๆ น้อย ๆ ที่ต้องได้รับการสนับสนุนตราบใดที่ลูกค้าจ่ายสำหรับฟีเจอร์ + การสนับสนุน ขออภัยเราไม่สามารถที่จะสนับสนุนคุณสมบัติของคุณฟรี ...
ฟิล

18

เมื่อฉันเผชิญกับคำขอพัฒนาที่กำหนดเองฉันจะกรองพวกเขาผ่านตัวกรองเย็นที่แยกคำขอเป็น 3 กอง:

  1. สิ่งที่ยอดเยี่ยมซึ่งจะเป็นประโยชน์สำหรับทุกคนและใช้งานง่าย
  2. สิ่งที่ยอดเยี่ยมซึ่งจะเป็นประโยชน์สำหรับทุกคนและยากที่จะนำไปใช้
  3. โง่หนึ่งในสิ่งที่จำเป็นสำหรับลูกค้ารายนี้เท่านั้นซึ่งไม่ต้องการพวกเขาจริงๆ
  • หมวดหมู่ 1 ได้รับการนำไปใช้ในวัฏจักร dev ปัจจุบัน
  • หมวดที่ 2 ได้รับการนำไปใช้ในรอบการพัฒนาถัดไป
  • ประเภทที่ 3 ได้รับใบเสนอราคา 1 dev เดือนของเวลา dev หลังจากที่ลูกค้าส่วนใหญ่ตระหนักดีว่าคำขอของพวกเขาไม่คุ้มค่า

จริงๆแล้วสิ่งนี้ไม่เคยล้มเหลวและฉันไม่คิดว่าเราจะใช้คุณสมบัติ 3 หมวดหมู่ใด ๆ และแน่นอนว่าไม่มีลูกค้าคนใดเดิน (ยอดขายคงไม่ต้องให้ฉันดึงสิ่งนี้ออกมาเป็นอย่างอื่น :)

(ประสบการณ์นี้อยู่ที่ บริษัท ISV)


MK ที่น่าสนใจ แม้ว่าฉันไม่แน่ใจว่า 3 จะบินไปกับลูกค้าใหม่ที่มีศักยภาพ แต่อาจจะทำงานกับลูกค้าปัจจุบัน ไม่มีน้อยน่าสนใจมาก
andy

6
1 เดือน คุณต้องมีลูกค้าที่มีคำขอคุณสมบัติน้อยมาก!
JohnB

@ JohnB ใช่แล้วไม่ว่าจะเป็นหรือผลิตภัณฑ์นั้นมีความยืดหยุ่นสูงอยู่แล้ว
MK01

6
@JohnB คุณกำลังบอกว่าเดือนคนเป็นตำนานหรือไม่
ตุลาคม

2
@Octern ฉันคิดว่าคนอื่นไม่ได้รับการอ้างอิง :-)
Arnold Zokas

12

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

ปัญหาของคุณไม่ใช่ว่าคุณกำลังสร้างรหัสที่ใช้สำหรับไคลเอ็นต์เดียวเท่านั้น ปัญหาคือคุณกำลังรวมรหัสที่ใช้สำหรับลูกค้ารายเดียวในผลิตภัณฑ์ที่คุณขายให้กับลูกค้ารายอื่น ๆ ที่ไม่ต้องการฟังก์ชันการทำงานนั้น

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

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

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


3

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

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


1

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

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

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

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

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

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


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

0

ซอฟต์แวร์ที่กำหนดเองไม่ได้เป็นการรับประกันหนี้ด้านเทคนิค แต่การให้บริการทั้งสองอย่างนั้นก็คือ

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

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

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