คำถามติดแท็ก requirements

การดึงการวิเคราะห์ข้อมูลจำเพาะการตรวจสอบและการตรวจสอบข้อกำหนดสำหรับโครงการซอฟต์แวร์

3
คนจะกำหนดข้อกำหนดขั้นต่ำของฮาร์ดแวร์สำหรับซอฟต์แวร์ได้อย่างไร
คนจะกำหนดข้อกำหนดขั้นต่ำของฮาร์ดแวร์สำหรับซอฟต์แวร์ได้อย่างไร ตัวอย่างเช่น บริษัท พัฒนาซอฟต์แวร์จะบอกลูกค้าได้อย่างไรว่าพวกเขาจะต้องใช้ RAM 8 GB ในการรันโปรแกรมอย่างถูกต้อง

2
วิธีจัดการและประเมินความต้องการที่ไม่มีโครงสร้างที่ได้รับจากลูกค้า
หลายครั้งในระหว่างขั้นตอนการเสนอราคาของโครงการฉันได้รับข้อกำหนดของระบบซอฟต์แวร์จากผู้มีโอกาสเป็นลูกค้าของเราในรูปแบบที่ไม่มีโครงสร้างมากจากแหล่งต่าง ๆ [อีเมล, เอกสารคำ, excel] โดยปกติจะเป็นกลุ่มของ "การพัฒนาผลิตภัณฑ์" จากฝ่ายลูกค้าที่มาพร้อมกับ "โซลูชันที่เสนอ" เหล่านี้เพื่อแก้ไขปัญหาทางธุรกิจที่พวกเขามี ในขณะที่พวกเขาเป็นผู้เชี่ยวชาญในโดเมนธุรกิจหลายครั้งที่พวกเขาไม่มีทางแก้ไข ผลลัพธ์นี้ใน ข้อกำหนดเดียวกันหลายรุ่น ผสมสองข้อกำหนดเข้าเป็นหนึ่งเดียว ข้อกำหนดสองสามเวอร์ชันในภายหลังบรรทัดความต้องการที่รวมกันได้ถูกแยกออกอีกครั้งโดยแต่ละรายการจะมีส่วนเพิ่มเติมใหม่ คุณทำงานกับข้อกำหนดดังกล่าวที่เข้ามาและแยกออกเป็นกรณีการใช้งานที่เหมาะสมและก่อนการพัฒนาเริ่มต้นอย่างไร เครื่องมือใดที่เราสามารถใช้เพื่อติดตามประวัติของความต้องการเฉพาะตั้งแต่ครั้งแรกที่มันถูกสร้างขึ้นจนถึงเวลาที่มันจะตกผลึกเป็นกรณีการใช้งานที่เหมาะสม? การประเมินงานที่ตรงกับความต้องการที่ได้รับในรูปแบบดังกล่าวเป็นฝันร้ายที่สิ้นสุดลงในการทำผิดพลาดในการทำความเข้าใจข้อกำหนดอย่างถูกต้องและประเมินความพยายามกับสิ่งที่ถูกต้อง เมื่อเราชนะโครงการลูกค้าจะให้ความสำคัญกับความต้องการของพวกเขามากขึ้นและสามารถสื่อสารได้อย่างถูกต้อง สิ่งที่เกิดขึ้นในกรณีนี้คือฟังก์ชั่นบางอย่างอาจลดลงบางส่วนได้รับการปรับปรุงบางส่วนได้รับเทิร์นใหม่ทั้งหมด สิ่งนี้สามารถทำให้การประมาณการรายการงานบางส่วนเป็นโมฆะก่อนที่โครงการจะชนะ ฉันสนใจที่จะทราบว่ามีระบบใดบ้างที่เราสามารถสร้างแผนภูมิที่มีความต้องการเฉพาะและวิธีที่แต่ละสาขาส่งผลให้การประเมินแตกต่างกัน เคล็ดลับเครื่องมือและเทคนิคใด ๆ ที่ทำให้กิจกรรมนี้จัดการได้ง่ายขึ้นหรือไม่ ฉันแค่พยายามที่จะได้รับข้อมูลเชิงลึกจากคนที่มีประสบการณ์มากกว่าฉันในการจัดการความต้องการและการประเมินความพยายาม

