24 điểm bởi GN⁺ 2024-09-27 | 17 bình luận | Chia sẻ qua WhatsApp

"Agile không còn là Agile nữa, nên đã đến lúc Agile cùng với Jira phải cùng biến mất"

  • Chu kỳ phát triển phần mềm ngày càng dài hơn, các đội ngũ kỹ thuật ngày càng lớn hơn, quản lý phát triển cần ngày càng nhiều ứng dụng hơn, số người thực sự viết code thì ngày càng ít đi, và trong những khoảng thời gian ngày càng ngắn hơn, mức tiến triển giữa các điểm kiểm tra liên tục lại ngày càng giảm
  • Agile đã đi chệch hướng từ đâu?
    • Agile là một phương pháp được phát triển vào đầu những năm 2000 như một giải pháp thay thế cho quy trình phát triển phần mềm nặng nề, dựa trên tài liệu của thời trước
    • Nhưng hiện nay, Agile đang bị biến chất thành một phương pháp quản lý dự án phức tạp kiểu cũ

Phình to công nghệ (Tech Bloat) là vấn đề chính

  • Lý do chính khiến nhiều người từ bỏ hoặc muốn từ bỏ Agile là vì tình trạng phình to công nghệ
  • Phình to công nghệ là kẻ thù của mọi công ty công nghệ, và cũng là rủi ro với cả các công ty không phải công nghệ nhưng có đội phát triển nội bộ hoặc thuê ngoài
  • Phình to công nghệ khác với technical debt, nhưng lại tạo ra technical debt
  • Các triệu chứng của phình to công nghệ gồm có:
    • Liên tục trò chuyện với khách hàng nhưng không trở thành chuyên gia về hành vi của khách hàng
    • Không ngừng đánh giá và đánh giá lại deadline và ngày bàn giao
    • Cực kỳ ngần ngại bắt đầu quy trình phát triển cho đến khi mọi chi tiết đều được tài liệu hóa
    • Có động lực bắt đầu từ những việc dễ nhất thay vì những việc rủi ro nhất

Những hệ quả hỗn loạn của phình to công nghệ

  • Tăng tài liệu hóa
    • Việc tài liệu hóa để theo dõi không chỉ "đã phát triển cái gì và vì sao" mà cả "đã phát triển như thế nào" len lỏi vào toàn bộ quy trình
    • Cái "như thế nào" này trở thành trọng tâm của các bản cập nhật trạng thái, khiến đội ngũ liên tục đánh giá lại cách họ đang làm việc
    • Các nhóm dành nhiều thời gian để bàn tại sao công việc chưa hoàn thành hơn là để thực sự hoàn thành công việc
  • Thiết lập deadline dày đặc
    • Nhiều deadline hơn được đặt ra ở các điểm kiểm tra thường xuyên hơn, về bản chất tạo ra vi quản lý ở mọi khúc ngoặt của một quy trình vốn mang tính sáng tạo
    • Điều này đi ngược lại việc tạo ra phần mềm chất lượng, vì mọi công việc đều bị buộc phải giao đúng hạn bất kể được thực hiện tốt đến đâu
  • Sự hoài nghi không ngừng trong quá trình đánh giá lại
    • Sự hoài nghi liên tục trong các giai đoạn đánh giá lại khiến best practice không được xác lập, lãng phí không bị loại bỏ và lợi thế kinh tế theo quy mô không được nhận ra
  • Vi quản lý quá trình sản xuất
    • Khi khoảng 30% của toàn bộ tính năng đã hoàn thành thì nó đã không còn là ưu tiên nữa
    • Tổ chức rơi vào vòng xoáy chết chóc là cứ sản xuất những gì có trong roadmap, bất kể roadmap đó còn định nghĩa việc xây dựng một sản phẩm thành công hay không
  • Kết quả cuối cùng
    • Sản phẩm phải oằn mình dưới sức nặng của các yêu cầu khách hàng đa dạng và mâu thuẫn
    • Các tính năng thường ra thị trường quá muộn, và được cung cấp theo cách và thứ tự phù hợp nhất với đội kỹ thuật chứ không phải với thị trường
    • Cuối cùng đội sales/marketing phản ứng dữ dội vì họ không biết mình đang bán cái gì, còn khách hàng cũng không biết mình đang mua cái gì
    • Rồi tổ chức bắt đầu một đợt thanh lọc quy mô lớn

