Trong nhiều lĩnh vực, khách hàng tiêu biểu là:
- Quan tâm đến mối quan tâm hoạt động hàng ngày - chiến thuật tầm ngắn ... không phải chiến lược;
- Chỉ quan tâm đến giải pháp trước mắt;
- Nói chung là những người suy nghĩ một chiều, không trừu tượng;
- Chủ yếu quan tâm đến việc "hoàn thành công việc", trái ngược với việc đưa ra một giải pháp chất lượng lâu dài.
Và thẳng thắn, họ thường có lý do chính đáng để nghĩ như thế này. Trước hết, họ đang điều hành một doanh nghiệp, sẽ tạo ra doanh thu hôm nay và ngày mai, không phải trong một tương lai xa. Thứ hai, họ không phải là chuyên gia kỹ thuật - họ không biết những gì có thể và những gì không, và hậu quả của các lựa chọn kiến trúc / thiết kế / thi công cụ thể là gì. Đây là những gì chúng ta biết.
Vì vậy, câu trả lời là - hầu như không đáng ngạc nhiên - giao tiếp .
Bạn cần giao tiếp nhiều, giáo dục lẫn nhau, làm cho nhau hiểu quan điểm của bên kia ít nhất là đến mức cơ bản. Bạn cần giải thích cho họ những hậu quả ngắn hạn và dài hạn của các lựa chọn thay thế có thể. Và bạn cần sử dụng ngôn ngữ họ hiểu .
- Nếu bạn nói "đây sẽ là một bản hack, làm cho mã ít đọc và có thể mở rộng hơn" , họ nói, "ừ, sao cũng được" .
- Nếu bạn nói "đây sẽ là một sửa chữa ngắn hạn, sẽ làm cho việc phát triển và bảo trì dài hạn tốn kém hơn và tăng nguy cơ giới thiệu các lỗi" , họ nói "a ha, hãy xem xét" .
- Và nếu bạn nói rằng "giải pháp này sẽ tiêu tốn của bạn 100 đô la ngay bây giờ, nhưng giới thiệu 500 đô la nợ kỹ thuật mà bạn nhất định phải trả lại tiền lãi sớm hay muộn; OTOH giải pháp khác này hiện có giá 400 đô la và không để lại nợ kỹ thuật; muốn " , họ nói " bây giờ chúng ta đang nói! " .
OTOH họ có thể dạy chúng ta một vài điều về quan điểm kinh doanh. Doanh nghiệp muốn có thể sử dụng và đủ tốt - hầu như không hoàn hảo - giải pháp. Và họ biết có lẽ tốt hơn bất cứ ai rằng "hoàn hảo là kẻ thù của sự tốt lành". Vì vậy, bạn cần lưu ý rằng công việc của chúng tôi là cung cấp giải pháp cho các vấn đề của khách hàng, thay vì sản xuất phần mềm hoàn hảo về mặt kỹ thuật. Đôi khi hai điều này hội tụ đến cùng, nhưng thường thì không. Điều này có thể được xem là buồn bởi nhiều người, nhưng đó là thực tế kinh doanh. Đối với tôi, nếu tôi xoay sở để giải quyết vấn đề của khách hàng và tôi thấy rằng điều đó làm cho cuộc sống của họ dễ dàng hơn, tôi cũng hạnh phúc như họ. OTOH nếu tôi quản lý để thực hiện thiết kế hoàn hảo mà tôi có trong đầu, nhưng công ty phá sản vào tuần sau, đó có phải là một chiến thắng cho bất cứ ai không?
Một chủ doanh nghiệp hợp lý sẽ hiểu - nếu bạn giải thích họ bằng ngôn ngữ của họ - tại sao điều quan trọng là giữ sạch phần mềm, viết bài kiểm tra đơn vị, để tái cấu trúc, v.v. Mặc dù những điều này dường như không đóng góp trực tiếp bất cứ điều gì trong ngắn hạn, rất cần thiết cho bảo trì dài hạn. Và khách hàng hợp lý quan tâm đến khả năng duy trì lâu dài của doanh nghiệp của họ, vì vậy họ chắc chắn sẵn sàng đầu tư vào đó khi họ thấy giá trị đầu tư của họ tạo ra. Tuy nhiên, cả tài nguyên của họ và thời gian của bạn đều có hạn, vì vậy bạn cần ưu tiên và tập trung vào những điều quan trọng nhất. Nhưng nó chỉ quan trọng nếu nó quan trọng với cả hai bạn.
Bạn có thể muốn cấu trúc lại mô-đun A vì mã trong đó thật khủng khiếp và bạn có một ý tưởng tuyệt vời làm thế nào để cấu trúc lại mã để ngắn gọn, thanh lịch và sạch sẽ, sử dụng một mẫu thiết kế mà bạn vừa đọc. Tuy nhiên, nếu mô-đun đó không được chạm trong nhiều năm và nó hoạt động đáng tin cậy, rất có thể bạn nên tập trung vào mô-đun B, sẽ được mở rộng vào tuần tới với một tính năng mới rất quan trọng và nó chứa hàng tấn lỗi đã sẵn sàng.