ใครเป็นผู้เขียน 'เรื่องราวผู้ใช้งานทางเทคนิค' ในการต่อสู้


11

ฉันรู้ว่าเจ้าของผลิตภัณฑ์ควรเขียนเรื่องราวของผู้ใช้ในการต่อสู้

เรื่องราวของผู้ใช้อธิบายคุณลักษณะสำหรับผู้ใช้

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

และข้อมูลที่เก็บไว้เกี่ยวกับการต่อสู้นั้นอยู่ที่ไหน

นั่นจะทำให้ฉันสนใจจริงๆ!

ฉันเห็นการขาดความรู้จำนวนมากใน บริษัท ของเราเมื่อผู้พัฒนาเริ่มนำเรื่องราวมาใช้ แต่พวกเขาไม่รู้วิธีนำไปใช้จริง!

ตัวอย่างเช่นพวกเขาต้องจัดการกับ COM COM ดั้งเดิมและไม่รู้ว่าจะจัดการอย่างไรหรือพวกเขาไม่มีทักษะทางเทคนิคกับ WPF / WEB หรืออะไรก็ตาม

การต่อสู้ช่วยให้คนเริ่มเรื่องราวของผู้ใช้ได้อย่างไร

คำตอบ:


19

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

As a non-technical user, I need to have a simpler interface with the API

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

  • เอกสารและทำความเข้าใจกับ API ปัจจุบัน
  • ออกแบบ API ใหม่
  • ใช้ API ใหม่
  • ไม่ว่า ...

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


3
ฉันเห็นว่าทำไมคุณไม่เกลียดชัง คุณรู้ว่าคุณกำลังทำอะไร
JeffO

@JeffO lol ที่อาจเป็นการตอบสนองที่ถูกลบไปจากความคิดเห็นที่ถูกลบไปแล้วซึ่งเป็นเพียง "rabble rabble agile bad"
IdeaHat

@IdeaHat - ตัวอย่างเพิ่มเติมของข้อกำหนดที่คลุมเครือเมื่อ "ไม่ได้เตรียมตัว" ผู้จัดการผลิตภัณฑ์หรือ BA กำลังสร้างเรื่องราวของผู้ใช้softwareengineering.stackexchange.com/a/384838/260655
MasterJoe2

10

คำตอบสั้น ๆ

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

การวิเคราะห์โดย Scrum คือ:

  • เรื่องราวของผู้ใช้ -> เกณฑ์การยอมรับ

คนที่เสียมักจะใช้ด้านบนของนี้คือ:

  • Epic -> เรื่องราวของผู้ใช้
  • เรื่องราวของผู้ใช้ -> ภารกิจย่อย
  • เกณฑ์การยอมรับ -> การทดสอบการยอมรับ

นอกจากนี้ทีมอาจเขียนงานด้านเทคนิคสำหรับสิ่งที่พวกเขารู้ว่าต้องทำ (เช่นติดตั้ง IntelliJ IDEA สำหรับทุกคนในช่วงเริ่มต้นโครงการ) แต่ไม่มีคุณค่าทางธุรกิจ

