Tôi nhận được một email từ một sinh viên: “Tại sao chúng ta phải đo công việc của mình? Đo là khó và phí thời gian vì nó không cung cấp cho tôi giá trị. Nếu chúng ta có lỗi, chúng ta có thể sửa chúng về sau bất kể chúng có bao nhiêu. Tôi không biết tại sao chúng ta cần đo?”

Câu trả lời của tôi: Chúng ta dùng việc đo hàng ngày và chúng ta thường quên mất giá trị chúng cung cấp cho chúng ta. Khi bạn đi xe máy, bạn có xem đồng hồ chỉ xăng để chắc rằng bạn có đủ xăng trên chặng đường lái đi xa không? Trong khi tuân theo công thức nấu bếp, bạn có đo khối lượng các chất liệu như muối trước khi thêm vào thức ăn không? Bạn có kiểm thời gian bằng việc nhìn vào đồng hồ không? Đấy là những cách đo bạn dùng mọi lúc. Không có khác biệt trong điều bạn làm trong cuộc sống hàng ngày và dự án phần mềm: Bạn đo tiến bộ của mình để cho bạn biết bạn làm tốt đến đâu và nếu có vấn đề thì bạn phải sửa chúng. Tôi không biết tại sao nhiều người không chú ý tới việc đo khi nó là một phần lớn trong cuộc sống hàng ngày của họ?

Nếu bạn không nhìn vào đồng hồ đo xăng khi lái xe máy thì điều gì là hoàn cảnh khi bạn chạy hết xăng? Bạn có tiếp tục đi được không nếu đồng hồ xăng chỉ cho bạn là bạn không có đủ xăng trong xe máy? Tưởng tượng rằng bạn nấu cái gì đó và cứ đổ muối vào trong nó mà không đo gì cả? Mười hay hai mươi thìa muối là tốt hơn hay chỉ hai thìa thôi? Tôi chắc chắn trong trường hợp đó, bạn có thể phải uống nhiều nước sau đó vì thức ăn của bạn có quá nhiều muối trong đó.

Nếu bạn nghĩ việc đo là khó và phí thời gian thì bạn sẽ KHÔNG đi tới bác sĩ bởi vì bạn nghĩ ông ấy có thể tìm ra cái gì đó sai với thân thể bạn? Bạn sẽ KHÔNG nhìn vào đồng hồ bởi vì nó có thể cho bạn biết rằng bạn bị muộn giờ lên lớp? Bạn sẽ KHÔNG kiểm xem mình có bao nhiêu tiền khi bạn mời bạn gái đi xem phim? Bạn bao giờ cũng đo cái gì đó phải không? Bởi vì bạn cần điều đó để ra quyết định đúng. Nếu bạn không có đủ xăng thì bạn phải tới trạm xăng để rót đầy bình trước khi vào cuộc hành trình. Nếu bạn không có đủ tiền thì bạn có thể đi ra ngân hàng để rút tiền hay vay của bạn bè mình trước khi tới nhà bạn gái để mời cô ấy đi xem phim. Cách đo là chỉ báo cho bạn biết tình huống nơi bạn có thể có hành động đúng đắn.

Có chương trình đo cho dự án của bạn là quan trọng. Nó giúp cho bạn kiểm được tiến bộ của mình, nó cho bạn biết bạn đang làm tốt hay tồi cho nên bạn có thể sửa chữa nó trước khi quá muộn. Tất nhiên, nếu bạn có lỗi thì bạn phải sửa chúng nhưng điều gì sẽ xảy ra nếu bạn KHÔNG có đủ thời gian bởi vì bạn không đo thời gian? Điều gì sẽ xảy ra khi bạn không sửa một lỗi từ sớm và nó tích luỹ qua thời gian từ một lỗi thành một trăm lỗi? Bao nhiêu người trong các bạn đi trong rừng không có la bàn? Bao nhiêu người trong các bạn đi không có bản đồ? Bạn đã bao giờ nghe thấy nói “Nếu bạn không biết bạn đang ở đâu, bản đồ sẽ không ích gì.” Cách đo là những điều giúp cho bạn quản lí dự án của mình vì chúng cho bạn biết khi nào bạn phải lấy hành động sửa chữa.  Không ai muốn bị lạc và không ai muốn nhận được phần mềm đầy lỗi.

—-English version—-

Measurements

I received an email from a student: “Why do we have to measure our work? Measurement is difficult and it is a waste of time as it provides no value to me. If we have defects, we can fix them later regardless how many of them. I do not know why we need measurement?”

My answer: We use measurements every day and we often forget the value they provide to us. When you ride your motorcycle, do you watch the gas-meter to make sure that you have enough gasoline to go for a long drive? While following a cooking recipe, do you measure the amount of ingredients such as salt before adding to your food?  Do you check the time by looking at your watches? Those are measurements that you use all the time. There is no difference in what you do in your daily life and the software project: You measure your progress to let you know how well you are doing and if there are problems then you must fix them. I do not know why so many people do not pay attention to measurement when it is so much a part of their daily life?

If you do not look at your gas-meter when riding your motorcycle then what is the chance that you run out of gas? Would you continue to go if the meter indicates that you do not have enough gas in your motorcycle? Imagine that you cook something and just pouring salt into it without any measurement? Would ten or twenty teaspoons of salt are better than just two teaspoons? I am sure in that case, you may have to drink a lot of water afterward as your food has so much salt in it.

If you think measurement is difficult and a waste of time then would you NOT go to the doctor because you think he may find something wrong with your body? Would you NOT look at your watch because it may tell you that you are late to class? Would you NOT check to see how much money you have when you ask your girlfriend to go to a movie? You always measure something don’t you? Because you need it to make correct decision. If you do not have enough gas then you must go to the gas station to fill up the tank before go on the trip. If you do not have enough money then you may go to your bank to withdraw money or borrow your friend before go to your girlfriend ‘s house to ask her to go to the movies. Measurement is the indicator to let you know the situation where you can take correct action.

Having a measuring program for your project is important. It help you to check your progress, to let you know how good or how bad that you are doing so you can correct it before it is too late. Of course, if you have defects than you must fix them but what will happen if you do NOT have enough time because you do not measure the time? What will happen when you did not fix a defect early and it accumulates over time from one defect to hundred defects? How many of you would travel in the forest without a compass? How many of you would travel without a map? Have you ever heard the saying “If you do not know where you are, a map will not help”. Measurements are things that help you to manage your project as they let you know when you should take corrective actions.  No one want to get lost and no one want to receive software full of defects.