2008-11-12 32 views
13

Khi lần đầu tiên tiếp cận một dự án là tốt nhất để quay trở lại và suy nghĩ thông qua mọi thứ hoặc chỉ đi sâu vào và bắt đầu viết mã và đánh bóng vào một ngày sau đó? Về cơ bản, bạn có thiết kế đầu tiên hay cố gắng thử nghiệm nhanh chóng không?Thiết kế hoặc nguyên mẫu đầu tiên?

Tôi đã bị đốt cháy bởi cả hai phương pháp, đôi khi tôi cố gắng suy nghĩ mọi thứ, nhưng khi tôi thực sự gặp khó khăn, tôi gặp phải vấn đề mà tôi không xem xét, và đôi khi khi tôi viết mã trước, tôi kết thúc bằng mã cần phải làm lại để phù hợp với thiết kế tổng thể tốt hơn. Rất nhiều vấn đề của tôi xuất phát từ sự thiếu kinh nghiệm, nhưng mọi lời khuyên đều được chào đón.

+0

Không có câu trả lời thực sự cho câu hỏi này, vì nó là rất chủ quan, vì vậy tôi không chấp nhận câu trả lời. –

Trả lời

5

Thiết bị luôn an toàn hơn trước, nhưng điều này không có nghĩa là việc tạo mẫu không hoạt động. Vấn đề thực sự với prototyping là chống lại các yêu cầu để giữ cho mã bạn đã viết thay vì ném nó đi khi thời gian đến để làm thiết kế.

+0

Hoặc quản lý yêu cầu phải nói "Điều này có hiệu quả, tại sao bạn cần thêm thời gian?" – wonderchook

+0

Đồng ý! Tương tự như khi bạn thể hiện nguyên mẫu cho khách hàng và bạn không thể khiến họ hiểu rằng chỉ vì họ thấy nó không có nghĩa là nó hoạt động. – Maxam

1

Bạn phải có một số ý tưởng về kiến ​​trúc gắn kết trước khi bắt đầu làm việc. Điều này đặc biệt đúng với các hệ thống quy mô lớn.

Tạo mẫu có thể được sử dụng cho các khía cạnh cụ thể của thiết kế, ví dụ: lớp trình bày.

0

Thiết kế trước tiên, trừ khi bạn sẵn sàng chấp nhận rủi ro ném tất cả công việc được đưa vào nguyên mẫu khi bạn thấy nó không thể làm những gì bạn cần. Ở mức tối thiểu, bạn nên tạo một số thiết kế mức cao cho dự án của bạn có thể giúp bạn đưa ra một số quyết định về cách bạn sẽ xây dựng mẫu thử nghiệm của mình để bạn sẽ có ít nỗ lực lãng phí nhất.

29

Tăng dần và lặp lại.

Thiết kế một chút, thực hiện một chút.

Bắt đầu với thiết kế, bạn có thể bị tác động đường hầm nơi bạn không thể có bất kỳ phản hồi thực nào trước khi thực sự triển khai điều gì đó.

Bắt đầu không có thiết kế, bạn có thể đưa ra quyết định bạn sẽ hối tiếc.

Tình huống lý tưởng là có thể triển khai phiên bản đầu cuối của hệ thống của bạn có thể được kiểm tra và chứng minh cho khách hàng.

+0

+1: Trải nghiệm và thông thường, buzzwords bất kể. –

4

Xem Gall's Law. Điều quan trọng là để lặp: thiết kế một chút, thực hiện một chút, kiểm tra một chút, sau đó lặp lại cho đến khi bạn (hoặc khách hàng của bạn) hài lòng. Đây là bản chất của giống mới của phương pháp "nhanh nhẹn".

1

Tôi nghĩ điều đó phụ thuộc vào loại yêu cầu kinh doanh bạn có mặt trước. Nếu chúng (tương đối) chi tiết và đầy đủ, thì tôi sẽ thiết kế dựa trên những yêu cầu đó. Nếu bạn có hầu như không có gì để làm việc với trong đầu, sau đó thử nghiệm ra và cho khách hàng của bạn những gì bạn có, để nhận được thêm thông tin yêu cầu.

1

Bạn nên phát triển bằng phương pháp Agile. Đơn giản chỉ cần đặt, bạn thiết kế có bạn đi. Nhóm cùng với chủ sở hữu sản phẩm xác định danh sách các chủ đề để phát triển, sắp xếp chúng theo tầm quan trọng và phân chia phát triển theo các lần lặp. Mỗi lần lặp như các tính năng được phát triển và bắt đầu lặp lại là thiết kế từng tính năng.

Xem thêm here.

+0

+1 vì không liên kết đến trang web của bạn trong câu trả lời ;-) –

2

Điều đó tùy thuộc.