สำหรับคำแนะนำเพิ่มเติมเกี่ยวกับวิธีการแยกย่อยงานให้ระวังXP (Extreme Programming), Clean Code , การเขียนโปรแกรมเชิงปฏิบัติ , วิศวกรรมซอฟต์แวร์ , CRC-Cards , OOP / OOA / OOD , รูปแบบการออกแบบ , การปรับโครงสร้างใหม่ , การทำงานอย่างมีประสิทธิภาพด้วยรหัสดั้งเดิม , TDD ( การทดสอบขับเคลื่อนการพัฒนา, BDD (การพัฒนาพฤติกรรมขับเคลื่อน), ATDD (การพัฒนาการทดสอบขับเคลื่อนยอมรับ)

คำตอบยาว ๆ

วิธีการแย่งชิงความคิด

What-World และ How-World

นั่นคือสิ่งที่โลกและวิธีโลก ในขณะที่คุณรู้สึกได้อย่างถูกต้องผู้ใช้เรื่องสำหรับผู้ใช้ , การสร้างมูลค่าทางธุรกิจ aka ราคารองในสิ่งที่โลก การแย่งชิงส่วนใหญ่คือ What-World เท่านั้น มันบอกอะไรเล็กน้อยเกี่ยวกับHow-Worldโดยทั่วไปไม่เกิน "How-World เป็นความรับผิดชอบของ Dev-Team"

เรื่องราวของผู้ใช้เทียบกับภารกิจ

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

การต่อสู้ช่วยและตำแหน่งที่ความช่วยเหลือสิ้นสุดลงอย่างไร

ความช่วยเหลือของ Scrum สำหรับHow-Worldสิ้นสุดลงเพียงไม่กี่จุดในการประชุม Sprint Planning Meeting :

  • [การประชุมวางแผนการวิ่ง] ทีมค้นพบความเข้าใจผิดของเรื่องนี้หากเพื่อนร่วมทีมที่แตกต่างกันเกิดขึ้นกับการประเมินเรื่องราวจุดที่แตกต่างกันระหว่างการวางแผนโป๊กเกอร์ -> การสนทนา
  • [คำจำกัดความพร้อมใช้งาน] ทีมไม่ยอมรับเรื่องราวของผู้ใช้ที่ใหญ่เกินไป (คะแนนเรื่องราวสูงเกินไป) กฎง่ายๆที่พบในคำจำกัดความพร้อมหลายแห่งคือคะแนนเรื่องราวต้องน้อยกว่าครึ่งหนึ่งของความเร็วของทีม
  • [คำจำกัดความพร้อมใช้งาน] ทีมไม่ยอมรับเรื่องราวของผู้ใช้โดยไม่มีคำอธิบายที่เพียงพอเกี่ยวกับเกณฑ์การยอมรับ เกณฑ์การยอมรับนั้นเพียงพอหากทีมมีความมั่นใจมากพอเกี่ยวกับวิธีเริ่มเขียนการทดสอบการยอมรับ

เคล็ดลับเล็ก ๆ น้อย ๆ เกี่ยวกับระดับการต่อสู้

ฉันพบว่ามีประโยชน์ในการแบ่งย่อยเรื่องราวของผู้ใช้ลงในงานย่อยในระหว่างการประชุมการปรับแต่ง Backlogหรืออย่างน้อยส่วนที่สองของการประชุมวางแผนการวิ่ง (สำหรับบางทีมการประชุมวิ่งวางแผน 2 )

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

และอย่าทำ "(สถาปัตยกรรม | การออกแบบ | การใช้งาน | การทดสอบ) ของคุณสมบัติ X" เป็นเรื่องราวของผู้ใช้ ฉันขอแนะนำให้คุณลองหลีกเลี่ยงสิ่งนี้ในฐานะ Subtask

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

Beyond Scrum

การต่อสู้เจ้านายเกินการต่อสู้

ทุกวันนี้ Scrum Master ส่วนใหญ่เข้าใจว่าเป็นบทบาทการบริหารจัดการและนั่นเป็นเรื่องที่น่ารังเกียจ ในขั้นต้นการแย่งชิงกันเป็นปริญญาโทและผมสนับสนุนนี้บทบาททางเทคนิคไม่ได้มีบทบาทในการบริหารจัดการเช่นเดียวกับโค้ชในXP

มันง่ายเกินไปที่จะพึ่งพา Scrum และ Scrum Master และตกอยู่ในช่องว่างขนาดใหญ่เพราะ Scrum ไม่ได้พูดอะไรเกี่ยวกับ How-World

หมุนต้นแบบต่อสู้

ตามหลักการแล้ว Scrum Master จะหมุนในหมู่นักพัฒนาที่มีประสบการณ์ซึ่งมีทักษะการจัดการและการสื่อสารที่เพียงพอจนกว่าทุกคนในทีมจะใช้ชีวิต "Inspect and Adapt" อย่างลึกซึ้งโดยหัวใจที่ Scrum Master กลายเป็นสิ่งที่ซ้ำซ้อน ไม่มีใครและทุกคนจะเป็นอาจารย์การต่อสู้ในเวลาเดียวกัน

แต่ระวัง Scrum Mastery เป็นเหมือนการทำอาหารไม่เหมือนกับการทำความสะอาดโต๊ะและล้างจาน คุณอาจต้องการหมุนผู้ทำความสะอาดโต๊ะและล้างจานตามที่ทุกคนสามารถทำได้ แต่คุณไม่ต้องการหมุนการทำอาหารกับทุกคนเพราะมีคนที่ไม่สามารถทำอาหารหรือไม่ชอบทำอาหารและคุณต้องการที่จะกินอาหารที่ดี

ข้อดีของการหมุน Scrum Master ระหว่างนักพัฒนาผู้เชี่ยวชาญคือทีมมีแนวโน้มที่จะเรียนรู้เกี่ยวกับวิธีการเพิ่มเติม

ทีมจัดตัวเอง

จากมุมมองของการต่อสู้ของทีมที่ต้องค้นหาตัวเอง, ความนึกคิดด้วยความช่วยเหลือของการแย่งชิงกันโท

การแย่งชิงกันก็เป็นเพียงแค่พูดของทีม Dev บทบาทอย่างสถาปนิกหรือหัวหน้าวิศวกรไม่มีอยู่ในการต่อสู้ นั่นไม่ได้หมายความว่าพวกเขาถูกห้าม แต่ก็หมายความว่าการแย่งชิงกันไม่ได้พูดอะไรเกี่ยวกับพวกเขา Scrum ประกาศทีมที่จัดการตนเองซึ่งหมายความว่าถ้าทีมประกาศสถาปนิกทีมนั้นมีสถาปนิก ไม่ได้กำหนดโดย Scrum แต่เป็นไปตาม Scrum ฉันไม่ได้ประกาศสถาปนิกที่อุทิศตน (ฉันทำงานเป็นสถาปนิกที่ได้รับมอบหมายเป็นเวลาหลายปีและแม้ว่าฉันจะชอบมันฉันก็คิดว่าฉันเป็นสถาปนิกที่ได้รับการกำหนดพื้นฐานแล้ว) เพียงแค่ยกตัวอย่าง

การทดสอบการยอมรับ

เรื่องที่ผู้ใช้มีเกณฑ์การตรวจรับ เกณฑ์การยอมรับเหล่านี้จะเปลี่ยนเป็นการทดสอบการยอมรับ

อย่างอื่น

สำหรับรายการสิ่งของเพิ่มเติมสำหรับการแยกย่อยให้ดูวิธีการแบ่งโครงการการเขียนโปรแกรมออกเป็นงานสำหรับนักพัฒนารายอื่น

หวังว่านี่จะช่วยได้


1

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

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

หากนักพัฒนาไม่ทราบวิธีการนำเรื่องราวมาใช้กรณีดังกล่าวอาจเป็นจริง:

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

คุณสามารถเรียนหลักสูตรนี้ใน SCRUM ที่ Udemy ได้ฟรีและเรียนรู้เกี่ยวกับแต่ละแง่มุมของกระบวนการ SCRUM - https://www.udemy.com/scrum-methodology/


0

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

อีกครั้งที่ PO ตัดสินใจว่าจะสร้างอะไรทีมจะต้องตัดสินใจว่าจะใช้เรื่องราวเหล่านั้นอย่างไร


0

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

โปรดจำไว้ว่า Agile priciple ต่อไปนี้

"สถาปัตยกรรมความต้องการและการออกแบบที่ดีที่สุดเกิดขึ้นจากทีมที่จัดระเบียบตัวเอง"

สิ่งนี้เกิดขึ้นเนื่องจากความไว้วางใจในทีมงานของ Agile Environment นั้นสูงและพวกเขามอบหมายงานให้กันเอง

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