Federated Architecture: Mô hình mở rộng Agile trong doanh nghiệp

Sự hữu ích của Agile với doanh nghiệp đã được chứng minh. Ban lãnh đạo thực sự mong muốn tận dụng những lợi ích từ Agile cho toàn bộ hoặc phần lớn doanh nghiệp của mình. Nhưng rõ ràng việc đưa Agile vào doanh nghiệp không hề dễ, đặc biệt khi mà bản thân doanh nghiệp không có đủ các kỹ năng cần thiết.

Mary Poppendick – tác giả Lean Software Development trong bài diễn thuyết “The future has arrived” trong Agile Vietnam Conference 2016 đã chỉ ra sự tiến hóa của các cấu trúc tổ chức cũng như kiến trúc phần mềm. Các vấn đề trong cấu trúc tổ chức có nhiều điểm tương đồng với kiến trúc phần mềm. Những mô hình kiến trúc Monolithic hoặc Kiến trúc Tập trung cho cả phần mềm lẫn phần cứng đang được thay thế bằng các mô hình Microservice. Mô hình Scale Up đang được thay thế bằng mô hình Scale Out.

Mô hình Federated Architecture

Tổ chức khó có thể tìm được một chuyên gia hoặc một nhóm chuyên gia Agile để xây dựng ra một quy trình ngay lập tức đáp ứng được nhu cầu Agile cho tất cả các nhóm do sự phong phú về loại sản phẩm, khách hàng, thành viên. Và nếu có tìm được thì đó cũng là giải pháp phức tạp mà việc thực thi sẽ rất khó khăn. Tuy nhiên, doanh nghiệp vẫn phải đảo bảo những tiêu chuẩn về sản phẩm và cả nguồn lực nhất định. Federated Architecture là một giải pháp khả thi hơn để đảm bảo những nhu cầu trên.

Federated Architecture được mô tả tổng quan như hình sau:

federated-architecuture

Tiêu chuẩn: quy định về ngôn ngữ, định hướng, chất lượng, công cụ và thông tin chia sẻ cần thiết cho tất cả các Nhóm Sản phẩm.

Ví dụ tiêu chuẩn ở một công ty gia công phần mềm:

  • Tuân thủ khung phát triển phần mềm
  • Tiêu chuẩn hoàn thành: Kiểm thử người dùng, tiêu chuẩn mã nguồn, và nợ kỹ thuật ít hơn 15% công sức
  • Phải có công cụ quản lý yêu cầu sản phẩm, ví dụ quản lý Sprint Backlog, các môi trường phát triển và kiểm thử phải lưu trên server nội bộ
  • Độ hài lòng khách hàng hằng tháng phải đạt ít nhất là 3 điểm (trên thang điểm 4)
  • Độ hài lòng của thành viên nhóm hằng tháng phải đạt ít nhất là 8 điểm (trên thang điểm 10)

Nhóm Lãnh đạo có nhiệm vụ:

  • Có tầm nhìn và chiến lược phù hợp với tầm nhìn và mục tiêu của tổ chức. Mặc dù các Nhóm Sản phẩm tự chủ hoàn thành công việc này nhưng Nhóm Lãnh đạo cần đặt mục tiêu và nguồn lực cho mỗi Nhóm Sản phẩm cũng như đảm bảo sự phù hợp giữa mục tiêu của toàn bộ các Nhóm Sản phẩm.
  • Có kế hoạch thay đổi phù hợp. Hầu hết mọi thay đổi đều cần phải được quản lý một cách bài bản để đảm bảo sự thành công. Việc chuyển đổi Agile là thực sự khó khăn và lâu dài, được tính bằng năm. Mô hình 7 bước của Kotter là một gợi ý tốt dành cho nhóm muốn thay đổi.
  • Phân bổ nguồn lực và nhiệm vụ cho các nhóm.

Các thành viên nhóm cần được đào tạo để có thể hỗ trợ và định hướng quá trình chuyển đổi. Trong quá trình hoạt động, các thành viên ban lãnh đạo cần trao quyền cho các nhóm.

Nhóm Sản phẩm:

  • Được trao quyền phục vụ khách hàng
  • Tự chủ trong Tiêu chuẩn của doanh nghiệp
  • Có phương pháp làm việc phù hợp với năng lực và tính cách của thành viên
  • Sử dụng các dịch vụ từ các Nhóm Hỗ trợ thông qua các điểm Giao tiếp

Đây là nhóm có thể cung cấp một phần dịch vụ tới khách hàng hoặc có thể cung cấp toàn bộ giải pháp cho khách hàng. Xây dựng cấu trúc của nhóm này có thể là các Nhóm Scrum hoặc đi xa hơn là các “công ty” theo mô hình Holacracy được mô tả trong tác phẩm Reinventing Organization.

Nhóm hỗ trợ Hành chính, DevOps, TaskForce, v.v. cung cấp các dịch vụ cần thiết để các Nhóm Sản phẩm thực hiện công việc của mình. Lưu ý các Nhóm Sản phẩm nên là các nhóm liên chức năng để họ có thể làm tốt công việc của mình. Khi các Nhóm Sản phẩm quá phụ thuộc vào các Nhóm Hỗ trợ là dấu hiệu cho thấy tính liên chức năng không được đảm bảo.

Nhóm Học tập: Trong thời đại ngày nay, việc học tập của tổ chức là yếu tố quan trọng quyết định sự thành công. Nếu các Nhóm Học tập hoạt động tốt, doanh nghiệp có nhiều khả năng thành công hơn. Trong trường hợp tổ chức đang chuyển đổi Agile thì việc học là yếu tố then chốt. Có rất nhiều các Nhóm Học tập khác nhau tùy thuộc vào nhu cầu chuyên môn của các Nhóm Sản triển: Agile, Programming, Testing, English, v.v.. Đây là những nhiệm vụ quan trọng nhất của các nhóm:

  • Chuẩn đoán và tư vấn giải pháp cho các “căn bệnh” của Nhóm Sản phẩm
  • Đào tạo và tư vấn nâng cao năng lực cho các Nhóm Sản phẩm
  • Nâng cao năng lực cá nhân trong tổ chức
  • Tư vấn cho Nhóm Lãnh đạo và các Tiêu chuẩn tổ chức

Để các nhóm này làm việc, chúng ta cần:

  • Có việc lãnh đạo
  • Tạo các sản phẩm ghi nhận sự phát triển cũng như ngoại hóa tri thức giúp nhóm đi đường dài
  • Các hoạt động học tập nên phong phú để tạo sự vui vẻ
  • Tổ chức nên xây dựng con đường sự nghiệp (career path) giúp mỗi cá nhân biết mình sẽ đi đâu
  • Các thành viên cần có kỹ năng: coaching, mentoring, kỹ năng học, v.v..

Một số bẫy thường gặp khi triển khai Federated Architecture:

  • Các tiêu chuẩn quá cứng làm giảm không gian sáng tạo của Nhóm Sản phẩm
  • Các tiêu chuẩn quá sơ sài làm cho các Nhóm Sản phẩm yếu\mới hình thành không thực thi đạt hiệu quả tiêu chuẩn
  • Không quản lý thay đổi. Mọi sự thay đổi đều phức tạp, sự thay đổi sang Agile yêu cầu sự thay đổi không chỉ ở cách làm mà còn ở tư duy, nên chắc chắn quá trình chuyển đổi sẽ rất lâu dài và khó khăn
  • Không có sự lãnh đạo Agile trong tổ chức
  • Các nhóm Học tập hoạt động không hiệu quả

Phạm Anh Đới

Tham khảo:

phản hồi