Giải quyết các câu hỏi của bạn ...
... Sẽ là sai lầm khi đề xuất một kiến trúc siêu đơn giản, thậm chí để giải quyết một vấn đề phức tạp, cho một khách hàng doanh nghiệp?
Tuyệt đối không.
Từ góc độ khách hàng
Như đã nêu ở trên, nó phần lớn phụ thuộc vào khách hàng. Nó cũng phụ thuộc vào khả năng của bạn để đánh giá chính xác giải pháp nào phù hợp với khách hàng của bạn. Mặc dù luôn luôn có một chi phí cảm nhận cho giá trị mong muốn, nhưng với tư cách là một nhà tư vấn, công việc của bạn là đặt ra những kỳ vọng phù hợp của khách hàng. Trong một số trường hợp, bạn sẽ phải đáp ứng nhận thức đó. Trong những người khác, nó sẽ là lợi ích tốt nhất của bạn để sửa chúng. Rốt cuộc, bạn nên là chuyên gia cho khách hàng của bạn. Và nếu bạn không, bạn nên có kiến thức để có thể trở thành chuyên gia đó. Đó là những gì họ trả cho bạn.
Từ góc độ nhà phát triển
Phần khó nhất trong việc lựa chọn sử dụng kiến trúc nào là, thường là, ước tính chính xác khối lượng công việc cần thiết để sử dụng công nghệ để đáp ứng các nhu cầu cụ thể. Điều này rất nhanh chóng có thể dẫn đến các dự án không đạt kỳ vọng của khách hàng. Hiểu rằng một số dự án thực sự được thực hiện nhanh hơn bằng cách sử dụng các đoạn mã "phức tạp" này mà bạn đề cập. Nó cũng được hiểu rằng một số thì không. Bạn phải cung cấp phép đo đó, dựa trên những gì bạn hoặc nhóm của bạn biết.
Là sự phức tạp xác định các giải pháp doanh nghiệp, hay đó là độ tin cậy, # người dùng đồng thời, dễ bảo trì hoặc tất cả các điều trên?
Mặc dù chi tiết cụ thể có thể khác nhau, nhưng nói chung, giải pháp doanh nghiệp là một giải pháp phần mềm áp dụng cho đối tượng kết hợp rộng. Số lượng người dùng đồng thời có thể hoặc không phải là một yếu tố, mặc dù thường là vậy. Tổng số người dùng, thường xuyên trong một loạt các vai trò kinh doanh, là một trong những yếu tố quyết định lớn nhất đến việc liệu giải pháp đó có phải là "doanh nghiệp" hay không.
Nhiều giải pháp doanh nghiệp rất phức tạp, nhưng một số khá đơn giản. Trong khi doanh nghiệp đưa ra một không khí đáng tin cậy (và chắc chắn nên được giữ theo một tiêu chuẩn nhất định), các giải pháp khác nhau có mức độ tin cậy khác nhau.
Dễ bảo trì là điều mà tôi nghĩ rằng mọi nhà phát triển (độc lập hoặc thành viên trong nhóm) đều nỗ lực, nó không nhất thiết phải dễ dàng đạt được. Điều quan trọng là có một quy trình bảo trì có hướng dẫn vững chắc, thay vì "dễ dàng". Hãy nhớ rằng, các cơ sở mã khác nhau sẽ có mức độ dễ dàng khác nhau tùy thuộc vào triết lý, phương pháp luận, hoạt động môi trường (kinh doanh) và độ phức tạp của mã.
Phản ứng với các tuyên bố khác của bạn ...
Trong mọi trường hợp, không bao giờ có nhu cầu thực sự tạo mã có thể hoán đổi hoặc tái sử dụng
Thường không bao giờ có một nhu cầu cụ thể để làm như vậy. Điều này nên là mục tiêu của bạn, mọi lúc, tuy nhiên. Hãy xem xét điều này ... Bạn có thể có một ứng dụng khách yêu cầu khả năng truy cập hoặc hiển thị lịch của họ từ trang web. Nếu bạn tự tạo mã có thể tái sử dụng, thì khi một khách hàng khác yêu cầu điều tương tự, bạn đã hoàn thành một số công việc. Nếu bạn không, thì bạn phải làm lại từ đầu. Mỗi vấn đề của khách hàng thường là một vấn đề mà khách hàng khác trong tương lai có thể cần. Nói cách khác, mọi khách hàng bạn làm việc cùng nên có khả năng giảm chi phí công việc cho các khách hàng tương lai của bạn (không nhất thiết là chi phí của sản phẩm).
và các bài kiểm tra không bao giờ thực sự được duy trì sau lần lặp đầu tiên vì các yêu cầu thay đổi, nó quá tốn thời gian,
Tôi sẽ tranh luận ở đây rằng phương pháp thử nghiệm không đủ trừu tượng. Gần đây tôi đã sử dụng một đoạn mã đã tự kiểm tra đơn vị của chính nó. Một tùy chỉnh assert
và expect
chức năng đã được thực hiện phù hợp với nhu cầu của dự án. Bất cứ khi nào cần một bài kiểm tra đơn vị, nó có thể được áp dụng mà không cần điều chỉnh mã. Trong thực tế, mã được phân phối tích cực với các xác nhận và mong đợi vẫn còn trong đó. Nó thực hiện những kiểm tra như một phần của mã làm việc.
... thời hạn, áp lực kinh doanh, vv ....
Tôi thường thấy rằng áp lực kinh doanh thêm và thời hạn cản trở quá trình mã hóa là lỗi của nhà phát triển, không phải của khách hàng. Mặc dù điều này không phải lúc nào cũng đúng, nhưng nhiều lần áp lực kinh doanh là do nhận thức về việc không đáp ứng được kỳ vọng của khách hàng. Khi thời hạn cản trở mã, thường là do nhà phát triển không thể đánh giá chính xác số lượng công việc cần thiết cho mã chức năng có thể sử dụng. Nói cách khác, lên lịch cho họ (khách hàng mong đợi điều đó) , đo lường họ (khách hàng tương lai mong đợi điều đó) , thực hiện chúng (người dùng yêu cầu) và được trả tiền cho họ (hợp đồng của bạn sẽ yêu cầu điều đó) .