- Thoả mãn yêu cầu của khách hàng thông qua việc giao sản phẩm sớm và liên tục
- “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”
- Chúng ta hãy break nguyên tắc 1 này thành 3 phần và cùng bàn về chúng đó là: Khách hàng, giao sản phẩm sớm, có giá trị (valuable) Khách hàng
- Thoả mãn yêu cầu của khách hàng là ưu tiên cao nhất trong quản lý dự án agile. Việc nhận định khách hàng thuộc đối tượng nào, ở trong hay ngoài công ty không quá cần thiết. Điều quan trọng hơn ở đây là chúng ta cần biết dự án cần làm gì cho khách hàng và làm thế nào để tương tác một cách tốt nhất với khách hàng, thoả mãn với những gì mà họ cần. Điều đó có nghĩa là việc quản lý dự án agile không chỉ đơn thuần là hoàn thành list các việc được yêu cầu mà không quan tâm đến những gì họ cần, hay có ảnh hưởng gì đến khách hàng hay không.
- Giao hàng sớm (early .... delivery)
- Việc giao sản phẩm sớm là điều cần thiết. Đôi khi bạn muốn giữ lại vì phần đó chưa hoàn thành, muốn giành thêm thời gian để cải thiện nó và không muốn nhận những lời phê bình từ người khác. Tuy nhiên bạn cũng sẽ không muốn tốn thêm thời gian để làm những những thứ mà khách hàng không muốn đâu. Mà để khách hàng có thể confirm tiến độ công việc đang đúng như yêu cầu, có những feedback sớm thì con đường tốt nhất vẫn là việc chúng ta nên giao sản phẩm sớm cho khách hàng.
- Dù chúng ta có đang quản lý cái gì đi nữa thì chúng cũng nên quy về cái cuối cùng đó là có giá trị. Nếu như khách hàng, end users không công nhận giá trị đó thì có lẽ nó không có giá trị gì với họ ngay từ lúc bắt đầu phát triển. Hoặc là nó đã không được phát triển theo đúng hướng để có thể tạo ra những giá trị, trải nghiệm cho khách hàng.
- Đây là một nguyên tắc khá là nặng nề nhỉ, chắc vì thế mà nó là nguyên tắc đầu tiên, và nó yêu cầu "ưu tiên cao nhất"
- Chào đón việc thay đổi yêu cầu, thậm chí là những thay đổi yêu cầu muộn
- “Welcome changing requirements, even late in development. Agile processes harness changes to the customer’s competitive advantage.”
- Nguyên tắc số 2 là một sự thay đổi lớn cho những người đã quản lý hay làm việc với phương thức quản lý truyền thống. Nội dung của nó đã rất rõ ràng đó là chúng ta chào đón việc thay đổi yêu cầu từ khách hàng, kể cả khi mà phần lớn công việc đã được làm xong đi chăng nữa. Và chúng ta nên chấp nhận thay đổi với thái đội vui vẻ thay vì kêu ca phàn nàn. Điều này chưa từng nghe ở các phương thức quản lý ở project khác, nhưng nó là một phần cuộc sống của Agile ^^
- Khách hàng đã nhận được sản phẩm sớm, thường xuyên. Do đó mà họ có thể nhìn thấy được tiến triển cũng như những vấn đề trong dự án. Vì vậy mà những thay đổi của họ đa phần là đều có ý nghĩa. Thay vì kêu ca phàn nàn chúng ta hãy tìm hiểu, bàn luận với khách hàng để xử lý những yêu cầu thay đổi một cách trơn tru nhất ^^
- Giao phần mềm chạy được cho khách hàng một cách thường xuyên (giao hàng tuần hơn là hàng tháng)
- “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.”
- Nguyên tắc số 3 focus vào sự cần thiết của tốc độ giao hàng. Khoảng thời gian giao sản phẩm cho khách hàng được quy định tuỳ theo độ lớn của project. Tuy nhiên,khoảng thời gian ngắn hơn vẫn luôn được ưa thích hơn cả. Nó đặc biệt quan trọng khi chúng ta và khách hàng cần confirm để có những quyết định hay lựa chọn trong sản phẩm. Khi đó việc thường xuyên kiểm tra sản phẩm là chìa khoá để dự án được phát triển tốt nhất. Càng gửi sớm chúng ta càng có cái để thảo luận với khách hàng và đi đến những quyết định cho dự án.
-
Nhà kinh doanh và kỹ sư lập trình phải làm việc cùng nhau hàng ngày trong suốt dự án
- “Nhà kinh doanh” ở đây được hiểu nôm na là khách hàng của dự án, những người tài trợ cho dự án. Đội phát triển phải làm việc thường xuyên và gần gũi với khách hàng để hiểu được nhu cầu của họ cũng như cho phép khách hàng hiểu về công việc của đội phát triển. Đó là một trong những lí do mà Agile dường như khó triển khai trong các dự án offshore trong đó rào cản về địa lý, thời gian, ngôn ngữ là một trở ngại lớn.
-
Các dự án được xây dựng xung quanh những cá nhân có động lực. Cung cấp cho họ môi trường và sự hỗ trợ cần thiết, và tin tưởng họ để hoàn thành công việc
- Như đã chia sẻ, Agile đặt trọng tâm là con người. Con người ở đây chỉ những cá nhân có động lực làm việc với tinh thần cộng tác, chia sẻ và giúp đỡ lẫn nhau. Song song đó, đội dự án sẽ được hỗ trợ những công cụ, môi trường, sự tin tưởng và những đãi ngộ cần thiết để hoàn thành công việc.
-
Trao đổi trực tiếp mặt đối mặt là phương pháp hiệu quả nhất để truyền đạt thông tin
- Khi có bất cứ vấn đề phát sinh nào, trao đổi mặt đối mặt là cách hiệu quả nhất để tìm ra nguyên nhân.
- Nếu không thể trao đổi mặt đối mặt thì mới chọn cách giao tiếp khác như gọi điện, nhắn tin.
-
Phần mềm chạy được là thước đo chính của tiến độ
- Đây là dự án phần mềm, nếu phần mềm chạy chưa đúng và đủ yêu cầu, thì xem như chưa hoàn thành.
- Luôn sẵn sàng phần mềm luôn có thể chạy được để demo cho khách hàng khi cần.
-
Agile Project khuyến khích phát triển bền vững, Khách hàng, team và người dùng nên duy trì được nhip độ phát triển một cách liên tục
- Phân bổ được thời gian một cách đồng đều và ổn định theo thời gian.
- Không được ở trong trạng thái căng thẳng, mệt mỏi, vì như vậy sẽ gây ra sự chán nản cho nhân viên.
-
Liên tục quan tâm đến kĩ thuật và thiết kế để cải tiến sự linh hoạt
-
Liên tục cải tiến các quy trình, phương pháp, công cụ để tăng mức độ linh hoạt trong dự án.
-
Luôn nghĩ đến những phương pháp mới để code tốt hơn, kiểm thử tốt hơn như TDD (Test-driven development) , ATDD (Acceptance Test-driven development), kiểm thử tự động, CI v.vvv
-
-
Sự đơn giản là cần thiết – nghệ thuật tối đa hóa lượng công việc chưa hoàn thành
- Agile có nghĩa là linh hoạt và để linh hoạt uyển chuyển thì bạn phải tối giản hóa các công việc mình làm.
- Những việc nào cần thiết và mang lại giá trị thì mọi người sẽ cùng làm. Tuy nhiên việc xác định việc nào mang lại giá trị nhiều khi không đơn giản.
- Do đó, để đơn giản thì việc có giá trị là việc mà cả nhóm thống nhất và sẽ cam kết thực hiện. Chẳng hạn cả nhóm có thể thống nhất không phải viết “Báo cáo tiến độ hàng ngày” nếu như mọi người đều biết tiến độ của nhau và sếp của bạn cũng không có nhu cầu đọc
- Tương tự, bạn cũng không nhất thiết phải mô tả một con bug dài lê thê chỉ để theo đúng định dạng của hệ thống bug trong khi bạn đã báo và trao đổi với Dev về con bug đó và họ đã sửa nó. Tuy nhiên hãy cẩn thận -Không phải bạn bỏ đi là bạn linh hoạt và tối ưu hóa công việc. Vấn đề là bạn bỏ đi những thứ không mang lại giá trị.
-
Những bản kiến trúc, yêu cầu, thiết kế tốt nhất được tạo ra từ những team tự tổ chức
- Nguyên tắc này cho chúng ta thấy sự khác biệt hoàn toàn với team trong quản lý dự án truyền thống.Trong quản lý dự án Agile, chúng ta làm việc với những thành viên hiểu biết ở các mức trình độ khác nhau, họ cần phải có người thúc ép hay chỉ dẫn nhỏ nhặt trong công việc.Chúng ta cần phải có niềm tin và trao cho những thành viên khác ít kinh nghiệm hơn để họ có thể tự đưa ra quyết định và sáng tạo của bản thân họ.
- Những cá nhân có ít kinh nghiệm trong team cần có người chỉ dẫn để phát triển. Việc cho phép team tự tổ chức, cho phép họ làm việc gần gũi với nhau hơn, họ sẽ hiểu được giá trị của việc làm việc gắn kết chặt chẽ và học hỏi từ nhau. Một team gắn kết trong suốt dự án sẽ tạo ra những bản thiết kế và xử lý một cách dễ dàng hơn so với các team hoạt động một cách riêng lẻ không có tổ chức. Nếu có lỗi xảy ra, team tự quản lý cũng dễ nhận biết ra lỗi và tìm cách khắc phục nhanh hơn.
-
Thường xuyên nhìn nhận đánh giá làm sao để hiệu quả hơn, từ đó thay đổi và thích ứng
- Nguyên tắc này giúp nhắc nhở chúng ta cần phải thường xuyên nhìn lại và nghĩ về những gì chúng ta đã làm tốt và chúng ta có thể làm gì để tốt hơn nữa.
- Việc đánh giá lại sau mỗi dự án giúp chúng ta giúp chúng ta học rất nhiều thứ. giúp chúng ta đánh giá lại những thành công và những sai lầm mà chúng ta đã mắc phải trong dự án để ngày càng hoàn thiện mình hơn trong công việc. Ngoài ra giúp rút ra được gì từ những lỗi, những sai lầm đó sẽ làm cho bản thân mình, team của mình, tổ chức của mình ngày càng phát triển mạnh hơn, tốt hơn và phù hợp hơn.
- Nếu chúng ta không giành thời gian để kiểm tra và đánh giá những gì mình đã làm, thì chúng ta sẽ không thể rút ra bài học cho bản thân mình.