Bài viết

Học viện Agile tham dự Scrum Coaching Retreat

Hằng năm Scrum Alliance tài trợ cho 7 sự kiện Scrum Coaching Retreat trên toàn cầu nhằm mở rộng và nâng cao chất lượng cộng đồng của các huấn luyện viên Scrum vốn vẫn quá nhỏ so với nhu cầu áp dụng Scrum trên toàn cầu.

Scrum Coaching Retreat Singapore 2016 diễn ra từ ngày 02 – 05/6/2016 ở khách sạn Changi Cove, nơi chuyên tổ chức các hoạt động retreat. Sự kiện có sự tham dự của 34 huấn luyện viên Scrum/Agile đến từ Singapore, Hong Kong, Philippines, Đài Loan, Trung Quốc, Ấn Độ, Việt Nam, Pháp. Người tham dự đã làm việc liên tục trong 3 ngày để đào sâu hiểu biết, cải thiện kỹ năng và mở rộng tầm nhìn để phục vụ khách hàng.

ScrumCoachingRetreat-1Các thành viên ăn & ở chung một khách sạn để thuận tiện trao đổi

Retreat là hoạt động học tập rất khác so với những hoạt động phổ biến khác như hội thảo, workshop, gặp mặt. Tham dự Retreat những người làm nghề sẽ rời xa công việc hằng ngày để cùng ngồi với nhau và trao đổi, thảo luận, thực hành trong không gian cởi mở, không cạnh tranh về một số chủ đề nhất định.

ScrumCoachingRetreat-2Nguyên tắc làm việc của Open Space

Scrum Coaching Retreat có nhiều các hoạt động Open Space để mọi người cùng thảo luận về các chủ đề mà mình quan tâm và nhận được tư vấn, ý kiến đóng góp từ các chuyên gia khác.

Với sự tin tưởng khung làm việc Scrum là cách tốt nhất để xây dựng và đạt mục tiêu học tập. Chương trình của Retreat là hình thành các nhóm, tạo lập tầm nhìn, xây dựng Product Backlog và thực hiện các Sprint với sơ kết, cải tiến và thích nghi. Đây là cách dùng Scrum để học Scrum Coaching để đạt được mục tiêu học tập kép.

Một số hình ảnh của sự kiện

ScrumCoachingRetreat-3Các thành viên nêu chủ đề thảo luận

ScrumCoachingRetreat-4Chia nhóm theo các chủ đề

ScrumCoachingRetreat-5Các nhóm phát triển sản phẩm

ScrumCoachingRetreat-6Phiên cải tiến

ScrumCoachingRetreat-7Chụp ảnh kỷ niệm

Ngay sau sự kiện hữu ích này, chúng tôi đã và đang làm việc với Scrum Alliance để Việt Nam có thể đăng cai tổ chức vào năm 2017.

Scrum hoạt động như thế nào?


Video mô tả tổng quan về vòng đời phát triển một sản phẩm với mô hình Scrum. Các khái niệm được đề cập bao gồm:

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

Video giúp trả lời những câu hỏi tổng quan về Agile và Scrum như:

Talk AgileVietnam – Agile có thể giúp chúng ta những gì?

Tối qua tại Oza Tea, địa điểm quen thuộc tổ chức sự kiện hằng tháng của AgileVietnam, anh Dương Trọng Tấn – Giám đốc Học viện Agile, đồng sáng lập AgileVietnam và HanoiScrum – chia sẻ với cộng đồng Agile tại Hà Nội với chủ đề “Agile có thể giúp chúng ta những gì?”. Anh Tấn đã tái hiện cho gần 60 khách tham dự những diễn tiến của Agile trong gần hai thập kỉ vừa qua cùng với lịch sử phát triển phần mềm. Câu chuyện bắt đầu với câu hỏi tưởng chừng như đơn giản “Agile là gì?”, nhưng với 1/3 người tham dự lần đầu nghe đến, biết đến những thuật ngữ quen thuộc của Agile càng làm cho câu chuyện phía sau có sức hấp dẫn lớn với người tham dự.

Với những người làm Agile, hình ảnh chiếc ô Agile với hàng loạt các phương pháp bên dưới nó đã khá quen thuộc. Nên ai cũng chăm chú quan sát cái cây Agile dưới góc nhìn của diễn giả.

agile-umbrella agile-tree 

Câu chuyện tiếp diễn với thông tin thú vị về khởi nguồn phong trào Agile tại Mỹ qua việc xây dựng tòa nhà Empire State năm 1930.  Rồi đến những cuộc khủng hoảng về phương pháp dẫn đến sự nở rộ các phương pháp phát triển phần mềm những năm 90…

Cuối cùng diễn giả đưa người nghe về với câu chuyện Agile ở Việt Nam và công bố trang AgiPedia, một món quà đặc biệt Học viện Agile dành tặng các fan Agile:

AgiPedia-cloud-s

http://hocvienagile.com/agipedia

Đồng thời công bố dự án Vietnam Agile Outlook 2016, dự án về khảo sát hiện trạng Agile ở Việt Nam. Kết quả khảo sát sẽ công bố miễn phí cho cộng đồng, với mong muốn sẽ giúp mọi người có cái nhìn khái quát về Agile Việt Nam và dễ dàng có những quyết định phù hợp.

