phục hồi thảm họa phần mềm khi một kỹ sư đột nhiên không có


8

Gần đây trong công ty của tôi, chúng tôi đã có một dự án trong đó thời hạn rất chặt chẽ và mọi thứ diễn ra theo đúng kế hoạch cho đến khi tôi không có mặt do các vấn đề cá nhân cực đoan.

Cuối cùng, chúng tôi đã bỏ lỡ thời hạn 4 ~ 5 ngày.

Các kế hoạch phục hồi thông thường cho các điều kiện này là gì? công ty của tôi có nên thuê ngoài một nhà phát triển để hoàn thành công việc của tôi không? thậm chí có thể mất một vài ngày để tìm thấy một?


3
Nếu một phần công việc của bạn có thể được thuê ngoài mà không được đào tạo hoặc chuyển thông tin từ bạn, bạn có thể không được thêm nhiều giá trị. Nhưng thông thường, trong một dự án được quản lý tốt, người ta phải cho phép một số thời gian dự phòng (dựa trên thời gian dự án nhưng không bao giờ dưới một tuần) để quản lý rủi ro như thế này.
James McLeod

Tại sao không có ai hoàn thành công việc?
Euphoric

7
"Gần đây trong công ty của tôi, chúng tôi đã có một dự án mà thời hạn rất chặt chẽ" - vì vậy nói cách khác, (a) người quản lý dự án đã tạo ra một thời hạn không cho phép bất cứ điều gì sai, và (b) người quản lý dự án là không thể thấy trước bất kỳ rủi ro nào (chẳng hạn như nhà phát triển không có sẵn trong một khoảng thời gian, không chính xác là một trường hợp kỳ lạ) và do đó không thể lập kế hoạch cho chúng. Âm thanh như bạn cần một người quản lý dự án mới, trừ khi điều này có thể học hỏi từ những sai lầm của anh ấy / cô ấy.
Kyralessa

4
@Kyralessa: Hoặc (c) người quản lý dự án đã buộc phải loại bỏ tất cả các bộ đệm khỏi kế hoạch vì người khác đưa ra những lời hứa không thực tế cho khách hàng. "Xây dựng điều này không thể khó đến thế, vì vậy hãy hứa hẹn ngày giao hàng trước khi chúng tôi hỏi các nhà phát triển về ước tính của họ."
Bart van Ingen Schenau

3
@BartvanIngenSchenau, trong tình huống như vậy, công việc của anh ấy / cô ấy là quản lý dự án là đẩy lùi.
Kyralessa

Câu trả lời:


10

Nó phụ thuộc vào thời gian dự kiến ​​của sự không có sẵn, thời gian còn lại của dự án, cách phân phối các nhiệm vụ và hậu quả của việc bỏ lỡ thời hạn.

Các nhà phát triển phần mềm không thể thay thế cho nhau theo ý muốn. Các nhà phát triển xây dựng kiến ​​thức trên hệ thống khi hệ thống phát triển và việc thêm một tài nguyên mới đòi hỏi phải đối phó với kiến ​​thức bối cảnh còn thiếu của các tài nguyên mới.

Một số thực hành tốt làm giảm các rủi ro liên quan đến việc không có sẵn đột ngột:

  • đánh giá ngang hàng đảm bảo rằng kiến ​​thức về sự phát triển được chia sẻ giữa một số nhà phát triển. Trong trường hợp không có sẵn, phần còn lại của nhóm có thể tổ chức lại để tiếp quản, hoặc trong trường hợp xấu nhất mang đến một lập trình viên mới và tổ chức chuyển giao kiến ​​thức.
  • các nhóm được tích hợp kết hợp chặt chẽ với nhau để đưa ra quyết định thiết kế có thể giảm thiểu sự không có sẵn trong cùng một kiểu. Các kiến ​​thức được chia sẻ về thiết kế tổng thể tạo điều kiện phân phối lại công việc và tóm tắt những người mới đến.
  • tài liệu chính thức cuối cùng có thể giúp đỡ. Tuy nhiên, trong thực tế, điều này chỉ hoạt động tốt nếu tài liệu được tạo bởi một nhà phát triển được sử dụng bởi một nhà phát triển khác (hoặc các mô hình được sử dụng trong các công cụ tạo mã). Tài liệu chỉ được đọc bởi chính mình thường xuất hiện mơ hồ hơn nhiều. Nếu một nhà phát triển mới phải đảm nhận công việc đó, tài liệu tự có thể đưa ra nhiều câu hỏi mà nó trả lời.

