Be Agile - Agile là gì ?

Hiện tại, bản thân mình đang theo học 1 khóa học về agile, nên ở series này mình sẽ tổng hợp lại những kiến thức, những suy nghĩ mà bản thân đúc kết được về Agile.

Nói về Agile, Scrum thì chắc mọi người đều quá quen thuộc chứ không xa lạ gì nữa. Nhưng mình tin chắc là sẽ không ít người trả lời sai hoặc trả lời không được các câu hỏi dưới đây :

  • Agile là gì ?
  • Scrum là gì
  • Agile khác Scrum như thế nào ?

Với những ai chưa tìm hiểu, mà chỉ biết thoáng qua về Agile và Scrum, mình tin các câu trả lời sẽ kiểu dạng như thế này :

Agile chính là Scrum Agile (Scrum) là Meeting daily buổi sáng, là develop mà không cần tạo tài liệu, là có Planning meeting, restro meeting ....

Bản thân mình trước đây cũng như vậy, rất mơ hồ về khái niệm của Agile và Scrum. Ở dự án chúng ta có thực hiện meeting sáng daily, chúng ta tự gọi dự án chúng ta là đang triển khai theo mô hình Agile. Dự án chúng ta chia sprint từng tuần, thực hiện Planning meeting, restro meeting, chúng ta tự tin là dự án chúng ta đang triển khai theo mô hình Agile. Tình trạng như vậy, mình gọi là chúng ta chỉ biết về phần NGỌN của Agile, chứ chưa hiểu về phần GỐC của Agile. Vậy thực tế thì :

  • Agile là gì ?
  • Scrum là gì
  • Agile khác Scrum như thế nào ?

Agile là mindset, là cách suy nghĩ, là một tư tưởng. Và Scrum là framework, là mô hình thực hiện để tạo ra được trạng thái Agile.

Nhắc lại một lần nữa, Agile là mindset, là cách suy nghĩ, là một tư tưởng. Và Scrum là framework, là mô hình thực hiện để tạo ra được trạng thái Agile.

Theo flow thì nó sẽ như thế này, khái niệm về Agile được ra đời. Mọi người thấy là tư tưởng này rất tuyệt, nếu áp dụng vào thì tỉ lệ thành công của dự án sẽ cao hơn, nên họ tìm cách để hiện thực hóa tư tưởng đó. Vậy câu hỏi đặt ra là ta phải làm gì thì mới tạo ra được trạng thái Agile, tư tưởng Agile đó cho dự án của mình. Và Scrum ra đời. Việc thực hiện meeting sáng daily, chia sprint từng tuần, planning meeting, restro meeting ... chính là các practice được quy định bên trong Scrum. Bên cạnh Scrum cũng có nhiều framework khác để hiện thực hóa Agile, nhưng Scrum có vẻ là được áp dụng và biết đến rộng rãi trên khắp thế giới hơn.

Ok, chúng ta đã hiểu về khái niệm Agile và Scrum. Vậy câu hỏi đặt ra là, nếu dự án của tôi thực hiện theo framework Scrum, có meeting sáng daily, chia sprint theo tuần, planning meeting ... thì dự án của tôi đã Agile chưa ? Câu trả lời là chưa chắc. Hệ tư tưởng Agile có 3 cột chính là :

  • Transparency : tính trong suốt
  • Inspection : tính kiểm tra
  • Adaptation : tính thích ứng

Nếu dự án của bạn có được 3 yếu tố trên, thì dự án của bạn đã Agile, dù là thực hiện theo mô hình Scrum hay hay bất cứ mô hình gì đi nữa. Vậy các practice bên trong Scrum giúp ích gì đối với 3 cột chính của Agile ?

Meeting sáng daily : mọi người share tình hình task, issues cho nhau, không có gì che giấu cả, thông tin là trong suốt đối với tất cả mọi người. Chia sprint theo tuần, planning meeting, restro meeting : Product Owner sẽ đưa ra các ý tưởng, team thực hiện implement trong 1 sprint. Sau khi kết thúc sprint thì cùng ngồi restro sẽ kiểm chứng được ý tưởng, giả thuyết mà Product Owner đưa ra có đúng không, phù hợp cho user không. Nếu chưa phù hợp thì ngay lập tức đưa ra điều chỉnh và thực hiện được ở sprint tiếp theo được.

Từ đầu đến giờ chúng ta cứ nói liên tục là Agile, phải trở thành trạng thái Agile, phải đạt được tư tưởng Agile. Vậy ở đây lại đặt ra câu hỏi là, việc đạt được trạng thái Agile thì sẽ đem tới lợi ích, hiệu quả hay ích lợi gì ?

Theo mình nghĩ, lí do quan trọng nhất chính là, Agile sẽ giúp chúng ta sớm phát hiện ra được vấn đề. Vậy, việc phát hiển ra vấn đề sớm hay muộn thì giúp ích như thế nào ?

Nếu trả lời câu hỏi trên trong phạm vi dự án IT, thì quá đơn giản rồi, chắc dân IT đều có thể trả lời được, nên mình skip. Trả lời một cách trừu tượng, cool ngầu sẽ như thế này :

Con người vì lí do gì mà tồn tại trên cuộc đời. Theo mình nghĩ, con người tồn tại để giải quyết các vấn đề. Sự tồn tại của con người là việc liên tục giải quyết các vấn đề khác nhau. Nếu một người tồn tại mà không giải quyết bất cứ vấn đề nào, thì sự tồn tại của người đó là vô nghĩa. Cho nên, nếu chúng ta không phát hiện ra được vấn đề để giải quyết, thì sự tồn tại của chúng ta là không có ý nghĩa.