Những vướng mắc lớn nhất khi phát triển các dự án lớn là gì? [đóng cửa]


11

Hãy nói rằng công ty của tôi đã phát triển một bản sao của MS Word (chỉ là một ví dụ). Điều gì sẽ là nút cổ chai cho quá trình phát triển, giả sử rằng một người có sẵn tiền mặt vô hạn và một tổ chức như Microsoft? Nói cách khác, những cản trở thông thường nhất từ ​​việc phát triển phần mềm nhanh như vậy là gì? Giả sử rằng tất cả các thông số kỹ thuật đã được đưa ra và tổ chức đang hoạt động hoàn hảo, vì vậy chúng tôi chỉ tập trung vào phát triển phần mềm cho đến khi sản phẩm sẵn sàng được xuất xưởng. Một số lựa chọn thay thế có thể là: - Viết mã - Kiểm tra viết - Kiểm tra thủ công sản phẩm cuối - Viết lại mã do thiết kế kém ngay từ đầu - Thiết kế mã - Đánh giá mã được thực hiện bởi các nhà phát triển có kinh nghiệm - Thiết kế GUI - Thiết kế lại GUI dựa trên alpha / Phản hồi của người dùng beta - Xử lý phản hồi từ người dùng - Đang chờ phản hồi của người dùng alpha / beta

Vui lòng sử dụng tài liệu tham khảo trong câu trả lời của bạn hoặc nêu kinh nghiệm của bạn về chủ đề này.


4
Có nhà phát triển giỏi?

@ Thorbjørn Ravn Andersen Hãy nói cùng một sự pha trộn giữa tốt và xấu như Microsoft.
David

1
Điều này là không đúng mức nghiêm trọng và không thể được trả lời.

Câu trả lời:


3

Theo kinh nghiệm của tôi, "nút cổ chai" chính là quá trình học tập . Khi công ty giả định của bạn bắt đầu phát triển Microsoft Word tiếp theo, có một khoảng cách lớn giữa những gì bạn cần biết và những gì bạn thực sự biết. Kích thước của khoảng cách phụ thuộc vào nhiều yếu tố, nó có thể là trong công nghệ hoặc tên miền. Bạn đã chạm vào một số vấn đề trong câu hỏi của bạn, ví dụ như thiết kế, phản hồi của người dùng, v.v. Microsoft Word đã được phát triển hơn 30 năm nay nên giữa lịch sử, mã, công cụ và con người có rất nhiều kiến ​​thức đằng sau nó.

Vì vậy, nếu tôi cố gắng và làm điều này, tôi sẽ thử và thuê những người giỏi nhất có kinh nghiệm trong lĩnh vực này, cả về kỹ thuật và quản lý. Hãy thử và đọc bất kỳ tài liệu có sẵn trong lĩnh vực này. Tôi cũng sẽ thử và nhận phản hồi của khách hàng càng sớm càng tốt. Vấn đề lớn nhất là những điều quan trọng bạn không biết và có thể phát hiện ra rất muộn trong quy trình của mình.

Điều này, nhân tiện, không phải là duy nhất cho các dự án phần mềm. Điều đó đúng với mọi dự án quy mô lớn nơi bạn đang cố gắng làm điều gì đó mới. Ví dụ, nhìn vào chiếc Dreamcraft Boeing. Có rất nhiều cuốn sách viết về điều này. Tháng người đàn ông thần thoại là một.


37

Hãy giả sử rằng tất cả các thông số kỹ thuật được đưa ra và tổ chức đang hoạt động hoàn hảo.

Bạn đã giả sử hai "nút thắt" lớn nhất trong các quy trình phát triển phần mềm không tồn tại (từ kinh nghiệm cá nhân của tôi).


4
++ Có. Và giả định rằng nếu bạn có thông số kỹ thuật, chúng sẽ không được thay đổi. Cần các nhà phát triển chuyên gia biết cách dự đoán những thay đổi chưa được yêu cầu và cách xử lý khi họ thực hiện.
Mike Dunlavey

Tôi biết đây là những cản trở rất lớn, nhưng tôi không hỏi về chúng vì tôi đã biết về chúng và chúng rất rõ ràng.
David

8

Ngay cả trong thế giới hoàn hảo, giả thuyết của bạn, có một số vấn đề tôi có thể thấy:

Có lẽ quan trọng nhất, theo quan điểm của riêng tôi, là giao dịch với khách hàng. Theo kinh nghiệm của riêng tôi, doanh nghiệp phải đối phó với những khách hàng thường xuyên cố gắng thay đổi dự án trong khi nó đang được phát triển. Trong một số trường hợp, họ đã cố gắng thực hiện một yêu cầu thay đổi như là một sửa lỗi để tránh phải trả bất kỳ khoản tiền nào. Điều này có thể dẫn đến rất nhiều quan liêu có thể trì hoãn một dự án hoặc dẫn đến việc hack mã nhanh chóng phát triển thành nợ kỹ thuật sâu hơn nữa. Tôi đã đọc và nghe về các đội giải quyết những vấn đề này dễ như thở, và tôi chắc chắn ước gì mình được ở một trong số họ :)

