คุณจัดการกับความต้องการที่เปลี่ยนแปลงอย่างไร [ปิด]


14

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

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

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


2
ที่เกี่ยวข้อง - programmers.stackexchange.com/questions/73/…
ChrisF

คำตอบ:


14

@ โจ "เราเป็นร้านค้า" เปรียว "ดังนั้นฉันเข้าใจว่าเราควรจะปรับตัวและไม่ทำอะไร แต่บางครั้งการเปลี่ยนแปลงมีขนาดใหญ่และไม่มีอะไรน่ารำคาญ"

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

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

คุณต้องการ X และ Y ในสองสัปดาห์ แต่ในทันใดที่คุณต้องการซีเอาล่ะจากนั้นฉันสามารถส่งคุณทั้งสามใน 4 สัปดาห์ หรือฉันสามารถให้คู่ (X และ Z) หรือ (X และ Y) หรือ (Y และ Z) ในสองสัปดาห์และส่งมอบส่วนที่เหลือในภายหลัง เลือก.

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

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

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

สมมติว่าคุณมีการวัดที่คุณสามารถพูดคุยกับผู้ใช้ได้ด้วย คุณรู้ว่าจะมีคำขอใหม่พูดรหัสบรรทัด 1K หรือ 10 หน้าเว็บที่มีช่องป้อนข้อมูลเฉลี่ย 5 ช่องแต่ละช่อง (50 คะแนนฟังก์ชั่น)

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

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

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

  1. ระยะเวลา X ที่จะเสร็จสมบูรณ์โดยมีโอกาส 25% ของความล้มเหลว (หรือ 75% ของความสำเร็จ)

  2. ระยะเวลา 1.5 * X เพื่อให้เสร็จสมบูรณ์โดยมีความล้มเหลว 5% (หรือ 95% ของความสำเร็จ)

  3. 0.5 * X จำนวนเวลาที่จะเสร็จสมบูรณ์ด้วยความล้มเหลว 95% (หรือ 5% ของความสำเร็จ)

ความน่าจะเป็นที่จะเกิดความล้มเหลวในฐานะหน้าที่ของทรัพยากรเวลาโดยทั่วไปจะอยู่ที่ 95%, 25% และ 5% (คล้ายกับ distron แบบเอ็กซ์โปเนนเชียล) คุณถ่ายทอดข้อความว่าจำนวนพื้นฐานบางอย่างมีโอกาสประสบความสำเร็จค่อนข้างดี ) 1.5 จากนั้นอาจให้โอกาสในการประสบความสำเร็จโดยมีความเสี่ยงน้อยที่สุด แต่น้อยกว่านั้นมาก (น้อยกว่า 0.5 เดิมรับประกันความล้มเหลวบางอย่าง)

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

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


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

8

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


ฉันไม่ได้บอกว่าการให้และรับเป็นปัญหา ฉันถามว่าคุณสื่อสารความซับซ้อนและขอบเขตของการเปลี่ยนแปลงที่ถูกถามได้อย่างไร

2
@ โจคุณให้ประมาณแล้ว
jk

4

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

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

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


1

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

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

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

จะไม่มีการเข้าใจถึงสิ่งที่กล่าวมาข้างต้นและถูกต้องโดยลูกค้าปลายทาง

โดยทั่วไปสิ่งที่ไม่มี "มุมมอง" (องค์ประกอบ GUI) ยังไม่เสร็จ

ลองเรียกทฤษฎีบทนี้ว่า projenix ฮ่า ๆ ๆ ไม่ได้ล้อเล่นหรอก: D

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