5
Xưa kia, việc làm phần mềm được coi như là một
khoa học nghiêm túc (science), dần dần chuyển sang
sản xuất kiểu công nghiệp (software engineering).
Nhưng dần dà, người ta thấy nó còn mang tính nghệ
thuật, thủ công rất nhiều. Ngày càng nhiều người
quan tâm tới phát triển phần mềm theo hướng thủ
công này. Thực ra, việc gọi phần mềm là một nghề
thủ công (Software Craftsmanship) đã có thâm niên
trên dưới tính bằng một hai thập kỉ.
Năm 1999, Andy Hunt xuất bản
The Pragmatic
Programmer: From Journeyman to Master có cái bìa
sách đen xì xì cùng với
Dave Thomas, mô tả về một
“trường phái” lập trình viên kiểu mới. Trong đó,
Hunt mô tả một lập trình viên đi lên từ những kẻ
ất ơ (Journeman) đến cao thủ (Master) không khác
gì một nghệ nhân đi từ học việc đến lành nghề.
Mặt khác các tác giả khẳng định, nghề lập trình tuy
có những nét tương đồng, nhưng có những điểm
không nên thuộc về phạm trù “engineering” theo
cách hiểu của các software engineer lúc bấy giờ.
Từ sau cuốn sách này, Hunt cho ra đời hẳn một tủ
sách có tên “The Pragmatic Programmer” gồm mười
cuốn khác nằm trong bộ sách Pragmatic Bookshelf
trứ danh. Nhân tiện chú thích về Hunt một tí, bác ấy
là đồng tác giả của The Manifesto
for Agile Software
Development khai sinh ra trường phái mới trong
phát triển phần mềm hiện đại, đồng thời ông cũng
là sáng lập viên của Agile Alliance. Hunt là một bố
già thực sự trong nghề.
Trước đó không lâu (15/5/1998), một giáo sư
(Professor Emeritus) ở Đại học Princeton là
Freeman
Dyson từng có bài biện luận rất đáng chú ý về
tính “nghệ” trong việc làm khoa học trong bài viết
“
Science as a Craft Industry”. Bài này có đề cập đến
một thứ crafts là software.
Năm 2001, Pete McBreen cho chữ “Software
Craftsmanship” lần đầu xuất hiện đàng hoàng
trong một cuốn sách có cùng tiêu đề (“
Software
Craftsmanship: The New Imperative”). Cuốn này thiên
về lí luận, “cãi nhau” với truyền thống là chính, ít
hướng dẫn thực hành. Có lẽ do đó mà ít phổ biến.
Năm 2008,
Robert Cecil Martin, biệt danh là
Uncle Bob xuất bản
Clean Code: A Handbook of Agile
Software Craftsmanship, khẳng định về một thứ
trường phái có sách vở, có quy củ đàng hoàng. Ngày
nay, lập trình viên khắp nơi trên toàn cầu coi cuốn
này không khác gì bảo bối. Thực tế là có những
framework lập trình đã đưa “clean code” vào tiêu
chuẩn để chuẩn hóa code cho coder. Chú Bob còn
đi xa hơn nữa khi cho xuất bản “
The Clean Coder: A
Code of Conduct for Professional Programmers” vào
năm 2011, đánh dấu bước hoàn thiện về một “lề
luật”, “đạo đức nghề nghiệp (code of conduct)” cho
cánh lập trình viên hiện đại. Lập trình viên phải là
nghệ nhân phần mềm, chị ta phải biết viết mã sạch
(clean code).
Dương Trọng Tấn
CEO Agilead Global
“In spite of the rise of Microsoft and other giant
producers, software remains in large part a craft
industry. Because of the enormous variety of spe-
cialized applications, there will always be room
for individuals to write software based on their
unique knowledge.”
Chia sẻ với bạn bè của bạn: