Agile methodology là gì

Agile methodology là gì

Đã đăng vào thg 5 25, 2018 6:51 SA 12 phút đọc

Bài đăng này đã không được cập nhật trong 3 năm

Phương pháp Agile là một cách chú trọng vào việc lặp lại liên tục sự phát triển và kiểm thử xuyên suốt vòng đời phát triển phần mềm của dự án. Cả 2 hoạt động phát triển phần mềm và kiểm thử của mô hình Agile đều hoàn toàn khác biệt với mô hình Waterfall.

Sự phát triển phần mềm Agile nhấn mạnh vào 4 giá trị cốt lõi sau:

  1. Sự tương tác của cá nhân và nhóm thông qua các quy trình và công cụ.
  2. Phần mềm làm việc thông qua các tài liệu đầy đủ
  3. Sự hợp tác của khách hàng thông qua việc thương thuyết hợp đồng
  4. Đáp ứng để thay đổi nhằm theo sát các kế hoạch

Agile methodology là gì

2. Phương Thức Agile Vs Waterfall

Mô hình Agile and Waterfall là hai phương thức hoàn toàn khác biệt trong quy trình phát triển phần mềm. Tuy chúng khác biệt trong cách tiếp cận, nhưng cả 2 phương thức đều hữu dụng ở một thời điểm nào đó, phụ thuộc vào yêu cầu và đặc điểm của dự án.

3. Phương Pháp Kiểm Thử Agile

Agile methodology là gì

Trong Agile có những phương thức kiểm thử khác nhau như sau:

3.1. Scrum

Scrum là một quy trình quản lý và phát triển theo phương pháp phát triển linh hoạt (Agile) tập trung đặc biệt vào việc quản lý các công việc trong một môi trường phát triển theo nhóm. Về cơ bản Scrum được bắt nguồn từ các hoạt động xảy ra trong 1 vòng tuần hoàn. Scrum tin tưởng vào việc trao quyền cho nhóm phát triển và làm việc theo nhóm nhỏ (từ 7-9 người). Nó bao gồm ba vai trò với những trách nhiệm được giải thích như hình sau:

Agile methodology là gì

  • Scrum Master
    Master là người chịu trách nhiệm thiết lập nhóm, thiết lập cuộc họp trong các giai đoạn phát triển và loại bỏ các vật cản ảnh hưởng đến sự phát triển

  • Product owner
    Product owner tạo ra backlog sản phẩm, đưa ra thứ tự ưu tiên cho backlog và chịu trách nhiệm cho việc phát hành các tính năng ở mỗi giai đoạn

  • Scrum Team
    Team quản lý công việc của họ và tổ chức công việc nhằm hoàn thành các giai đoạn hoặc chu kỳ phát triển

Product Backlog
Đây là một kho lưu trữ các yêu cầu được theo dõi với chi tiết về yêu cầu không được hoàn thành trong mỗi lần phát hành. Nó phải được duy trì và được ưu tiên bởi Product owner, và nó sẽ được phân phối cho nhóm scrum. Nhóm cũng có thể bổ sung hoặc sửa đổi hoặc xóa yêu cầu mới.

Agile methodology là gì

Scrum Practices
Được mô tả chi tiết như hình dưới đây:

Agile methodology là gì

Process flow of Scrum Methodologies (Luồng xử lý của phương thức Scrum)
Luồng xử lý của phương thức kiểm thử Scrum như sau:

  • Mỗi một giai đoạn lặp lại của một scrum được biết đến như là Sprint
  • Product backlog là một danh sách bao gồm các mô tả chi tiết để hoàn thành sản phẩm cuối cùng
  • Trong mỗi Sprint, các mục hàng đầu của Product backlog được chọn và chuyển thành Sprint backlog
  • Nhóm làm việc trên sprint backlog đã được mô tả
  • Nhóm kiểm tra cho công việc hàng ngày
  • Vào cuối các sprint, nhóm sẽ phát hành các tính năng của sản phẩm

