fbpx
itmscoaching.com

Agile Scrum ra đời

Agile Scrum
Theo thống kê của Standish Group report in 2002 thì có khoảng 7% các yêu cầu user sẽ luôn luôn dùng đến, 13% là thường xuyên và 40% các tính năng không bao giờ dùng đến. Như vậy có thể thấy user luôn đặt ra tính năng và yêu cầu nhiều hơn so với thực tế sử dụng của họ.
Cũng giống như khi các bạn đi ăn nếu ngay từ đầu các bạn gọi tất cả các món ăn nên bàn nhưng thực tế bạn chỉ ăn khoảng 30% trong số đó là đã thấy no nhưng lại trả tiền 100%, khác với việc bạn ăn đến món nào thì bạn gọi món đó và sau đó trả tiền. Cũng tương tự như xây dựng phần mềm user chỉ thực sự sử dụng 30% các tính năng mà bạn xây dựng nên, vì vậy họ sẽ cảm thấy tốn kém.
Vậy làm thế nào để giảm thiểu bớt các tính năng không cần thiết đó là lý do vì sao mô hình Aglie Scrum ra đời.

Agile Scrum là gì

Agile Scrum
Agile trong Tiếng anh được hiểu là nhanh (nhanh hơn cả fast), nó là tập hợp các nguyên lý của các phần mềm linh hoạt và nhanh chóng. Một trong số mô hình phần mềm sử dụng nguyên tắc của Agile phổ biến như hiện nay đó là Scrum.

4 Nguyên tắc của Aglie

Agile Scrum
Nguyên tắc của Aglie là gì và tại sao các mô hình trên thế giới lại có điểm chung? Dưới đây chúng ta cùng tìm hiểu 4 nguyên tắc cốt lỗi của Agile là:

    1. Nguyên tắc Cá nhân và Sự tương tác quan trọng hơn quy trình và công cụ: tức là Agile đề cao tính tương tác của con người và tính trách nhiệm của các nhân hơn là công cụ.
    2. Working software quan trọng hơn là tài liệu đầy đủ: tập chung nguồn nhân lực sẽ tốt hơn là có tài liệu đầy đủ để gửi cho Khách hàng.
    3. Quan hệ với Khách hàng sẽ quan trọng hơn đàm phán trong hợp đồng: có nghĩa là giữ mối quan hệ tốt với Khách hàng, tôn trọng các yêu cầu của Khách hàng trong quá trình làm việc.
    4. Trách nhiệm thay đổi phần mềm theo yêu cầu của người sử dụng quan trọng hơn là kế hoạch đã định ra (Following a plan).

Như vậy một mô hình đáp ứng đủ 4 nguyên tắc trên thì chúng ta gọi đó là mô hình Agile.

Giới thiệu tổng quan về Scrum

Trong Agile chúng ta sẽ có nhiều hình thức để triển khai dự án và một trong những mô hình phù hợp, đơn giản dễ áp dụng ở trong các dự án khác đó là Scrum.
Tuy nhiên những dự án đã có nguyên tắc cố định và không cần có sự sáng tạo thì sẽ không phù hợp với mô hình Scrum. Ví dụ như phần mềm kế toán, phần mềm nghiệp vụ ngân hàng là những phần mềm có những nguyên tắc cố định không cần sự sáng tạo chỉ cần làm đúng theo nguyên tắc là được.

  • Khung hoạt động của Scrum

– Scrum ra đời năm 1990 được phát triển bởi Ken Schwaber và JeffSutherland với mục tiêu là cung cấp một sản phẩm có giá trị ngày càng gia tăng trong những khoảng thời gian cố định.
– Scrum hoạt động dựa trên những giai đoạn bước rút (Sprint), thường kéo dài từ 2 đến 4 tuần.
– Scrum là mô hình thúc đẩy sự tương tác và gia tăng hoạt động tự quản lý, trên việc tổ chức một nhóm từ 5 đến 9 người. Những người này có khả năng chuyên sâu, làm việc phụ thuộc lẫn nhau trong một khoảng thời gian cố định.

Scrum Framework

Khung làm việc của Scrum rất đơn giản:

  1. Bạn cần có 1 Product Backlog tập hợp tất cả các yêu cầu được viết dưới dạng user story hay còn gọi là ngôn ngữ của người sử dụng, người dùng muốn làm gì và những yêu cầu đó sẽ được sắp xếp theo priority, yêu cầu nào quan trọng sẽ được ưu tiền xử lý trước.
  2. Spint Backlog được thực hiện trong khoảng từ 2 đến 4 tuần, chúng ta sẽ làm và hoàn thành một số user story đã lựa chọn (những user story được lựa chọn được gọi là spint backlog).
  3. Trong quá trình thực hiện Spint Backlog thì sẽ có một buổi meeting được gọi là Spint planing bao gồm tất cả các thành viên và đại diện của khách hàng. Nhiệm vụ của đội thi công là chuẩn bị các câu hỏi để trao đổi với Khách hàng và các task kèm plan rõ ràng.
  4. Ngoài ra hàng ngày sẽ có những cuộc meeting là Daily meeting và quan sát plan để theo sát tiến độ dự án
  5. Và khi kết thúc một Spint Backlog sẽ có buổi meeting vừa để demo cho Khách hàng cũng vừa để review, rút kinh nghiệm trong quá trình làm. Cuối cùng các Spint sẽ được tổ chức liên tục cho đến khi các Spint được hoàn thành toàn bộ và Khách hàng không yêu cầu thêm tính năng làm nữa, như vậy dự án được coi là kết thúc và sản phẩm được bàn giao.

