2009-08-17 41 views
34

Trong khi duyệt qua các câu trả lời trên SO, tôi thấy một trong những quan niệm sai lầm thường gặp nhất về quản lý phát triển phần mềm: "kế hoạch phát triển phần mềm là một mô tả chi tiết hợp lý về tất cả các hoạt động bạn cần thực hiện".Kế hoạch phát triển phần mềm tốt là gì?

Do đó câu hỏi: kế hoạch phát triển phần mềm tốt là gì? Nó có thể được đun sôi xuống chỉ để một cấu trúc phân tích công việc; WBS là điều quan trọng nhất cho một kế hoạch phát triển phần mềm nào?

+1

Đề nghị đọc: "Hoàn thành mã". Đọc nó bây giờ bản thân mình, điều này sẽ giúp bạn hiểu. – KdgDev

Trả lời

40

Kế hoạch phát triển phần mềm là một kế hoạch về cách bạn phát triển phần mềm mà bạn dự định phát triển và phân phối.

Trong khi tôi biết các bạn trẻ đều nghĩ rằng quân đội là một lũ ngốc, thực ra họ có rất nhiều kinh nghiệm trong lĩnh vực này, và không giống như nhiều công ty thương mại, hãy suy nghĩ về những gì phải làm xong. Điều đó bao gồm một loạt các bài học rất đau đớn về những điều cần phải được đưa vào tài khoản, lịch sự của các dự án đã thất bại vì những điều đó đã không được xem xét.

Tôi đang cập nhật điều này vào ngày 10 tháng 4 năm 2010. Nguồn DOD-STD-2167A mà tôi đã liệt kê trước đây đã chuyển sang màu tối, vì vậy bạn nên chuyển sang MIL-STD-498. Thật không may, MIL-STD-498 đã bị hủy bỏ vào năm 1998, và DoD bây giờ hy vọng các nhà thầu sử dụng IEEE/EIA-12207 để thay thế. Tuy nhiên, các tiêu chuẩn IEEE không miễn phí như trong bia.

Xem DI-IPSC-81427A cho phác thảo Gói phát triển phần mềm.

Khi bạn đọc danh sách những điều cần được giải quyết, bạn có thể có ấn tượng rằng một số đoạn văn đó, như quy định của Hải quân, được viết bằng máu. Có một lý do cho ấn tượng đó: họ đang có. Các dự án thất bại vì họ không giải quyết các khu vực đó kịp thời.

Xem thêm http://sepo.spawar.navy.mil/SW_Standards.html: bạn có thể tải xuống tệp .zip với tiêu chuẩn và tất cả Mô tả mục dữ liệu (thông số kỹ thuật cho từng tài liệu).

(Có, tôi biết rằng DoD đã di chuyển ra khỏi DOD-STD-2167A, có lợi cho các tiêu chuẩn thương mại IEEE. Tuy nhiên, IEEE tính một cánh tay, chân và quyền ghép trên thận trái của bạn cho tiêu chuẩn của họ.tiêu chuẩn của Bộ Quốc phòng được tự do như trong bia)

Edit:. cố định liên kết 1st

+0

Câu trả lời hay! Ngoài ra, DO-178B/C bao gồm một định nghĩa về những gì cần được đưa vào trong Kế hoạch phát triển phần mềm. – JustADude

7

Artifact: Software Development Plan

Kế hoạch Phát triển phần mềm là một toàn diện, tạo tác hỗn rằng tập hợp tất cả các thông tin cần thiết để quản lý dự án. Nó bao gồm số hiện vật được phát triển trong thời gian giai đoạn khởi động và được duy trì trong suốt dự án.

Kế hoạch Phát triển Phần mềm có chứa

  1. Problem Resolution Plan
  2. Product Acceptance Plan
  3. Measurement Plan
  4. Risk Management Plan
  5. Quality Assurance Plan

Guidelines: Software Development Plan

5

Một Kế hoạch Phát triển phần mềm là một loại hình cụ thể của kế hoạch dự án. Mặc dù WBS là quan trọng nhưng nó chỉ làm xước bề mặt.

Một kế hoạch dự án toàn diện nên có:

kế hoạch Phạm vi
  1. (chứa WBS)
  2. kế hoạch Schedule
  3. kế hoạch chi phí
  4. kế hoạch chất lượng
  5. kế hoạch nhân sự
  6. kế hoạch truyền thông
  7. Kế hoạch rủi ro
  8. Kế hoạch mua sắm.

Thông tin thêm về mỗi người trong số các kế hoạch này có thể được tìm thấy trong

The project Management Body of Knowledge.

Đối guidlines cụ thể hơn, xem Code Complete 2.

+1

Đúng vậy, OP nên kiểm tra cuốn sách Code Complete 2. Đó là một cuốn sách tuyệt vời sẽ cho bạn thấy các kế hoạch phát triển phần mềm thực tế trong cuộc sống. –

18

"kế hoạch [phát triển phần mềm] là mô tả chi tiết hợp lý về tất cả các hoạt động bạn cần thực hiện".

Thông thường, không thể tồn tại.

Nếu bạn thực sự có tất cả các yêu cầu đầy đủ hiểu, và bạn có tất cả các vấn đề công nghệ đầy đủ hiểu, bạn có thể viết một tài liệu như vậy.

