วิธีการหยุดการพัฒนาสเปคจากการเปลี่ยนแปลงในการพัฒนากลาง?


61

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

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

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


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

4
@gnat คุณกำลังสันนิษฐานว่า OP ทำงานในองค์กรที่จัดให้มีขั้นตอนการตรึงคุณลักษณะ จากประสบการณ์ส่วนตัวที่ทำงานกับทีมพัฒนาในบ้านถ้าฉันจะเสนอเรื่องแบบนี้ผู้มีส่วนได้ส่วนเสียก็จะจ้องมาที่ฉันและพูดอะไรบางอย่างกับผลของ "ใครที่คุณคิดว่าคุณกำลังบอกฉันว่าฉันเป็นนรกเมื่อไหร่ คุณสมบัติของฉันต้องการสิ่งใดคุณคิดว่าฉันจะจ่ายให้คุณรู้ที่ของคุณ "
maple_shaft

29
คุณได้ลองบันทึกข้อมูลจำเพาะไว้ในไฟล์อ่านอย่างเดียวแล้วหรือยัง?
orlp

14
แน่นอนว่าคุณเรียกเก็บเงินพวกเขา: การเปลี่ยนแปลงข้อมูลจำเพาะทั้งหมดจะทำให้การวางจำหน่ายล่าช้าดังนั้นการตอบสนองต่อคำขอเปลี่ยนแปลงของคุณควรเป็นวันที่ประมาณการใหม่หากการเปลี่ยนแปลงนั้นถูกเพิ่มลงในข้อมูลจำเพาะ ใครก็ตามที่ขอให้มีการเปลี่ยนแปลงนั้นเป็นผู้รับผิดชอบต่อความล่าช้าและจำเป็นต้องอธิบายในลักษณะเดียวกับที่จะอธิบายค่าใช้จ่าย
Simon Richter

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

คำตอบ:


89

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

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

3
นอกจากนี้คุณยังสามารถ'แช่แข็ง'พวกเขาในขั้นตอนและผลักดันการเปลี่ยนแปลงเข้ามาในรุ่นถัดไป '
โทมัส

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

3
+1 สำหรับหมายเลข 6 ฉันมีประสบการณ์ที่ยอดเยี่ยมกับ PM ที่ใช้ข้อกำหนดนั้นเพียงอย่างเดียว
Joshua Drake

3
รอบสั้นเป็นกุญแจสำคัญ ผู้คนรู้สึกผิดหวังน้อยลงเกี่ยวกับบางสิ่งบางอย่างที่ถูกผลักเข้าสู่การวิ่งสองสัปดาห์ถัดไปกว่าตอนที่ "รุ่นถัดไป" หกเดือน
Adam Jaskiewicz

1
"ลงทุนในการกำหนดค่าการห่อหุ้ม" เป็นอย่างมากแตกต่างกันไปคำแนะนำที่เป็นอันตราย มันง่ายเกินไปที่จะนำไปสู่เอฟเฟกต์ด้านในและเลเยอร์สิ่งที่เป็นนามธรรมที่ว่างเปล่าซึ่งทั้งคู่ทำให้ยากต่อการเปลี่ยนระบบ ระบบที่เปลี่ยนแปลงได้ง่ายที่สุดคือระบบที่ง่ายที่สุด
Michael Borgwardt

40

ส่งบางสิ่ง (ฉันลังเลที่จะใช้คำอะไรก็ได้) แต่เนิ่น ๆ และส่งบ่อย นั่นคือ - ใช้วิธีการพัฒนาแบบวนซ้ำ

นี่คือพื้นฐานของการพัฒนาแบบ Agile แต่สามารถใช้ได้กับ (เกือบ) วิธีการใด ๆ

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

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


22

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

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

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


2
นาซ่าใช้ซอฟต์แวร์ของพวกเขาหรืออย่างน้อยก็เพียงพอที่จะส่งกระสวยอวกาศสู่อวกาศ สิ่งที่พวกเขาทำตามแบบจำลองน้ำตกจริง ๆ ข้อมูลจำเพาะถูกแช่แข็งจริง ๆ อย่างน้อยนี่คือความเข้าใจของฉันจากภายนอกองค์กร
Joshua Drake

