Lập trình linh hoạt
Lập trình linh hoạt hay phát triển phần mềm linh hoạt (tiếng Anh: Agile software development hay Agile programming) là một cơ chế thực hiện các dự án công nghệ phần mềm, cơ chế này bao gồm và khuyến khích các thay đổi mang tính tiến hóa trong toàn bộ vòng đời của dự án.
Có nhiều phương pháp phát triển phần mềm linh hoạt. Đa số các phương pháp này cố gắng cực tiểu hóa rủi ro bằng cách phát triển phần mềm trong các khung thời gian ngắn, gọi là các bước lặp, mỗi bước lặp thường trong khoảng từ 1 đến 4 tuần. Mỗi bước lặp tự nó giống như một dự án phần mềm thu nhỏ, bao gồm tất cả các tác vụ cần thiết để cho ra nâng cấp mi-ni của chức năng mới: lập kế hoạch, phân tích yêu cầu, thiết kế, viết mã, kiểm thử, và viết tài liệu. Tuy một bước lặp có thể không bổ sung đủ chức năng để đảm bảo sự ra đời của sản phẩm cuối cùng, nhưng một dự án phần mềm linh hoạt nhằm đến việc cho ra phần mềm mới khi kết thúc mỗi bước lặp. Trong nhiều trường hợp, người ta đạt được mục tiêu này. Điều này đặc biệt đúng đối với phần mềm ứng dụng web. Cuối mỗi bước lặp, bất kể kết quả như thế nào, nhóm phát triển phần mềm cũng đánh giá lại các ưu tiên của dự án.
Các phương pháp phát triển phần mềm linh hoạt nhấn mạnh tầm quan trọng của giao tiếp thời gian thực, giao tiếp trực tiếp mặt-đối-mặt được đánh giá cao hơn giao tiếp qua các tài liệu viết. Hầu hết các đội phát triển linh hoạt được tập trung trong một môi trường có điều kiện thuận lợi cho việc giao tiếp, và các đội này bao gồm cả các lập trình viên và các "khách hàng" của họ (khách hàng là người định nghĩa sản phẩm; họ có thể là các quản lý sản phẩm, các nhà phân tích doanh nghiệp (business analyst), hoặc các khách hàng thực sự). Đội còn có thể bao gồm cả các chuyên gia test, thiết kế tương tác, những người viết tài liệu kỹ thuật, và các quản lý.
Các phương pháp phát triển phần mềm linh hoạt còn nhấn mạnh khả năng hoạt động của phần mềm như là phương thức chính yếu để đánh giá tiến độ. Cùng với việc đánh giá cao giao tiếp trực tiếp, các phương pháp tạo ra rất ít tài liệu khi so sánh với các phương pháp khác. Điều này dẫn đến phê phán rằng các phương pháp phát triển linh hoạt không có tính kỷ luật.
| Bài này còn sơ khai. Mời bạn góp sức viết thêm để bài được hoàn thiện hơn. Xem phần trợ giúp về cách sửa bài. |
Liên kết ngoài [sửa]
Tiếng Anh:
- Manifesto for Agile Software Development
- The Agile Alliance
- Post-Agilism: Process Skepticism by Jonathan Kohl (This is where the term "post-Agilism" first appeared in the blogosphere.)
- Why Agile Software Development Techniques Work: Improved Feedback
- Risk based selection for agile iterative lifecycle methods
- "The Demise of the Waterfall Model Is Imminent" and Other Urban Myths
- Agile, Multidisciplinary Teamwork by Gautam Gosh
- Agile Requirements by Rachel Davies
- Two Ways to Build a Pyramid by John Mayo-Smith
- Levent Gurses (2006-11-01). “10 Mistakes in Transitioning to Agile: Slow down the transition in order to go fast”. Dr. Dobb's Journal.
- Breaking the Major Release Habit - Why are long iterations a hard habit to break?
- Agile Toolkit Podcast - Conversations and Interviews related to Agile Software Development
- Video - Why does Agile Software Development pay? - by OutSystems
- Agile Modeling: Effective Practices for XP and RUP by S.W. Ambler.
- TechBookReport An archive of book reviews devoted to a range of software methodologies, particularly Agile (including Scrum, XP and other agile processes.
- Agile Methodology Overview - OutSystems Agile Methodology Overview