# 29: Đừng dựa vào Phép màu

Nếu bạn nhìn vào bất cứ hoạt động, quá trình hay sự rèn luyện nào đó một cách mơ hồ thì trông chúng có vẻ đơn giản. Những tên quản lý không có kinh nghiệm về lập trình nghĩ rằng mọi việc mà lập trình viên làm thì đều thật đơn giản, và những lập trình viên không có kinh nghiệm về quản lý cũng nghĩ theo cách tương tự như vậy.

Lập trình là một thứ gì đó mà có lẽ chỉ thiểu số có thể làm được- có thể là như vậy. Và mảng hóc búa nhất- tư duy- khó có thể nhận thấy hoặc được đánh giá cao ở những lập trình viên không chuyên. Trong hàng thập kỷ qua đã có rất nhiều nỗ lực để xóa bỏ cái tư duy sắc bén ấy . Một trong những thành quả sớm và đáng nhớ nhất là sự cố gắng của Grace Hopper — làm cho ngôn ngữ lập trình trở nên dễ hiểu hơn- điều mà nhiều bài báo đã dự đoán rằng nó sẽ loại bỏ đi những nhu cầu về chuyên gia lập trình viên. Kết quả này (COBOL — Common Business-Oriented Language) đã đang góp phần cải thiện thu nhập của các chuyên gia lập trình viên trong thập kỷ nay.

Theo lập trình viên- người mà hiểu được bản chất của phát triển phần mềm, lối suy nghĩ cố chấp rằng phát triển phần mềm có thể được đơn giản hóa bằng cách gỡ bỏ phần mềm là một suy nghĩ thực sự ngờ nghệch. Tuy nhiên quá trình tâm lý mà dẫn đến sự sai sót này là một phần bản năng của con người và các lập trình viên cũng chỉ đang phạm phải nó như bao người khác.

Trong bất cứ dự án nào, có thể có rất nhiều việc mà một lập trình viên không tham gia một cách trực tiếp: khảo sát nhu cầu của khách hàng, gọi vốn, thiết lập máy chủ, triển khai phần mềm trên môi trường kiểm thử và trên môi trường Production, thay đổi sản phẩm đề phù hợp với business hiện hành,… Khi bạn không trực tiếp tham gia vào những việc đó, một suy nghĩ vô thức cho giả thiết rằng chúng rất đơn giản và xảy ra bởi phép màu. Phép màu xảy ra là một điều tốt, tuy nhiên khi mà phép màu ấy dừng lại thì dự án sẽ gặp một rắc rối lớn.

Tôi đã biết đến rất nhiều dự án mà chiếm đến hàng tuần của các developer bởi vì không ai hiểu được họ đã tin tưởng vào phiên bản chuẩn của DLL (thư viện liên kết động — Dynamic Link Library) đang được hoạt động như thế nào. Khi mọi thứ bắt đầu xảy ra một cách trì trệ, các thành viên trong nhóm đều đang lơ là, trước khi ai đó chú ý đến phiên bản sai của DLL đang được hoạt động.

Các bộ phận chạy một cách trôi chảy- dự án được phân phối đúng hạn, không còn thức khuya sửa lỗi các phiên bản, không còn fix các lỗi khẩn cấp. Một cách thật trôi chảy, rằng, các senior đã quyết định mọi thứ là để tự chúng chạy và chúng có thể thực hiện mà không cần tới project manager. Trong vòng 6 tháng các phần còn lại trong một dự án nhìn chung chỉ là việc còn lại của công ty — chậm trễ, các lỗi sẽ tiếp tục được vá lại.

Bạn không phải hiểu hết các phép màu mà giúp cho project của hoạt động, nhưng sẽ là ích lợi khi hiểu được một số phép màu đó, hoặc biết được thêm ai đó người mà hiểu được những mẹo mà bạn chưa từng biết.

Quan trọng nhất, hãy chắc chắn rằng khi phép màu dừng lại, nó vẫn có thể được bắt đầu trở lại.