คุณพัฒนาซอฟต์แวร์โดยไม่มีเกณฑ์การยอมรับได้อย่างไร


70

คุณจะร่วมมือกันพัฒนาซอฟต์แวร์ในทีมนักพัฒนา 4-5 คนโดยไม่มีเกณฑ์การยอมรับได้อย่างไรโดยไม่รู้ว่าผู้ทดสอบจะทดสอบอะไรกับคนหลายคน (2-3) ที่ทำหน้าที่เป็นเจ้าของผลิตภัณฑ์

สิ่งที่เรามีคือ 'สเป็ค' ภาพร่างพร้อมภาพหน้าจอและสัญลักษณ์กระสุนเล็กน้อย

เราได้รับการบอกว่ามันจะง่ายดังนั้นสิ่งเหล่านี้จึงไม่จำเป็น

ฉันกำลังสูญเสียวิธีการดำเนินการต่อไป

ข้อมูลเพิ่มเติม

เราได้รับกำหนดเวลาที่ยากลำบาก

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

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

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


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

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

11
เจ้าของผลิตภัณฑ์เข้าใจหรือไม่ว่านี่เป็นวิธีที่ยอดเยี่ยมในการรับประกันต้นทุนและเวลาที่เพิ่มขึ้นหรือสูงขึ้น? นักวิทยาศาสตร์ที่ไม่ใช่คอมพิวเตอร์มักไม่เข้าใจความสำคัญของข้อกำหนดที่ชัดเจนเป็นลายลักษณ์อักษร ตัวอย่างเช่นรัฐบาลสหรัฐอเมริกามักพบปัญหาที่คล้ายกันเมื่อพวกเขาเปลี่ยนความคาดหวังสำหรับฮาร์ดแวร์ทางทหารใหม่ นี่คือหนึ่งในหลายเหตุผลว่าทำไมฮาร์ดแวร์ทางทหารจึงมักใช้งบประมาณเกินกำหนดและล่าช้ากว่ากำหนด joelonsoftware.com/2000/10/02/…
nickalh

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

13
คุณได้รับการตั้งค่าสำหรับความล้มเหลว นี่คือประเภทของสิ่งที่ต้องยกระดับให้กับการจัดการ หากคุณไม่มีกำหนดเวลาที่ยากคุณสามารถทำซ้ำจนกว่าคุณจะประสบความสำเร็จ หากผู้มีส่วนได้ส่วนเสียพร้อมรับข้อเสนอแนะคุณสามารถทำซ้ำได้เร็วพอที่จะถึงกำหนด เหมือนกันจริง ๆ แล้วมีสเป็คที่มีรายละเอียดพอสมควร แต่บางสิ่งบางอย่าง ที่มีให้ นี่เป็นส่วนที่คุณถามเจ้านายของคุณอย่างมากเพื่อดึง @ $$ ออกจากไฟ
Jared Smith

คำตอบ:


130

กระบวนการซ้ำจะประสบความสำเร็จอย่างนี้โดยไม่มีข้อกำหนดรายละเอียด

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

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

มันควรจะไปโดยไม่บอกว่าคุณจะไม่ทำงานสัญญาแบบตายตัวหรือแบบตายตัวด้วยวิธีนี้


114
หนึ่งควรเพิ่ม: "เพียงให้แน่ใจว่าคุณได้รับเงินต่อชั่วโมง" และไม่ "จ่ายเฉพาะเมื่อลูกค้าหมดความคิดสิ่งที่หายไป"
Doc Brown

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

4
@Doc Brown: OP แก้ไขเพื่อเพิ่ม "ลูกค้าเป็นภายใน" - ดังนั้นการชำระเงินรายชั่วโมงจึงไม่เป็นปัญหา
sleske

8
+1 ได้ทำตามกระบวนการนี้สำหรับโครงการภายในจำนวนมากและพบว่าทำงานได้ดีจริง ๆ และยิ่งกว่านั้นประหยัดเวลาโดยรวม หนึ่งเคล็ดลับคือการทำให้ซ้ำสั้น: หนึ่งหรือสองสัปดาห์
Bob Tway

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

58

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

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

หากลูกค้าของคุณถูกต้องเมื่อพวกเขาพูดว่า "มันจะง่าย" การออกกำลังกายนี้ควรเป็นเค้กชิ้นหนึ่ง

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


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

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

3
your draft specification will quickly illustrate the problem and communicate to them that they were wrong (....) since it will be right in front of them and obvious- ฉันต้องการชี้ให้เห็นว่าลูกค้าที่ตระหนักถึงความชัดเจนว่าทั้งหมดนี้เป็นลูกค้าที่คุณจะไม่มีปัญหาในการเริ่มต้น หรือเพื่อให้ประสบความสำเร็จมากขึ้น: วิธีการแก้ปัญหาหมายถึงการไม่มีอยู่ของปัญหา (ซึ่งเป็นความขัดแย้งที่ฉันรู้จักมากขึ้นและบ่อยขึ้นในทุกพื้นที่ของชีวิต) ...
Radu Murzea

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

18

เจ้าของผลิตภัณฑ์ส่งต้นแบบให้คุณ ส่งเขากลับคนที่ดีกว่า (จนกว่าคุณจะทำ)

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

ต้นแบบของคุณควรเริ่มต้นด้วยกระดาษเลื่อนไปสู่การจำลองแบบดิจิทัลแล้วสร้างด้วยเทคโนโลยี "ของจริง"

Treehouseมีคู่มือที่ยอดเยี่ยมสำหรับเรื่องนี้ซึ่งสรุป:

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

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

