I. Giới thiệu về Viblo Platform
Viblo Platform là một hệ sinh thái bao gồm nhiều dịch vụ hỗ trợ phát triển kỹ năng và nghề nghiệp trong lĩnh vực công nghệ thông tin. Các dịch vụ nổi bật bao gồm: Viblo, Viblo Code, Viblo CTF, Viblo CV, Viblo Learning, Viblo Battle, Viblo Partner, Viblo Interview,...
Với lịch sử hình thành cũng khá lâu, trải qua quá trình phát triển đội ngũ Viblo Platform cũng có áp dụng có phương pháp quản lý dự án khác nhau, mỗi phương pháp có đặc điểm và ứng dụng phù hợp với từng loại dự án cụ thể. Dưới đây là một số phương pháp quản lý dự án phổ biến:
Phương pháp Waterfall
Minh hoạ phương pháp Waterfall. Nguồn: Internet.
Đặc điểm: Đây là một phương pháp truyền thống và tuần tự, nơi các giai đoạn của dự án được thực hiện lần lượt từ đầu đến cuối.
Quy trình: Bao gồm các giai đoạn như Khảo sát yêu cầu, Thiết kế hệ thống, Phát triển, Kiểm thử, Triển khai và Bảo trì.
Ưu điểm: Dễ quản lý, rõ ràng trong từng giai đoạn, dễ dàng xác định tiến độ.
Nhược điểm: Thiếu linh hoạt, khó thay đổi khi đã qua một giai đoạn.
Phương pháp Scrum
Minh hoạ phương pháp Scrum. Nguồn: Internet.
Đặc điểm: Là một phương pháp thuộc Agile, tập trung vào việc quản lý các vòng lặp ngắn gọi là sprint.
Quy trình: Bao gồm các vai trò như Scrum Master, Product Owner và Development Team; các cuộc họp như Daily Stand-up, Sprint Planning, Sprint Review và Sprint Retrospective.
Ưu điểm: Cải thiện giao tiếp, tăng cường sự minh bạch, dễ dàng điều chỉnh.
Nhược điểm: Có thể trở nên phức tạp nếu không tuân thủ đúng quy trình.
Kanban
Minh hoạ phương pháp Kanban. Nguồn: Internet.
Đặc điểm: Là một phương pháp quản lý công việc theo thời gian thực, sử dụng các bảng Kanban để trực quan hóa công việc và quy trình.
Quy trình: Bao gồm việc tạo ra các cột biểu thị các trạng thái của công việc như "To Do", "In Progress", "Done".
Ưu điểm: Giúp tối ưu hóa dòng công việc, dễ dàng nhìn thấy các tắc nghẽn.
Nhược điểm: Có thể thiếu cấu trúc nếu không được thiết lập và quản lý đúng cách.
II. Ứng Dụng Agile Scrum vào Phát Triển Dự Án
Dịch vụ Viblo Interview (ảnh minh hoạ).
Viblo Interview là một công cụ hỗ trợ phỏng vấn trong lĩnh vực công nghệ thông tin, được thiết kế nhằm đáp ứng nhu cầu của các bạn sinh viên và lập trình viên trong việc chia sẻ và tìm kiếm các câu hỏi phỏng vấn từ các doanh nghiệp. Ban đầu, dự án này xuất phát từ một ý tưởng đơn giản với mục tiêu cung cấp một dịch vụ hữu ích, tạo nên một kho tài nguyên phong phú về câu hỏi phỏng vấn và kinh nghiệm chia sẻ.
Tuy nhiên, từ ý tưởng đến hiện thực hóa sản phẩm, chúng tôi gặp phải nhiều thách thức: Làm thế nào để nhanh chóng đưa dịch vụ đến tay người dùng? Làm thế nào để liên tục cải tiến và đáp ứng nhu cầu thay đổi của thị trường? Với những câu hỏi này, chúng tôi nhận ra rằng cần phải có một phương pháp linh hoạt và hiệu quả để phát triển sản phẩm.
Các bạn có thể xem thêm: Xây dựng Viblo Interview - Từ ý tưởng đến dịch vụ đầu tiên tổng hợp câu hỏi phỏng vấn dành cho IT-er
Đó là lý do chúng tôi chọn Agile Scrum cho dự án Viblo Interview. Agile Scrum không chỉ giúp chúng tôi nhanh chóng thử nghiệm và triển khai các tính năng mới mà còn cho phép nhóm phát triển phản hồi liên tục từ người dùng, từ đó cải tiến sản phẩm một cách nhanh chóng và hiệu quả. Quá trình phát triển dự án bao gồm:
Sprint Planning
Xác định mục tiêu và nhiệm vụ cho từng sprint.
Sprint Goal:
Mục tiêu cụ thể của mỗi Sprint được đặt ra để định hướng công việc và đảm bảo mọi thành viên trong nhóm đều hiểu rõ những gì cần đạt được trong khoảng thời gian ngắn (thường là 1-4 tuần).
Ví dụ: Sprint đầu chúng tôi có mục tiêu hoàn thành code base, chức năng đăng nhập, chức năng thêm câu hỏi phỏng vấn
Sprint Backlog:
Danh sách các mục công việc đã chọn từ Product Backlog, cùng với các nhiệm vụ cụ thể và ước lượng công việc cần thiết để hoàn thành. Điều này giúp nhóm tập trung vào những nhiệm vụ quan trọng và có thể đo lường tiến độ.
Kế hoạch hành động:
Một kế hoạch rõ ràng cho việc hoàn thành các nhiệm vụ trong Sprint, bao gồm quản lý rủi ro và các phụ thuộc. Nhóm sẽ xác định các rủi ro tiềm ẩn và lên kế hoạch dự phòng để xử lý các vấn đề phát sinh kịp thời.
Để estimate các công việc, team phát triển của Viblo Platform thực hiện planning poker. Planning Poker là một kỹ thuật phổ biến được sử dụng trong Agile để ước tính công việc hoặc độ phức tạp của các User Stories. Kỹ thuật này giúp các thành viên trong nhóm đạt được sự đồng thuận về ước lượng thông qua thảo luận và chia sẻ quan điểm.
Planning Porker (ảnh minh hoạ).
Khi thực hiện planning porker chúng tôi cũng nhận thấy một số ưu nhược, điểm:
Lợi ích của Planning Poker
-
Tăng cường sự tham gia của nhóm: Mọi thành viên trong nhóm đều tham gia vào quá trình ước lượng, giúp tăng cường sự cam kết và trách nhiệm.
-
Nâng cao chất lượng ước lượng: Thảo luận và chia sẻ quan điểm giúp nhóm hiểu rõ hơn về các yêu cầu và rủi ro, từ đó đưa ra ước lượng chính xác hơn.
-
Khuyến khích thảo luận và giao tiếp: Kỹ thuật này tạo điều kiện cho việc thảo luận và giao tiếp hiệu quả giữa các thành viên trong nhóm, giúp làm rõ các yêu cầu và giải quyết các vấn đề tiềm ẩn.
Nhược điểm:
-
Tốn thời gian: Quá trình thảo luận và đạt được đồng thuận có thể mất nhiều thời gian, đặc biệt đối với các nhóm lớn hoặc các User Story phức tạp. Điều này có thể làm chậm tiến độ lập kế hoạch nếu không được quản lý tốt.
-
Phụ thuộc vào kỹ năng giao tiếp của nhóm: Hiệu quả của Planning Poker phụ thuộc nhiều vào khả năng giao tiếp và thảo luận của nhóm. Nếu các thành viên không thoải mái khi bày tỏ ý kiến hoặc không có kỹ năng giao tiếp tốt, quá trình này có thể trở nên kém hiệu quả.
-
Khó khăn trong việc ước lượng các User Story mới: Với các User Story hoàn toàn mới hoặc chưa có tiền lệ, việc ước lượng có thể gặp nhiều khó khăn do thiếu thông tin và kinh nghiệm từ các dự án trước.
-
Đòi hỏi sự đồng thuận cao: Đạt được sự đồng thuận trong một nhóm đa dạng có thể là một thách thức, đặc biệt khi có những quan điểm khác biệt lớn. Điều này đòi hỏi sự kiên nhẫn và khả năng thuyết phục từ tất cả các thành viên trong nhóm.
Daily Stand-ups
Minh hoạ Daily Stand-up. Nguồn: Internet.
Cập nhật tình hình và giải quyết vấn đề phát sinh hàng ngày. Team phát triển thực hiện đều đặn việc gửi daily report hàng ngày. Mỗi buổi sáng, team sẽ họp trong khoảng 5-7 phút để chia sẻ tình hình công việc, thảo luận về các vấn đề phát sinh và trao đổi những gì cần thiết. Viblo Team sử dụng Slack Huddles để tạo cuộc trò chuyện cho cả thành viên online và offline. Buổi họp ngắn này giúp mọi người nắm bắt được tiến độ chung, nhận diện các rào cản và tìm ra giải pháp kịp thời.
Sprint Review
Phân tích những gì đã làm tốt và cần cải thiện cho các sprint tiếp theo. Trong buổi Sprint Review, nhóm sẽ trình bày những kết quả đạt được từ Sprint vừa qua, thu thập phản hồi từ Product Owner và các bên liên quan. Điều này giúp nhóm nhận biết những điểm mạnh cần phát huy và những hạn chế cần khắc phục. Mục tiêu là đảm bảo sản phẩm luôn được cải tiến và đáp ứng tốt nhất nhu cầu của người dùng.
Burndown Chart:
Chúng tôi sử dụng Burndown Chart để theo dõi tiến độ của mỗi Sprint thông qua Real Velocity và Expected Velocity.
-
Real Velocity: Đại diện cho tốc độ thực tế của team trong việc hoàn thành các nhiệm vụ. Điều này cho phép chúng tôi nhận ra liệu nhóm có đang đi đúng tiến độ hay không, và xác định các vấn đề cần giải quyết kịp thời.
-
Expected Velocity: Đại diện cho tốc độ dự kiến ban đầu của team dựa trên các ước lượng trước Sprint. So sánh giữa Real Velocity và Expected Velocity giúp chúng tôi điều chỉnh kế hoạch và kỳ vọng cho các Sprint tiếp theo, đảm bảo rằng nhóm luôn đi đúng hướng và đạt được các mục tiêu đề ra.
Burndown Chart cung cấp một cái nhìn trực quan về lượng công việc còn lại so với thời gian còn lại của Sprint, giúp nhóm duy trì động lực và đảm bảo hoàn thành các cam kết đúng hạn.
Viblo Interview product backlog (ảnh minh hoạ).
Sprint Retrospectives
Minh hoạ KPT Retrospectives. Nguồn: Internet.
Buổi Sprint Retrospective là cơ hội để nhóm nhìn lại và đánh giá toàn bộ quá trình làm việc trong Sprint vừa qua. Đây là thời điểm để phân tích những gì đã làm tốt, những gì cần cải thiện và đề xuất các biện pháp để nâng cao hiệu quả làm việc trong các Sprint tiếp theo. Chúng tôi sử dụng phương pháp KPT (Keep, Problem, Try) để cấu trúc buổi họp này. Công cụ sử dụng Miro để tiện cho các thành viên tham gia online.
-
Keep (Giữ lại): Nhóm sẽ thảo luận về những gì đã làm tốt và nên duy trì trong các Sprint tiếp theo. Đây là những thực tiễn và phương pháp đã chứng minh hiệu quả, giúp nhóm đạt được mục tiêu của mình.
-
Problem (Vấn đề): Nhóm sẽ nhận diện những vấn đề và khó khăn đã gặp phải trong Sprint. Điều này giúp nhóm hiểu rõ những trở ngại và nguyên nhân gốc rễ của chúng, từ đó có thể tìm cách giải quyết.
-
Try (Thử nghiệm): Cuối cùng, nhóm sẽ đề xuất các biện pháp cải tiến để áp dụng cho các Sprint tiếp theo. Đây có thể là các phương pháp mới, công cụ mới, hoặc cải thiện quy trình làm việc. Các hành động cụ thể sẽ được thiết lập và theo dõi trong các Sprint tiếp theo để đảm bảo nhóm liên tục cải tiến và phát triển.
Buổi Sprint Retrospective không chỉ là cơ hội để cải thiện quy trình làm việc mà còn là lúc để nhóm cùng nhau chia sẻ và học hỏi, xây dựng một tinh thần đồng đội mạnh mẽ và hợp tác hiệu quả hơn.
Tạm kết
Việc áp dụng linh hoạt các mô hình phát triển phần mềm Agile Scrum vào các dự án khác nhau của Viblo Platform giúp chúng tôi tối ưu hóa quy trình phát triển, đảm bảo chất lượng sản phẩm và đáp ứng nhu cầu người dùng một cách tốt nhất. Hy vọng những chia sẻ trên sẽ giúp bạn hiểu rõ hơn về cách tiếp cận và áp dụng các mô hình này trong dự án của mình
© Tác giả: Viblo's Scum Master