Viết mã là trụ cột trung tâm của phát triển phần mềm. Tuy nhiên, có nhiều cách khác nhau để đạt được mục tiêu của mã làm việc. Việc tạo ra các sản phẩm phần mềm thành công luôn là một trọng tâm rõ ràng cho ngành phát triển phần mềm, nhưng trong những năm gần đây, các nhà phát triển đã bắt đầu nhấn mạnh việc triển khai các mẫu và thực hành có thể lặp lại và có ảnh hưởng tích cực đến chất lượng của mã. Điều này là bởi vì khái niệm chất lượng mã không còn tách biệt với khái niệm chất lượng trong sản phẩm phần mềm. Theo thời gian, mã kém chất lượng sẽ làm giảm chất lượng của sản phẩm hay ít nhất, nó sẽ trì hoãn việc cung cấp phần mềm đang hoạt động.

Để sản xuất phần mềm chất lượng cao, các nhà phát triển phải cố gắng đảm bảo rằng mã của họ có thể bảo trì, đọc và được kiểm thử. Các quy trình và thực tiễn phát triển phần mềm hiện đại thường được gọi là các quy trình và thực hành Agile, phản ánh khả năng thay đổi hướng nhanh chóng của chúng. Các quy trình Agile đề xuất các cách mà nhóm phát triển phần mềm có thể gợi ra phản hồi nhanh, chuyển sự tập trung, và viết mã phù hợp.

Scrum là một phương pháp luận quản lý dự án. Nói chính xác hơn, nó là một phương pháp Agile. Scrum dựa trên ý tưởng tăng giá trị cho sản phẩm phần mềm theo cách lặp đi lặp lại. Những lần lặp lại này được gọi là sprint. Tất cả công việc được ưu tiên dựa trên hồ sơ công việc tồn đọng (product backlog) và ngay từ đầu của mỗi lần lặp (sprint), nhóm phát triển phải cam kết sẽ hoàn thành các công việc bằng cách đặt chúng trong hồ sơ công việc thực hiện (sprint backlog). Đơn vị công việc trong Scrum là một câu chuyện (story). Hồ sơ công việc tồn đọng là một hàng đợi được ưu tiên gồm các câu chuyện đang chờ xử lý và mỗi sprint được xác định bởi các câu chuyện sẽ được phát triển trong một lần lặp lại.

Scrum hoạt động giống như một dây chuyền sản xuất các tính năng nhỏ của một sản phẩm phần mềm.

Tham khảo: Adaptive Code via C#: Agile coding with design patterns and SOLID principles, Gary McLean Hall.