Trả lời: Leon Rubin, Lập trình viên chuyên nghiệp
Chúng tôi hiểu rằng không có vấn đề gì là dễ cả.
Khách hàng: “Anh chỉ cần cộng 10 ngày làm việc vào ngày tạo đơn hàng là tính được ngày phải thanh toán. Tính năng này làm chắc vài giây thôi.”
Lập trình viên: “Ê khoan, 10 ngày làm việc hay là 10 ngày trong lịch?”
Khách hàng: “Tất nhiên là ngày làm việc. Nếu ngày đó rơi vào cuối tuần thì tính vào thứ Hai tiếp theo. Nói chung có gì to tát đâu nhỉ?”
Lập trình viên: “Vậy thì chúng ta phải cân nhắc đến các ngày nghỉ nữa.”
Khách hàng: “Ủa vậy có gì khó đâu. Chỉ cần gắn cứng các ngày nghỉ vào cơ sở dữ liệu như ngày 4/7, ngày 25/12,… rồi dời ngày thanh toán sau các ngày đó là được.”
Lập trình viên: “Nhưng có những ngày nghỉ đâu có rơi vào một ngày cụ thể, ví dụ như ngày lễ Tổng Thống, ngày Tưởng Niệm, ngày lễ Tạ Ơn,….”
Khách hàng: “Ừ. Có vẻ là nhiều việc đấy nhỉ.”
Lập trình viên: “Mà giờ nói về ngày Quốc khánh 4/7. Nếu nó rơi vào Chủ Nhật, thì tức thứ Hai được nghỉ. Nếu nó rơi vào thứ Bảy, thì thứ Sáu được nghỉ. Thế rồi lại có vài khách hàng của chúng ta (như các ngân hàng) thì nghỉ tất cả các ngày lễ, còn số khác thì chỉ nghỉ vài ngày lễ. Rồi lại có ngân hàng có những kì nghỉ lễ đặc biệt như lễ Founder’s Day. Thế rồi chúng ta còn có các khách hàng quốc tế có những kì nghỉ khác nhau, và danh sách vấn đề cứ kéo dài mãi. Nào bây giờ anh có hiểu tại sao công ty chúng ta cần có một hệ thống xử lý các kì nghỉ lễ riêng và tại sao tôi cần vài ngày để tạo ra hệ thống đó và kiểm tra nó?”
Theo: Anh-Tuan Phan