Một dòng mã

GS John Vu12/07/2026 10:00
Một dòng mã

Khi tôi là sinh viên khoa học máy tính, tôi chưa bao giờ học về Quản lí cấu hình phần mềm Software Configuration Management (SCM).

Điều đó không được dạy trong trường bởi vì không có môn học về nó. Vào thời đó, đào tạo máy tính phần lớn là về toán học, thuật toán và ngôn ngữ lập trình (Fortran 4 và Cobol). Khi tôi bắt đầu việc làm đầu tiên của mình, tôi đã phạm phải một sai lầm lớn là thay đổi một dòng mã trong phần mềm trước khi nó được đưa ra cho khách hàng. Tất nhiên, phần mềm này trước đó đã được kiểm thử đầy đủ cho nên người quản lí rất tự tin rằng sẽ không có vấn đề gì. Trong kiểm thử chấp nhận nơi khách hàng thực hiện phần mềm này và sẵn sàng trả cho công ti một số tiền lớn (vài trăm nghìn đô la) đột nhiên phần mềm chết. Tôi vẫn còn nhớ khuôn mặt của người quản lí chuyển từ đỏ sang tái xanh khi ông ấy cố gắng giải thích cho người quản lí cấp cao của mình. Tôi cũng thấy khách hàng giận dữ hỏi: “Điều này nghĩa là gì? Sao nó dừng lại? Các anh đã kiểm thử thực sự phần mềm này chưa?” Sau vài lần cho chạy lại, phần mềm vẫn chết cho nên khách hàng bỏ đi không kí séc trả tiền và người quản lí cấp cao bảo với người quản lí của tôi: “Tìm cho ra ai đã làm nó và lo về điều đó đi.”

Sau khi phần lớn mọi người rời khỏi phòng, người quản lí của tôi hỏi tổ dự án: “Ai đã can thiệp vào phần mềm được kiểm thử đầy đủ?” Tất nhiên, mọi thành viên đều im re vì họ thậm chí không tin được rằng điều đó có thể xảy ra. Tôi giơ tay lên nói: “Thưa ông, tôi chỉ đổi một dòng mã đêm qua.” Tôi vẫn còn nhớ cảm giác mặc cảm khi nhiều con mắt giận dữ nhìn vào tôi. Tôi nghĩ: “Chấm hết việc làm của mình rồi vì mình mới chỉ làm hai tuần trước.” Bỗng nhiên người quản lí của tôi cười to: “Tôi đã đoán ra rồi, đó phải là một kĩ sư mới vì anh ta không biết gì về quản lí cấu hình!” Ông ấy hỏi tôi về một dòng mã đó mà tôi đã thay đổi và lập tức sửa lại nó rồi cho dịch lại phần mềm. Rồi ông ấy gọi người quản lí cấp cao và trước sự ngạc nhiên của tôi, ông ấy nói: “Thưa ngài, chúng tôi đã tìm ra vấn đề, đó là môt mạch phần cứng nhỏ và nó không có liên quan gì tới phần mềm chất lượng cao của chúng tôi.” Ngày hôm sau, khách hàng được mời trở lại và sau khi chứng kiến kiểm thử chấp nhận vài lần, ông ấy hài lòng và rút cuốn sổ séc ra. Tôi để ý rằng mọi người đều sung sướng. Vào cuối ngày, người quản lí gọi tôi lên văn phòng của ông ấy: “Đây là hình phạt cho cậu, đi học môn học về quản lí cấu hình phần mềm ngay lập tức nếu cậu còn muốn giữ việc làm.” Tôi được cử tới một trường đào tạo đặc biệt để học về SCM trong một tuần.

Tôi đã biết rằng quản lí cấu hình phần mềm (SCM) là qui trình nhận diện, tổ chức, và kiểm soát các thay đổi đối với phần mềm. Bởi vì phần mềm thay đổi thường xuyên cho nên SCM nên được áp dụng cho toàn bộ vòng đời phát triển phần mềm. Điển hình SCM bao gồm bốn khu vực chức năng chính: Nhận diện cấu hình; kiểm soát cấu hình; giải trình trạng thái cấu hình; và kiểm định cấu hình. Việc làm về SCM là nhận diện các cấu phần phần mềm nào là quan trọng đối với dự án và kiểm soát các thay đổi với chúng để đảm bảo tính toàn vẹn của sản phẩm phần mềm. SCM cũng kiểm trạng thái của các cấu phần này để đảm bảo rằng chúng được giải trình đúng đắn. Cuối cùng, SCM tiến hành kiểm định để chắc chắn rằng mọi hoạt động trước đó là được thực hiện tương ứng với qui trình được xác định của tổ chức.