ตรงตามกำหนดเวลาของคุณ

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

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

ทำงานร่วมกับผู้ทดสอบของคุณ

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

ตรวจสอบว่าผู้ทดสอบมีสิ่งที่ บริษัท ต้องการหรือไม่เช่นเอกสารพิสูจน์การทดสอบซึ่งคุณสามารถ“ ย้อนกลับไป”

ลองทดสอบการออกแบบครั้งแรก

เนื่องจากคุณไม่มีข้อกำหนดที่เป็นทางการการขอทดสอบเพื่อพัฒนาต่อไปจะทำให้มีโครงสร้าง

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

ยึดตามมาตรฐานโดยเฉพาะอย่างยิ่งสำหรับ UI

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

เลือก UI มาตรฐานสำหรับเว็บไซต์ของคุณและไม่ปรับแต่งเว้นแต่ / จนกว่าจะมีการกำกับ ฉันไม่รู้ว่าคุณกำลังพัฒนาแพลตฟอร์มใด แต่BootstrapหรือGoogle Material Designเป็นสองตัวอย่าง

สื่อสาร แต่อย่ารบกวน

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

หากคุณมีคำถามให้อธิบายว่าคุณจะดำเนินการอย่างไรหากคุณไม่ได้รับคำแนะนำ ตัวอย่างเช่น:

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

อย่าตกใจ

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

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


จุดหนึ่งที่ไม่ได้กล่าวถึงคือ Dead Deadline: มันจะเป็นเรื่องสำคัญที่มีบางสิ่งที่ส่งมอบในวันนั้นและฟังก์ชั่น (ต้องผ่านการเคลื่อนไหว) แม้ว่าระฆังเสียงนกหวีดและลายเส้นที่หายไปเร็วกว่านั้นจะหายไป ด้วยข้อ จำกัด ในสถานที่จุดอื่น ๆ ทั้งหมดที่ @Tim ทำให้ควรจะดี
Philip Oakley

@PhilipOakley ขอบคุณสำหรับความคิดเห็น ฉันเพิ่มประเด็นเกี่ยวกับกระบวนการสร้างต้นแบบซ้ำควรสร้าง "สิ่งที่ส่งมอบ" ที่ยอมรับได้มากขึ้นเพื่อป้องกันไม่ให้พลาดกำหนดเวลา แจ้งให้เราทราบหากช่วยได้
Tim Grant

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

10

โครงการคือการลดความไม่แน่นอนจนกว่าจะมั่นใจ :

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

นั่นคือหลักการของการทำอย่างละเอียดถี่ถ้วน: ข้อกำหนด, เกณฑ์และผลลัพธ์จะอธิบายอย่างละเอียดทีละขั้นตอนเช่นเดียวกับที่จะทำความเข้าใจลูกค้าเกี่ยวกับความคาดหวังและความต้องการของตัวเองผ่านการมีส่วนร่วมในกระบวนการพัฒนา

นี่เป็นปัญหาหรือไม่?

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

คำตอบของคำถามทั้งสองนี้ควรอยู่ในสัญญา หรือจะเป็นเรื่องของการเจรจาต่อรอง และลูกค้าต้องยอมรับการมีส่วนร่วมเพิ่มเติม (อาร์กิวเมนต์หลักจะเป็น "ขยะในขยะออก" แม้ว่าฉันจะแนะนำคุณอย่างยิ่งที่จะนำเสนอมันในลักษณะทางการทูตมากขึ้น ;-))


1
ฉันรักประโยคแรก bookend คือลูกค้าอาจจะ: 1) ไม่แน่ใจในสิ่งที่พวกเขาต้องการ 2) เปลี่ยนใจเมื่อพวกเขาไป 3) ต้องการบางสิ่งที่ไม่สามารถทำได้ แต่ถ้านี่เป็นโครงการง่ายๆจริง ๆ มันก็มีโอกาสที่จะประสบความสำเร็จ

1
อันนี้เป็นทองคำ
Bruno Guardia

8

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

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


8

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

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

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

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

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


3

คุณไม่มีการทำงานเป็นทีม ไปเปรียว

นั่งลงกับ PO และออกเนื้อ / เรื่องเล็ก ๆ เริ่มต้น / โอบอุ้ม "เรากำลังจะส่งมอบหน้าจอนี้โดยมีเพียงปุ่มนี้ที่จะไป 'bing!'" ชำระบัญชี AC บางตัว ส่งมอบเรื่องราว แสดงให้เห็นถึงเรื่องราว ปรากฎปุ่มควรเป็นสีแดง ยกข้อบกพร่องหรือเรื่องใหม่ ส่งมอบปุ่มที่ไปบ้องและปัง และอื่น ๆ

ระบุและส่งชิ้นส่วนแนวตั้งขนาดเล็กร่วมกันที่แสดงให้เห็นบ่อยครั้ง

หากลูกค้าไม่ทำงานกับคุณในลักษณะนี้ให้มองหาทางออก


-1

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


-2

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

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

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


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

1
@whatsisname ตกลง ฉันก็เขียนโค้ดด้วยวิธีนี้เช่นกัน สิ่งนี้จะเกิดขึ้นเมื่องานมีมุมมองเชิงสำรวจ ขณะนี้มีข้อเสียเปรียบในการเขียนโค้ดโดยไม่มีข้อกำหนด แต่บางครั้งพวกเขาก็ยอมรับได้มากกว่าบอกว่าคุณไม่สามารถบรรลุเป้าหมายได้
Cort Ammon

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

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

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