2008-10-31 70 views
18

Tôi tin rằng Agile không là gì ngoài việc thực hiện một mô hình xoắn ốc khác. Tôi là một người ủng hộ lớn của Spiral (Mô hình xoắn ốc là một quá trình phát triển phần mềm kết hợp các yếu tố của cả thiết kế và tạo mẫu trong các giai đoạn, trong nỗ lực kết hợp các ưu điểm từ trên xuống dưới và khái niệm từ dưới lên). rất nhiều dự án thực hiện Spiral mà không biết rằng họ đang hoạt động trong thế giới Xoắn ốc. Kể từ ngày Agile bắt đầu trở nên phổ biến, khái niệm xoắn ốc bắt đầu bị bỏ qua một chút. Tôi chắc chắn rằng đối với các dự án phức tạp, xoắn ốc vẫn là giải pháp thay thế tốt nhất nhưng tôi muốn hiểu rõ hơn về sự tương đồng và khác biệt giữa các kỹ thuật Agile và Spiral. Bất cứ ai có thể giải thích sự khác biệt/tương đồng của họ?Agile Vs Spiral Model cho SDLC

+3

Tôi đang bỏ phiếu để đóng câu hỏi này dưới dạng chủ đề vì đó là về phương pháp luận, chứ không phải lập trình. – EJoshuaS

Trả lời

35

Agile xoắn ốc. Hoàn toàn. Một phần, tên đã được thay đổi cho mục đích tiếp thị.

Vấn đề là xoắn ốc có xu hướng ngụ ý "thiết kế lớn lên phía trước" - nơi bạn có kế hoạch ra nhiều xoắn ốc, mỗi theo thứ tự rủi ro. Xoắn ốc, tuy nhiên, không phải là Agile - nó chỉ là thực hiện gia tăng theo thứ tự rủi ro.

Một điểm khác biệt lớn mà Agile bổ sung là "không khai quật những điều bạn chưa biết". Agile xoắn ốc, nhưng bạn tạo các kế hoạch chi tiết chỉ với một lần tăng cùng một lúc.

Agile cũng thêm nhiều thứ khác nữa. Xoắn ốc là một cách tiếp cận rất kỹ thuật. Agile, tuy nhiên, nhận ra rằng công nghệ được xây dựng bởi con người. Agile Manifesto có bốn nguyên tắc ở trên và vượt ra ngoài cách tiếp cận quản lý rủi ro đơn giản của Boehm.

+0

Tôi nghĩ rằng tôi đang theo dõi bạn. Cảm ơn bạn đã chia sẻ knnowledge – Chanakya

+1

Tôi không nghĩ rằng Agile == spiral. Agile là một tập hợp con của mô hình xoắn ốc sử dụng các xoắn ốc rất chặt chẽ - một vòng xoắn ốc (một chạy nước rút trong Scrum, đôi khi được gọi là một sự lặp lại) sẽ là 2 tuần. Trong một mô hình xoắn ốc chung, bạn có thể có các hình xoắn ốc mà tháng trước hoặc thậm chí nhiều năm (độ dài không được Barry Bohem quy định) trong khi các phương pháp Agile đề xuất các hình xoắn ốc ngắn. –

+0

@Thomas Owens: Tôi không nhận được bình luận của bạn. Nếu Agile là một xoắn ốc với các hình xoắn ốc ngắn, thì nó xoắn ốc, phải không? –

0

Agile đầu tiên thực sự là một số quy trình khác nhau tuân theo một triết lý tương tự. Một trong những triết lý làm cho nó khác biệt là mỗi lần lặp lại tạo ra một sản phẩm làm việc. Nó có thể được mô tả như là lặp đi lặp lại và gia tăng. Rất nhiều nhấn mạnh được đặt trên sản phẩm làm việc và thử nghiệm. Trong nhiều thử nghiệm mô hình nhanh nhẹn xuất hiện trước khi mã hóa.

Trong mô hình xoắn ốc, số lần lặp được cố định, trong khi mỗi giai đoạn của mô hình nhanh có thể bao gồm bất kỳ số lần lặp nào.

Bạn đúng là có điểm tương đồng nhưng triết lý cơ bản tạo ra sự khác biệt. Điều này page giải thích chi tiết hơn và so sánh nhanh với các phương pháp khác.

Bạn có thể nói rằng các quy trình nhanh được sử dụng Case driven ... đặt rất nhiều sự nhấn mạnh vào mọi người, người dùng cuối.

12

Sự khác biệt cơ bản, như tôi thấy, là hầu hết các mô hình phát triển xoắn ốc vẫn nhấn mạnh vào thiết kế lớn, phía trước. Sự nhấn mạnh là biết nhiều nhất có thể về cách hệ thống sẽ được sử dụng; khám phá tất cả các trường hợp sử dụng. Một khi bạn biết những điều này, sau đó bạn thiết kế hệ thống và chia nhỏ nó thành các giai đoạn theo sau một vòng lặp chi tiết-thiết kế, thực hiện, kiểm tra, thiết kế lại vòng lặp thiết kế lại. Ở Agile, kế hoạch của họ là có thể thu thập sự hiểu biết lớn về ngũ cốc (tiêu đề câu chuyện) - để các bản phát hành hợp lý có thể được mô tả, nhưng mỗi bản phát hành được lên kế hoạch độc lập và chúng tôi chậm trễ phát hiện chi tiết cho đến khi chúng tôi sẵn sàng bắt đầu triển khai bản phát hành đó. Chúng tôi hy vọng thay đổi và không cố gắng để biết tất cả mọi thứ đầu tiên.

Một điều khác biệt là hầu hết các triết lý Agile đều liên quan đến phương pháp "thử nghiệm đầu tiên". Điều này khác với xoắn ốc, nơi thử nghiệm thường là một hoạt động cho chính nó và các thử nghiệm không được phát triển trước khi mã. Thông thường chúng được lên kế hoạch trước, nhưng được phát triển song song hoặc sau khi viết mã. Nhiều phương pháp nhanh nhẹn nhấn mạnh vào việc phát triển các bài kiểm tra đầu tiên như là đặc điểm kỹ thuật cho mã.

Chúng tương tự ở chỗ chúng lặp lại. Chúng khác nhau trong việc thực hiện và hiểu được sự lặp lại là gì.

1

Tôi không phải là chuyên gia cho Mô hình Xoắn ốc, nhưng từ định nghĩa wikipedia, có vẻ như với tôi rằng có một số khác biệt đáng kể. Ví dụ, trong một dự án Agile, ở phần cuối của một lần lặp không đứng nguyên mẫu, mà là một hệ thống đầy đủ chức năng, được kiểm tra đầy đủ, có khả năng triển khai (1), chứa các tính năng ưu tiên cao nhất trong danh sách tính năng.

Thu thập yêu cầu khi bắt đầu dự án có nghĩa là chỉ vừa đủ để bắt đầu (để thực hiện bước tiếp theo) và có nghĩa là sẽ được khắc phục ngay trước khi chúng thực sự được triển khai. Thay đổi được yêu cầu được hoan nghênh.

Ngoài ra, còn có nhiều thứ để Agile hơn là phát triển lặp lại - tập trung vào đối mặt với cuộc trò chuyện thay vì giao tiếp bằng văn bản, tập trung vào việc đưa mọi người kinh doanh và kỹ thuật vào công việc hàng ngày của họ. Tập trung vào việc tối đa hóa giá trị cộng tác thay vì xác định và sau đó hoàn thành hợp đồng.

Trong trường hợp bạn chưa thấy, hãy xem Agile Manifesto, về cơ bản là định nghĩa cho Phát triển phần mềm nhanh.

(1) Điều đó không có nghĩa là phải làm cho ý nghĩa kinh doanh để triển khai hệ thống, "chỉ" về mặt kỹ thuật là khả thi. Nó phải là một quyết định kinh doanh thuần túy cho dù có triển khai hệ thống vào cuối một lần lặp hay không.

+0

Cảm ơn bạn đã chia sẻ kiến ​​thức. Tôi nghĩ rằng đối với các dự án lớn hơn, thật khó để sản xuất một cái gì đó 100% có thể triển khai ở phần cuối của sự lặp lại, có tính đến sự phụ thuộc của các thực thể nhất định trong ứng dụng phức tạp. – Chanakya

+0

Không đúng .. Tôi muốn nói có lẽ không đủ thời gian để bỏ ra những khối nhỏ hơn có thể thực sự sử dụng được và mang lại giá trị kinh doanh. Bạn không cần phải xây dựng một voi ma mút nguyên khối để có được vòng lặp phản hồi. – Gishu

+0

Chào mừng bạn đến với SO Ilja;) Tôi đã dành một chút thời gian tại các diễn đàn nhanh nhẹn của Ron .. – Gishu

1

Tôi muốn nói xoắn ốc và nhanh nhẹn là tương tự. Tuy nhiên, gần đây nhanh nhẹn dường như đã trở thành một hệ thống tuyên truyền để lý giải mã hóa cao bồi. I E.

  • yêu cầu cực kỳ tối thiểu
  • phân tích kỹ thuật tối thiểu
  • tài liệu tối thiểu
  • Không có mã bình luận
  • đặc biệt Bonus-- lạm dụng tên miền Thiết kế Driven để quá phức tạp mô hình đối tượng

Điều này không bao giờ là ý tưởng với xoắn ốc. Tôi cho rằng đó không phải là điểm của Agile, mặc dù bạn sẽ ngạc nhiên về số lần tôi nhìn thấy điều này gần đây. Ngày càng có nhiều nhà phát triển/nhà phát triển có kinh nghiệm bắt đầu thấy sự khôn ngoan của cách tiếp cận cân bằng giữa thác nước và "nhanh nhẹn" - có lẽ điều này đơn giản đưa chúng ta trở lại với vòng xoáy.

Mặc dù có một số ý tưởng hữu ích trong không gian tâm trí Agile, nó thường có vẻ như được thể hiện từ những người trong các tổ chức có phương pháp thiết kế phần mềm quá nặng nề/không hữu ích. phản ứng với điều đó.

+0

Những viên đạn bạn liệt kê không phải là vốn có của Agile, thay vào đó chúng chỉ mang tính chất sản phẩm kém và khả năng lãnh đạo kém. – ntwrkguru

1

Tôi tin Agile là loại SDLC lặp lại trong khi xoắn ốc là loại SDLC gia tăng. Scrum là một loại Agile khác là DSDM/FDD/XP, vv Tất cả SDLC sau khi thác nước theo cùng một tập hợp các hành vi (Phân tích yêu cầu, Thiết kế, Mã hóa và Thử nghiệm) trong một số kết hợp khác nhau. Vì vậy, tập hợp các hành động cơ bản trong tuần tự HOẶC Lặp lại HOẶC Gia tăng là như nhau.

Theo như Agile và Spiral, cả hai đều có lợi thế chung là 1.Thay đổi yêu cầu xử lý 2.Phát hành thời hạn ngắn hạn 3.Quản lý nhanh chóng dễ dàng do thời gian ngắn hơn của SDLC 4.Nhóm xuyên suốt giúp sản phẩm và dự án diễn ra suôn sẻ