Ngay cả ngày nay, sau gần bốn mươi năm, tôi vẫn nhớ về sai lầm đầu tiên của tôi trong việc thay đổi chỉ một dòng mã. Tất nhiên, bây giờ tôi biết rằng ngay cả một thay đổi nhỏ, một dòng mã thay đổi có thể tạo ra khác biệt giữa thành công và thất bại.

English version

One line of code

When I was a computer science student, I never learned about Software Configuration Management (SCM). It was not taught in school because there was no course about it. At that time, the computer training was mostly on mathematics, algorithms, and programming languages (Fortran 4 and Cobol). When I started on my first job, I made a major mistake by changing one line of code in a software before it was released to the customer. Of course, the software was previously fully tested so managers were very confident that there should not be any problem. During the acceptance test where customer executed the software and ready to pay the company a large amount of money (Several hundred thousand dollars) suddenly the software crashed. I still remembered the face of my manager turning from red to blue as he tried to explain to his senior managers. I also saw the customer angrily asked: “What is the meaning of this? Why did it stop? Did you really test this software?”. After several restarts, the software still crashed so the customer left without signing the payment check and senior managers told my manager: “Find out who did it and take care of it.”.

After most people left the room, my manager asked the project team: “Who tampered with the fully tested software?” Of course, all members were quiet as they did not even believe that it could happen. I raised my hand: “Sir, I only change one line of code last night”. I still remembered the guilty feeling as many angry eyes looked at me. I thought: “This is the end of my job as I just started only two weeks ago”. Suddenly my manager laughed aloud: “I should have guessed, it must be the new engineer as he know nothing about configuration management!” He asked me about the one line of code that I changed and immediately corrected it then compiled the software. He then called the senior manager and to my surprise, he said: “Sir, we found out the problem, it was a small hardware circuit and it has nothing to do with our high quality software”. The next day, the customer was invited back and after witnessed the acceptance tests several time, he was pleased and pull out his checkbook. I noticed that everybody was happy. At the end of the day, my manager called me to his office: “This is your punishment, go take a course in software configuration management immediately if you want to keep your job”. I was sent to a special training school to learn SCM for one week.

I learned that Software Configuration Management (SCM) is the process of identifying, organizing, and controlling changes to the software. Because software changes often so SCM should be applied to the entire software development life cycle. Typically SCM consists of four major functional areas: Configuration Identification; Configuration Control; Configuration Status Accounting; and Configuration Auditing. The job of SCM is to identify what software components are important to the project and control changes to them to ensure the integrity of the software product. SCM also check for the status of these components to assure that they are being properly accounted for. Finally, SCM also conduct audits to make sure that all previous activities are being performed according to the organization’s defined process.

Even today, after almost forty years, I still remember about my first mistake of changing just one line of code. Of course, now I know that even one small change, one line of code change can make the difference between success and failure.

 


Gửi bình luận
(0) Bình luận
1

Đối thoại với sinh viên ở Vô Tích, Trung Quốc

Tháng trước khi tôi tới dạy ở Vô Tích, Trung Quốc, một sinh viên nói với tôi: “...Điều tốt hơn có lẽ là thầy đọc bài giảng về điều chúng em cần chứ không phải là cái gì đó quá tiên tiến mà có thể tốt ở Mĩ nhưng không tốt ở Trung Quốc.”
2

Thiếu hụt kỹ năng công nghệ thông tin

Trong vài năm qua, vấn đề thiếu hụt kĩ năng CNTT thường được nhắc tới ở Mĩ và nó làm khuấy động nhiều cuộc tranh cãi.
3

Cách học tốt hơn

Ngày nay sinh viên đại học có nhiều sao lãng ngăn cản họ học tập.
4

Qui trình đơn giản cho dự án nhỏ

Hôm qua, một sinh viên đã tốt nghiệp vài năm trước tới gặp tôi. Anh ta nói: “Em cần lời khuyên của thầy để thiết lập qui trình tốt nhằm phát triển phần mềm có chất lượng với chi phí thấp nhất có thể được."
5

Cách chọn bạn và thành công ở đại học

Khi vào đại học, một trong những điều mới đầu tiên bạn có lẽ cần là chọn bạn. Bạn là một phần của cuộc sống và tình bạn nào đó có thể kéo dài một thời gian lâu, nếu bạn cẩn thận về loại bạn mình chọn lựa. Bạn tốt có thể giúp bạn cực kì nhiều nhưng bạn xấu có thể làm hại bạn còn hơn bạn có thể hình dung.

