Phần mềm đủ tốt

/* Lấy cảm hứng và lược dịch từ cuốn sách ” Lập trình viên thực dụng” của Andrew Hunt và David Thomas */

Có một câu chuyện đùa như thế này : một công ty Mỹ đặt hàng 100,000 mạch điện tử tích hợp với một công ty Nhật. Một phần của tài liệu tiêu chuẩn kĩ thuật nói về tỷ lệ sai hỏng là một trên mười ngàn linh kiện. Một vài tuần sau thì gói hàng được chuyển tới, bao gồm một hộp lớn chứa hàng ngàn bộ linh kiện, và một hộp nhỏ chỉ chứa 10 cái. Chiếc hộp nhỏ này được ghi nhãn : “ Đây là những linh kiện bị sai hỏng”.

Tất cả chúng ta đều ước ao có được một năng lực để có thể kiểm soát được chất lượng giống như người Nhật trong câu chuyện trên. Nhưng ông bà đã có câu “đời không như là mơ”, đời sẽ không cho ta có thể tạo ra một sản phẩm thập toàn thập mỹ, và cụ thể là một phần mềm hoàn toàn không có lỗi nào. Thời gian, công nghệ và khí chất hữu hạn của mỗi người chúng ta– tất cả những yếu tố này đều âm mưu ngăn cản ta tạo ra một sản phẩm mười phân vẹn mười.

Tuy nhiên, đừng quá buồn (chỉ làm cho thêm đớn đau 🙂 ). Bạn có thể tạo kỷ luật cho chính mình để có thể viết được một phần mềm đủ tốt . Phần mềm đó là đủ tốt cho người dùng hay khách hàng của bạn, nó cũng đủ tốt cho những bảo trì viên sau này, và cũng đủ tốt để khiến bạn cảm thấy được bình yên. Bạn sẽ thấy rằng bạn tạo ra được nhiều năng suất hơn và khách hàng cũng hài lòng hơn. Và bạn cũng nhận ra rằng chương trình bạn viết thực sự tốt hơn nếu thời gian “ấp trứng” của nó ngắn lại.

Trước khi chúng ta có thế đi xa hơn, chúng ta cần phải thống nhất với nhau một điều. Cụm từ “đủ tốt” ở đây không ngụ ý là bạn tạo ra những đoạn code nghèo nàn và rối rắm. Tất cả mọi phần mềm (hay rộng hơn là hệ thống) cần phải đáp ứng được những tiêu chuẩn kỹ thuật của khách hàng để có thể được xem là thành công.

Ở đây, chúng ta đơn giản là muốn chủ trương rằng : một khi chương trình mà bạn viết đã đạt được một mức độ được xem là đủ tốt, thì các khách hàng phải được trao cơ hội để tham gia vào chuỗi các tiến trình quyết định tiếp theo.

Chia sẻ bài viết

Leave a Comment

Your email address will not be published. Required fields are marked *