5
ฉันทำงานหลายโครงการที่เราสามารถระบุระบบที่สำคัญพอสมควรได้อย่างสมบูรณ์ กุญแจสำคัญในกรณีเหล่านี้คือเรากำลังกำหนดเป้าหมายฮาร์ดแวร์ที่ได้รับการพัฒนาแล้วและกำลังพัฒนาไปยังข้อมูลจำเพาะที่เผยแพร่ (ITU) จึงไม่สามารถเปลี่ยนแปลงได้ ดังนั้นการโต้แย้งของคุณไม่ได้มีไว้สำหรับโครงการทั้งหมด - เพียง 99% ของโครงการทั้งหมด ! ;)
TMN

@TMN: ฉันไม่เห็นด้วยกับ 99% เช่นกัน ฉันคิดว่าการพัฒนาเหมือนน้ำตกนั้นประสบความสำเร็จมากกว่านัก agilists ที่ให้เครดิต มิฉะนั้นจะไม่สามารถใช้งานได้อีกต่อไป โครงการส่วนใหญ่ที่ฉันทำงานอยู่นั้นเป็นเหมือนน้ำตก กุญแจสำคัญคือการตั้งค่าพื้นฐานจากนั้นการเปลี่ยนแปลงใด ๆ ที่เกิดขึ้นจะมีการประมาณเวลาและเงินเพิ่มเติม จากนั้นลูกค้าจะตัดสินใจว่าจะรวมการเปลี่ยนแปลงหรือไม่และเลื่อนกำหนดการและดอลลาร์ไปตามลำดับ
Dunk

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

1
@ TMN ฉันสงสัยว่ามันคือกุญแจสู่ความสำเร็จ การใช้แบบจำลองน้ำตกหรือแนวทางของคุณมีระเบียบหรือไม่? ฉันคิดว่าภายหลังเป็นสิ่งสำคัญสำหรับทั้งสอง
Ross Goddard

19

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


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

6
@Dunk คุณถูกต้องเพราะถูกกว่าการเปลี่ยนไดอะแกรมจากนั้นโค้ด แต่คุณจะรู้ได้อย่างไรว่าการเปลี่ยนแปลงนั้นต้องเกิดขึ้น? บ่อยครั้งที่สิ่งนี้จะเกิดขึ้นหลังจากที่คุณให้บางสิ่งบางอย่างแก่ผู้ใช้และเขาก็ตระหนักว่าเขาสื่อสารความคิดที่ผิดนี่ไม่ใช่สิ่งที่เขาต้องการหรือมีสิ่งอื่นที่เขาต้องการเช่นกัน เคล็ดลับคือหาวิธีค้นพบการเปลี่ยนแปลงเหล่านี้โดยเร็วที่สุด
Ross Goddard

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

12

คุณกำลังถามคำถามผิด การเปลี่ยนแปลงสเป็คจะเสมอเกิดขึ้นในโครงการพัฒนาซอฟแวร์ที่มีขนาดใด

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

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

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

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

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


อ๋อ ในการเรียบเรียงคำถามเดิมใหม่: "เราจะรับประกันได้อย่างไรว่าเราจะส่งมอบสิ่งที่ลูกค้าต้องการเมื่อเริ่มโครงการแทนที่จะเป็นสิ่งที่พวกเขาต้องการในตอนท้าย"
Steve Bennett

5

การเปลี่ยนแปลงเป็นเพียงความประหลาดใจ ... ถ้ามันแปลกใจ!

ฉันขอแนะนำให้คิดเกี่ยวกับ:

  • การเปลี่ยนแปลงเหล่านี้มาจากไหน?
  • ทำไมคุณไม่ทราบก่อนหน้านี้
  • เหตุใดคุณจึงไม่สนับสนุนการเปลี่ยนแปลงเหล่านี้ (และอาจทำให้มีมากขึ้น)

การเปลี่ยนแปลงคือลักษณะของสิ่งที่เราทำ ตั้งแต่เมื่อไหร่ที่คุณรหัสอัลกอริทึมตรงตามที่จินตนาการไว้ในวันที่ 1

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


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