Thế giới cần phần mềm gọn nhẹ làm tốt những việc quan trọng, chứ không phải nhiều tính năng hơn

  • Đây không phải là một khái niệm mới, nhưng lại là khái niệm mà mọi phương pháp cuối cùng đều rời xa
  • Cuối cùng người ta bắt đầu hỏi liệu phương thức Toyota có còn đủ "Toyota" đối với chính Toyota hay không, và điều đó lại trở thành một công việc tạo thêm việc
  • Agile giờ đã trở thành một PMP với cái tên dễ thương hơn, các cuộc họp ngắn hơn và nhiều quy tắc hơn
  • Vấn đề không nằm ở ý tưởng Agile mà ở việc thực thi và sự thiếu vắng năng lực lãnh đạo để kiểm soát nó
  • Đó là vấn đề của tầng lớp quản lý trung gian, những người tập trung vào deadline hơn là tính hữu ích, vào cắt giảm hơn là tăng trưởng, vào tiết kiệm hơn là tiến bộ

Ý kiến của GN⁺

  • Trái với ý định ban đầu, Agile đang bị quan liêu hóa và hình thức hóa, trở thành một yếu tố làm chậm phát triển phần mềm
  • Phình to công nghệ không chỉ là rủi ro cần cảnh giác trong Agile mà còn trong mọi tổ chức công nghệ
    • Tài liệu hóa, đặt deadline, vi quản lý... có thể ngược lại làm giảm cả chất lượng lẫn tốc độ
  • Bản chất của Agile nằm ở khách hàng làm trung tâm, hợp tác và tính linh hoạt, vì vậy cần nhớ lại các nguyên tắc thay vì bị trói buộc vào hình thức
  • Điều quan trọng trong phát triển phần mềm không phải là có thêm nhiều tính năng, mà là thực hiện tốt các tính năng cốt lõi
  • Văn hóa tổ chức và năng lực lãnh đạo quyết định thành bại của Agile, nên các nhà quản lý kỹ thuật cần chú ý đến điều này
  • Có lẽ đã đến lúc tìm kiếm những phương pháp mới vượt ra ngoài Agile

17 bình luận

 
dajoa 2024-09-30

Tôi chưa xem đến hết vì bài gốc là bài trả phí, nhưng có lẽ nên gọt lại cách diễn đạt trong bản dịch một chút. "Vì Agile không còn là Agile nữa, nên giờ đã đến lúc Agile phải cùng Jira biến mất" => "Vì Agile đã ngừng being agile, nên giờ đã đến lúc Agile phải cùng Jira biến mất"

Ở đây có khái niệm phân biệt giữa Agile viết hoa và agile viết thường, và being agile với doing agile tuy có liên hệ với nhau nhưng vẫn được xem là hai khái niệm riêng. being agile by doing agile.

 
ahwjdekf 2024-09-28

Lý do áp dụng Agile mới là điều quan trọng. Có phải áp dụng để phát triển tốt hơn không? Không, là vì tôi không chịu nổi cảnh các anh ngồi chơi. Để tôi xem các anh chăm chỉ đến mức nào. Người ta áp dụng với kiểu tư duy như vậy đấy. Thế nên nó mới thành địa ngục.

 
carnoxen 2024-09-27

Đến mức này thì có vẻ cần một checklist kiểm tra mức độ tuân thủ Agile rồi.

 
silbi 2024-09-27

