Gần đây chúng tôi đã bắt đầu phân chia ứng dụng web nguyên khối của mình thành các dịch vụ siêu nhỏ, từ từ cắt bỏ chức năng và viết lại thành các dịch vụ siêu nhỏ riêng lẻ. Tất cả đều diễn ra tốt đẹp ngoại trừ chúng tôi không chắc chắn về cách tốt nhất để tổ chức công việc frontend. Chúng tôi đã chia thành các nhóm sản phẩm với mỗi nhóm quản lý mã cho một số lượng nhỏ các dịch vụ siêu nhỏ để cung cấp một khu vực chức năng, ví dụ như Tìm kiếm, CMS, Checkout, v.v ... với mỗi nhóm có chủ sở hữu sản phẩm, chủ công nghệ và chủ scrum.
Vấn đề là trong khi mỗi nhóm sản phẩm đó có cơ sở mã phụ trợ riêng, chúng tôi có một cơ sở mã React.js duy nhất với các nhà phát triển frontend ngồi trong mỗi nhóm sản phẩm. Điều này gây ra một số vấn đề:
- Thiếu các nhóm sản phẩm chéo truyền thông giữa các nhà phát triển frontend
- Các vấn đề nhận được thay đổi được thực hiện để mã hóa cho nhóm khác "sở hữu" để hỗ trợ các tính năng mới của các nhóm khác
- Không có chuyên gia kỹ thuật duy nhất đại diện cho nhóm frontend, trong khi các nhóm sản phẩm khác có lãnh đạo kỹ thuật thì không có ai hoàn thành vai trò này cho frontend
Chúng tôi đã tự hỏi làm thế nào những người khác xử lý việc này và đã thảo luận một vài cách tiếp cận như tách mã cơ sở, tạo ra một nhóm sản phẩm lối vào mà người dùng doanh nghiệp thường tham gia với các tính năng mới và yêu cầu dữ liệu / dịch vụ sẽ tham gia các nhóm sản phẩm khác từ nhóm frontend nhưng cả hai dường như đi kèm với các vấn đề của riêng họ!