Cách đo và độ đo

Tôi nhận được một email người gửi viết: “Cái gì là khác biệt giữa cách đo và độ đo và có bao nhiêu cách đo hay độ đo phần mềm?”

Thành công ở đại học

Thành công nghĩa là đạt tới mục đích của bạn, dù chúng là bất kì cái gì.

Cách đo

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?”

Vòng đời kiểm thử

Nhiều người trong các bạn đã hỏi tôi về kiểm thử và mối quan hệ của nó với vòng đời phát triển phần mềm. Về căn bản kiểm thử tuân theo vòng đời tương ứng với mọi pha của vòng đời phát triển.

Quy trình phần mềm

Tôi nhận được một email mà người gửi hỏi: “Khác biệt giữa qui trình phần mềm và qui trình được xác định là gì? Khác biệt giữ qui trình được xác định và qui trình cá nhân là gì?”

Dự án phần mềm thành công

Một sinh viên hỏi tôi: Làm sao thầy biết liệu dự án phần mềm là thành công hay không? Nếu phần mềm chạy tốt, nó có là thành công không? Nếu mã qua được mọi kiểm thử nó có là thành công không?”

Ước lượng dự án

Nhiều dự án phần mềm có vấn đề bởi vì lịch biểu khách hàng đặt cho họ. Bởi vì người quản lí dự án không biết cách ước lượng thời gian cần để hoàn thành dự án cho nên họ đồng ý với bất kì ngày tháng nào khách hàng đặt ra.

Xem xét trường sau đại học

Tuần trước, một học sinh gửi cho tôi một email: “Em sẽ sớm tốt nghiệp và xem xét vào trường sau đại học nhưng em vẫn không chắc về học cái gì hay liệu vào trường sau đại học có là quyết định đúng hay không. Em cũng không chắc liệu em có nên vào trường địa phương hay đi học nước ngoài để có bằng cấp cao. Xin thầy lời khuyên.”

Thế giới trong giọt nước - Khi những người tử tế không đồng ý với nhau

Trong "Thế giới trong giọt nước", Regina Linke không đặt các nhân vật trước lựa chọn giữa thiện và ác. Họ đều muốn giúp một con chim sẻ bị thương, nhưng lại không thống nhất về cách giúp. Cũng từ những bất đồng ấy, câu chuyện không còn chỉ nói về lòng tốt.

Nhạc sĩ Trần Tiến đi xe ôm lên tận đỉnh núi, ước mơ bỏ hết thế gian

Phong cách sống - Tùng Ninh - 31/07/2026 09:00
"Tôi đi 43 nước, không nước nào thân yêu bằng Việt Nam" – nhạc sĩ Trần Tiến nói.

Thế giới trong giọt nước - Khi những người tử tế không đồng ý với nhau

Từ sách - Phim - Quang Anh - 31/07/2026 08:00
Trong "Thế giới trong giọt nước", Regina Linke không đặt các nhân vật trước lựa chọn giữa thiện và ác. Họ đều muốn giúp một con chim sẻ bị thương, nhưng lại không thống nhất về cách giúp. Cũng từ những bất đồng ấy, câu chuyện không còn chỉ nói về lòng tốt.

Bạn có thể tìm thấy bao nhiêu khuôn mặt trong bức ảnh

Thư giãn - Tr. Quang - 30/07/2026 11:00
Chúng vô cùng khó tìm. Người ta nói rằng chỉ những người có khả năng quan sát cực kỳ tinh tường mới có thể tìm thấy chúng. Liệu bạn có phải là một trong số họ?

Người EQ cao vay tiền như thế nào?

Kỹ năng - Hà Nguyên - 30/07/2026 10:00
Ai cũng có lúc cần vay tiền để giải quyết một việc cấp bách. Nhưng điều khiến một người được tin tưởng không nằm ở số tiền họ vay, mà ở cách họ mở lời, giữ cam kết và ứng xử với khoản tiền mình đang mượn. Đó cũng là một biểu hiện của EQ tài chính.

Hành trình 3.000 km vượt sa mạc đến chiếc huy chương World Cup trên cổ của mẹ Nico Williams

Truyền cảm hứng - Minh Ngọc - 30/07/2026 09:00
Sau khi Tây Ban Nha bước lên ngôi vô địch, cầu thủ 24 tuổi của La Roja đã nhìn lên khán đài rồi tiến thẳng về phía mẹ mình - bà Maria, ôm bà thật chặt rồi tháo chiếc huy chương vô địch vừa nhận được để đeo lên cổ người phụ nữ đã đứng khóc suốt trận đấu.

'Sức mạnh của Đạo' - khi người bận rộn học cách không cản đường chính mình

Từ sách - Phim - Minh Nguyệt - 30/07/2026 08:00
Có những cuốn sách đổi đời người ta không phải bằng một chân lý lớn, mà bằng một tai nạn nhỏ. Với Max Landsberg, đó là một mảnh gỗ nhỏ mắc trong cổ họng vào một tối thứ Sáu — và ba mươi năm để hiểu vì sao mình lại ngồi ăn pizza kiểu ấy.

Lập kế hoạch dự án phần mềm

Blog GS John VU - GS John Vu - 29/07/2026 11:00
Một người phát triển phần mềm tới gặp tôi: “Tôi được đề bạt làm quản lí một dự án nhỏ. Ông chủ của tôi bảo tôi hội tụ vào viết mã chứ KHÔNG lập kế hoạch bởi vì lập kế hoạch là phí thời gian. Viết mã sẽ cho tổ nhiều thời gian hơn để hoàn thành dự án. Câu hỏi của tôi là làm sao lập kế hoạch cho dự án mà không phí thời gian và vẫn đạt tới thành công?”

Vì sao người Mỹ vẫn yêu quý Phạm Xuân Ẩn

Phong cách sống - Tô Giang - 29/07/2026 09:00
Giáo sư Larry Berman là tác giả "Perfect Spy", cuốn sách được độc giả Việt Nam biết đến với tên gọi "X6 - Điệp viên hoàn hảo" viết về Thiếu tướng tình báo Phạm Xuân Ẩn.

'Sức mạnh của Đạo': Lý - Nhận ra các khuôn mẫu để biết nên hành động lúc nào và như thế nào

Từ sách - Phim - TĐ - 29/07/2026 08:00
Lý nghĩa là các khuôn mẫu. Khi nhận ra các khuôn mẫu trong con người, tình huống và tự nhiên, bạn sẽ có cái nhìn rõ hơn về cách thức và thời điểm vận dụng các dòng chảy ngầm của vũ trụ sao cho có lợi cho bản thân. Đoạn trích dưới đây từ cuốn sách "Sức mạnh của Đạo" của tác giả Max Landsberg sẽ giúp bạn hiểu thêm về "Lý".

Thiếu hụt kỹ năng công nghệ thông tin

Blog GS John VU - GS John Vu - 28/07/2026 11:00
Trong vài năm qua, vấn đề thiếu hụt kĩ năng CNTT thường được nhắc tới ở Mĩ và nó làm khuấy động nhiều cuộc tranh cãi.

4 hành động thể hiện bạn là người EQ thấp

Kỹ năng - Kim Linh - 28/07/2026 10:00
Người có EQ (trí tuệ cảm xúc) thấp thường dễ hành động theo cảm tính, vô tình khiến cả bản thân lẫn người khác rơi vào những tình huống khó xử.

Nhà thiết kế nổi tiếng Việt Nam làm tài xế xe công nghệ để kiếm sống, mừng rỡ khi được khách 'boa' 2.000 đồng

Phong cách sống - Anh Khôi - 28/07/2026 09:00
Bài đăng của nhà thiết kế nhanh chóng nhận được làn sóng tương tác lớn từ giới giải trí.

Sắp phát hành: Đại chiến AI

Tủ sách - FN - 28/07/2026 08:00
Suốt nhiều thập kỷ, AI luôn được xem như một tương lai "đã cận kề", nhưng hết lần này đến lần khác vẫn chưa đáp ứng được những kỳ vọng. Phải đến khi ChatGPT, Gemini cùng hàng loạt công cụ AI tạo sinh khác bùng nổ, nhân loại mới thực sự tự hỏi: Có phải thời hoàng kim của AI đã điểm?

Cách giúp cho một dự án đang thất bại

Blog GS John VU - GS John Vu - 27/07/2026 11:00
Một người quản lí dự án hỏi tôi: “Dự án phần mềm của tôi không chạy tốt, tổ của tôi mệt mỏi và nản chí. Tôi phải làm gì?”
HẠT GIỐNG TÂM HỒN
2019 Bản quyền thuộc về hatgiongtamhon.com.vn. Phát triển bởi ONECMS