Trước cả chuyện là agile hay waterfall, nếu con người, văn hóa và môi trường vẫn y nguyên thì dù có áp dụng phương pháp phát triển mới lạ đến đâu cũng chỉ còn con đường bị “Hàn Quốc hóa” kiểu K-OOO.

 
[Bình luận này đã bị ẩn.]
 
regentag 2024-09-28

Nếu (gần như) không có thay đổi về yêu cầu thì đúng là từ góc độ người làm phát triển, Waterfall thực sự là một cách làm rất thoải mái. Miễn là không có thay đổi về yêu cầu mà thôi…

 
[Bình luận này đã bị ẩn.]
 
koreaisbest 2024-09-27

Agile kiểu Hàn thì chẳng thấy được đánh giá lại gì cả.!
Khách hàng: Nút ở màn hình này đặt chỗ này có vẻ tốt đấy
Lập trình viên: (Thế là lại phải thức đêm rồi, còn cả việc mới nữa chứ)
Khách hàng: Ở màn hình khác cũng nên có nút nữa nhỉ
Lập trình viên: (Ai đó làm ơn dùng thuật phân thân giúp tôi với) Vâng haha..
Khách hàng: Vẫn chưa xong à? Theo lịch thì đáng lẽ phải xong hết rồi chứ?
Lập trình viên: (Cứu tôi với) Vâng..;;

 
kimjoin2 2024-09-27

Không có nhiều trường hợp Agile được vận dụng đúng chất Agile và duy trì lâu dài,
Có vẻ phần lớn các tổ chức cuối cùng đều hội tụ về công việc kiểu waterfall với thời hạn gấp.

 
sice81 2024-09-27

Vấn đề không nằm ở Agile. Vấn đề là ở con người thực hiện nó. Dù mang đến bất kỳ phương pháp luận nào, cuối cùng vẫn là chuyện người thực hiện vận dụng nó ra sao. Tôi cho rằng Agile không phải là một phương pháp luận, mà gần hơn với một tinh thần phát triển sản phẩm theo từng chu kỳ. Nếu bỏ lỡ điều đó và chỉ mù quáng lập kế hoạch rồi hồi tưởng, thì có vẻ chỉ là lãng phí thời gian.

 
kandk 2024-09-27

Tôi cứ tưởng chỉ có kiểu Agile kiểu Hàn mới như vậy, hóa ra đây là hiện tượng toàn cầu.

 
galadbran 2024-09-27

Cảm giác như họ cứ liên tục đánh vào sai chỗ vậy... Lẽ ra phải đánh giá xem nó có phù hợp với Tuyên ngôn Agile hay không chứ...

 
beoks 2024-09-28

Ngay cả uncle bob, người tham gia Tuyên ngôn Agile, cũng đã sớm hiểu vấn đề này và xuất bản cuốn Clean Agile vào năm 2019 để sửa chữa Agile bị áp dụng sai, vậy mà đến giờ những vấn đề như thế này vẫn tiếp diễn. Cá nhân tôi cho rằng nguyên nhân là vì Agile không có bộ hướng dẫn tiêu chuẩn và lại sử dụng khái niệm mơ hồ là "văn hóa". Tôi mong sẽ có những hướng dẫn tiêu chuẩn cụ thể được đưa ra.

 
savvykang 2024-09-27

Có lẽ tác giả sẽ chủ trương rằng bất kỳ phương pháp luận nào, một khi đã trở nên quan liêu, thì nên vứt bỏ.

 
castedice 2024-09-27

Tôi đồng ý. Có vẻ như ngày càng nhiều trường hợp làm Agile sai cách rồi lại nói rằng Agile là sai.
Mặt khác, tôi cũng nghĩ rằng dù đã xuất hiện khá lâu, việc xây dựng thực hành cho tốt vẫn khó, và có lẽ đó là điều không thể tránh khỏi.

 
brainer 2024-09-27