Agile Scrum
Role của Scrum

    1. Product Owner: người đại diện của Khách hàng, người có vai trò quyết định tính năng được thực hiện trong dự án
    2. Scrum master: người thực hiện các quy trình cho dự án
    3. Team sẽ bao gờm tất cả các thành viên của dự án Business Analysts, Developer, Tester,.. và có vai trò ngang nhau

Artifact

  1. Definition of done: các tiêu chí đánh giá như nào là hoàn thành cho một dự án hay cho một spint để dựa vào đó xác định được đánh giá là hoàn thành một task
  2. Product backlog: sẽ do Product Owner quản lý và sắp xếp thứ tự ưu tiên và được cập nhật liên tục
  3. Release plan: cũng do Product Owner đề ra, kế hoạch bàn giao sản phẩm
  4. Spint Backlog: là các yêu của các spint
  5. Kanban board: bảng theo dõi các công việc của dự án
  6. Velocity: chỉ số đo năng suất của dự án, được đo bằng user point trên một spint

Event

    1. Spint planing: buổi lập kế hoạch cho một spint
    2. Daily meeting: buổi họp hằng ngày để theo dõi và báo cáo kết quả của đội dự án
    3. Spint review: giới thiệu sản phẩm của một spint cũng như lấy các yêu cầu hay câu hỏi từ phía Khách hàng.
    4. Spint retrospective: buổi họp rút kinh nghiệm của toàn đội

Giá trị của Scrum

Để dự án đạt hiệu quả cao chúng ta cần tôn trọng các yếu tố sau khi thực hiện dự án.

  • Commitment: Tính cam kết cao trong công việc
  • Focus: Tập trung vào đúng mục tiêu, chiến lược tại một thời điểm nhất định
  • Openness: Mọi thông tin đều rõ ràng, minh bạch trong và ngoài dự án
  • Respect: Giá trị gắn kết giữa các thành viên dự án cùng như Khách hàng
  • Courage: Giá trị sự can đảm nhận task có thể là những task khó hơn cả khả năng của bản thên, cam kết công việc hoàn thành đúng deadline,…

Trọng tâm của Scrum

  • Timeboxing: Các quy tắc về thời gian luôn là cố định
  • Learning from mistakes and self managing: Học hỏi, rút kinh nghiệm từ những sai lầm và sự tự chủ động trong quản lý
  • Shippable Code: Sản phẩm phải chạy được là trọng tâm của dự án và các yêu cầu phải được làm hoàn thiện
  • Enough to Start: Vừa đủ để thực hiện các hoạt động của Scrum được diễn ra khi thông tin vừa đủ để bắt đầu. Không chờ đợi đến khi mọi thứ rõ ràng và đầy đủ mới thực hiện

Scrum và Waterfall Model

Agile Scrum

  • Khái niệm
  1. Scrum được hiểu gần giống với môn chơi bóng rổ, tất cả cùng chạy lại làm sao để dành được quả bóng cho team của mình. Thì tương tự như trong Scrum các thành viên sẽ làm tất cả mọi người không cần biết ở vị trí nào để có thể hoàn thành được yêu cầu của Khách hàng.
  2. Waterfall lại ngược lại, nó tương tự như môn thể thao chạy tiếp sức, người sau muốn chạy được thì phải đợi người trước đưa vật phẩm, có nghĩa là với mô hình này các chức năng sau muốn thực hiện được thì cũng phải chờ các chức năng trước đó đã hoàn thành vì nó có nghiệp vụ liên quan đến nhau.
  • Giai đoạn

Agile Scrum
– Waterfall Model: các giai đoạn không làm đồng thời, giai đoạn sau sẽ đợi giai đoạn trước hoàn thành các tài liệu hay làm rõ yêu cầu với Khách hàng rồi mới thực hiện tiếp. (hình ảnh minh họa)
– Agile Scrum: các giai đoạn sẽ được chia thành các spint nhỏ, trong spint nhỏ sẽ thực hiện toàn bộ các công việc của một dự án.

Kết luận

Quy trình phát triển phần mềm Agile đưa ra một mô hình chung và mang tính định hướng nên việc áp dụng Agile là khá linh động, tính tùy biến cao.
Tuy nhiên phương pháp này không đưa ra được nhiều hướng dẫn cụ thể nên đòi hỏi người quản lý phải có kỹ năng tốt và vai trò của Tester trong đội dự án là rất quan trọng, ngoài việc đóng góp ý kiến, bàn bạc, thảo luận và xử lý những vấn đề chung về dự án ra còn phải bao quát được toàn bộ hệ thống, hiểu sâu đồng thời luôn sẵn sàng để xử lý những yêu cầu thay đổi mới đối với dự án mà khách cung cấp. Tùy theo hệ thống chúng ta thực hiện để lựa chọn mô hình sao cho phù hợp.
Chúc các bạn học tập tốt và hãy luôn ủng hộ ITMS Coaching nhé!

Tags: