Các phương pháp lập trình truyền thống cho rằng: “nếu mã lệnh đang
chạy được, không cần phải sửa đổi”. Tuy nhiên, trong nhiều trường hợp một
hệ thống phần mềm đang hoạt động, vẫn cần phải sửa đổi. Chẳng hạn, khi
muốn bổ sung thêm một chức năng mới hoặc chuyển hệ thống sang một môi trường khác, nhưng hệ thống không đủ mềm dẻo để có thể làm được việc đó. Trong trường hợp như vậy, hầu hết các lập trình viên đều biết rằng, họ cần phải làm gì. Họ chỉ cần cấu trúc lại hệ thống là có thể thực hiện các sửa đổi
cần thiết. Tuy nhiên, mỗi sửa đổi đều tiềm ẩn trong nó những rủi ro. Mỗi lần
sửa đổi hệ thống, đều có thể xuất hiện những lỗi mới. Đó là lý do tại sao bạn
muốn có một cách để đảm bảo rằng các thay đổi của bạn không tạo các lỗi
mới.
Với việc tạo ra phương pháp phát triển chương trình theo hướng đối
tượng rất linh hoạt và có tính chất lặp, khái niệm “cải tiến mã lệnh” lần đầu
tiên được đưa ra vào những năm 1990. Ý tưởng cơ bản của cải tiến mã lệnh là sửa đổi mã lệnh bằng một cách thức sao cho giảm thiểu được các lỗi trong mã lệnh. Đúng hơn là cải tiến mã lệnh là việc làm thay đổi cấu trúc bên trong của
phần mềm, làm cho nó dễ hiểu hơn và chi phí sửa đổi ít hơn mà không làm
thay đổi các hành vi của hệ thống. Ở đây, ta trình bày cách thức làm thế nào để kiểm chứng tính hiệu quả cải tiến mã lệnh và làm thế nào để chúng tác động đến quá trình phát triển phần mềm. Đồng thời, ta cũng thảo luận các lý do tại sao cần sử dụng cải tiến mã lệnh và các kỹ thuật cơ sở kèm theo để thực hiện cải tiến mã lệnh. Với việc dựng lên các vấn đề liên quan đến các chi tiết của cải tiến mã lệnh và cách thức để tự động hoá chúng [27].