Dựa trên kinh nghiệm của riêng tôi và kinh nghiệm của bạn bè tôi thấy rằng nhiều công ty có một số ý tưởng kỳ lạ để phát triển khung công tác của riêng họ và các nhà máy SW (xây dựng bộ khung ứng dụng cho bạn). Những ý tưởng này thường dựa trên niềm tin rằng khung riêng sẽ tốt hơn nhiều so với bất cứ điều gì khác có sẵn. Làm thế nào để đối phó với những ý tưởng như vậy và làm thế nào để giải thích rằng nó không phải luôn luôn là cách tốt để đi?Làm thế nào để đối phó với các khuôn khổ công ty nội bộ và các nhà máy SW?
Tại sao tôi nghĩ rằng khuôn khổ nội bộ/nhà máy là không tốt:
- Ngân sách & Tài nguyên - Thường chỉ có một số ngân sách ban đầu để tạo ra khuôn khổ. Không ai nghĩ về ngân sách cần thiết để duy trì và hỗ trợ khung. Không ai thậm chí có thể ước tính ngân sách và tài nguyên cần thiết để duy trì. Lúc đầu, không ai nghĩ đến việc duy trì nhiều phiên bản của khung công tác để hỗ trợ các ứng dụng hiện có.
- Thiếu kinh nghiệm - Khung thường được tạo ra bởi những người không có kinh nghiệm như vậy hoặc với sự hỗ trợ của "chuyên gia tư vấn" - thường là những người đắt tiền hơn với bộ kỹ năng tương tự.
- Kiến trúc/thiết kế - bất kỳ vấn đề kiến trúc nào trong khung ảnh hưởng đến tất cả các ứng dụng được xây dựng bằng cách sử dụng khung này. Thiệt hại thiết kế xấu trong các nhà phát triển lực lượng khuôn khổ để mã ứng dụng theo cách xấu.
- Nợ kỹ thuật - mã xấu trong framwork là nợ kỹ thuật.
- Niềm tin giả về viên đạn bạc - người quản lý tin rằng khung/nhà máy riêng là viên đạn bạc. Tất cả các ứng dụng sẽ được viết theo cùng một cách và nó sẽ dễ dàng duy trì. Kinh nghiệm của tôi là nó đơn giản không phải là sự thật. Ngay cả với nhà máy SW mỗi ứng dụng là cụ thể.
- Không đủ tài liệu - tài liệu trước tiên bị ảnh hưởng bởi ngân sách thấp. Khung mà không có tài liệu là vô dụng. Reflector (.NET) là người bạn tốt nhất của tôi.
- Không đủ nhóm người dùng - khung nội bộ chỉ có nhóm người dùng nhỏ. Nhóm người dùng nhỏ có nghĩa là trải nghiệm nhỏ. Nếu tôi đang sử dụng công cụ/khung công cộng và tôi gặp sự cố, tôi có thể đặt câu hỏi trên SO (hoặc trang web tương tự) hoặc chỉ tìm cách tìm câu trả lời trên google. Với khung nội bộ, điều đó là không thể.
- Chính sách - chính sách của công ty buộc bạn phải sử dụng khuôn khổ để xác minh chi phí khuôn khổ. Điều này đi xa đến mức khung được chọn trước khi yêu cầu đầu tiên được thu thập.
- Nghiêm cấm việc tuân thủ khung.
- Nghiêm cấm việc sử dụng các khung công tác khác.
Tại sao tôi nghĩ rằng các công ty đang làm điều này:
- Ngạo mạn & ích kỷ - sombody trong công ty tin rằng ông có thể làm điều đó tốt hơn.
- Sự thiếu hiểu biết - bỏ qua các khung/giải pháp hiện có và thực tế là chỉ có các khuôn khổ tốt tồn tại đủ lâu để trở nên phổ biến. Bỏ qua nhóm người dùng và các thông tin sẵn có trên Internet.
- Thất bại quản lý và không đủ năng lực - không hiểu được tác động (đặc biệt là dài hạn) của sự suy giảm này. Decission dựa trên thông tin không chính xác. Quản lý không có nền phát triển SW.
Tôi hiểu rằng đôi khi giải pháp hoặc khung công tác riêng cho kịch bản chuyên ngành là cần thiết nhưng tôi mệt mỏi với tất cả "khung nội bộ tuyệt vời" này để tạo ứng dụng web hoặc máy tính để bàn. Liệu tôi có sai? Các khuôn khổ này có thực sự cần thiết (.NET và Java world) không?Bạn có thể cung cấp cho tôi một số ví dụ hoặc lý do tại sao nó là tốt để có khuôn khổ nội bộ/nhà máy?
Edit:
Cám ơn câu trả lời nhưng tôi mong đợi một số lời khuyên làm thế nào để đối phó với một vấn đề như một nhà phát triển (trừ thay đổi một công việc) không phải là một người quản lý.
LOL! Bước 1 để giữ cho các nhà phát triển không bị chán: kỳ lân và cầu vồng. – BoltClock
Điều kỳ lân đó là gì? –
Điểm tốt. Tôi chưa bao giờ nghĩ về nó theo cách này. –