10
ผู้จัดการเปลี่ยนแปลงข้อกำหนดเฉพาะอย่างต่อเนื่องหลังจากการสาธิตทุกครั้ง [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ความเป็นมาของสภาพแวดล้อมการทำงานของฉัน ผู้จัดการของฉันไม่มีพื้นฐานหรือความเข้าใจเกี่ยวกับคอมพิวเตอร์หรือซอฟต์แวร์ใด ๆ เป็นไปได้สูงว่าเขาไม่ได้เห็นรหัสในรูปแบบใด ๆ (แม้จากระยะกายภาพ 10 ฟุตหรือน้อยกว่า) ในชีวิตของเขา นอกจากนี้ไม่มีใครที่เข้าใจความซับซ้อนของสิ่งที่ฉันขอให้ดำเนินการ จนถึงจุดที่ว่าถ้าฉันกึ่ง hardcode ไม่มีใครรู้ ในการทดสอบของ Joelเราได้คะแนน 0 ที่ไม่น่าเชื่อ ปัญหา ผู้จัดการและ "อาวุโส" คนอื่น ๆ ยังคงเปลี่ยนแปลงข้อกำหนดคุณสมบัติอยู่เสมอ การเปลี่ยนแปลงซึ่งหากทำวิศวกรรมที่ดีและไม่ใช่ "การแก้ไข" จะต้องมีการเปลี่ยนแปลงในการออกแบบต้นแบบ มีอย่างแน่นอนไม่มีใครที่ดูรหัส (อาจจะเป็นเพราะไม่มีใครรู้ว่าวิธีการหรือแม้กระทั่งถ้ามันควรจะทำ) ซึ่งหมายความว่าไม่มีใครเลยที่จะสามารถ: ชื่นชมความซับซ้อนของปัญหาหรือความสง่างามของการแก้ปัญหา แนะนำการปรับปรุงแนวทาง ขอบคุณคุณภาพของรหัส ชี้ตำแหน่งที่สามารถปรับปรุงรหัสได้ ใช้ศัพท์แสงจำนวนมากซึ่งทำให้รู้สึกถึงหลักไวยากรณ์ แต่ล้มเหลวในการทำให้รู้สึกอย่างอื่นใด ๆ ไม่รู้สึกทำงานหรือทำงานเหมือน บริษัท ซอฟต์แวร์ คำถาม สิ่งที่ควรทำ โดยเฉพาะอย่างยิ่งเมื่อไม่มีใครที่จะชี้ให้เห็นการปรับปรุงในรหัสของฉัน ปรับปรุง …

8
คุณจัดการคำขอคุณลักษณะและการเปลี่ยนแปลงซอฟต์แวร์ได้อย่างไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันเป็นวิศวกรซอฟต์แวร์และในช่วงไม่กี่ปีที่ผ่านมาฉันได้กลายเป็นผู้จัดการโครงการซอฟต์แวร์อย่างแท้จริงเพราะไม่มี ดังนั้นเพื่อรักษาสติของเราในแผนก R & D / วิศวกรรมลูกค้าได้คุ้นเคยกับการมากับฉันด้วยการร้องขอของพวกเขา ฉันไม่มีประสบการณ์ในอาณาจักรนี้ดังนั้นจึงเป็นครั้งแรกที่ฉันทำหน้าที่เป็นผู้จัดการโครงการสำหรับโครงการซอฟต์แวร์ ฉันจัดการสิ่งอื่น ๆ แต่ไม่ใช่ซอฟต์แวร์ ดังนั้นคุณจะจัดการโครงการซอฟต์แวร์และทำเครื่องหมายลำดับความสำคัญได้อย่างไร การร้องขอเข้ามาในช่วงเวลาที่ไม่บ่อยนักดังนั้นเราจึงสามารถทำงานบางอย่างเพื่อคนอื่นแล้วคนอื่นก็เข้ามาทำงาน "เร่งด่วน" ที่ต้องการทำงาน มันง่ายกว่าไหมที่จะบอกว่ามาเป็นคนแรกเสิร์ฟก่อนหรือเป็นคนที่มีเงินมากที่สุด?

5
วิธีการโน้มน้าวใจสมาชิกในทีมถึงการมี“ mandelbug”
เรากำลังพัฒนาแอปพลิเคชัน มันมีห้องสมุดที่พัฒนาโดย coder อื่นห้องสมุดนี้สื่อสารกับเซิร์ฟเวอร์ผ่านการเชื่อมต่อเครือข่ายที่หลากหลายและสิ่งนี้เกี่ยวข้องกับการทำงานร่วมกันหลายหัวข้อ รหัสฝั่งเซิร์ฟเวอร์ค่อนข้างซับซ้อนและเราไม่สามารถเข้าถึงซอร์สโค้ดได้ เมื่อเร็ว ๆ นี้ฉันได้ค้นพบmandelbug ที่ทำให้แอปพลิเคชันขัดข้องบางครั้ง ฉันสามารถทำซ้ำได้ครั้งเดียวและได้รับการติดตามสแต็กดังนั้นฉันจึงเปิดรายงานข้อผิดพลาด ข้อผิดพลาดเองนั้นง่ายต่อการแก้ไข (ไม่ได้ยกเว้นข้อยกเว้นทางเว็บในหนึ่งในเธรดพื้นหลังซึ่งทำให้ CLR ยุติโปรแกรม) ปัญหาคือผู้พัฒนาปฏิเสธที่จะแก้ไขข้อผิดพลาดเพราะ "เขาไม่เชื่อว่ามีอยู่" น่าเสียดายสำหรับฉันเจ้านายกำลังเข้าข้างเขาและบอกว่าข้อผิดพลาดนี้ไม่สามารถแก้ไขได้เว้นแต่ฉันจะสร้าง "กรณีทดสอบที่เป็นของแข็ง" เพื่อพิสูจน์การมีอยู่ของข้อบกพร่องและทำการทดสอบหน่วยเพื่อยืนยันว่ามันหายไป สิ่งที่เป็นไปไม่ได้โดยทั่วไปเนื่องจากลักษณะของข้อบกพร่อง คำแนะนำใด ๆ?

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

1
freelancer: คุณจะรวบรวมความต้องการได้อย่างไร
ในฐานะโปรแกรมเมอร์อิสระ: กระบวนการของคุณสำหรับการรวบรวมความต้องการจากลูกค้าคืออะไร? ขั้นตอนการรวบรวมความต้องการใช้เวลาเท่าไหร่ ฉันรู้ว่าสิ่งนี้ไม่ได้รับการแก้ไขและมีตัวแปรเช่นวิธีที่ลูกค้าแจ้งในการตอบสนองและเช่นนั้น โดยทั่วไปการบัญชีสำหรับความล่าช้าในการตอบสนองและใช้เวลานานเท่าไรถึงข้อกำหนดขั้นสุดท้าย? ช่องทางการสื่อสารใดที่คุณใช้เพื่อรวบรวมข้อกำหนดเหล่านี้ (อีเมล, โทรศัพท์, ผู้ส่งข้อความด่วน, อื่น ๆ ) คุณคิดค่าใช้จ่ายตามเวลาที่รวบรวมความต้องการหรือไม่? มีกระบวนการจัดส่งใด ๆ ในการรวบรวมความต้องการของคุณหรือไม่? ถ้าเป็นเช่นนั้น

3
Robustness กับการแข่งขัน Correctness [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดเมื่อปีที่แล้ว การอ่าน "รหัสสมบูรณ์ 2" ในย่อหน้าข้อกำหนดคุณภาพฉันพบสิ่งนี้: มีการแลกเปลี่ยนที่ยอมรับได้ระหว่างแอตทริบิวต์การแข่งขันที่ระบุตัวอย่างเช่นระหว่างความแข็งแกร่งและความถูกต้องหรือไม่ (นี่คือจุดของรายการช่องทำเครื่องหมายขนาดใหญ่เพื่อตรวจสอบคุณภาพของข้อกำหนด) ดังนั้นฉันจึงพบคำจำกัดความของความทนทานและความถูกต้องจำนวนมากในเว็บหนังสือวิชาการ ฯลฯ เช่น : ในหนังสือ "Object Oriented Software Construction, 2nd Edition, Bertrand Meyer, Prentice-Hall, 1997" หนังสือ: ความถูกต้อง: ระดับที่ระบบเป็นอิสระจาก [ข้อบกพร่อง] ในข้อมูลจำเพาะการออกแบบและการใช้งาน ความทนทาน: ระดับที่ระบบยังคงทำงานต่อเมื่อมีอินพุตไม่ถูกต้องหรือสภาวะแวดล้อมที่ตึงเครียด อย่างไรก็ตามเรื่องนี้ยังไม่ชัดเจนว่าทำไมและในสถานการณ์ทั้งสองนี้อาจขัดแย้งกัน คำถามของฉันคือทำไมคุณสมบัติทั้งสองนี้ในการแข่งขัน ?

2
มาตรฐาน 830-1998 ใช้แทนที่อะไร
ฉันได้รับการมองเข้าไปในวิธีการเอกสารโครงการซอฟต์แวร์มากขึ้นอย่างเป็นทางการและฉันได้เรียนรู้เกี่ยวกับมาตรฐาน IEEE 830-1998: การปฏิบัติที่แนะนำสำหรับการซอฟต์แวร์ข้อกำหนดจำเพาะ อย่างไรก็ตามอย่างที่คุณเห็นจากลิงค์นั้นมันถูกแทนที่ ฉันรู้ว่า 830-1998 และอาจเป็น 830-1993 อาจจะใช้ได้ดี อย่างไรก็ตามถ้าไม่มีอะไรอื่นฉันอยากจะรู้ว่ามาตรฐานได้แทนที่มัน ในกรณีนี้มันอาจจะไม่สำคัญ แต่ถ้ามาตรฐานอื่นถูกแทนที่สำหรับสิ่งทางเทคนิคเพิ่มเติมฉันคิดว่ามันเป็นความคิดที่ดีที่จะเชื่อมโยงบางสิ่งที่มาตรฐานแทนที่อื่น (ถ้าไม่ใช่อีกอันในบรรทัดเดียวกัน (830 ในนี้ กรณี)). เป็นมูลค่าการกล่าวขวัญว่า: มาตรฐานล่าสุดเมื่อค้นหา "ข้อกำหนดข้อกำหนดซอฟต์แวร์" หรือ "ข้อกำหนดซอฟต์แวร์" บนเว็บไซต์สมาคมมาตรฐาน IEEE คือ 830-1993 SWEBOKรุ่น 2004 (ปัจจุบัน) อ้างอิง 830-1993 ( ย่อหน้า 2.5 ) บทความ Wikipediaของเอกสารไม่ได้ระบุว่ามาตรฐานถูกแทนที่ TLDR: คุณจะพบสิ่งที่มาตรฐานแทนที่อื่นและสิ่งหนึ่งที่เกิดขึ้น 830-1998 ได้อย่างไร

5
ข้อกำหนดขั้นต่ำของระบบมีการกำหนดอย่างไร
เราทุกคนได้เห็นตัวอย่างมากมายของซอฟต์แวร์ที่มาพร้อมกับ "ความต้องการขั้นต่ำของระบบ" ดังต่อไปนี้: Windows XP / Vista / 7 RAM 1GB พื้นที่เก็บข้อมูล 200 MB โดยทั่วไปแล้วจะมีวิธีพิจารณาอย่างไร เห็นได้ชัดว่าบางครั้งมีข้อ จำกัด เฉพาะ (ถ้าโปรแกรมใช้พื้นที่ 200 MB บนดิสก์นั่นเป็นข้อกำหนดที่ยากมาก) นอกเหนือจากสถานการณ์เหล่านั้นหลาย ๆ ครั้งสำหรับสิ่งต่าง ๆ เช่น RAM หรือตัวประมวลผลปรากฎว่ามากขึ้น / เร็วขึ้นดีขึ้นโดยไม่มีข้อ จำกัด อย่างหนัก สิ่งเหล่านี้ถูกกำหนดอย่างไร? นักพัฒนาทำตัวเลขที่ดูเหมือนสมเหตุสมผลหรือไม่ QA ผ่านกระบวนการที่เข้มงวดเพื่อทดสอบข้อกำหนดต่างๆจนกว่าพวกเขาจะพบการตั้งค่าต่ำสุดพร้อมประสิทธิภาพที่ยอมรับได้หรือไม่? สัญชาตญาณของฉันบอกว่ามันควรจะเป็นหลัง แต่มักจะเป็นอดีตในทางปฏิบัติ

8
คุณสมบัติเทียบกับฟังก์ชั่น [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว บ่อยครั้งที่ฉันได้ยิน PMs (ผู้จัดการโครงการ) พูดคุยเกี่ยวกับคุณสมบัติและฟังก์ชั่น และฉันก็งงมากที่จะแยกแยะพวกเขา บางครั้งฉันคิดว่าคุณสมบัติที่จะเทียบเท่ากับเรื่องราวของผู้ใช้ บางสิ่งเช่น "ในฐานะผู้ใช้บ็อบน่าจะเห็นรายการการชำระเงินของเขา" และพวกเขาเรียกมันว่าฟีเจอร์ บางครั้งมันก็ใหญ่เท่ากับระบบย่อยบางอย่างเช่น "ความสามารถในการส่ง SMS ผ่านเว็บแอปพลิเคชัน" ในทางกลับกันฟังก์ชั่นบางครั้งจะมีขนาดเล็กเท่ากับงาน "ใช้การจัดกลุ่มตัวเลขสำหรับอินพุตหมายเลข" ในขณะที่มีบางกรณีเมื่อมันใหญ่ขึ้นเท่ากับการดำเนินการ CRUD ทั้งหมด คำถามของฉันคือเราจะแยกความแตกต่างของคุณสมบัติจากฟังก์ชั่นได้อย่างไร

8
ให้ผู้ใช้ได้รับความต้องการร่วมกันด้วยตนเองหรือแนะนำพวกเขาไปพร้อมกัน?
ฉันแน่ใจว่าทุกคนมีประสบการณ์เช่นนี้ คุณเข้าสู่การประชุมกับลูกค้าที่มีโครงการ พวกเขามีความต้องการไม่ จำกัด / น้อยในใจและความเข้าใจที่คลุมเครือในสิ่งที่พวกเขาต้องการ / ต้องการ ณ จุดนี้ดูเหมือนจะมีสองตัวเลือก: 1) บอกผู้ใช้ว่า "ตกลงดังนั้นฉันไม่สามารถสร้างอะไรให้คุณได้ถ้าคุณยังไม่สามารถอธิบายได้ทำไมเราไม่กลับมารวมกันในอีกไม่กี่สัปดาห์เมื่อคุณรู้ว่าคุณต้องการอะไร" 2) พบกับผู้ใช้สองสามครั้งและช่วยให้พวกเขาค้นหาสิ่งที่พวกเขาต้องการโดยชี้แนะพวกเขาผ่านวิธีการโสคราตีสที่ดี "คุณต้องการติดตาม X หรือไม่", "แล้ว Y ล่ะ", "คุณต้องการฟังก์ชัน Z หรือไม่" ด้วยตัวเลือกแรกคุณจะไม่ติดขัดในการทำงานของคนอื่นหรือได้รับพลังจิต แต่ผู้ใช้อาจไม่เคยนำเสนอคุณด้วยสเปคที่สอดคล้องกันหรือพวกเขาอาจใช้เวลาตลอดไปตามกำหนดเวลายังคงดำเนินต่อไป ด้วยตัวเลือกที่สองคุณเสียเวลาเป็นนักวิเคราะห์ธุรกิจและต้องยัดความรู้ทางธุรกิจเข้ามาในหัวของคุณซึ่งคุณอาจไม่เคยใช้อีกเลย แต่คุณจะมีความเป็นไปได้มากกว่าที่จะมีสเป็คที่ ทำให้รู้สึกใด ๆ สำหรับฉันนี่เป็นหนึ่งในแง่มุมที่ท้าทายที่สุดของการพัฒนาและฉันรู้สึกว่าฉันไม่ได้โดดเดี่ยวในความรู้สึกนี้ จากประสบการณ์ของคุณตัวเลือกใดมีแนวโน้มที่จะทำงานได้ดีขึ้น

4
นักพัฒนาคาดหวังรายละเอียดเกี่ยวกับเรื่องราวของผู้ใช้ได้มากน้อยเพียงใด
ข้อเสียเปรียบที่ใหญ่ที่สุดของการพัฒนาแบบเปรียวที่ฉันเคยพบคือคนที่ไม่ได้มีส่วนร่วมในการพัฒนามุ่งเน้นไปที่มนต์ที่เรื่องราวของผู้ใช้ (3-10 วันในอุดมคติของคน) ไม่ควรมีมากกว่า 1-3 ประโยคเช่น: ในฐานะลูกค้าฉันสามารถใช้การค้นหาข้อความอิสระเพื่อหาผลิตภัณฑ์ที่ฉันกำลังมองหา ให้ประโยคนี้ผู้จัดการโครงการคาดหวังว่าฉันในฐานะนักพัฒนาเพื่อมอบความไว้วางใจในการประเมินและพัฒนาเรื่องราว พวกเขาคิดว่าการพัฒนาที่คล่องตัวหมายถึงประโยคเช่นนี้คือทั้งหมดที่พวกเขาต้องจัดหาให้นักพัฒนา ฉันจะไม่โทษพวกเขาเพราะวรรณกรรมที่รู้จักกันดีเกี่ยวกับการพัฒนาที่คล่องตัวสร้างความประทับใจว่าสิ่งนี้จะได้ผลจริง ฉันได้อ่านบางอย่างเช่น 2 หน้าในภาษาธรรมชาติต่อเรื่องใน "Planning XP" แต่นั่นคือ เนื่องจาก "ซอฟต์แวร์ที่ใช้ในการทำงาน" ได้รับการสนับสนุนมากกว่า "เอกสารที่ครอบคลุม" หัวข้อนี้จึงดูเหมือนจะหลีกเลี่ยงโดยทั่วไป แน่นอนว่าในความเป็นจริงแล้วหากผู้พัฒนาได้รับโอกาสให้ทำเช่นนั้นการสัมภาษณ์กับลูกค้าจะนำเสนอรายการข้อกำหนดจำนวนมากที่ลูกค้ามีเกี่ยวกับเรื่องราว: เราต้องการตัวดำเนินการบูลีนเช่น AND และ OR เราต้องการคำทั้งหมดคลุมเครือ เราจำเป็นต้องค้นหาด้วยคำเดียวเช่นเดียวกับวลี เราไม่ต้องการค้นหาผลิตภัณฑ์ที่ตรงตามเกณฑ์ X, Y และ Z เราต้องการเรียงลำดับผลลัพธ์ ผู้ใช้สามารถเลือกเกณฑ์การเรียงในกล่องคำสั่งผสมพร้อมตัวเลือก a, b และ c ดังนั้นคุณจะเห็นว่าฉันไม่ได้พูดถึงรายละเอียดทางเทคนิคหรือการออกแบบซอฟต์แวร์หรือแม้แต่รายละเอียดการใช้งาน มันเป็นข้อกำหนดที่บริสุทธิ์ ยิ่งเราคุยกันนานเท่าไหร่ลูกค้าก็ยิ่งตระหนักว่ามีอะไรมากมายที่จะพูดเกี่ยวกับสิ่งที่พวกเขาต้องการ แต่บ่อยครั้งที่ฉันพบว่าตัวเองอยู่ในสถานการณ์ที่ข้อมูลดังกล่าวไม่ได้รับการจัดเตรียมไว้ให้ เป็นไปได้หรือไม่ที่ฉันจะทำการสัมภาษณ์และบุคคลที่จะอยู่ในตำแหน่งที่จะทำการสัมภาษณ์ไม่ได้ให้ผลลัพธ์กับฉัน บางครั้งผู้จัดการอาจหารายละเอียดทางเทคนิคเช่น "เราต้องการค้นหา Lucene" แต่พวกเขาไม่ต้องการคิดว่าพวกเขาต้องการค้นหาเฉพาะชื่อผลิตภัณฑ์หรือคำอธิบายผลิตภัณฑ์ บางครั้งฉันคิดว่าพวกเขาขี้เกียจ;) สำหรับฉันนี่เป็นปัญหาอันดับต้น …

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

4
การจัดการความต้องการทำงานในระยะยาวกับโครงการ Agile อย่างไร
การจัดการความต้องการในระยะสั้นสำหรับโครงการ Agile ดูเหมือนจะเป็นปัญหาที่แก้ไขแล้วสำหรับฉัน จากข้อกำหนดใหม่ในมุมการต่อสู้หรือการเปลี่ยนแปลงข้อกำหนดที่มีอยู่จะถูกส่งผ่านเรื่องราวของผู้ใช้ และเรื่องราวของผู้ใช้ที่จัดกลุ่มภายใต้มหากาพย์หรือฟีเจอร์ช่วยอำนวยความสะดวกในการส่งมอบความต้องการที่ซับซ้อนมากขึ้น แน่นอนเรื่องราวของผู้ใช้ไม่ใช่เอกสารข้อกำหนดทางเทคนิค มันคือการจัดกลุ่มงานที่จัดการได้ซึ่งแมปกับสิ่งที่มักเรียกว่าVertical Sliceของฟังก์ชันการทำงาน และขอบเขตของเรื่องราวเหล่านี้สามารถกำหนดได้อย่างชัดเจนผ่านการใช้เกณฑ์การยอมรับ (AC) ดังนั้นแม้ว่าเรื่องราวของผู้ใช้จะไม่เป็นข้อกำหนดที่เป็นทางการ แต่การเรียกดูผ่านเรื่องราวเหล่านั้นสามารถให้แนวคิดที่ชัดเจนเกี่ยวกับข้อกำหนดพื้นฐานของพวกเขาได้ ในระยะสั้น. ฉันพูดในระยะสั้นเพราะในขณะที่โครงการดำเนินไปเรื่อย ๆ จำนวนเรื่องราวของผู้ใช้เพิ่มขึ้น ดังนั้นการเรียกดูรายการเรื่องราวที่เพิ่มขึ้นเรื่อย ๆ เพื่อค้นหาสิ่งที่ต้องการจะน้อยลงและมีประสิทธิภาพน้อยลงเมื่อเวลาผ่านไป ปัญหานี้เกิดขึ้นเมื่อคุณพิจารณาเรื่องราวของผู้ใช้ที่ขยายขึ้นแทนที่หรือแม้แต่คัดค้านเรื่องราวก่อนหน้า ตอนนี้ลองนึกภาพช่องว่าง 2 ปีระหว่างการทำซ้ำการพัฒนาในโครงการ (มีความเสถียรในการผลิต) ทีมเดิมหมดไปแล้วและเป็นความรู้ทั้งหมด หากทีมดั้งเดิมรู้ว่าสิ่งนี้จะเกิดขึ้น (เช่นเป็นลักษณะของธุรกิจ) แล้วพวกเขาจะใช้มาตรการอะไรเพื่อช่วยทีมต่อไป แน่นอนว่างานในมือจะให้ข้อมูลบางอย่าง แต่แทบจะไม่ได้อยู่ในรูปแบบที่เรียกดูได้ง่าย ดังนั้นสิ่งที่สามารถทำได้เพื่อช่วยให้ทีมต่อมาเข้าใจถึงสถานะของโครงการรวมถึงสาเหตุและวิธีการไปถึงที่นั่น? จากประสบการณ์ของฉันสิ่งต่อไปนี้ใช้ไม่ได้: กรูมมิ่ง Backlogเพื่อลบหรืออัปเดตเรื่องราวผู้ใช้ก่อนหน้าเพื่อให้สามารถอ่าน Backlog เป็นเอกสารข้อกำหนดได้ Documentation Sprintsที่สมาชิกในทีมได้รับมอบหมายด้วยการบันทึกสถานะปัจจุบันของระบบ เอกสารผ่านการทดสอบพฤติกรรม วิธีนี้เป็นวิธีเดียวที่ฉันได้เห็นมาใกล้กับการทำงาน น่าเสียดายที่การทดสอบพฤติกรรมการใช้รหัสเป็นเหยื่อของปัญหาการตั้งชื่อ แม้ว่าการทดสอบอาจจัดทำเอกสารระบบอย่างถูกต้อง แต่ให้ทีมนักพัฒนาที่มีความผันผวนในการเขียนการทดสอบตามคำศัพท์โดเมนถ้อยคำและรูปแบบที่เหมือนกันนั้นแทบเป็นไปไม่ได้ ดังนั้นเพื่อย้ำ: หนึ่งจะจัดการความต้องการโครงการเปรียวในระยะยาวได้อย่างไร

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