ฉันเคยได้ยินการปีนป่ายที่กล่าวถึงในบริบทของ Agile หรือ Extreme Programming ดูเหมือนจะเป็นส่วนเสริมในการจับคู่
มันคืออะไรกันแน่? ควรใช้เมื่อใด คุณทำได้ดีแค่ไหน?
ฉันเคยได้ยินการปีนป่ายที่กล่าวถึงในบริบทของ Agile หรือ Extreme Programming ดูเหมือนจะเป็นส่วนเสริมในการจับคู่
มันคืออะไรกันแน่? ควรใช้เมื่อใด คุณทำได้ดีแค่ไหน?
คำตอบ:
แนวคิดคือทุกคนในทีมของคุณทำงานในเรื่องเดียวกันในเวลาเดียวกัน แทนที่จะมุ่งเน้นที่งานที่แตกต่างกันทุกคนมุ่งเน้นไปที่งานหนึ่งครั้งจนกว่าจะเสร็จสมบูรณ์ จากนั้นพวกเขาก็ย้ายไปยังสิ่งต่อไปที่พวกเขาทำงานร่วมกันบนมัน
สิ่งนี้จะช่วยให้ทีมที่ต้องดิ้นรนทำเรื่องให้เสร็จก่อนจบการวิ่ง บ่อยครั้งที่ทีมจบ 80% ของเรื่องราวทั้งหมด แต่ก็ไม่มีอะไรสมบูรณ์ สิ่งนี้มีประโยชน์น้อยกว่าการทำเรื่องราวให้เสร็จสมบูรณ์ 80% เนื่องจากเรื่องราวที่ยังไม่เสร็จมีคุณค่าต่อผู้ใช้ มันง่ายกว่าที่จะทำให้เรื่องราวเสร็จสมบูรณ์เมื่อทุกคนในทีมมุ่งเน้นไปที่เรื่องหนึ่งครั้ง นี่คือแรงจูงใจเบื้องหลังการปีนป่าย
มีปัญหาบางอย่างที่นี่ ตัวอย่างเช่น QA ไม่สามารถทดสอบสิ่งต่าง ๆ ได้เสมอก่อนที่จะสร้างขึ้น (หรือแม้กระทั่งการออกแบบ) ในกรณีนี้คุณควรสร้างการออกแบบร่วมกันก่อนแล้วจึง QA สามารถเขียนการทดสอบ (เริ่มต้นล้มเหลว) กับการออกแบบและไม่ใช้งานจริง
การปีนป่ายหมายถึงความจริงที่ว่าหลายคนทำงานร่วมกันเพื่อทำงานหรือเรื่องราวให้สำเร็จ จากประสบการณ์ของฉันนี่ไม่ใช่สิ่งที่คุณทำบ่อย
โดยทั่วไปแล้วสมาชิกในทีมของฉันแต่ละคนทำงานในภารกิจที่แตกต่างกันและ / หรือเรื่องราวที่แตกต่างกัน หากใครบางคนกำลังตกหลุมรักหรือถ้ามีความปรารถนาที่จะทำงานให้เสร็จก่อนใครจะหยุดทำงานและ "จับกลุ่ม" เพื่อทำงานให้เสร็จซึ่งหมายความว่าพวกเขาทำงานร่วมกันในงานหรือเรื่องราวเดียวจนกว่าจะเสร็จ เสร็จสมบูรณ์
เมื่อเร็ว ๆ นี้เรามีเรื่องราวเล็ก ๆ น้อย ๆ ที่น่าเบื่อและไม่น่าทึ่ง ฉันให้แรงจูงใจเล็ก ๆ กับทีม (พิซซ่า) และกำหนดส่ง (สิ้นสุดวัน) เพื่อทำงานให้เสร็จดังนั้นพวกเขาจึงรวมกันเป็นกลุ่มและทำผลงานออกมาอย่างน้อยสองวันในบ่ายวันหนึ่ง พวกเขาทำงานเสร็จและออกไปก่อนกำหนดจากนั้นสมาชิกในทีมแต่ละคนกลับไปที่สิ่งที่พวกเขากำลังทำอยู่ พวกเขาได้รับอาหารกลางวันฟรีฉันทำงานเสร็จ แต่เช้าซึ่งอาจเป็นเพราะธรรมชาติที่น่าเบื่อและทีมก็วิ่งไปข้างหน้า Win-win-win
"การปีนป่าย" นั้นไม่ได้เป็นอะไรที่ยิ่งใหญ่ไปกว่าคำว่า "เฮ้ขอให้เราช่วยคุณได้"
การปีนป่ายเป็นแนวคิดหลักของความว่องไว ไม่ใช่สิ่งที่ทำ "เมื่อมีปัญหา" การจับกลุ่มในรูปแบบที่ง่ายที่สุดหมายความว่าทีมทำงานร่วมกันในรายการ (เรื่องราว) และทำงานให้เสร็จ แนวคิดหลักคือ "ออกจากการเริ่มต้นและเริ่มต้นการตกแต่ง" กล่าวอีกนัยหนึ่งแทนที่จะเป็นนักพัฒนาซอฟต์แวร์ทุกคนที่ทำงานอย่างอิสระบนเนื้อเรื่องทีมมุ่งเน้นที่เรื่องราว / ภารกิจที่ จำกัด ยิ่งขึ้นด้วยกัน คิดว่ามันเป็นความแตกต่างระหว่างระบบเธรดเดี่ยวและมัลติเธรด หากเรื่องราวของผู้ใช้มี 10 ภารกิจที่ต้องทำและแต่ละคนมี 8 ชั่วโมงโดยสมมติว่าไม่มีปัญหาแทรกซ้อนนักพัฒนาคนหนึ่งสามารถทำงานแต่ละงานตามลำดับและทำให้เรื่องราวสมบูรณ์ใน 80 ชั่วโมงหรือประมาณสองสัปดาห์ (ให้ 10 วันวิ่ง ของ 8 dev ชั่วโมงต่อวัน) เกิดอะไรขึ้นถ้านักพัฒนาสองคนแยกงานและทำงานพร้อมกัน 80 ชั่วโมงการทำงานเดียวกันนี้สามารถทำได้ในหนึ่งสัปดาห์ เพิ่มที่สามและคุณสามารถดูได้ในขณะนี้มันอาจจะทำใน 3 ถึง 4 วัน
การปีนป่ายสามารถทำได้หลายวิธี:
ทีมที่ให้เรื่องราวแก่นักพัฒนาทุกคนมักจะมี "งานระหว่างทำ" หรือ WIP มากเกินไปและบ่อยครั้งที่เรื่องราวมากมายเริ่มขึ้น แต่ไม่ได้ทำ นี่คือรูปแบบการต่อต้านและไม่ใช่วิธีปฏิบัติที่ดีที่สุด
ทีมที่รุมมีแนวโน้มที่จะมี WIP น้อยลงและเติมเรื่องราวให้สมบูรณ์ - และเมื่อทำเสร็จแล้วฉันหมายถึงการพัฒนาทดสอบได้รับการอนุมัติพร้อมใช้งาน ดังนั้นนี่คือการปฏิบัติเป็นหลักที่ว่องไว
บทความต่อไปนี้บน InfoQ อธิบายวิธีการหนึ่งในการปีนป่าย:
อ่านบทความสำหรับคำอธิบายโดยละเอียด