3.2. eXtreme Programming (XP)


Kỹ thuật lập trình eXtreme Programming (XP) cực kỳ hữu ích khi có yêu cầu thay đổi liên tục từ khách hàng hoặc khi họ không chắc về chức năng của hệ thống. Với chủ trương "phát hành" sản phẩm thường xuyên trong các chu kỳ phát triển ngắn, sẽ cải thiện chức năng của hệ thống cũng như đưa ra các điểm quan trọng nơi mà bất kỳ yêu cầu nào từ khách hành đều có thể dễ dàng thực thi.

Agile methodology là gì

Các yêu cầu kinh doanh được thu thập theo các story (câu chuyện). Ở phương pháp này, các bản phát hành sẽ dựa trên các vòng đời ngắn hơn được gọi là Iteration (sự lặp lại) với mỗi 14 ngày. Mỗi lần lặp lại bao gồm các giai đoạn như lập trình, kiểm thử đơn vị và kiểm thử hệ thống, nơi mà các chức năng nhỏ sẽ được xây dựng trong ứng dụng.

Các giai đoạn lập trình eXtreme: Có 6 giai đoạn trong phương pháp Agile XP, và những giai đoạn được giải thích như sau:

1. Lập kế hoạch Xác định các bên liên quan và nhà tài trợ Yêu cầu về cơ sở hạ tầng Các thông tin và thu thập liên quan đến bảo mật Thỏa thuận về điều kiện và sự đồng thuận về mức độ dịch vụ

2. Phân tích

Mường tượng những câu chuyện người dùng (story) sẽ xảy ra Đưa ra mức độ ưu tiên cho các câu chuyện người dùng (story) Ước tính nỗ lực cho các câu chuyện người dùng (story) Xác định khoảng lặp (Thời gian) Kế hoạch nhân sự cho cả nhóm phát triển và QA

3. Thiết kế

Chia nhỏ công việc Chuẩn bị kịch bản kiểm thử cho mỗi công việc Framework tự động hóa hồi quy

4. Thực thi

Lập trình Kiểm thử đơn vị Thực thi các kịch bản kiểm thử thủ công Tạo báo cáo lỗi Chuyển đổi các trường hợp kiểm thử thủ công sang tự động Đánh giá giữa các vòng lặp Kết thúc

5. Đóng gói

Phát hành sản phẩm quy mô nhỏ Kiểm thử hồi quy Chạy thử và đánh giá Phát triển các câu chuyện mới dựa trên yêu cầu Cải tiến quy trình dựa vào các nhận xét đánh giá của việc kết thúc vòng tuần hoàn

6. Kết thúc

Ra mắt chương trình thử nghiệm Đào tạo Ra mắt sản phẩm Đảm bảo về SLA Xem xét chiến lược SOA Hỗ trợ sản phẩm

3.3. Crystal Methodologies


Phương pháp Crystal dựa vào 3 khái niệm sau:

Chartering:
Các hoạt động khác nhau liên quan đến giai đoạn này tạo ra một nhóm phát triển, thực hiện phân tích tính khả thi, xây dựng khởi tạo kế hoạch và tinh chỉnh phương pháp phát triển

Cyclic delivery (Phát hành theo chu kỳ):
Giai đoạn phát triển chính bao gồm hai hoặc nhiều chu kỳ phát hành, trong đó sẽ bao gồm:

  • Nhóm sẽ cập nhật và chỉnh sửa kế hoạch phát hành
  • Triển khai một tập hợp các yêu cầu thông qua một hoặc nhiều lần kiểm thử tích hợp
  • Sản phẩm tích hợp được phân phối tới người dùng thực tế
  • Rà soát kế hoạch dự án và phương pháp phát triển đã được thông qua

Wrap Up:

Các hoạt động thực hiện trong giai đoạn này sẽ được triển khai vào môi trường người dùng, các đánh giá sau khi triển khai được thực hiện.

3.4. Dynamic Software Development Method (DSDM)


DSDM là phương pháp phát triển ứng dụng nhanh (RAD) tiếp cận việc phát triển phần mềm và cung cấp nền tảng phát hành dự án nhanh gọn. Khía cạnh quan trọng của DSDM là người dùng được yêu cầu tích cực tham gia, và nhóm phát triển được trao quyền đưa ra các quyết định trong dự án. Thường xuyên phát hành sản phẩm trở thành trọng tâm hoạt động của DSDM. Các kỹ thuật được sử dụng trong DSDM gồm:

  • Thời gian Boxing
  • Quy tắc MoSCoW
  • Tạo bản mẫu

Dự án DSDM bao gồm 7 giai đoạn:

1. Trước khi bắt đầu dự án 2. Nghiên cứu tính khả thi 3. Nghiên cứu khả năng kinh doanh 4. Lặp lại mô hình chức năng 5. Thiết kế và xây dựng 6. Thực hiện

7. Dự án hoàn tất

3.5. Feature Driven Development (FDD)

Phương pháp này tập trung vào các tính năng "thiết kế và xây dựng". Không giống như các phương thức Agile khác, FDD mô tả các giai đoạn công việc rất ngắn và cụ thể cần phải thực hiện cho từng tính năng. FDD phát triển sản phẩm bằng việc theo sát những mục tiêu sau

  1. Mô hình đối tượng tên miền
  2. Phát triển theo tính năng
  3. Sở hữu thành phần/lớp
  4. Nhóm tính năng
  5. Kiểm tra
  6. Quản lý cấu hình
  7. Xây dựng chung
  8. Hiển thị tiến độ và kết quả

3.6. Lean Software Development

Phương pháp phát triển phần mềm tinh gọn dựa trên nguyên tắc "Sản xuất tinh gọn" (đúng thời gian, đúng sản phẩm). Phương pháp này hướng tới mục tiêu tăng tốc độ phát triển phần mềm và giảm chi phí. Phát triển tinh gọn có thể được tóm tắt trong bảy bước sau:

  1. Loại bỏ dư thừa
  2. Khuếch trương việc học
  3. Trì hoãn cam kết (quyết định càng muộn càng tốt)
  4. Phát hành sớm
  5. Trao quyền cho nhóm
  6. Xây dựng tính toàn vẹn
  7. Tối ưu hóa toàn bộ

Nguồn tham khảo: https://www.guru99.com/agile-scrum-extreme-testing.html


All rights reserved

Agile methodology là gì

Nguyen Thi Tu Quyen @tuquyen2710

Đã đăng vào thg 1 18, 2021 11:25 SA 11 phút đọc

Agile methodology là gì

  • Phương pháp Agile là một phương pháp thực hành giúp lặp đi lặp lại liên tục quá trình phát triển và thử nghiệm trong quy trình SDLC. Agile chia sản phẩm thành các bản xây dựng nhỏ hơn.

  • Trong phương pháp luận này, các hoạt động Develop và Test diễn ra đồng thời, không giống như các phương pháp luận phát triển phần mềm khác. Nó cũng khuyến khích làm việc theo nhóm (team) và giao tiếp mặt đối mặt (face -to-face). Doanh nghiệp, các bên liên quan, Developer và khách hàng phải làm việc cùng nhau để phát triển một sản phẩm.

B. SCRUM LÀ GÌ?