Vấn đề thứ hai là thiếu một mô hình miền thích hợp. Eric Evans cung cấp bảo hiểm tốt về điều này trong cuốn sách của mình: Thiết kế hướng tên miền . Thiếu một mô hình miền tốt dẫn đến một số vấn đề được nêu trong câu trả lời của Glenn, chẳng hạn như cố gắng xác định vị trí lỗi. Nếu không có một mô hình miền sạch, có thể mất thời gian để duyệt qua / gỡ lỗi mã để cô lập và khắc phục sự cố. Tôi sẽ lập luận rằng một mô hình miền tốt giúp cuộc sống và gỡ lỗi dễ dàng hơn rất nhiều, thậm chí còn hơn thế khi duy trì và mở rộng ứng dụng hơn nữa.

Các vấn đề tôi đã đề cập ở trên không mang lại bất kỳ vấn đề tức thời nào, nhưng nếu bạn cần duy trì sản phẩm này trong một thời gian dài, chúng có thể quay lại ám ảnh bạn và nhóm của bạn.


Tôi nghĩ rằng đây là một câu trả lời tuyệt vời!
David

4

Tôi không chắc ý của bạn là "tổ chức đang hoạt động hoàn hảo", nhưng ngay cả trong một tổ chức tuyệt vời, nút thắt lớn nhất trong bất kỳ dự án lớn nào là giao tiếp. Tháng huyền thoại chỉ ra làm thế nào, khi một nhóm dự án phát triển, các kết hợp truyền thông bùng nổ, gần như đảm bảo các lỗi và thông tin bị bỏ lỡ.


2

Từ những gì tôi đã thấy cho đến nay tại nơi làm việc, một nguồn tắc nghẽn lớn đến từ các lỗi và lỗi của con người đã tạo ra chúng. Chỉ cần nghĩ về thời gian cần thiết để gỡ lỗi mã, tìm cách khắc phục sự cố và sau đó thử lại giải pháp mới. Bây giờ hãy tưởng tượng nếu sửa chữa đó gây ra một lỗi tinh tế. Nó có thể là một dòng đau lớn và do đó làm chậm sự phát triển nói chung.


Đây là một câu trả lời tuyệt vời. Trong các lỗi, những gì bạn sẽ nói là nút cổ chai lớn nhất, khác với việc hỏi về người tiêu dùng thời gian lớn nhất cho nhà phát triển. Xác định lỗi, tìm cách khắc phục, kiểm tra lại hoặc một cái gì đó khác.
David

1
Thi lại là một vấn đề không. Nút thắt thực sự là khá điển hình trong việc tìm kiếm một lỗi theo quan điểm của tôi, nhưng việc tìm một bản sửa lỗi thích hợp có thể mất khá nhiều thời gian.

2

Tôi nghĩ Brandon Moretz có câu trả lời tốt nhất. Nhưng tôi muốn thêm rằng việc đưa phiên bản đầu tiên ra khỏi một dự án lớn không quá khó. Cá nhân tôi chưa bao giờ thất bại trong việc đó.

Những gì tôi đã không làm là tạo ra phiên bản đầu tiên theo cách sao cho phiên bản thứ hai, thứ ba vv và sửa lỗi và cải tiến tính năng nhỏ cũng có thể được cung cấp kịp thời.


0

Có, tôi sẽ đồng ý với những điều trên và nó phải tuân theo các mô hình phần mềm. Theo hiểu biết của tôi, những điều chính là:

1. Quản lý thời gian 2. Quản lý hiệu quả và quản lý nhóm 3. Phối hợp trong nhóm và 4. Hiểu biết sâu sắc hơn với Khách hàng

Nếu chúng ta có bốn điều trên, thì chúng ta có thể chuyển sang một thế giới mới với sự thành công và nhiều cải tiến về tính cách và phần mềm. Điều này dẫn đến mối quan hệ tốt với khách hàng và khách hàng sẽ ra lệnh mà không nghĩ về chúng ta.


0

Khiếm khuyết tiềm ẩn, trong các yêu cầu, thiết kế, triển khai, triển khai .... Như trong những thứ bị hỏng nhưng bạn vẫn chưa tìm thấy nó. Hãy tưởng tượng sự phát triển phần mềm là mọi lỗi mới được gây ra bởi những thay đổi gần đây nhất.

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.