Đưa vào các nhà phát triển mới khi có thời hạn chặt chẽ là rất khó khăn, bởi vì việc tóm tắt những người mới sẽ mất thời gian của nhóm, trong giai đoạn không có thời gian rảnh. Nếu bạn bị ốm trong 1 tuần thì không có ý nghĩa gì. Sẽ được dự tính nếu chi phí cho người mới tham gia được bù đắp bằng lợi ích của tài nguyên mới, thông thường nếu có chi phí trễ cao hoặc nếu không thể hoãn lại hoặc nếu không có thời gian dài hơn.


1
Điều này khá gần. Điều quan trọng nhất là chủ động đảm bảo ai đó có thể che chở bạn trong một khoảnh khắc thông báo.
candied_orange

Trong quản lý dự án có một khái niệm cho những trường hợp này. Việc lập kế hoạch nên tính đến loại tình huống này. Bây giờ là quá muộn cho công ty để giảm thiểu tác động. Hãy trung thực với các bên liên quan và làm cho họ biết rằng thời hạn nên được di chuyển. Thời hạn họp gần như không có gì so với kỳ vọng. Cố gắng tiết kiệm sự thiếu kế hoạch hóa này với chi phí "chất lượng", giải pháp có thể tốn kém hơn bạn nghĩ ... Sau khi phát hành chỉ có một "ấn tượng đầu tiên".
Laiv

@Laiv Cảm ơn bạn đã phản hồi. Tôi không thể phán xét nếu trong trường hợp này thời hạn có thể được hoãn lại hay không. Trước đây, tôi đã quản lý một số dự án giới thiệu quan trọng của Y2K và EURO mà việc hoãn lại không phải là một lựa chọn. Nhưng tôi đồng ý với bạn về nguyên tắc: tốt hơn là thảo luận về vấn đề thời hạn với khách hàng khi rủi ro cao, thay vì cố gắng tìm cách thay thế một cách không thể và thất bại. Kế hoạch hóa dự phòng tất nhiên là phải; nhưng thật không may, nó không đủ để đối phó với các tình huống cực đoan như vậy (dự trữ có xu hướng cạn kiệt vào cuối dự án).
Barshe

Vâng đó là sự thật. Tôi đã không thấy quá nhiều dự án đang hoạt động mặc dù ngân sách dành cho các khoản dự phòng.
Laiv

5

Các kế hoạch thông thường cho việc này là xây dựng dự phòng vào thời hạn. Những điều xảy ra, bạn thường không bao giờ đạt đến thời hạn. Bạn không có mặt chỉ là một trục trặc khác trong các kế hoạch được đặt cẩn thận không bao giờ đi theo kế hoạch!


Bạn hoàn toàn chính xác: mọi kế hoạch đều cần một số dự phòng dự phòng để đối phó với rủi ro. Tuy nhiên, vấn đề với quá nhiều dự phòng là hiệu ứng tiên tri tự hoàn thành: cuối cùng thì tình huống dự phòng sẽ bị tiêu hao. Và trong những tuần cuối cùng của kế hoạch, mọi người vẫn có thể bị ốm mặc dù không còn lề. Vì vậy, dự phòng một mình là không đủ.
Christophe

1
Trên thực tế, dự phòng là một chiến lược giảm thiểu rủi ro nhưng chúng là những cách khác để đối phó với rủi ro, bao gồm loại bỏ nó (đảm bảo những người khác có thể tiếp nhận mà không ảnh hưởng đến lịch trình), chấp nhận nó (mặc định nếu bạn không quản lý rủi ro của mình), hoặc chuyển nó (trong trường hợp này, thông báo cho khách hàng / khách hàng rằng họ không trả đủ tiền để đảm bảo giao hàng đúng hạn và họ cần sẵn sàng xử lý mọi sự chậm trễ).
James McLeod

5

Đây được gọi là "yếu tố xe buýt". Về cơ bản, rủi ro đặt ra cho dự án nếu nhà phát triển bị xe buýt đâm. Có một nhà phát triển không có sẵn trong một tuần là một trục trặc nhỏ so với việc mất một nhà phát triển vĩnh viễn. Nó có thể là một tai nạn hoặc bệnh bất ngờ, nhưng ít nghiêm trọng hơn, nó chỉ có thể là một nhà phát triển cốt lõi chuyển đổi công việc trong thông báo ngắn hoặc bị sa thải. Hoặc một nhà phát triển cốt lõi được chuyển sang một nhiệm vụ ưu tiên cao khác trong bộ phận khác.

Nói tóm lại, bạn phải lên kế hoạch hạ thấp hệ số xe buýt, hoặc bạn phải chuẩn bị để giảm thiểu nó, ví dụ như có bộ đệm trong thời hạn hoặc chỉ cần đủ linh hoạt để có thể đẩy thời hạn. Những gì bạn thường không thể làm chỉ là thuê ngoài một nhiệm vụ phức tạp trong một thông báo ngắn hoặc thuê một nhà phát triển mới - hầu như sẽ luôn mất nhiều thời gian hơn để giới thiệu một nhà phát triển mới cho một hệ thống hiện có hơn là đợi một tuần để nhà phát triển cốt lõi quay trở lại. Nếu một nhóm nhỏ mất một thành viên thì tất nhiên họ sẽ chậm hơn, nhưng nếu cũng phải giới thiệu một thành viên mới, họ sẽ còn chậm hơn nữa.

Bạn có thể hạ thấp yếu tố xe buýt bằng cách nhóm liên tục chia sẻ kiến ​​thức và đánh giá ngang hàng (hoặc thậm chí lập trình cặp). Nhưng tất nhiên đây là điều phải xảy ra trước khi xe buýt đâm vào.


2

Bất kỳ nhân viên nào cũng có thể không có mặt trong một tuần, hoặc một tháng hoặc mãi mãi mà không có bất kỳ thông báo nào vào bất cứ lúc nào. Tai nạn, bệnh tật, đã có đủ công việc này, nhiều lý do khác. Tùy thuộc vào quản lý để đảm bảo rằng một dịp như vậy là gây phiền nhiễu, có thể tốn kém, nhưng không phải là một thảm họa.

Nếu bạn có một nhóm mười người, bạn có thể mất 10% nhóm của mình. Công ty sẽ có thể xử lý rằng nếu phần còn lại của nhóm có động lực (trả tiền cho giờ làm thêm là động lực cao). Nếu bạn là một nhóm, thì công việc sẽ không hoàn thành. Nếu bạn có những nhân viên khác có thể bước vào, sự chậm trễ có thể được giảm thiểu. Thuê một ai đó từ bên ngoài sẽ khó khăn, mặc dù bạn có thể tìm thấy một số nhà thầu có thể bắt đầu sau một thông báo vài ngày trong một vài tuần với tốc độ rất cao hàng giờ.

Điều tốt nhất để làm là có các hợp đồng, vv để việc trì hoãn hoàn thiện sản phẩm không phải là một thảm họa tài chính. Và để có một ngày hoàn thành theo kế hoạch và có thể đạt được trước thời hạn. Có nhân viên có thể giúp đỡ lẫn nhau (nhưng có thể có vấn đề để đạt được).

Và nếu bạn có một thời hạn phải đạt được, thì có lẽ phạm vi công việc linh hoạt hơn. Nói cách khác, bỏ các tính năng để đáp ứng thời hạn của bạn.


1

Một cách chính để giảm "Yếu tố xe buýt" mà @JacquesB đề cập ở trên là lập trình cặp như một kỹ thuật cốt lõi. (Thực tế của tôi là sử dụng thuật ngữ "Yếu tố xổ số" vì nó ít bệnh hoạn hơn nhưng hiệu quả là như nhau.)

Nhiều nhà phát triển ghét lập trình cặp; nhiều nhà quản lý cũng ghét điều đó, vì những lý do hoàn toàn khác nhau (một số nhà phát triển ghét bị buộc phải giao tiếp với người khác trong thời gian dài; một số nhà quản lý thường cảm thấy không chính xác như thể họ đang trả gấp đôi số tiền cho một đầu ra).

Nhưng việc lập trình cặp hoàn toàn loại trừ nguy cơ một điểm thất bại duy nhất của con người, bằng cách đảm bảo rằng bất kỳ nhiệm vụ phát triển nhất định nào đều được thực hiện và hiểu bởi ít nhất hai nhà phát triển.


0

Có một số cách tôi đã thấy loại điều này được xử lý:

Chia sẻ công việc

Điều rõ ràng nhất để làm là chia sẻ công việc giữa các tài nguyên hiện có (giả sử điều này là có thể). Làm thế nào để đảm bảo các nhà phát triển tiếp tục chạy gần như là một câu trả lời, nhưng cuối cùng, nó nắm bắt được các yêu cầu, thiết kế và tiến độ đúng. Những thứ như lập trình cặp cũng có thể hỗ trợ rất nhiều ở đây.

Đẩy lùi thời hạn hoặc cố gắng vuốt ngược thời gian

Kiểm tra với khách hàng để xem liệu thời hạn có thể được gia hạn không. Ngoài ra, có thể có được thời gian phát triển bổ sung bằng cách làm việc buổi tối, cuối tuần và ngày lễ.

Bỏ các nhiệm vụ khác

Có bất kỳ nhiệm vụ không quan trọng nào khác có thể được tạm thời bỏ để nhường chỗ không?

Đi trước

Có công việc nào được lên kế hoạch sau khi phát triển có thể được đưa ra như tài liệu, tập lệnh thử nghiệm và cấu hình không?

Thừa nhận nó có thể bị trễ

Nói chuyện với khách hàng sớm. Có thể có thể cung cấp một phần - hoặc ít nhất, bạn có thể có được một chỉ đạo đàng hoàng về các ưu tiên tương đối của những thứ khác.

Tài nguyên bổ sung

Một khả năng - nhưng điều này tự nó mang rủi ro. Sẽ mất thời gian để giúp họ tăng tốc và vì chúng là tạm thời, họ có thể rời đi khiến bạn thậm chí còn tệ hơn.

Kiểm tra đường dẫn quan trọng

Nếu các bên khác có liên quan - hãy kiểm tra xem họ có còn đúng mục tiêu không. Có rất ít điểm trong việc di chuyển trời và đất để hoàn thành một cái gì đó nếu nói, nhóm thử nghiệm chậm hơn một tháng so với thử nghiệm mọi thứ.

Chấp nhận thực tế của rủi ro

Có một cụm từ phổ biến trong nghề luật nói rằng các vấn đề khó tạo ra giải pháp kém. Nó có thể hấp dẫn để thử và khiến mọi người hiểu mọi thứ để bao quát tất cả các tình huống. Tuy nhiên, đây là một việc vặt.

Các nhà phát triển nên dành thời gian chất lượng cho sự phát triển của chính họ. Tiêu thụ một lượng thời gian ngày càng tăng trở thành au fait với các phát triển khác là một hoạt động rất đáng nghi ngờ. Một nền tảng trung bình hợp lý có thể có một chuyên gia về vấn đề và một phó phòng.

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.