backtop

Agile là gì? 5 phương pháp Agile phổ biến hiện nay

Với khả năng thúc đẩy các hoàn thành các công việc và quy trình một cách dễ dàng và nhanh chóng, Agile được coi là một trong những giải pháp phát triển phần mềm được ưa chuộng nhất hiện nay. Vậy Agile là gì? Phương pháp này mang lại những lợi thế gì cho doanh nghiệp? Những thắc mắc này sẽ được PharMarketing giải đáp ngay trong bài viết dưới đây.

Agile là gì?

Agile là một phương pháp phát triển phần mềm linh hoạt, hướng tiếp cận cụ thể cho việc quản lý dự án phần mềm. Mục đích của phương pháp này là làm sao đến gần hơn được khách hàng càng nhanh càng tốt. Nói cách khác, Agile như triết lý tư duy để nhanh chóng thích nghi với sự thay đổi trước sự biến động liên tục của thị trường.

Agile là gì?
Agile là gì?

5 phương pháp Agile phổ biến hiện nay

PharMarketing sẽ giới thiệu cho các bạn 5 phương pháp Agile hiện phổ biến nhất hiện nay.  

Scrum

Scrum là dạng mô hình Agile và là một Framework (Khung) phổ biến nhất khi thực hiện mô hình Agile. Nhưng bạn đừng nhầm lẫn hai khái niệm này, vì chúng không phải là một. Scrum được hiểu như một mô hình phát triển phần mềm lặp đi lặp lại (như hình ảnh minh họa trên). Đặc trưng là những khoảng lặp cố định thường diễn ra không quá một tháng, phổ biến nhất là 2 tuần được gọi là “Sprint” (chạy nước rút) hay Iteration ̣(sự lặp lại).

Kanban

Kanban (dịch từ tiếng Nhật có nghĩa là bảng hiệu) là một phương pháp tinh gọn để quản lý và cải tiến công việc. Đây là một thuật ngữ có nguồn gốc từ công ty chế tạo xe hơi Toyota vào những năm 1940. 

Kanban là Framework rất phổ biến trong phương pháp phát triển phần mềm linh hoạt. Nó cung cấp cái nhìn minh bạch về các nhiệm vụ và năng lực làm việc của nhóm. Phương pháp này chủ yếu sử dụng bảng vật lý và kỹ thuật số để cho phép các thành viên trong nhóm hình dung trạng thái hiện tại của dự án mà họ đang làm việc. Những công cụ kiểm soát này đều có một sự liên kết chặt chẽ với nhau, thể hiện những thông tin chính xác về các công việc, nguyên liệu, bộ phận thực hiện trước đó. Điều này đảm bảo cho các công việc được diễn ra xuyên suốt và đạt hiệu quả cao.

Ưu điểm của phương pháp Kanban

  • Độ chính xác về giờ giấc
  • Đảm bảo độ chính xác khi sản xuất sản phẩm
  • Tiết kiệm tối đa vật tư và nguyên liệu trong quy trình sản xuất
  • Vòng đời sản phẩm (Product Life Cycle) quay nhanh vì khả năng tối ưu phân công lao động
  • Xây dựng môi trường làm việc kỹ thuật cao, liên kết khả năng làm việc của người lao động trong dây truyền sản xuất
  • Nâng cao năng suất và ý thức công việc của người lao động

Scrumban

Scrum là giải pháp tốt nhất cho sản phẩm và phát triển dự án. Trong khi đó Kanban là giải pháp tốt nhất để hỗ trợ sản xuất. Scrumban là sự kết hợp giữa sự nhanh nhạy của Scrum và hưởng lợi từ sự đơn giản của Kanban. 

Với Scrumban, bạn có thể lập những kế hoạch lặp lại trong những khoảng thời gian đều đặn, đồng bộ với việc đánh giá và có thể xem lại những gì đã làm, điều này làm giảm đáng kể chi phí.

Một số lợi ích scrumban đem lại như: Đảm bảo chất lượng, thời gian quản lý ngắn, ít rủi ro, giảm thiểu lãng phí, có thể cải tiến quy trình bằng cách thêm một số giá trị của Scrum khi cần thiết, dễ dàng đánh giá quy trình để cải tiến liên tục (Kaizen),...

Lean Software Development (LSD)

Lean Software Development (Phát triển phần mềm tinh gọn) ban đầu được nhà sản xuất ô tô Toyota phát minh ra vào giữa thế kỷ XX như một cách để hợp lý hóa việc sản xuất ô tô và giảm thiểu việc lãng phí thời gian và tài nguyên. Sau đó, các tổ chức sản xuất khác trong nhiều ngành công nghiệp liên quan đến lĩnh vực phát triển phần mềm bắt đầu sử dụng hệ thống này và sau đó tên được đổi thành Lean. Phương pháp này lần đầu tiên được áp dụng để tạo ra phần mềm vào năm 2003 với việc xuất bản cuốn sách nổi tiếng Lean Software Development.

Phương pháp này được hiểu là hình thức áp dụng Tư duy tinh gọn và các nguyên lý đặc trưng của tinh gọn cho lĩnh vực phát triển phần mềm. Tư duy tinh gọn là loại bỏ sự lãng phí và không hiệu quả bao gồm bất cứ mọi thứ không mang lại lợi ích cho quá trình sản xuất sản phẩm và dịch vụ. 

XP (Extreme Programming)

Trong số các phương pháp Phát triển Phần mềm Linh hoạt (gọi tắt là Agile) thời kỳ đầu, chỉ duy nhất có extreme Programming (viết tắt XP) là tập trung phát triển phần mềm hướng đến việc nâng cao chất lượng phần mềm và khả năng đáp ứng với thay đổi yêu cầu người dùng. 

Phương pháp này đưa ra các bản phát hành thường xuyên thông qua các chu trình phát triển ngắn. Một số các thực hành của XP như: Tái cấu trúc mã nguồn (Refactoring), Lập trình cặp (Pair programming), Các bản phát hành nhỏ (Small Release), Kiểm thử đơn vị (Unit Testing), Tích hợp liên tục (Continuous Integration),…. 

Ưu và nhược điểm của phương pháp Agile

Mỗi phương pháp quản lý dự án đều có những ưu điểm và nhược điểm riêng, hiểu rõ những ưu, nhược điểm này sẽ giúp bạn lựa chọn một phương pháp phù hợp với dự án đưa ra:

Ưu điểm

  • Giải pháp phần mềm này mang đến nhiều giá trị cụ thể như tính tương tác cao, thời gian thực hiện và khả năng xử lý công việc linh hoạt.
  • Phương pháp Agile nhằm tăng sự tương tác giữa các cá nhân với nhau do tất cả các thành viên không bị áp đặt vào quy trình hay công cụ nào cụ thể. Chính điều này giúp gia tăng tối đa hiệu quả công việc.
  • Mục đích của việc phát triển phần mềm theo phương pháp Agile là tạo ra các phiên bản chạy được trong từng giai đoạn thực hiện, nên dù tài liệu tổng thể chưa đầy đủ, khách hàng vẫn có thể xem xét và đánh giá hiệu quả triển khai mà không cần mất quá nhiều thời gian cho việc phân tích, chờ xuất trình tài liệu và xét duyệt. Điều này giúp rút gọn thời gian thực hiện các dự án.

Nhược điểm

  • Bên cạnh ưu điểm nổi trội thì những khái niệm liên quan phần mềm này vẫn còn quá mới mẻ, không phải ai cũng tiếp thu được các phương án triển khai Agile như XP, Scrum, Kanban,...
  • Triển khai phần mềm với phương pháp này phải trải qua nhiều giai đoạn khác nhau. Lập trình viên sẽ tập trung phát triển một yếu tố hoàn chỉnh ở một giai đoạn như: Lấy và phân tích yêu cầu, thiết kế, viết mã, thử nghiệm, Fixbugs (sửa lỗi) và viết tài liệu hướng dẫn.
  • Để thực hiện tốt việc phát triển phần mềm Agile, thường phải chú trọng đến sự giao tiếp trực tiếp giữa tất cả các đối tượng tham gia dự án, đặc biệt là đội ngũ thực hiện dự án và khách hàng.

Scrum là gì?

Như đã nói ở trên, Scrum là 1 dạng mô hình Agile, dưới hình thức một Framework (Khung) phổ biến nhất khi thực hiện mô hình Agile. 

Scrum là gì?
Caption

Nhiệm vụ của các nhóm Scrum là theo dõi tiến độ trong các cuộc họp hàng ngày có giới hạn trong khoảng 15 phút. Cuối mỗi lần Sprint (Chạy nước rút), họ sẽ tổ chức để nhìn lại và đánh giá cũng như chứng minh công việc đã thực hiện, từ đó tiếp tục cải thiện trong tương lai. Điểm đặc biệt là Scrum được thiết kế nhằm trao quyền cho nhóm phát triển làm việc theo quy mô nhỏ (từ 7-9 người). 

Ba giá trị cốt lõi của Scrum

Minh bạch (Transparency)

Để áp dụng thành công mô hình Scrum thì mọi thông tin liên quan đến quá trình phát triển phần mềm phải đảm bảo tính minh bạch và thông suốt để mọi nhân lực đảm nhận vai trò khác nhau có cơ sở tiến hành các quyết định có giá trị nhằm nâng cao hiệu quả công việc.

Những thông tin cần phải được minh bạch đó là: Tầm nhìn về sản phẩm/dịch vụ, yêu cầu của khách hàng, tiến độ thực hiện công việc được hoạch định, những khó khăn trong quá trình phát triển,…

Thanh tra (Inspection)

Đây là biện pháp cần thiết để phát hiện và xử lý kịp thời mọi vấn đề phát sinh trong quá trình hoạt động của quy trình Scrum. Từ đó đưa ra các giải pháp để truyền tải mọi thông tin đa dạng và hữu ích đến với các bên tham gia dự án. 

Tần suất thanh tra không nên diễn ra quá dày để tránh ảnh hưởng đến hiệu suất công việc, và mỗi đợt thanh tra cần thực hiện bởi những người có chuyên môn, nghiệp vụ cao.

Thích nghi (Adaptation)

Nhờ tính linh hoạt cao của phần mềm kết hợp với những thông tin minh bạch đã thu thập từ quá trình thanh tra và làm việc, quy trình Scrum có thể phản hồi lại các thay đổi một cách tích cực, nhờ đó mang lại thành công cho dự án.

Các khái niệm cơ bản của Scrum

Scrum roles (Các role, vị trí trong mô hình scrum)

  • Product owner (PO): Là người phụ trách sản phẩm, có quyền hạn trong việc quyết định tính năng của sản phẩm, thứ tự, độ ưu tiên trong quá trình phát triển. Khi team gặp phải tranh cãi về dự án, kỹ thuật, luồng chương trình mà không thống nhất được thì PO sẽ là người đưa ra quyết định cuối cùng. PO cũng là người giải đáp các câu hỏi của team về sản phẩm. Thông thường vị trí này sẽ là khách hàng (người thuê làm sản phẩm trong dự án outsourcing) và người này cần hiểu quy trình, cách thức làm Scrum. PO cũng có thể là 1 thành viên của team. Trong trường hợp khách hàng không thể tham gia như một PO thực sự thì vị trí thay thế có thể là Project manager (PM - Quản lý dự án) hoặc Bridge System Engineer (BrSE - kỹ sư kết nối), Business Analyst (BA - Chuyên viên phân tích nghiệp vụ)
  • Một điều rất quan trọng khi áp dụng quy trình scrum là: khách hàng phải hiểu và sẵn sàng chấp nhận áp dụng quy trình này. Với scrum team, thời gian ban đầu áp dụng thì tiến độ có thể chậm nhưng cả team sẽ tiến bộ dần theo thời gian. Khách hàng sẽ hiểu và chấp nhận điều này, tránh can thiệp quá sâu vào tiến độ và quy trình của Scrum team.
  • Scrum master: Là người hỗ trợ cho PO và team. Scrum master giúp team giải quyết những vấn đề cản trở cho việc đạt được mục tiêu, đảm bảo tính tuân thủ các quy tắc do team đưa ra. Tại Việt Nam vị trí Scrum master thường là PM hoặc team lead (Trưởng nhóm).
  • Scrum team: Là toàn bộ thành viên còn lại của dự án. Scrum team đòi hỏi khả năng tự tổ chức và quản lý công việc theo cam kết và trách nhiệm để hoàn thành công việc, thường từ 3-9 người. Các thành viên trong team thường đủ các vị trí để tạo nên sản phẩm: BA, tester, programmer, desinger,...

Artifacts (Các đối tượng, phương tiện của scrum)

  • Product backlog (Danh sách công việc cần thực hiện): Đây là toàn bộ danh sách các yêu cầu, tính năng của sản phẩm. Danh sách này sẽ được cập nhật thường xuyên bởi PO và bất kỳ thành viên nào trong team. Độ ưu tiên thứ tự của các tính năng sẽ được PO quyết định.
  • Sprint: Một giai đoạn của dự án với thời gian cố định. Độ dài của một Sprint sẽ được team và PO quyết định, thông thường là 2 tuần.
  • Sprint backlog: Đây là danh sách các công việc đã được Scrum team xác định cần phải hoàn thành trong một sprint. Việc chọn các tính năng nào cần làm và thứ tự ưu tiên sẽ do PO lựa chọn, team cùng thảo luận ở buổi Sprint planing. Team có quyền bỏ bớt hoặc đưa thêm tính năng vào trong sprint dựa trên thứ tự mà PO đưa ra dựa trên đánh giá thời gian.
  • Planing poker: Quân bài ghi các con số để cho điểm đánh giá các tính năng trong một sprint.
  • Burn down chart: Một dạng biểu đồ đường đơn giản thể hiện kết quả mà team đã làm được trong một sprint. Tiến độ thực tế đang nhanh hay chậm so với tiến độ lý tưởng hay lượng công việc còn lại cần hoàn thành để đạt Sprint goal.

Ceremonies (Các nghi thức trong scrum)

  • Sprint planning meeting: Là một cuộc họp lập kế hoạch của Scrum team. Khi bắt đầu một sprint, PO thường sẽ mô tả và đưa ra thứ tự của các mục trong Product backlog. Các thành viên sẽ đưa ra câu hỏi cho PO để hiểu hơn về sản phẩm sau đó thảo luận và lựa chọn các mục sẽ làm được trong sprint này.
  • Daily meeting: Đây là cuộc họp nhóm được thực hiện hằng ngày nhằm giúp các thành viên trong nhóm cập nhật hiện trạng công việc, và tất cả các thành viên trong Scrum team bắt buộc phải tham gia. Các vấn đề gặp phải hay thảo luận sẽ được làm sau buổi daily meeting này với những người liên quan, để tránh mất nhiều thời gian của cả đội.
  • Sprint review/Demo meeting: Là sự kiện được thực hiện khi gần kết thúc một sprint. Trong buổi này team sẽ trình chiếu, giới thiệu (demo) các tính năng đã làm được trong sprint. Team và PO sẽ nhận xét và quyết định những nhiệm vụ (task) nào được coi là hoàn thiện. Với những feature (chức năng) chưa hoàn thiện sẽ được đẩy trở lại Product backlog (Sản phẩm tồn đọng) và xếp lại thứ tự.
  • Sprint retrospection meeting: Đây là cuộc họp diễn ra sau Sprint review. Các thành viên sẽ nhìn lại công việc trong sprint này và thảo luận về công nghệ, quy trình, cách thức làm việc trao đổi và cách thực hành tốt nhất nhằm cải thiện và đạt hiệu quả hơn trong sprint tiếp theo. Có thể sử dụng một số tool để thu thập các con số thông kê về số point (điểm estimate cho các feature) thực hiện được, số bugs (lỗi phần mềm) phát sinh.

Các rule cần định nghĩa trong Scrum

  • Enough to start: Không chú trọng vào quy trình tài liệu, làm thế nào để có thể đưa ra được sản phẩm sớm nhất.
  • Definition of done: Đưa ra định nghĩa của team một task, một tính năng như thế nào được coi là hoàn thành.
  • Time box: Giới hạn thời gian của sprint, của các buổi meeting phải tuân thủ đúng như thời gian đưa ra, để đảm bảo Scrum team hoạt động ổn định.

Lợi ích mà Scrum mang lại

Dữ liệu từ năm 2018 chỉ ra rằng các dự án sử dụng phương pháp Agile thành công hơn 28% và gần 71% tổ chức sử dụng Agile với tần suất khác nhau. Dưới đấy là một số lợi ích của Scrum - một dạng của mô hình Agile, để chúng ta hiểu hơn tại sao mô hình này lại thành công như vậy:

  • Cải thiện chất lượng phần mềm, dễ học và thực hành
  • Rút ngắn thời gian triển khai phần mềm, cho phép đưa sản phẩm đến tay khách hàng sớm hơn.
  • Nâng cao tinh thần của team, tối ưu hiệu quả và nỗ lực của đội phát triển
  • Gia tăng tỷ suất hoàn vốn đầu tư (ROI)
  • Tăng mức độ hài lòng của khách hàng
  • Kiểm soát dự án tốt, cải tiến liên tục
  • Giảm thiểu rủi ro khi thiết kế sản phẩm

Các công cụ quản lý dự án theo Agile mà bạn nên biết

Mỗi công ty Agile sẽ có các công cụ quản lý dự án theo Agile khác nhau. Dưới đây là một số công cụ quản lý dự án Agile hiệu quả, sẽ giúp bạn trong việc chuyển đổi.

  • Agiean: Đây là một giải pháp phần mềm SaaS (phần mềm dạng dịch vụ) quản lý dự án và tự động hóa công việc, về cơ bản đây là phần mềm được tạo ra để sử dụng cho các doanh nghiệp công nghệ thông tin vừa và nhỏ.
  • Wrike: Một công cụ tuyệt vời khác trong danh sách này là Wrike, một trong những giải pháp phần mềm tốt nhất về tích hợp email và quản lý dự án. Nó được xây dựng để mở rộng quy mô và thúc đẩy kết quả bằng cách cung cấp phần mềm linh hoạt mà bạn có thể cần để quản lý nhiều dự án và nhóm tại một điểm.
  • Trello: Đây là công cụ quản lý công việc hiệu quả khi làm việc theo nhóm, phần mềm này giúp thành viên trong team chỉ cần nhìn qua là có thể nắm được đầu công việc, ai đang làm gì và làm đến giai đoạn nào. Trello là một công cụ Freemium, tức là bạn có thể dùng miễn phí cho đến khi cần những tính năng nâng cao và đặc biệt mà chỉ có bản trả tiền mới có thì bạn mới phải trả. 
    Cấu trúc phần mềm này dựa trên phương pháp Kanban. Các dự án được thể hiện bởi các bảng có chứa danh sách và những danh sách này đều có các thẻ lũy tiến mà bạn được tạo dưới dạng kéo và thả. 
  • JIRA: JIRA là một ứng dụng được phát triển để theo dõi lỗi, theo dõi vấn đề và quản lý dự án cho các quy trình phát triển của phần mềm và di động. 

KẾT LUẬN

PharMarketing hy vọng qua bài viết này các bạn đã nắm được những vấn đề chính trong mô hình Agile và chu trình Scrum. Chúc bạn thành công!

Để lại thông tin
PharMarketing sẽ liên hệ lại với bạn