Dưới đây là một số hình ảnh của buổi tối thú vị này:

AVHN201604-6AVHN201604-1 AVHN201604-2AVHN201604-5AVHN201604-4AVHN201604-3

Slide của cuộc trò chuyện này:

Agipedia

Liên chức năng

Liên chức năng (cross functional) là đặc điểm của một nhóm có đầy đủ những chuyên môn khác nhau để có khả năng đạt được một mục tiêu chung.

Một nhóm liên-chức năng có nghĩa là được trang bị đầy đủ tất cả các kỹ năng cần thiết để hoàn thành toàn bộ công việc và tạo ra phần tăng trưởng chuyển giao được cuối mỗi Sprint mà không cần sự trợ giúp từ bên ngoài. Điều nàykhông có nghĩa là mỗi thành viên đều phải biết hết tất cả các kỹ năng, mà họ có thể chỉ có một số kỹ năng nhất định nhưng bổ sung đầy đủ cho nhau để tổng thể nhóm có được tất cả các kỹ năng cần thiết.

Ví dụ, trong Scrum, Nhóm Phát triển của một sản phẩm thương mại điện tử bao gồm các thành viên có các chuyên môn sau:

  • Thiết kế giao diện, trải nghiệm người dùng (UI\UX)
  • Thiết kế phần mềm
  • Lập trình
  • Kiểm thử
  • Nghiệp vụ thương mại điện tử

Tính liên-chức năng đảm bảo nhóm có thể hoạt động độc lập, trở thành một đơn vị sản xuất hoàn chỉnh, hoàn toàn tự chủ trong mọi hoạt động để chuyển nâng cao năng suất, chất lượng sản phẩm. Nó giúp cho nhóm có thể ra các quyết định một cách nhanh chóng mà không phải chờ đợi từ bên ngoài.

Trong Nhóm Phát triển, không có các chức danh chuyên môn đặc thù cho từng thành viên, ví dụ như: kiểm thử viên, lập trình viên, chuyên gia thiết kế, chuyên gia cơ sở dữ liệu,… mà tất cả đều được gọi chung là “nhà phát triển”. Việc này giúp nâng cao tính sở hữu tập thể, trách nhiệm tập thể và bình đẳng giữa các thành viên.

Việc tổ chức nhóm liên-chức năng cũng thúc đẩy việc học trong nhóm. Có thể mỗi thành viên xuất thân từ những chuyên môn và nền tảng khác nhau, có thế mạnh về một hoặc một số kỹ năng nhất định, nhưng trong quá trình cộng tác, các thành viên này sẽ học thêm những kỹ năng mới từ những thành viên khác, từ đó mỗi thành viên sẽ hình thành nên những kỹ năng phụ. Điều này là quan trọng để đảm bảo các thành viên có thể hỗ trợ lẫn nhau trong công việc, cho dù công việc đó thuộc chuyên môn nào, không nhất thiết phải là chuyên môn mà mình có thế mạnh.

Xem thêm: Hiểu thế nào cho đúng về “liên chức năng”

Tự tổ chức

Tự tổ chức (self-organized)có nghĩa là nhóm có khả năng và thẩm quyền để định hướng và đưa ra các quyết định trong quá trình sản xuất. Điều đó cũng có nghĩa là nhóm có toàn quyền trong việc lựa chọn công cụ, kỹ thuật và cách thức để hoàn thành công việc. Không ai có quyền yêu cầu nhóm tự tổ chức phải làm theo một cách nhất định để hoàn thành mục tiêu của họ. Song song với đó, tính cam kết và trách nhiệm của các thành viên trong nhóm cũng cao hơn rất nhiều so với khi nhóm được tổ chức theo mô hình ra lệnh-điều khiển.

Tính chất tự-tổ chức của Nhóm Phát triển trong Scrum được thể hiện ở một số điểm:

  • Không có chức danh quản lý nhóm. Không có một cá nhân chịu trách nhiệm quản lý nhóm.
  • Nhóm Phát triển tự lựa chọn và quyết định số lượng các hạng mục Product Backlog sẽ làm trong từng Sprint.
  • Nhóm Phát triển tự ước lượng khối lượng công việc cho từng hạng mục.
  • Nhóm Phát triển tự theo dõi tiến độ công việc của mình.
  • Tất cả các công việc đều được “sở hữu” bởi tập thể nhóm mà không được gán cho bất cứ cá nhân nào. Do vậy, cho dù kết quả công việc tốt hay xấu thì nó cũng thuộc trách nhiệm của toàn bộ nhóm chứ không phải của riêng một ai.

Để việc tự-tổ chức được diễn ra với hiệu quả cao thì nhóm nên là liên chức năng.

Nhóm Scrum hoặc Nhóm phát triển trong Scrum là các ví dụ của nhóm tự tổ chức.

 

ROI

ROI (Return On Invest) là tỷ suất hoàn vốn đầu tư hoặc tỷ lệ lợi nhuận. ROI được tính bằng tỉ lệ lợi nhuận ròng so với vốn đầu tư.

ROI = (Doanh thu – Chi phí) / Chi phí

Mục tiêu Sprint

Mục tiêu Sprint (sprint goal) là bản tóm tắt những mục tiêu của sprint, lý tưởng nhất nó có một nội dung cô đọng.

Mục tiêu Sprint giúp cho Nhóm Phát triển có thể linh hoạt trong những phạm vi liên quan đến những hạng mục mà thực tế họ có thể chuyển giao được. Mặc dù họ có thể phải loại bỏ một số hạng mục (do Sprint được đóng khung thời gian), nhưng họ vẫn cần phải cam kết chuyển giao thứ gì đó thấy được và đã “hoàn thành” như trong tinh thần của Mục tiêu Sprint.

Tổng quan Agile

Agile là một tập hợp các nguyên lý dành cho phát triển phần mềm, trong đó khuyến khích việc lập kế hoạch thích ứng, phát triển tăng dần, chuyển giao sớm, và cải tiến liên tục. Agile cũng chủ trương thích ứng nhanh chóng với các thay đổi. Những nguyên lý này được chia sẻ trong Tuyên ngôn Phát triển Phần mềm Linh hoạt và 12 Nguyên lý phía sau.

Agile không định nghĩa một phương pháp cụ thể để đạt được những điều này, nhưng lại có nhiều phương pháp phát triển phần mềm khác nhau thỏa mãn và hướng theo các tiêu chí đó.

Mục đích của các phương pháp Agile là giúp các doanh nghiệp đạt được sự linh hoạt (Agility), từ đó nâng cao sức cạnh tranh và phát triển bền vững. Các phương pháp Agile đã thay đổi diện mạo thế giới không chỉ trong Phát triển phần mềm mà còn đang thể hiện giá trị trong các lĩnh vực khác như Marketting (Agile Marketting), giáo dục (EduScrum, Lean Edu, v.v.), thiết kế (Lean UX, Design Thinking), khởi nghiệp (Lean Startup) và Phần cứng.

Lịch sử

Trong giai đoạn trước những năm 90 của thế kỷ 20, trên thế giới xảy ra cuộc khủng hoảng về phương pháp phát triển phần mềm. Lí do của việc này đó là phương pháp truyền thống ngày càng bộc lộ nhiều nhược điểm và tỉ thệ các dự án bị thất bại quá cao. Có rất nhiều các cá nhân và công ty riêng lẻ đã tự tìm tòi và phát triển những phương pháp khác nhau để thích ứng với tình hình mới, ở đó những yếu tố môi trường kinh doanh và công nghệ thay đổi nhanh chóng, khiến cho phương pháp phát triển truyền thống không còn phù hợp. Những phương pháp riêng lẻ này phần nào giải quyết được một số vấn đề, nhưng lại nảy sinh những vấn đề khác về sự chia sẻ, cộng tác, các kỹ thuật, công cụ, sự mở rộng, hướng phát triển,…

Do đó, Tháng 2 năm 2001, 17 lập trình viên là đại diện cho những phương pháp phát triển mới này đã gặp nhau tại Utah. Họ đã đi đến thống nhất về quan điểm chung giữa các phương pháp và cho ra đời một tài liệu được gọi là: Tuyên ngôn Phát triển Phần mềm Linh hoạt kèm với 12 nguyên lý phía sau. Đây chính là thời điểm mà thuật ngữ Agile được sử dụng hiện nay ra đời, mặc dù các phương pháp riêng lẻ thì đã có trước đó.

Đặc điểm

  • Lặp, tăng trưởng: Phần lớn các phương pháp Agile đều phân chia công việc thành các chu trình nhỏ và không lập một kế hoạch dài hạn. Mỗi chu trình đều thực hiện đầy đủ các công đoạn, từ lập kế hoạch cho đến phân tích và thiết kế, viết mã, kiểm thử, tích hợp để chuyển giao một phần tăng trưởng của sản phẩm.
  • Giao tiếp thường xuyên và hiệu quả: Mỗi nhóm đều cần đến một người đại diện khách hàng làm việc cùng (chẳng hạn, trong Scrum thì là Product Owner). Người này đại diện cho quyền lợi của những người liên quan và có trách nhiệm làm rõ tất cả các yêu cầu cho các nhà phát triển.
  • Vòng phản hồi ngắn và thích ứng thường xuyên: Các nhà phát triển thường xuyên trao đổi với nhau để cập nhật và đồng bộ công việc, phát hiện sớm các trở ngại và thích ứng với tình huống mới.
  • Hướng chất lượng: Nhiều kỹ thuật và công cụ được sử dụng để hướng đến việc nâng cao chất lượng sản phẩm, chẳng hạn như: Tích hợp Liên tục, Kiểm thử Đơn vị Tự động, Lập trình cặp, Phát triển Hướng Kiểm thử, Mẫu Thiết kế, Tái cấu trúc mã nguồn, v.v..

Các phương pháp Agile

Sau đây là danh sách các phương pháp Agile phổ biến (ngoài ra còn có một số phương pháp khác ít phổ biến hơn):

Xem thêm: Video: Agile/Scrum là gì?