4

ลูกค้าโทรอยากได้มากขึ้น แต่นี่คือจุดที่คุณควรพิจารณา:

HTML Mock-ups:สร้าง HTML mock ups ขึ้นเพื่อกำหนดส่วน UI ของแอปพลิเคชันแสดงให้พวกเขาเห็นว่าหน้าตามันจะเป็นอย่างไรและขอความคิดเห็นจากพวกเขา หากคุณพบว่ามีสิ่งใดที่สมควรเปลี่ยนให้เกิดขึ้นในต้นแบบ HTML เมื่อใช้สิ่งนี้คุณจะพบกับสิ่งต่างๆมากมายเช่นปัญหา UI, โฟลว์พื้นฐานและส่วนเสริม (เช่นการเรียงลำดับ, การแบ่งหน้า, จำนวนระเบียนที่จะแสดงเป็นต้น)


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


การปล่อยแบบแยกส่วน:ปล่อยรหัสของคุณในแบบแยกส่วนการทดสอบการใช้ข้อเสนอแนะและปล่อยอีกครั้ง


4

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

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

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


4

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

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


3

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

ps ถ้าไม่ใช่ "PO"ฉันจะบอกว่าอย่าคุยกับฉันผ่าน "PO"


1

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

ไม่มีวิธีที่ดีที่สุด มันขึ้นอยู่กับการจัดการเพื่อ จำกัด การเปลี่ยนแปลงข้อมูลจำเพาะในระยะที่แน่นอนของการพัฒนา

อย่างไรก็ตามคุณควรออกแบบซอฟต์แวร์ของคุณในลักษณะที่คาดว่าจะมีการเปลี่ยนแปลง จากนั้นผลกระทบของการเปลี่ยนแปลงจะน้อยกว่ามาก การพัฒนาซ้ำและเพิ่มขึ้นเป็นการเริ่มต้นที่ดี


1

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


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

1

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


1

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

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

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


0

http://teddziuba.com/2010/05/why-engineers-hop-jobs.html

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

ตรงไปตรงมาฉันต้องการโปรแกรมเมอร์โดยทั่วไปมีลูกบอลเพิ่มขึ้น ลองดูที่:

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

หากคุณกำลังติดต่อกับลูกค้า $ -paying และหากคุณครอบคลุม ass ของคุณโดยมีสัญญา (http://vimeo.com/22053820?utm_source=swissmiss) การเปลี่ยนแปลงข้อมูลจำเพาะจะทำให้ลูกค้ารายนี้เสียเวลามากขึ้นและมีเงินมากขึ้น ( หรืออาจใช้เวลาเดียวกันหรือน้อยกว่าก็ได้ บริษัท ของคุณพยายามหลีกเลี่ยงการเปลี่ยนข้อมูลจำเพาะโดยไม่ต้องเสียเวลาและค่าใช้จ่ายมากขึ้น

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

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

จากนั้นยังมีคำมั่นสัญญาว่าด้วยการพัฒนาที่คล่องตัวซึ่งไม่ได้กำหนดเส้นตายอย่างหนัก

ฉันยังไม่เห็นว่าโปรแกรมเมอร์หยุดงาน แต่สิ่งนี้จะเป็นอะไรบางอย่าง ผู้จัดการที่ไม่มีความสามารถมีมากเกินไปใน บริษัท ซอฟต์แวร์ วิธีที่ผู้คนจำนวนมากเกินไปต้องการได้รับสิ่งใดสิ่งหนึ่งที่ Craigslist หรือภายใน บริษัท จริง http://teddziuba.com/2011/07/the-craigslist-reverse-programmer-troll.html

โปรแกรมเมอร์จำเป็นต้องมีลูกเพิ่ม


0

วิธีการที่ฉันพบว่าทำงานเรียงลำดับของ OK (ไม่ใช่กับผู้จัดการทั้งหมดอย่างชัดเจน) คือ "ฉันคิดว่าฉันสามารถทำเช่นนั้นได้ใช่ขึ้นอยู่กับ - คุณมีเวลาพิเศษที่กำหนดให้กับโครงการนี้มากน้อยเพียงใด ขอ."

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