Tạo mẫu là hữu ích nhất khi yêu cầu hoặc giải pháp không nhất thiết phải rõ ràng.Ví dụ, tôi đang làm một dự án kho dữ liệu trong một môi trường (bảo hiểm thương mại lớn), nơi sự hòa giải tài chính là một vấn đề lớn. Dự án này đã tham gia một bài tập mẫu thử lớn để có được một hệ thống sẽ hòa giải với các tài chính. Khi các quy tắc kinh doanh xung quanh vấn đề này không được ghi chép đầy đủ, nguyên mẫu là công cụ để phơi bày tất cả các trường hợp góc.

Trong các trường hợp khác, cách tiếp cận thiết kế đầu tiên có thể phù hợp hơn. Điều này phù hợp nhất khi các yêu cầu và kiến ​​trúc giải pháp hợp lý rõ ràng một cách hợp lý.

5

Không có dấu đầu dòng bạc. Nó có vẻ như thiết kế đầu tiên là cách tiếp cận ưa thích. Nhưng bạn sẽ không thể dự đoán được tất cả các biến chứng có thể phát sinh trong khi thực hiện thiết kế của bạn. Một số người trong số họ có khả năng có thể được hiển thị stoppers. Thêm vào đó, nếu bạn đang viết cho một khách hàng, thật tuyệt khi có thể hiển thị một cái gì đó chỉ để đảm bảo rằng bạn đang ở trên cùng một trang.

Tại nơi làm việc của mình, chúng tôi làm cả hai - chúng tôi làm một nguyên mẫu nhanh chóng, chỉ để nhận phản hồi và có ý tưởng về bất kỳ vấn đề tiềm ẩn nào. Sau đó, chúng tôi làm một thiết kế chính thức và thực hiện chính thức. Trong hầu hết các trường hợp, chúng tôi có thể cứu vãn rất nhiều mã từ giai đoạn tạo mẫu. Tôi thích cách tiếp cận này, vì chúng tôi thường kết thúc bằng mã sạch, bảo trì.

0

Nếu tôi biết những gì tôi muốn xây dựng, tôi chỉ cần đi ngay để thiết kế.

Nếu tôi đang xây dựng thứ gì đó cho khách hàng, sau đó là nguyên mẫu để giải quyết các yêu cầu cụ thể hơn từ người dùng.

0

Có thể không phải là câu trả lời mà là một gợi ý từ trải nghiệm của tôi.

Trong hầu hết các trường hợp, tôi sẽ tốt hơn nếu tôi đã bắt đầu mã hóa trước đó. Bạn có thể thiết kế cho đến khi bò về nhà, nhưng nếu bò đang ở trên đường chân trời khi bạn bắt đầu viết mã, bạn có thể thấy thiết kế cẩn thận của mình khó triển khai kịp thời.

1

Khi lần đầu tiên tiếp cận dự án, nguyên mẫu. Nhưng không thử nghiệm mọi thứ. Prototype một điều quan trọng (một "trường hợp sử dụng" nếu điều đó có nghĩa là bất cứ điều gì) và "biến con mắt bên trong đi theo con đường của nó" - giữ một mắt ra cho các vấn đề thực tế bạn gặp phải trong cố gắng để có được một điều thực hiện.

Bây giờ bạn có một số ý tưởng cần làm gì để làm một điều quan trọng, bạn có thể thiết kế từ hơn nguyên tắc đầu tiên.

Tất nhiên, điều này giả định bạn đang làm việc trong môi trường nơi bạn có thể tạo ra các nguyên mẫu với chi phí tối thiểu cho các nỗ lực phát triển liên tục. Nhưng nếu bạn đang làm việc trong môi trường như vậy, hãy tiêu thảo các cuộc thảo luận thiết kế của bạn một cách tự do với các nguyên mẫu. Với bất kỳ may mắn bạn có thể nhận được để giữ một số người trong số họ.

1

lưu ý rằng phương pháp nhanh nhẹn không phải là một cái cớ để tránh thiết kế, họ chỉ khuyến khích thử nghiệm của thiết kế thường xuyên hơn, và trong từng bước nhỏ

tôi muốn phác thảo thiết kế và phá vỡ các yếu tố của nó xuống cho đến khi hợp lý chắc chắn rằng có không có những ẩn số hoặc rủi ro rõ ràng; các ẩn số và rủi ro được nhấn mạnh cho các dự án 'tăng đột biến', với một hộp thời gian để xác định tính khả thi và ghi chú về các phương án khả thi nếu phương pháp ưa thích chứng minh là không thể làm việc

một lần thoải mái với kiến ​​trúc tổng thể, nhảy vào các tính năng từ dưới lên (hoặc theo thứ tự ưu tiên) để hoàn thành thiết kế, hãy viết các bài kiểm tra ban đầu, sau đó triển khai

EDIT: lưu ý rằng câu hỏi "thiết kế hoặc nguyên mẫu đầu tiên" đang đưa ra giả định xấu, tức làrằng nó có thể nguyên mẫu mà không làm bất kỳ thiết kế, mà tất nhiên không phải là trường hợp (trừ khi bạn đang sử dụng phương pháp triệu-khỉ)

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