Agile methodology là gì

  • Scrum trong Agile là một quy trình cho phép các đội dự án phát triển phần mềm tập trung vào việc cung cấp các giá trị kinh doanh trong thời gian ngắn nhất ( theo sprint) bằng cách test nhanh chóng và liên tục phần mềm hoạt động thực tế.
  • Nó tập trung vào trách nhiệm giải trình, làm việc theo teamwork và tiến trình lặp đi lặp lại hướng tới các mục tiêu được xác định rõ. Scrum Framework thường đề cập đến thực tế là các yêu cầu có khả năng thay đổi hoặc hầu như không được biết đến khi bắt đầu dự án.
  • Quy trình Scrum cho phép các tổ chức điều chỉnh một cách thuận lợi theo các yêu cầu thay đổi nhanh chóng và sản xuất một sản phẩm đáp ứng các mục tiêu kinh doanh đang phát triển. Một quy trình Scrum nhanh mang lại lợi ích cho tổ chức bằng cách giúp tổ chức: + Tăng chất lượng của sản phẩm + Đối phó tốt hơn với sự thay đổi (và mong đợi những thay đổi) + Cung cấp ước tính tốt hơn trong khi tốn ít thời gian hơn để tạo chúng

    + Kiểm soát tốt hơn tiến độ và trạng thái của dự án

C. LỢI ÍCH CỦA AGILE LÀ GÌ?

Agile methodology là gì

1. Lợi ích cho khách hàng

  • Khách hàng nhận thấy rằng nhà cung cấp phản hồi nhanh hơn với các yêu cầu phát triển. Các tính năng có giá trị cao được phát triển và phân phối nhanh hơn với chu kỳ ngắn, so với chu kỳ dài hơn được các quy trình “thác nước” cổ điển ưa chuộng.

2. Lợi ích cho nhà cung cấp

  • Các nhà cung cấp giảm lãng phí bằng cách tập trung nỗ lực phát triển vào các tính năng có giá trị cao và giảm thời gian đưa ra thị trường so với quy trình thác nước do giảm chi phí và tăng hiệu quả. Sự hài lòng của khách hàng được cải thiện đồng nghĩa với việc giữ chân khách hàng tốt hơn và nhiều lượt giới thiệu tích cực hơn về khách hàng.

3. Lợi ích đối với Nhóm phát triển

  • Các thành viên trong nhóm thích công việc phát triển và thích thấy công việc của họ được sử dụng và đánh giá cao. Scrum mang lại lợi ích cho các thành viên trong Nhóm bằng cách giảm bớt công việc phi năng suất (ví dụ: viết thông số kỹ thuật hoặc các hiện vật khác mà không ai sử dụng) và cho họ nhiều thời gian hơn để làm công việc mà họ yêu thích. Các thành viên trong nhóm cũng biết công việc của họ được coi trọng, bởi vì các yêu cầu được lựa chọn để tối đa hóa giá trị cho khách hàng.

4. Lợi ích cho người quản lý sản phẩm

  • Giám đốc sản phẩm, những người thường đảm nhiệm vai trò Chủ sở hữu sản phẩm, chịu trách nhiệm làm cho khách hàng hài lòng bằng cách đảm bảo rằng công việc phát triển phù hợp với nhu cầu của khách hàng. Scrum làm cho việc liên kết này trở nên dễ dàng hơn bằng cách cung cấp các cơ hội thường xuyên để sắp xếp lại thứ tự ưu tiên công việc, nhằm đảm bảo mang lại giá trị tối đa.

5. Lợi ích cho người quản lý dự án

  • Người quản lý dự án (và những người khác) đảm nhiệm vai trò ScrumMaster nhận thấy rằng việc lập kế hoạch và theo dõi dễ dàng hơn và cụ thể hơn, so với các quy trình thác nước. Việc tập trung vào theo dõi cấp độ nhiệm vụ, sử dụng Biểu đồ Burndown để hiển thị tiến độ hàng ngày và các cuộc họp Scrum Hàng ngày, tất cả đều mang lại cho Người quản lý dự án nhận thức sâu sắc về trạng thái của dự án mọi lúc. Nhận thức này là chìa khóa để giám sát dự án, đồng thời nắm bắt và giải quyết các vấn đề một cách nhanh chóng.