Nếu, tuy nhiên, bạn đang làm điều gì đó mới - thứ mà người dùng chưa cài đặt - hoặc bạn đang sử dụng bất kỳ công nghệ mới nào, bạn không thể cung cấp mô tả chi tiết về hoạt động "hợp lý" bạn cần phải thực hiện.

Bạn có thể cung cấp tổng quan, sẽ tóm tắt một số điều bạn cần làm. Tuy nhiên, khi bạn khám phá các yêu cầu, người dùng sẽ khám phá mọi thứ, học hỏi và thay đổi suy nghĩ của họ. Sửa đổi kế hoạch. Khi bạn khám phá công nghệ, các nhà phát triển sẽ khám phá mọi thứ, tìm hiểu và sửa đổi kế hoạch.

Nó không thể là khó khăn - mọi người làm điều này tất cả các thời gian.

Đối tượng của chương trình là quản lý. Các nhà quản lý muốn có một mô tả chi tiết "hợp lý" về tất cả các hoạt động. Khi người dùng và nhà phát triển tìm hiểu về các yêu cầu và công nghệ, thay đổi chi tiết. Điều này làm cho bài kiểm tra "hợp lý" rất, rất khó đáp ứng. Khi các chi tiết thay đổi liên tục, mức độ chi tiết nào là "hợp lý"?

Thay đổi đối với gói có thể (và thực hiện) đến hàng ngày. Hầu hết các nhà quản lý sẽ không muốn thực hiện các thay đổi hàng ngày cho kế hoạch. Vì vậy, quá nhiều chi tiết trở nên "không hợp lý". Để tạo ra một kế hoạch không thay đổi thường xuyên, kế hoạch thực sự cần phải là một bản tóm tắt các hoạt động.Phiên bản khả thi duy nhất của "Kế hoạch phát triển phần mềm" là một loạt các mục tiêu được định nghĩa - không phải về mặt hoạt động - về chức năng được phát hành cho người dùng.

Tóm lại, mọi người làm điều đó kém mọi lúc. Trong hơn 30 năm phát triển phần mềm (phần lớn nó là một nhà thầu phụ quân sự), có một tưởng tượng về việc lập kế hoạch không đơn giản là do sự thật. Các dự án bị hủy bỏ với kế hoạch "hợp lý chi tiết", kế hoạch chi tiết quá mức và không có kế hoạch nào cả.

Thật vậy, kế hoạch thường là nguyên nhân hàng đầu của việc hủy. Tại sao? Với một danh sách các hoạt động "hợp lý chi tiết", bất kỳ học tập nào có nghĩa là kế hoạch là sai. Kể từ khi kế hoạch phân kỳ từ thực hiện thực tế một cái gì đó phải sai. Tung đồng xu. Nếu bạn cho rằng việc thực hiện sai, hãy hủy dự án để không thực hiện theo kế hoạch. Nếu bạn cho rằng kế hoạch là sai, hãy sửa kế hoạch phù hợp với thế giới thực. Kế hoạch chi tiết hơn, càng có vẻ "đúng" và càng có nhiều khả năng coi là thực hiện là bị lỗi.

Dòng dưới cùng.

Kế hoạch phát triển phần mềm có thể là một tài liệu giả tưởng được viết như một phần của phương pháp phát triển "Thác", trong đó tất cả mọi thứ được quy định trước và thay đổi (từ học tập khi nhóm phát triển) bị trừng phạt.

HOẶC

Một kế hoạch phát triển phần mềm là một Agile burndown chart mà chỉ đơn giản cho thấy chạy nước rút để hoàn thành. Mức chi tiết "hợp lý" thực sự khá thấp - nó chỉ là một bản tóm tắt. Và nó thay đổi trong mỗi lần chạy nước rút.

+0

+1 Tuy nhiên, ngay cả nhanh nhẹn cũng yêu cầu một số khám phá trước để đặt nền tảng cho việc tồn đọng. Chỉ cần nói. – Brenden

+0

@Brenden Phát hiện trước không phải là trọng tâm của câu trả lời, đó là trọng tâm của "kế hoạch". Vâng. Trong Agile bạn khám phá trước để có được một backlog bắt đầu, đây thường là "chỉ là một tóm tắt" được đề cập trong đoạn cuối của ông. Từ đó trở đi, học tập được khuyến khích như là chạy nước rút thay đổi dựa trên kết quả từ chạy nước rút trước đó và thử nghiệm thị trường của sản phẩm. Về cơ bản, một "kế hoạch" là một cách tiếp cận xấu, nhưng một bản tóm tắt chung với phòng để phát triển là không. Đó là những gì tôi rút ra từ câu trả lời này, và cũng là kinh nghiệm cá nhân của tôi. –

0

những gì tôi cảm thấy rằng trong phần mềm dự án Phát triển nên được chia thành hai phần

  1. quản lý phần mềm
  2. Software Developement

Trong quản lý dự án tất cả những điều thêm càng tốt như mục tiêu của công ty, dự án lập kế hoạch, giám sát dự án, dự toán, đặt chỗ Timesheet, theo dõi lỗi vv có thể được bảo vệ ..

Trong dự án Deve lopement, project Vòng đời sẽ được duy trì như thác nước đầy đủ

Các vấn đề liên quan