Túi càn khôn của lập trình viên Agile cần trang bị những gì?
Last updated: August 16, 2024 Xem trên toàn màn hình
- 04 Mar 2020 Kinh nghiệm lập dự toán chi phí dự án phần mềm theo phương pháp Man-Month
- 01 Feb 2022 Thách thức với doanh nghiệp chuyển đổi số trong thời đại VUCA
- 01 Aug 2022 "Sponsored Content" là gì? Khác nhau giữa Sponsored Content và Native Advertising?
- 14 Aug 2022 Khác biệt giữa tiêu chí hoàn thành DOD (Definition of Done) với tiêu chí nghiệm thu (Acceptance Criteria)
- 15 Apr 2020 Phần mềm BPM là gì? So sánh với ERP và các phần mềm Workflows
Giới thiệu sách “Practices of an Agile developer”
Có một câu hỏi đơn giản: “Một lập trình viên (LTV) theo trường phái Agile cần phải làm những gì?” Hóa ra lại không đơn giản. Có người thì nói rằng “không khác gì một LTV bình thường”, có người thì nói “phải siêu hơn LTV bình thường”, có người thì nói “làm gì có LTV Agile, chỉ có một LTV thôi”, thậm chí có người cố tình hỏi vặn: “Agile là gì?”.
Cho dù được dạy trực tiếp ở trường Đại Học hay được thấm nhuần tư duy lập trình kiểu "nghĩ đâu code đến đó" một cách tự nhiên trong những ngày đầu thực tập, các LTV thường bắt đầu sự nghiệp của mình bằng cách sử dụng mô hình thác nước (Waterfall) hoặc mô hình chữ V. Chưa hết, đây không phải là những lựa chọn phát triển phần mềm duy nhất. Trong quá trình nâng cao "võ công" lập trình sư (guru), cải thiện kỹ năng và tích lũy kinh nghiệm, việc các LTV chuyển sang phát triển phần mềm linh hoạt (Agile) ngày càng trở nên phổ biến.
Xin được thuyết minh ngắn gọn: một “lập trình viên Agile” (Agile Developer) là một lập trình viên (developer) làm việc trong các nhóm phát triển phần mềm có sử dụng các phương pháp phát triển phần mềm linh hoạt (Agile Software Development). Vì thế, câu hỏi “một LTV Agile cần phải làm những gì?” sẽ dẫn đến những công việc đặc thù (hoặc không đặc thù) mà một LTV Agile phải làm để hoàn thành nhiệm vụ; nếu chưa thể làm tốt vì thiếu hiểu biết hay thiếu kĩ năng thì cũng biết là mình không biết để còn học tập và nâng cao tay nghề, đặc biệt là cho những LTV chỉ quen làm việc theo các phương pháp phát triển truyền thống. Đó thực sự là một câu hỏi nghiêm túc. Thật may mắn, có vài cuốn sách trả lời câu hỏi trên, trong đó phải kể đến cuốn “Practices of an Agile developer” (dịch là: Một số “mánh” của LTV Agile”), tác giả Venkat Subramaniam và Andy Hunt.
Các tác giả dành một chương để giúp bạn đọc hiểu được Agile là gì với việc diễn giải Tuyên ngôn Linh hoạt (Manifesto for Agile Software Development) mà một trong hai tác giả của cuốn sách – Andy Hunt – là đồng tác giả của tuyên bố nổi tiếng này, cũng là đồng sáng lập tủ sách thực tiễn – Pragmatic Bookshelf với rất nhiều tựa sách có giá trị cùng những bình luận quan trọng liên quan đến triết lý Agile. Chương tiếp theo được dùng để thảo luận về những vấn đề chung nhất khi làm việc trong các nhóm linh hoạt (agile team) như làm việc theo mục tiêu, trách nhiệm đảm bảo chất lượng, bản lĩnh trong công việc.
Tác giả dành cả chương 3 để nói về tầm quan trọng của việc học – một tinh thần cơ bản của Agile – và các “mánh” để một LTV Agile liên tục nuôi dưỡng sự tiến bộ. 5 chương tiếp theo, các tác giả mô tả khá chi tiết theo "tinh thần hành dụng" (pragmatic) những công việc thiết yếu mà một LTV Agile phải làm hằng ngày. Hiểu đúng yêu cầu của người dùng và chuyển giao đúng cái khách hàng muốn, cung cấp và sử dụng những phản hồi thật hiệu quả khi phát triển, lập trình theo “phong cách” Agile với những kĩ thuật đặc thù và yêu cầu khắt khe về chất lượng công việc, gỡ rối (debug) theo “phong cách” Agile, và cộng tác hiệu quả trong nhóm làm việc.
Chương cuối cùng được dùng để vừa tóm tắt, vừa hướng dẫn thiết lập một môi trường tiêu chuẩn để một LTV Agile có thể làm việc hiệu quả.
Đây là một cuốn sách mỏng, theo tinh thần thực dụng, vì thế khá ngắn gọn, dễ hiểu và dễ áp dụng. Bỏ qua một số phần dính dáng đến kỹ thuật liên quan tới phiên bản phần mềm, đây là một cuốn sách nhập môn quan trọng cho mỗi LTV Agile trước khi chúng ta có thể đi sâu hơn vào nghiên cứu và thực hành từng phương diện đặc thù của một “nghệ nhân phần mềm” trong tương lai.