วิธีการทำให้ Scrum ทำงานกับทีมที่มีบทบาทที่กำหนดไว้อย่างไร


13

ข้อมูลพื้นหลังบางส่วน

ฉันเป็นส่วนหนึ่งของทีมพัฒนาซอฟต์แวร์ภายในองค์กร มันประกอบด้วย

  • นักพัฒนา 5 คน (ด้วยประสบการณ์ตั้งแต่ 2 ถึง 5 ปีฉันเป็นหนึ่งในนั้น)
  • 3 เจ้าหน้าที่ดำเนินงาน (พวกเขาทำการปรับใช้ซอฟต์แวร์และฝึกอบรม)
  • และผู้จัดการโครงการ 1 คน

เราพัฒนาโครงการขนาดเล็กถึงขนาดกลางจำนวนมากและระยะเวลาของโครงการมักจะทับซ้อนกัน การพัฒนาเป็นเช่นนี้:

  1. "ลูกค้า" ทำให้เรามีชุดของความต้องการเริ่มต้น
  2. เราพัฒนาระบบเพื่อสเปคดังกล่าว
  3. นำเสนอระบบดังกล่าวเพื่อ "ลูกค้า"
  4. "ลูกค้า" ให้ข้อกำหนดเพิ่มเติมแก่เราตามการนำเสนอดังกล่าว
  5. ทำซ้ำ 2-4 จนกระทั่ง "ไคลเอนต์" หมดข้อกำหนดใหม่หรือวันที่เป้าหมายการปรับใช้ใกล้จะหมด
  6. ตั้งค่าและปรับใช้ระบบ

สิ่งนี้พร้อมกับความจริงที่ว่ามันเป็น "ลูกค้า" ที่จัดการกับกำหนดเวลาส่วนใหญ่ (ซึ่งเป็นธงสีแดงจากสิ่งที่ฉันเห็นที่นี่ในโปรแกรมเมอร์และ PM.SE) และเราไม่ปฏิบัติตามวิธีการพัฒนาที่ชัดเจน เพื่อการเข้ารหัสโคบาลรหัสใกล้เคียงและข้อบกพร่องที่ได้รับจากการผลิตเหนือสิ่งอื่นใด นั่นเป็นเหตุผลที่เราเลือกใช้วิธีการแบบ Agile-based เช่น Scrum

ทำไมต้องแย่งชิงกัน?

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

มีปัญหากับการแย่งชิงกัน

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

คำถาม

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


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

4
มีบทบาท / สถานที่แน่นอนสำหรับผู้เชี่ยวชาญในสภาพแวดล้อมที่มีความคล่องตัว (ต่อสู้หรืออย่างอื่น) อย่าเข้าใจผิดความจริงที่ว่าผู้คนคาดหวังว่าจะได้เห็นสิ่งที่ไม่ใช่ความพิเศษของพวกเขาสำหรับ "การห้าม" กับผู้เชี่ยวชาญ นอกจากนั้นคุณสามารถอธิบายเพิ่มเติมเกี่ยวกับสาเหตุที่คุณเลือกการต่อสู้และไม่ใช่ Kanban ได้หรือไม่? มัน shounds ที่ฉันชอบให้ซ้ำซ้อนอย่างต่อเนื่องของความต้องการแบบที่ดีขึ้นกว่าหนึ่งที่มีลมพัดที่กำหนดไว้ล่วงหน้าว่าการทำงานที่ดีที่สุดกับความต้องการคงที่ ...
อีเลียสแวน Ootegem

12
นักพัฒนา 5 คน แต่ไม่ใช่ผู้ทดสอบเดี่ยว?
Apfelsaft

8
@even คุณกำลังสับสนแจ็คของการซื้อขายทั้งหมด (รายบุคคล) กับcross-functional (ทีม)
guillaume31

6
ความนิยม วิธีที่ดีที่สุดในการเลือกอะไร
Robert Harvey

คำตอบ:


17

อันที่จริงวิธีการทำงานในปัจจุบันของคุณไม่ได้ห่างไกลจากการต่อสู้อย่างที่คุณคิด

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

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

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

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


2
การเปลี่ยนแปลงอย่างหนึ่งที่ Scrum และวิธีการอื่น ๆ ของ Agile จะแนะนำคือผลิตภัณฑ์ / คุณลักษณะทั้งหมดจะต้อง "ทำ" - ในสถานะที่สามารถเปลี่ยนแปลงได้ - ในตอนท้ายของการทำซ้ำทุกครั้ง
stannius

5

คุณขอทางเลือกอื่นดังนั้นฉันจะบอกว่า eXtreme Programming (XP) ฉันคิดว่าการเขียนโปรแกรมคู่อาจช่วยคุณได้ที่นี่

ด้วยการจับคู่ผู้คนที่มีทักษะแตกต่างกันเข้าด้วยกันมันไม่สำคัญว่าทักษะอะไร: การทำกาแฟการทดสอบการฝึกอบรมและอื่น ๆ คุณสามารถกระจายทักษะรอบ ๆ ทีม

แต่ความจริงแล้วมันไม่ได้ดูเหมือนว่า SCRUM จะไกลสำหรับคุณ ส่วนหนึ่งของ SCRUM นั้นมีความยืดหยุ่นและค้นหาสิ่งที่ดีที่สุดสำหรับทีมของคุณ ส่วนหนึ่งของ XP กำลังเคารพทีมและปรับตัวของคุณ บางทีในช่วง 100 ปีที่ผ่านมาเราอาจมีอาชีพที่พัฒนาแล้วอย่างเต็มที่ด้วยกฎที่ยากและรวดเร็ว (แม้ว่าฉันจะสงสัยก็ตาม) แต่สำหรับตอนนี้การทำสิ่งที่ดีสำหรับคุณคือสิ่งที่เรามี สิ่งสำคัญคือการมีลูปตอบรับ หากสิ่งใดไม่ทำงานทีมจะต้องหารือเรื่องนั้นและลองทำสิ่งใหม่ ๆ จนกว่าพวกเขาจะพบสิ่งที่ใช้ได้


3
+1 สำหรับ XP คำถามระบุว่าสาเหตุหลักของการใช้การแย่งชิงกันคือ "เราไม่ปฏิบัติตามวิธีการพัฒนาที่ชัดเจนนำไปสู่การเขียนโคบาลโค้ดที่ไม่สามารถควบคุมได้และข้อบกพร่องที่ผ่านการผลิต" - การแย่งชิงกันจะทำเพียงเล็กน้อยหรือไม่มีอะไรเลย มันไม่ได้กำหนดแนวทางปฏิบัติทางเทคนิคใด ๆ และมีเพียงแนวทางปฏิบัติทางเทคนิคเท่านั้นที่จะแก้ไขปัญหาเหล่านั้นได้ มีกรอบความคล่องตัวอื่น ๆ อีกมากมายที่ทำกับ XP เป็นผู้สมัครที่ดีที่สุดเพราะมันเป็นคนที่รู้จักกันดีที่สุดเพื่อ Scrum ในโครงสร้างที่ใกล้เคียงที่สุด
จูลส์

3

วิธีการทำให้ Scrum ทำงานกับทีมที่มีบทบาทที่กำหนดไว้อย่างไร

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

บางสิ่งที่คุณอาจต้องการที่อยู่:

ลมพัด

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

แก้ไขกำหนดเวลา

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


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

3
ในความเป็นจริงคุณกำลัง "รุมประชาทัณฑ์" สำหรับการชี้ให้เห็นว่าการทดสอบจะถือว่าเป็นไก่มากกว่าสุกร (อย่างน้อยที่ว่าทำไมฉัน downvoted คำตอบว่า) ...
เดวิดอาร์โน

@ ดัฟฟี่ฉันเห็นด้วย - ไม่มีชื่ออื่นนอกเหนือจากนักพัฒนา แต่ในความเป็นจริงแล้วบทบาทมักถูกจัดเรียงตามแนวดั้งเดิมมาก
Robbie Dee

@DavidArno ในร้านของพวกเรา ในความเป็นจริงเรามีการตั้งค่าที่เหมือนกันกับสิ่งที่ Duffy ร่าง ผู้ทดสอบของเราทำงานหนึ่งหรือสองหลัง ถูเป็นสมาชิกของทีมงานที่คุณคิดว่าเป็นทีมพัฒนา ตามที่ระบุไว้ในโพสต์ของฉันฉันก็ไม่ยอมรับว่า DBA และผู้สร้างสามารถจัดการเวลาได้ในลักษณะเดียวกับ vanilla devs - YMMV
Robbie Dee

เราจัดการกับเวลาได้ค่อนข้างดีใช้ความคิดและกระบวนการที่แตกต่างกันเล็กน้อยสำหรับการประเมินผู้ทดสอบเนื่องจากเป็นกระบวนการที่ยากกว่าการขับเคลื่อนด้วยการประมาณค่าทางเดินอาหาร แต่พวกเขามักจะจบลงด้วยการประมาณเวลาที่เชื่อถือได้มากขึ้น การทดสอบผ่านครั้งแรก) มากกว่า devs เนื่องจากลักษณะการทำงานของพวกเขากับของเรา ฉันเป็นนักพัฒนา DBA / DB ของทีมและลงตัวดีในการวิ่งอย่างรวดเร็วดังนั้นฉันไม่แน่ใจว่าทำไมพวกเขาจึงไม่เหมาะกับกระบวนการทำงานสำหรับผู้อื่น
ดัฟฟี่

3

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

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


0

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

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

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

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

“ การพัฒนาพฤติกรรมที่ขับเคลื่อนด้วย” โดยเจ้าหน้าที่ปฏิบัติงานจะเขียนตัวอย่างที่ใช้ในการทดสอบอาจได้ผล

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


"ดังนั้นแนวคิดเช่นการใช้คำฟุ่มเฟื่อย ... " - คุณหมายถึงความเร็วหรือไม่
Robbie Dee

หากนี่เป็นแอพพลิเคชั่นขององค์กรขนาดใหญ่ที่มีหลายแผนกที่ต้องการสิ่งต่าง ๆ ในแต่ละช่วงเวลาที่แตกต่างกัน
JeffO

@jeffO สามารถทำงานกับ scrum ได้หากมีใครคนหนึ่งมีอำนาจตัดสินใจระหว่างแผนก
เอียน

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