Có vẻ như vấn đề của bạn là chung chung hơn.
Vấn đề tái cấu trúc vừa là một triệu chứng vừa là một cứu cánh tiềm năng từ một phần của vấn đề.
Trưởng nhóm phần mềm và Nhóm phân bổ thời gian của nhóm
Từ kinh nghiệm của tôi, tôi nghĩ rằng bạn có thể gặp phải một vấn đề mà tôi gọi là "mọi người đều là người quản lý phần mềm." Người quản lý sản phẩm, người quản lý dự án và đôi khi là kỹ sư hệ thống và người kiểm tra có thể nổi tiếng vì đã cố gắng quản lý các nhà phát triển vi mô có thể đã có người quản lý phần mềm có kinh nghiệm. Bạn thậm chí có thể có một vài thành viên trong nhóm của bạn tin rằng vai trò của họ là quản lý.
Nếu bạn là người quản lý phần mềm, hãy thực hiện các bài tập cho việc tái cấu trúc mà bạn muốn hoặc tốt hơn là yêu cầu nhóm của bạn đề xuất tái cấu trúc cho bạn để bạn chấp thuận. Vì vậy, để không vi mô, bạn có thể có các hướng dẫn về tuổi / tác giả / kích thước / bối cảnh của mã được tái cấu trúc có thể được tái cấu trúc tự do so với cần phê duyệt. Nếu một thành viên trong nhóm của bạn muốn tái cấu trúc ồ ạt bốn lớp mã cũ phức tạp mà anh ta không viết mà không phải là một phần của tính năng của anh ta, thì việc chuyển hướng hai tuần của anh ta là vấn đề của bạn, vì vậy bạn cần có cơ hội để nói không.
Bạn có thể lén lút, nhưng tôi nghĩ tốt hơn là chỉ nên xây dựng các ước tính của mình một cách cẩn thận với thời gian để phân tích, thiết kế, mã hóa, nhiều hình thức kiểm tra (ít nhất là đơn vị và tích hợp), tái cấu trúc và rủi ro như được đánh giá trong lịch sử và do thiếu kinh nghiệm hoặc sự rõ ràng liên quan đến nhiệm vụ. Nếu bạn đã quá cởi mở về hoạt động của nhóm của bạn (hoặc có thành viên trong nhóm của bạn), có lẽ nên thu hẹp các kênh liên lạc để họ đi qua bạn và thảo luận về tài nguyên và kết quả, chứ không phải phương pháp.
Lựa chọn dự án sớm Tạo ra một chu kỳ hữu ích cho tái cấu trúc
Bảo trì phần mềm là khó. Thật khó khăn gấp đôi nếu những người khác trong tổ chức đang đưa ra lựa chọn bằng chi phí của bạn. Điều này là sai, nhưng nó không phải là mới. Nó đã được giải quyết bởi Barry Boehm, một trong những nhà văn phần mềm tuyệt vời của chúng tôi, người đưa ra một mô hình quản lý mà ông mô tả là Theory W.
http://csse.usc.edu/csse/TECHRPTS/1989/usccse89-500/usccse89-500.pdf
Thông thường các nhà phát triển phần mềm bị cấm sản xuất theo phương pháp quản lý Theory-X nói rằng công nhân về cơ bản là lười biếng và sẽ không thực hiện trừ khi bị dồn nén. Boehm tóm tắt và đối chiếu mô hình đề xuất của mình như sau:
"Thay vì mô tả người quản lý là người chuyên quyền (Theory X), huấn luyện viên (Theory Y) hoặc người điều phối (Theory Z), Theory W mô tả vai trò chính của người quản lý là người đàm phán giữa các khu vực bầu cử khác nhau của anh ấy và người đóng gói các giải pháp dự án Với điều kiện thắng cho tất cả các bên. Ngoài ra, người quản lý còn là người thiết lập mục tiêu, theo dõi tiến trình hướng tới mục tiêu và là nhà hoạt động trong việc tìm kiếm các xung đột dự án thắng-thua hoặc thua-thua hàng ngày, đối đầu với họ, và thay đổi chúng thành các tình huống đôi bên cùng có lợi. "
Nhanh và bẩn thường chỉ là bẩn
Boehm tiếp tục chỉ ra lý do mọi thứ rất tồi tệ cho các nhà phát triển trong nhóm bảo trì.
"Xây dựng một sản phẩm nhanh và cẩu thả có thể là một trò chơi win win ngắn hạn, chi phí thấp cho nhà phát triển phần mềm và khách hàng, nhưng nó sẽ là một '' mất '' cho người dùng và người bảo trì." Xin lưu ý rằng trong mô hình của Boehm, khách hàng là quản trị viên hợp đồng nhiều hơn là người dùng cuối. Trong hầu hết các công ty, hãy nghĩ về người quản lý sản phẩm như một người thay thế khách hàng, hoặc có lẽ là người mua sản phẩm cho danh sách tính năng của nó.
Giải pháp của tôi là không phát hành nhóm phát triển ban đầu (hoặc ít nhất là khách hàng tiềm năng ban đầu) cho đến khi mã được tái cấu trúc để ít nhất đáp ứng các tiêu chuẩn mã hóa.
Đối với khách hàng, tôi nghĩ thật hợp lý khi coi người quản lý sản phẩm là người thay thế khách hàng và nhóm người được khen thưởng vì đã cung cấp một thứ gì đó nhanh chóng và bẩn thỉu chắc chắn có thể được mở rộng, do đó có một cử tri lớn để làm mọi thứ sai cách.
Tái cấu trúc không phải là Thỏa thuận
Vui lòng không rút lui khỏi vai trò là người quản lý phần mềm. Bạn nên có thẩm quyền và toàn quyền sử dụng thời gian của nhóm trong quá trình cải tiến sản phẩm và quy trình. Trong vai trò đó, bạn có thể cần phải thương lượng các lựa chọn của mình để làm cho nhóm của bạn chuyên nghiệp hơn. Tuy nhiên, liên quan đến quá trình, đừng đàm phán với tiếp thị, bởi vì theo kinh nghiệm của tôi, đó là một trò chơi thua. Đàm phán với quản lý kỹ thuật. Nó cho thấy bạn có tầm nhìn. Xây dựng một nhóm phần mềm chuyên nghiệp là một phần mở rộng vai trò của họ, và nhiều khả năng được coi là một chiến thắng cùng có lợi.