Rốt cuộc lại quay về như ban đầu sao?

 
GN⁺ 2024-09-27
Ý kiến Hacker News
  • Vấn đề của Agile

    • Với vai trò giám đốc kỹ thuật tại một công ty, có một đội Scrummaster độc lập chỉ điều phối buổi standup buổi sáng, còn lại thì không rõ họ làm gì trong thời gian còn lại
    • Đã giảm vai trò của đội Scrummaster và để các nhóm tự vận hành, qua đó phát triển thành các nhóm nòng cốt của công ty
    • Đội Scrummaster giảm còn một nửa
  • Các nguyên tắc của Agile Manifesto

    • Coi trọng cá nhân và tương tác hơn quy trình và công cụ
    • Coi trọng phần mềm hoạt động được hơn tài liệu toàn diện
    • Coi trọng hợp tác với khách hàng hơn đàm phán hợp đồng
    • Coi trọng phản hồi với thay đổi hơn việc bám theo kế hoạch
  • Cốt lõi của Agile

    • Mục tiêu của Agile không phải là tăng tốc độ phát triển
    • Điều quan trọng là tránh các tính năng không cần thiết và giảm lãng phí
    • Thông qua các vòng lặp nhỏ để tránh thiết kế quá lớn và ngăn các tính năng có ROI thấp
    • JIRA chỉ là một hệ thống theo dõi issue, không phải nguyên nhân của vấn đề giao hàng
  • Tính linh hoạt của Agile

    • Agile không phải là một phương pháp luận cố định, mà cần được vận hành linh hoạt để phù hợp với từng nhóm và tổ chức
    • Mỗi dự án có thể có các bên liên quan khác nhau, nên cần phản ứng linh hoạt
  • Ý kiến về JIRA

    • JIRA hữu ích để đọc issue và dự án, thêm bình luận, và kiểm tra xem công việc đã hoàn thành hay chưa
    • Lý do đa số mọi người ghét JIRA là vì tổ chức dùng sprint và point như công cụ quản lý
    • JIRA ổn nếu chỉ dùng như một công cụ đơn giản để theo dõi công việc và bug
    • Agile và JIRA là hai thứ tách biệt, và có nhiều bất mãn nhắm vào chính quy trình Agile
  • Nguồn gốc của Agile

    • Agile ra đời từ tư vấn phát triển web như một quy trình mang tính phòng vệ để quản lý các khách hàng tệ
    • Điều quan trọng là ghi chép mọi quyết định, tránh timeline cố định, và tạo ra các đầu ra công việc thật chi tiết
    • Đây không phải là cách tốt để làm phần mềm, nhưng là một cách nhất quán
    • Nó hấp dẫn với các doanh nghiệp lớn không chuyên về công nghệ, nơi lợi thế cạnh tranh nằm ở các yếu tố khác ngoài công nghệ và phần mềm chỉ cần hoạt động đủ tốt
  • Hiện trạng của Agile

    • Agile không phải đang chết đi, mà thực ra đã chiến thắng rồi
    • Phát triển lặp đã trở thành nền tảng cơ bản của phát triển phần mềm
  • Vấn đề của JIRA

    • JIRA không phải Agile, mà là phần mềm có quá nhiều tính năng không cần thiết
    • Nếu chỉ cần board và thông báo thì đó là cách dùng sai
  • Ứng dụng của Agile

    • Đã nỗ lực áp dụng các nguyên tắc Agile cho hàng trăm dự án
    • Rất khó vận hành Agile trong các dự án có phạm vi, ngân sách và timeline cố định
    • Nếu xác định được mục tiêu dự án và cách đo lường, có thể điều chỉnh phạm vi theo các tính năng ưu tiên
    • Một số dự án dùng phương pháp Agile, còn các phần khác tiến hành theo kiểu waterfall, tức là dùng cách tiếp cận kết hợp