JavaRush /Blog Java /Random-VI /Mọi thứ bạn cần biết về phương pháp phát triển phần mềm: ...

Mọi thứ bạn cần biết về phương pháp phát triển phần mềm: xu hướng, nguyên tắc và cạm bẫy cho người mới bắt đầu

Xuất bản trong nhóm
Phát triển phần mềm là một quá trình kinh doanh phức tạp. Điều này có nghĩa là CNTT cần nói ngôn ngữ tối ưu hóa, lập kế hoạch và tính toán. Mọi điều bạn cần biết về phương pháp phát triển phần mềm: xu hướng, nguyên tắc và cạm bẫy cho người mới bắt đầu - 1Hiểu các khái niệm quản lý mang lại lợi thế lớn cho cả nhà tuyển dụng và nhà phát triển, đồng thời giúp đưa sự hợp tác lên một tầm cao mới.

Lưu ý dành cho người mới bắt đầu: mô hình, phương pháp và những nhầm lẫn chung

Một điều quan trọng cần làm rõ để bắt đầu: có các mô hình riêng biệt để phát triển phần mềm và phương pháp luận riêng biệt cho chính sự phát triển này. Các mô hình dự đoán hành vi trong tương lai của một hệ thống. Cần có các phương pháp để hệ thống hoạt động theo cách nó cần. Việc nhầm lẫn các mô hình và phương pháp phát triển phần mềm là nhiệm vụ thiêng liêng của mọi người mới bắt đầu làm CNTT, vì vậy đây không được coi là một sai lầm nghiêm trọng. Chưa hết, các mô hình này là mô hình Thác nước xếp tầng cổ điển , với tính tuyến tính, thiết lập mục tiêu rõ ràng cho từng giai đoạn và kiểm soát chặt chẽ thời hạn. Các mô hình này là Spiral , tập trung vào việc xác định sớm và giảm thiểu rủi ro của dự án. Sự phát triển xoắn ốc bắt đầu ở quy mô nhỏ, đầu tiên là giải quyết các vấn đề cục bộ và sau đó là những vấn đề phức tạp hơn. Mô hình cuối cùng là IID , chia vòng đời dự án thành một chuỗi các lần lặp, mỗi lần lặp giống như một “dự án nhỏ”. Nói chung, mô hình là thứ mô tả quá trình phát triển phần mềm . Nhưng phương pháp luận là hệ thống để kiểm soát, đánh giá và giám sát công việc đối với các nhiệm vụ được giao. Phương pháp luận là củ cà rốt và cây gậy của sự phát triển hiện đại, cần thiết để kiểm soát mọi mắt xích của quá trình phát triển. Chúng được lựa chọn dựa trên định hướng của dự án, ngân sách và thời gian của sản phẩm cuối cùng. Hơn nữa, các phương pháp có thể được lựa chọn dựa trên tính cách của người quản lý dự án và nhóm của anh ta. Thậm chí dựa trên triết lý của công ty hoặc khách hàng. Hãy xem xét các phương pháp phổ biến nhất.

1. Phương pháp Scrum

Scrum là một phương pháp quản lý dự án linh hoạt . Nó dựa trên "chạy nước rút" - các lần lặp lại ngắn, bị giới hạn nghiêm ngặt về thời gian (thường là 2-4 tuần). Thời lượng của các cuộc họp giảm xuống mức tối thiểu, nhưng tần suất của chúng lại tăng lên. Mỗi lần chạy nước rút bao gồm một danh sách các nhiệm vụ cho đến khi kết thúc vòng lặp và mỗi nhiệm vụ đều có “trọng lượng” riêng. Trong các cuộc họp, nhóm thảo luận xem ai đã làm gì, họ sẽ làm gì và có vấn đề gì. Scrum sử dụng nhật ký chạy nước rút để lập kế hoạch. Theo cách tiếp cận này, Scrum master thường xuất hiện trong nhóm, người thiết lập công việc liên tục của toàn nhóm, tạo điều kiện thoải mái cho cả nhóm. Cũng trong dự án, vai trò của Product Owner xuất hiện - người quản lý phát triển, người giám sát sản phẩm và đóng vai trò là cầu nối chính giữa yêu cầu của khách hàng và kết quả của nhóm.

Ưu điểm:

  • khởi động dự án nhanh chóng với ngân sách thấp nhất có thể;
  • theo dõi hàng ngày tiến độ công việc, thường xuyên thuyết minh dự án;
  • khả năng thực hiện các thay đổi khi dự án tiến triển.

Nhược điểm:

  • khó khăn trong việc ký kết hợp đồng do thiếu kinh phí cố định;
  • không làm việc với trình độ chuyên môn thấp của nhóm, thời hạn công việc hoặc ngân sách bị đánh giá thấp;
  • khả năng liên tục thực hiện các thay đổi giữa các lần chạy nước rút có thể tạo ra sự nhầm lẫn.

Nó phù hợp với ai:

Hệ thống này phù hợp cho các dự án có tối đa 10 người - độc lập hoặc trong các công ty lớn. Điều này thuận tiện nếu nhóm có khối lượng công việc lớn và vòng đời dài, điều này buộc họ phải thay đổi và thích ứng với điều kiện thị trường mới.

2. Phương pháp Kanban

Tính năng quan trọng nhất của Kanban là trực quan hóa vòng đời dự án . Các cột được tạo để hoàn thành các nhiệm vụ được gửi riêng lẻ. Các cột được đánh dấu bằng các điểm đánh dấu như: Việc cần làm, Đang tiến hành, Đánh giá mã, Đang kiểm tra, Đã hoàn tất (tên của các cột tất nhiên có thể thay đổi). Mục tiêu của mỗi thành viên trong nhóm là giảm số lượng nhiệm vụ ở cột đầu tiên. Cách tiếp cận Kanban mang tính trực quan và giúp bạn hiểu vấn đề nằm ở đâu. Cấu trúc Kanban không được xác định rõ ràng và không thể thay đổi: tùy thuộc vào đặc thù của dự án, các cột ngẫu hứng có thể được thêm vào. Ví dụ: một số nhóm sử dụng một hệ thống trong đó họ cần xác định tiêu chí về mức độ sẵn sàng của nhiệm vụ trước khi thực hiện nó. Sau đó, hai cột được thêm vào - chỉ định (chỉ định các tham số) và thực thi (bắt đầu làm việc).

Ưu điểm:

  • lập kế hoạch linh hoạt. Nhóm chỉ tập trung vào công việc hiện tại, mức độ ưu tiên của nhiệm vụ cũng được xác định;
  • hiển thị. Khi tất cả các bên tham gia đều có quyền truy cập vào dữ liệu, các vấn đề toàn cầu sẽ dễ dàng được nhận thấy hơn;
  • tham gia cao vào quá trình phát triển. Trực quan hóa quy trình làm tăng khả năng tự tổ chức và tự kiểm soát.

Nhược điểm:

  • không làm việc với nhóm trên năm người;
  • không dành cho kế hoạch dài hạn;
  • không thích hợp để làm việc theo nhóm mà không có động lực. Ở Kanban, không có thời hạn nhất định cho từng nhiệm vụ và phương pháp luận không đưa ra hình phạt nếu trì hoãn.

Nó phù hợp với ai:

Kanban hoạt động hiệu quả ở những công ty nơi nhóm được thúc đẩy phát triển và đạt được kết quả. Như đã rõ ràng, một đội nhỏ. Có lẽ thậm chí là một bộ phận hoặc một phần của một đội.

3. Phương pháp RUP

Phương pháp RUP sử dụng mô hình phát triển lặp đi lặp lại. Vào cuối mỗi lần lặp lại (mất từ ​​2 đến 6 tuần), nhóm phải đạt được các mục tiêu đã hoạch định và có một phiên bản tạm thời nhưng hoạt động được của dự án. RUP bao gồm việc chia dự án thành bốn giai đoạn , trong đó mỗi giai đoạn công việc sẽ được thực hiện trên một thế hệ sản phẩm mới: giai đoạn bắt đầu dự án, sàng lọc, xây dựng và triển khai. Vào cuối giai đoạn, điểm đánh dấu hoàn thành giai đoạn (Cột mốc dự án) được nhập. Cột mốc dự án có thể được coi là thời điểm nhóm đánh giá kết quả đạt được. Do đó, phương pháp luận ngụ ý rằng các tính năng chính được phát hành trong giai đoạn đầu tiên và các tính năng bổ sung sẽ được thêm vào trong các giai đoạn tiếp theo.

Ưu điểm:

  • cho phép bạn đối phó với các nhiệm vụ thay đổi đến từ cả khách hàng và những nhiệm vụ phát sinh trong quá trình làm việc;
  • đảm bảo sự cải tiến liên tục của sản phẩm. Trong quá trình lặp lại, thiết kế có thể được xem xét kỹ lưỡng;
  • cho phép bạn xác định và loại bỏ rủi ro trong giai đoạn đầu làm việc, cũng như kiểm soát hiệu quả chất lượng phát triển.

Nhược điểm:

  • một phương pháp khá phức tạp, khó thực hiện với một nhóm hoặc công ty nhỏ;
  • phụ thuộc vào khả năng của các chuyên gia để đặt ra nhiệm vụ;
  • cần quá nhiều tài liệu về yêu cầu.