6. Lợi ích đối với PMO và Giám đốc điều hành

  • Scrum cung cấp khả năng hiển thị cao về trạng thái của một dự án phát triển, hàng ngày. Các bên liên quan bên ngoài, chẳng hạn như giám đốc điều hành và nhân sự trong Văn phòng quản lý dự án, có thể sử dụng khả năng hiển thị này để lập kế hoạch hiệu quả hơn và điều chỉnh chiến lược của họ dựa trên nhiều thông tin khó hơn và ít suy đoán hơn.

D.CÁC VAI TRÒ SCRUM LÀ GÌ?

Ba vai trò được xác định trong Scrum là ScrumMaster, Product Owner và Nhóm (bao gồm các thành viên trong Nhóm). Những người hoàn thành các vai trò này làm việc cùng nhau chặt chẽ hàng ngày để đảm bảo luồng thông tin thông suốt và giải quyết vấn đề nhanh chóng.

Agile methodology là gì

  • Product Owner (chủ sản phẩm): Là người chịu trách nhiệm về sự thành công của dự án, người định nghĩa các yêu cầu và đánh giá cuối cùng đầu ra của các nhà phát triển phần mềm.

  • Scrum Master: Là người có hiểu biết sâu sắc về Scrum và đảm bảo nhóm có thể làm việc hiệu quả với Scrum.

  • Development Team (Đội sản xuất, hay Nhóm phát triển): Một nhóm liên chức năng (cross-functional) tự quản lý để tiến hành chuyển đổi các yêu cầu được tổ chức trong Product Backlog thành chức năng của hệ thống.

  • Bốn Cuộc họp: Scrum định nghĩa quy tắc cho bốn sự kiện chủ chốt (các cuộc họp) nhằm tạo môi trường và quy cách hoạt động và cộng tác cho các thành viên trong dự án.Sprint là một phân đoạn lặp đi lặp lại trong quy trình phát triển phần mềm, thường có khung thời gian ngắn (từ 1 – 4 tuần).

  • Sprint Planning (Họp Kế hoạch Sprint): + Nhóm phát triển gặp gỡ với Product Owner để lên kế hoạch làm việc cho một Sprint. Công việc lập kế hoạch bao gồm việc chọn lựa các yêu cầu cần phải phát triển, phân tích và nhận biết các công việc phải làm kèm theo các ước lượng thời gian cần thiết để hoàn tất các tác vụ.

    + Scrum sử dụng cách thức lập kế hoạch từng phần và tăng dần theo thời gian, theo đó, việc lập kế hoạch không diễn ra duy nhất một lần trong vòng đời của dự án mà được lặp đi lặp lại, có sự thích nghi với các tình hình thực tiễn trong tiến trình đi đến sản phẩm.

  • Daily Scrum (Họp Scrum hằng ngày): Scrum Master tổ chức cho Đội sản xuất họp hằng ngày trong khoảng 15 phút để Nhóm Phát triển chia sẻ tiến độ công việc cũng như chia sẻ các khó khăn gặp phải trong quá trình phát triển phần mềm suốt một Sprint.

  • Sprint Review (Họp Sơ kết Sprint): Cuối Sprint, nhóm phát triển cùng với Product Owner sẽ rà soát lại các công việc đã hoàn tất (DONE) trong Sprint vừa qua và đề xuất các chỉnh sửa hoặc thay đổi cần thiết cho sản phẩm.

  • Sprint Retrospective (Họp Cải tiến Sprint): Dưới sự trợ giúp của Scrum Master, nhóm phát triển sẽ rà soát lại toàn diện Sprint vừa kết thúc và tìm cách cải tiến quy trình làm việc cũng như bản thân sản phẩm.

  • Trên đây là phần cơ bản về Agile Scrum. Hy vọng rằng nó sẽ giúp ích cho bạn khi làm dự án nhé.

    Nguồn: https://www.cprime.com/resources/what-is-agile-what-is-scrum/ https://www.guru99.com/agile-vs-scrum.html


    All rights reserved