วิธีชักชวนให้ผู้พัฒนาเริ่มใช้สลับการตั้งค่าสถานะได้อย่างไร


20

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

เป็นวิธีที่ดีในการชักชวน (และบังคับใช้) นักพัฒนาเพื่อเริ่มใช้สลับการตั้งค่าคุณสมบัติคืออะไร?

ข้อมูลเพิ่มเติมเกี่ยวกับคุณลักษณะสลับธงมีการอธิบายในQ: วิธีการใช้คุณลักษณะสลับธง , Q: อะไรคือคุณลักษณะสลับธงและมากอย่างกว้างขวางในพีทฮอดจ์สันบทความเกี่ยวกับเรื่องในบล็อกของฟาวเลอร์มาร์ตินของ


รุ่นที่แคบสำหรับคำถามdevops.stackexchange.com/questions/4/…
Evgeny

1
อืมฉันเพิ่งเห็นคุณความคิดเห็นใหม่ (และอัปเดต) เท่านั้น หลังจากฉันเพิ่งโพสต์คำถามใหม่เกี่ยวกับพวกเขา คุณอาจต้องการโพสต์คำตอบสำหรับคำถามใหม่ของฉัน (ที่คุณมีพื้นที่เพิ่มเติมเพื่ออธิบายสิ่งเหล่านี้จริง ๆ )? ถ้าเป็นเช่นนั้นตรวจสอบให้แน่ใจว่าไม่ใช่คำตอบสำหรับลิงค์เท่านั้น (ฉันเชื่อว่าคุณรู้ว่ามันมีความหมายอย่างไรในเว็บไซต์ SE ใช่ไหม?)
Pierre.Vriens

คำตอบ:


18

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

เท่าที่นักพัฒนา "เชื่อ" ใช้พวกเขานั่นคือแบบฝึกหัดในการสร้างกรณีเพื่ออิสรภาพที่เสนอให้ ประสบการณ์ของฉันคือการขายไม่ใช่เรื่องยากสำหรับนักพัฒนา การจัดการที่มีแนวโน้มที่จะลังเลที่จะลองสิ่งใหม่ ๆ ลองสิ่งนี้:

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

2
+1 สำหรับบิตของเฟรมเวิร์ก ฉันเคยเห็นมีคนจำนวนมากเกินไปในการสลับการสลับคุณสมบัติของตัวเองและมันก็เป็นโค้ดที่น่ารังเกียจและน่ารังเกียจอยู่เสมอ
Jduv

เกี่ยวกับบิตของเฟรมมี OSS ที่น่าสนใจจาก Intuit ที่เรียกว่า Wasabi github.com/intuit/wasabi
Evgeny

คำแนะนำหนังสือเกี่ยวกับการโน้มน้าวใจผู้พัฒนารายอื่น - การเปลี่ยนแปลงทางเทคนิคในการขับขี่โดย Terrence Ryan
Liath

8

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

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

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

นั่นคือทีมที่ฉันต้องการทำงาน

คุณสามารถหยุดอ่านได้ที่นี่ถ้าคุณต้องการ

การวางทุกอย่างไว้เบื้องหลังสวิตช์คุณลักษณะดูเหมือนว่ามันจะนำไปสู่รหัสสปาเก็ตตี้ได้ทุกที่ หากคุณใช้ IoC และสามารถเลือกได้ระหว่าง vNow / vNext / v ก่อนหน้ามันจะเกิดขึ้นเพื่อรักษาการตั้งค่าของคุณ ใช่เช็คอินเพิ่มเติมใช่คลาสเพิ่มเติม (componentV1, componentV2, componentV3 ฯลฯ ) แต่จริง ๆ แล้วคุณมีระบบที่เสถียรกว่าหรือไม่ อย่างไร? v ต่อไปจะไม่สกปรกหรือไม่ เปลี่ยนกลับเป็น vNow ด้วยหอควบคุมของคุณ รับสัปดาห์และ vNow มีข้อบกพร่องเล็กน้อย? สิ่งเดียวกัน - กลับไปที่ v ก่อนหน้าได้อย่างง่ายดาย

ไม่ยุ่งยากไม่ต้องกังวลไม่นอนไม่เครียดไม่มีความเครียด

นี่ไม่ใช่ความฝันที่ไพเราะ ฉันเคยทำงานที่นั่น หวังว่าฉันจะขายมันให้กับทีมปัจจุบันของฉัน


4

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

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

หนึ่งในข้อเสียของการเบี่ยงเบนจาก CI ที่แท้จริงและการพัฒนาคุณลักษณะการย้ายบนสาขาคุณลักษณะคือการขาดแรงจูงใจดังกล่าว การเพิ่มคุณสมบัติสลับในภายหลังเมื่อรวมสาขาฟีเจอร์เข้ากับสาขาการรวมมักจะยากขึ้นเช่นการรวมที่ล่าช้า


2

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

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


0

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


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