Nó phù hợp với ai:

Các dự án lớn với yêu cầu được xác định rõ ràng và rủi ro được xác định rõ ràng, khi sản phẩm cần được ra mắt càng nhanh càng tốt. Ngay cả khi phải trả giá bằng chức năng, để nhanh chóng chiếm lĩnh vị trí thích hợp của nó và chỉ sau đó mới tinh chỉnh các sắc thái.

Nhiều phương pháp, một xu hướng

Ngoài Scrum và Kanban phổ biến không thể phủ nhận, dựa trên các nguyên tắc linh hoạt dưới tên chung là “Agile” , cũng như RUP lặp đi lặp lại, các công ty còn làm việc với nhiều biến thể của phương pháp. Một số người thích lập trình cực đoan và đưa ra quyết định nhanh nhất và đơn giản nhất, một số thích phát triển dựa trên thử nghiệm và những người khác thích phát triển ứng dụng nhanh chóng (RAD). Đồng thời, xu hướng chính và vô điều kiện là việc sử dụng đồng thời một số phương pháp . Hoặc thậm chí kết hợp các mô hình và phương pháp thành một hệ thống điều khiển duy nhất. Mọi điều bạn cần biết về phương pháp phát triển phần mềm: xu hướng, nguyên tắc và cạm bẫy cho người mới bắt đầu - 2Các công ty hiện đại cố gắng loại bỏ các rào cản quan liêu và tạo ra bầu không khí làm việc nhóm chung trong tổ chức mà không chuyển giao trách nhiệm giữa các phòng ban và khối. Theo báo cáo của Scrumalliance , 70% công ty CNTT sử dụng Scrum. Trong số đó có những gã khổng lồ như Google, Amazon, Salesforce, Microsoft, Adobe. Các công ty khởi nghiệp và dự án trẻ thiên về Kanban hơn, nhưng nó cũng được Toyota và các game thủ từ Wargaming sử dụng. Các công ty CIS khiêm tốn hơn là Prom.ua, Bigl.ua, Kabanchik.ua sử dụng đồng thời các phương pháp Scrum và Kanban nhưng cho các nhiệm vụ khác nhau. Scrum - như một công cụ lập kế hoạch, Kanban - để theo dõi tiến độ công việc. Đối với RUP, nó thường được thực hiện bởi các công ty phương Tây có 50-200 nhân viên và doanh thu từ 1-10 triệu đô la. Nhưng đồng thời, IBM đã thay đổi RUP để tiến gần hơn đến các nguyên tắc Agile bằng cách đưa ra phương pháp OpenUP - “RUP, chỉ linh hoạt”. Tính linh hoạt của Agile được ca ngợi tương tự hiện đang thống trị bối cảnh CNTT . Ngày nay, nó không chỉ là mốt nhất thời - nó vẫn mang tính đổi mới và thực sự có hiệu quả ở nhiều công ty lớn. Agile được sử dụng ở Thung lũng Silicon và được Facebook và Uber sử dụng.

Điểm mấu chốt

Mỗi dự án có phương pháp phát triển phần mềm riêng, tùy thuộc vào nhóm, nguồn vốn, thời gian và yêu cầu của khách hàng. Không có công nghệ quản lý chung: ngay cả Agile cực kỳ phổ biến cũng không thể cung cấp cách tiếp cận tốt nhất cho quá trình phát triển. Do đó, phương pháp luận được lựa chọn cẩn thận, và đôi khi thậm chí là cơ bản. Nhiều đến mức bạn có thể sử dụng nó để đưa ra kết luận về bản thân công ty hoặc khách hàng của công ty. Các phương pháp được pha trộn, bổ sung bằng các mô hình và điều chỉnh cho phù hợp với bản thân. Nhiều đến mức họ đưa ra những cách tiếp cận mới. Mặc dù cuối cùng lĩnh vực quản lý vẫn nằm trong tay Scrum và Kanban, với sự bao gồm bất ngờ của mô hình Thác nước hoặc RUP lặp.
Còn gì để đọc
Trang web: Sách:
  • Andrew Stelman, Jennifer Greene: “Học tập linh hoạt”;
  • Per Kroll, Bruce MacIsaac: “Sự nhanh nhẹn và kỷ luật được thực hiện dễ dàng: Thực tiễn từ OpenUP và RUP”;
  • Mike Cohn: Scrum. Phát triển nhanh";
  • Robert K. Martin: “Phát triển phần mềm nhanh chóng. Nguyên tắc, ví dụ, thực tiễn";
  • Markus Hammarberg, Joakim Sundén: “Kanban đang hoạt động”;
  • A Jacobson, G. Booch, J. Rumbaugh: “Quy trình phát triển phần mềm hợp nhất.”
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION