Làm thế nào để bạn đối phó với các yêu cầu thay đổi? [đóng cửa]


14

Trong công việc hiện tại của tôi có cảm giác như chúng ta có rất nhiều thay đổi yêu cầu. Chúng tôi là một cửa hàng "Agile", vì vậy tôi hiểu rằng chúng tôi phải điều chỉnh và những gì không, nhưng đôi khi sự thay đổi là lớn và không có gì tầm thường.

Câu hỏi của tôi là, làm thế nào để bạn truyền đạt hiệu quả chi phí của sự thay đổi? Bởi vì nhanh nhẹn, nếu một thay đổi đủ lớn, một cái gì đó sẽ bị loại bỏ khỏi lần chạy nước rút hiện tại, nhưng nó thường chỉ được thêm vào lần sau. Kể từ khi mô hình của chúng tôi là SaaS, khách hàng cuối cùng là hiệu quả công việc kinh doanh riêng của mình, và họ biết họ sẽ nhận được các tính năng cắt n tuần sau đó.

Tôi đoán những gì tôi đang cố gắng nhận được là việc loại bỏ một tính năng thực sự không có gì để sử dụng để liên lạc vì nó chỉ bị trì hoãn sau n tuần. Những cách nào khác để bạn có được doanh nghiệp để hiểu chi phí thay đổi là gì?


Câu trả lời:


14

@Joe "Chúng tôi là một cửa hàng" Agile ", vì vậy tôi nhận thấy rằng chúng tôi phải điều chỉnh và những gì không, nhưng đôi khi sự thay đổi là lớn và không có gì tầm thường."

Nếu quy trình của bạn không cho phép bạn kiểm soát tốc độ thay đổi trong yêu cầu, quy trình của bạn không phải là nhanh nhẹn, mà là sự ngớ ngẩn. Agile không có nghĩa là "lấy bất cứ thứ gì theo cách của tôi."

Để kiểm soát thay đổi yêu cầu / creep bạn có thể áp dụng - trong quy trình của bạn - khái niệm rằng một yêu cầu không thay đổi (một khái niệm là trung tâm của Scrum.) Hãy coi một thay đổi yêu cầu là thay thế một yêu cầu cũ bằng một yêu cầu mới. Bạn phải có một yêu cầu tồn đọng và bạn phải có người dùng chọn những yêu cầu mà họ muốn thực hiện.

Bạn muốn X và Y trong hai tuần, nhưng đột nhiên bạn muốn Z. Chà, sau đó tôi có thể giao cho bạn cả ba trong 4 tuần. Hoặc tôi có thể cho một cặp (X và Z) hoặc (X và Y) hoặc (Y và Z) trong hai tuần và giao hàng còn lại sau đó. Chọn.

Đây là cách bạn đàm phán với khách hàng. Đây là cách bạn truyền đạt chi phí thay đổi yêu cầu. Nếu nhóm của bạn không có sức mạnh đó, bạn không ở trong một cửa hàng nhanh nhẹn và bạn không thể làm gì về điều đó. Nó thật tệ, nhưng đó là sự thật.

Trong trường hợp bạn có thể thương lượng, bạn phải theo dõi (với độ chính xác) thời gian cần thiết để thực hiện các yêu cầu và thay đổi yêu cầu. Đó là, bạn phải thu thập dữ liệu này từ các dự án trong quá khứ và hiện tại.

Bạn thu thập ước tính thời gian ban đầu và thời gian hoàn thành thực tế (ngoài các tài nguyên như số lượng nhà phát triển) cho mỗi yêu cầu (hoặc mô-đun bị ảnh hưởng bởi N yêu cầu). Tốt hơn hết, hãy ước tính kích thước của thay đổi yêu cầu / yêu cầu (về các dòng mã hoặc điểm chức năng trong các dự án và yêu cầu trong quá khứ.)

Giả sử bạn có một số liệu mà bạn có thể nói chuyện với người dùng. Bạn biết rằng một yêu cầu mới sẽ lấy, ví dụ, 1K dòng mã hoặc 10 trang web với trung bình 5 trường đầu vào mỗi (50 điểm chức năng).

Sau đó, bằng cách xem dữ liệu lịch sử cụ thể cho các dự án trước đây của bạn (một số theo dòng mã, một số theo trang web, một số theo điểm chức năng thực tế) và bạn có thể ước tính mỗi chi phí này theo thời gian hoàn thành tuyệt đối như thế nào. Đối với những người có đủ dữ liệu, bạn cũng có thể xác định những yêu cầu theo dõi số lượng người phát triển thực tế.

Sau đó, bạn sử dụng và bạn nói với khách hàng của bạn dựa trên dữ liệu lịch sử; bạn cho rằng thất bại của dự án có xu hướng tuân theo phân phối theo cấp số nhân; và sau đó bạn được trang bị các đối số sau đây cho khách hàng của mình:

Dựa trên dữ liệu từ các dự án trong quá khứ và hiện tại của chúng tôi và các tài nguyên có sẵn, yêu cầu bạn yêu cầu sẽ đưa ra

  1. X lượng thời gian để hoàn thành với xác suất thất bại 25% (hoặc 75% thành công)

  2. 1,5 * X lượng thời gian để hoàn thành với 5% thất bại (hoặc 95% thành công)

  3. Lượng thời gian 0,5 * X để hoàn thành với 95% thất bại (hoặc 5% thành công)

Xác suất thất bại là một hàm của lượng tài nguyên thời gian thường là 95%, 25% và 5% (giống như một bản phân phối theo cấp số nhân.) Bạn truyền tải thông điệp rằng một lượng cơ sở nhất định mang lại cơ hội thành công khá cao (nhưng có rủi ro thực sự ). 1,5 trong số đó có thể mang lại gần như một cơ hội thành công nhất định với rủi ro tối thiểu, nhưng ít hơn nhiều so với điều đó (0,5 trong số các đảm bảo ban đầu gần như thất bại nhất định.)

Bạn để họ tiêu hóa về điều đó. Nếu họ vẫn đi theo đề xuất rủi ro ( thực hiện ngày hôm qua! ) Thì ít nhất bạn có bằng văn bản mà bạn đã nói với họ như vậy. Nếu có hy vọng cho nhóm của bạn không chỉ nhanh nhẹn mà giống như kỹ thuật, thì khách hàng có thể cân nhắc nghiêm túc về số của bạn và lên lịch cho các yêu cầu này và tương lai.

Công việc của bạn là một kỹ sư để giải thích bằng kỹ sư, các điều khoản có thể kiểm chứng và rõ ràng rằng yêu cầu thay đổi không phải là một bữa ăn miễn phí.


cảm ơn lời khuyên của bạn Tôi có vấn đề cung cấp một ước tính nỗ lực cho các dự án. Trong bài viết của bạn, bạn đề nghị để có được nó từ dự án trước. Điều gì xảy ra nếu chúng ta không có dữ liệu trước đó để đưa ra ước tính. Và tài nguyên chúng tôi có là thành viên nhóm mới (một số sinh viên mới tốt nghiệp với ít kinh nghiệm khiến mọi thứ trở nên khó ước tính hơn)
user1872384

8

Từ những gì bạn mô tả, bạn không có vấn đề gì. Họ yêu cầu thay đổi và sẵn sàng đợi cho đến khi bạn nói điều đó có thể được thực hiện hoặc sẵn sàng hoãn một tính năng khác. Có vẻ như một sự cân bằng giữa: thời gian, tài nguyên và yêu cầu.


Tôi không nói rằng cho và nhận là một vấn đề. Tôi đang hỏi làm thế nào để bạn truyền đạt sự phức tạp và phạm vi của một thay đổi được yêu cầu?

2
@joe bạn đưa ra một ước tính
jk.

4

Bạn có thể thử đặt độ tuổi tối thiểu của một bổ sung / thay đổi mới (không áp dụng cho các sửa lỗi). Ví dụ, không có thay đổi mới nào có thể được thực hiện cho đến khi nó được 3 tuần tuổi.

Có một độ tuổi tối thiểu của một nhiệm vụ là tốt bởi vì khi bắt đầu, mọi nhiệm vụ có vẻ như nó cực kỳ quan trọng, nhưng nếu bạn chờ đợi một thời gian thì tầm quan trọng của nó thường sẽ giảm đáng kể. Tùy thuộc vào khoảng thời gian của bạn, nó sẽ cung cấp cho bạn ít nhất khoảng thời gian ổn định đó trong các nhiệm vụ bạn đang làm.

Để theo dõi độ tuổi, bạn sẽ cho phép các tác vụ được thêm vào một số danh sách, nhưng chúng sẽ không được coi là nhiệm vụ cần thực hiện cho đến khi hết thời gian đó.


1

Đây là một vấn đề rất phổ biến, cho dù dự án tiến triển nhanh đến mức nào về mặt kỹ thuật, khách hàng nhận thấy nó chậm hơn rất nhiều và cảm thấy thoải mái khi thay đổi yêu cầu vì họ nghĩ rằng dù sao các nhà phát triển cũng không nên làm nhiều.

Nhận thức thiếu sót này xuất phát từ ba nhiệm vụ phát triển chính tiêu tốn thời gian và sẽ không bao giờ được khách hàng tính đúng:

  1. Mã đánh giá / dọn dẹp: Mã cũ bị cồng kềnh và rối tung và cần đánh giá thường xuyên và dọn dẹp, điều này mất rất nhiều thời gian và khách hàng sẽ không bao giờ tin vào điều đó.
  2. Kiểm toán và sửa lỗi bảo mật: Đặc biệt nếu bạn có các thành viên nhóm thiếu niên, bạn sẽ gặp nhiều vấn đề bảo mật liên quan đến mã và bạn sẽ muốn thường xuyên xem tất cả các mã mới được viết và viết lại những thứ không tốt từ bảo mật quan điểm, khách hàng sẽ không bao giờ biết hoặc tài khoản cho thời gian này.
  3. Các thay đổi liên quan đến kiến ​​trúc: Một cơ sở mã đang phát triển có thể (và rất có thể sẽ) tại nhiều điểm yêu cầu xem xét lại cấu trúc và tái cấu trúc điều này có thể bao gồm: A - Thay đổi / tối ưu hóa liên quan đến hiệu suất (Thay đổi thuật toán, thay thế thư viện, công cụ bộ đệm, ... vv) hoặc: B - Các thay đổi / tối ưu hóa liên quan đến năng suất (khả năng đọc, khả năng sử dụng lại mã, dễ hiểu, các quy ước mã hóa mới, khung mới, ... vv).

Không ai trong số những điều trên sẽ được hiểu và hạch toán đúng cho khách hàng cuối.

Về cơ bản, bất cứ điều gì không có "lượt xem" (yếu tố GUI) đều chưa được thực hiện.

Hãy gọi đây là định lý projenix, haha ​​không chỉ đùa thôi: D

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.