Chúng tôi đã có một dự án mới đang diễn ra và hiện tại các nhà phát triển đã được chia thành hai nhóm, nhóm A và nhóm B. Dự án này có 2 phần để yêu cầu phát triển trong toàn bộ quá trình phát triển. Mẫu rất đơn giản của ngăn xếp của chúng tôi được hiển thị dưới đây:
Mỗi phần của dự án đòi hỏi sự phát triển trên toàn bộ ngăn xếp, vì vậy tôi thường mong đợi một cách tiếp cận nhà phát triển ngăn xếp đầy đủ, đó là cách chúng tôi đã chia nhỏ công việc của mình trong nhóm B, thiết kế và xử lý các tương tác giữa các phần khác nhau.
Tuy nhiên, gần đây tôi đã biết rằng nhóm A muốn phụ trách một số phần nhất định của ngăn xếp và họ đang đề xuất sự phân chia giữa hai nhóm, trong đó Lớp Trừu tượng dữ liệu (và đưa nội dung vào lớp Dữ liệu) được xử lý bởi bản thân họ không có sự phát triển nào từ Đội B. Sự phân chia sẽ trông giống như điều này:
Đối với tôi điều này cảm thấy rất không tự nhiên. Mỗi đội có các mục tiêu và thời gian khác nhau để đạt được những mục tiêu này, nhưng Đội B sẽ có sự phụ thuộc vào Đội A để thực hiện các tính năng. Giải pháp đề xuất là các giao diện phổ biến được xác định từ trước (có thể có thời gian 2 năm trong dự án để chúng có thể có rất nhiều). Đội A sau đó sẽ sớm phát triển các bit cần thiết cho các giao diện này mặc dù đã có mục tiêu riêng, trong khi Đội B vẫn loại bỏ tất cả các cuộc gọi trong thời gian ngắn để chúng có thể tiến triển.
Tôi lo ngại về phương pháp này liên quan đến:
- Các giao diện có thể thay đổi và Đội A có thể không có băng thông hoặc thời gian để đáp ứng các yêu cầu thay đổi.
- Lỗi trong mã của Đội A có thể ngăn chặn tiến trình của Đội B và một lần nữa, chúng có thể không phải là ưu tiên để khắc phục những điều này do Đội A có hàng đợi ưu tiên khác.
- Thiếu kiến thức trải rộng trên các đội - Đội B có thể không hiểu đầy đủ những gì diễn ra dưới mui xe và có thể đưa ra quyết định thiết kế kém vì điều này.
Có ý kiến cho rằng nhiều công ty trong ngành có các nhóm phụ và phải có khả năng xử lý việc này. Theo hiểu biết của tôi, thông thường các đội sẽ phân chia cách tôi dự kiến ban đầu (Full Stack) hoặc bằng cách phá vỡ ngăn xếp công nghệ như dưới đây:
Vì vậy, tôi quan tâm đến việc biết phần còn lại của ngành công nghiệp đang làm gì. Có phải hầu hết các phân chia dọc / ngang? Liệu một đường chéo chia có ý nghĩa? Nếu xảy ra sự phân chia đường chéo, mối quan tâm của tôi có vẻ hợp lệ và có điều gì khác mà Đội B nên quan tâm không? Lưu ý rằng có lẽ tôi sẽ chịu trách nhiệm cho sự thành công hay thất bại của Đội B.