Chương trình Tô mỳ Minh duy

Giải quyết hiệu quả vấn đề trong những mối quan hệ

Tro choi Ke hoach XP Planning Game

Trò chơi Kế hoạch Lập trình Cực độ

Cấm kỹ thuật tài lanh

Về cơ bản thì trò chơi kế hoạch trong quá trình Lập trình Cực độ chính là để tạo một môi trường cho hai việc sau đây xảy ra:

  • Giới kinh doanh làm những quyết định kinh doanh
  • Giới kỹ thuật làm những quyết định kỹ thuật

    Bạn có lẽ đã cảm nhận rằng chúng ta không cần phải làm gì đặc biệt cả để đảm chắc hai việc này sẽ diễn ra, nhưng các tình huống nơi điều xác đáng ngược lại thực ra thì thường hay xảy ra. Cân nhắc cuộc đàm luận sau đay giữa bên buôn bán và bên phát triển:

    • Đại diện kinh doanh: Tôi cần bên kỹ thuật thực hiện đầy đủ mười chức năng chính trên danh sách này. bao lâu sẽ xong?
    • Kỹ thuật viên: Hình như cần phải có 10 tuần mới làm xong

    • Đại diện kinh doanh: Tôi đã hứa với khách hàng là sẽ xong hết trong vòng năm tuần, vậy các ông phải làm cho được hết trong năm.
    • Kỹ thuật viên: Được rồi, tôi sẽ cố gắng làm những gì có thể được

      Cuộc đàm luận này có tính bất bình thường ở một số các mức độ, nhưng có hai cái đi trật đường. Đầu tiên, bên buôn bán đã quyết định bao lâu sẽ thực hiện xong cái gì đó, đó là điều nên để cho bên kỹ thuật quyết định. Thứ nhì, hầu như chắc là đội phát triển sẽ không làm được hết mọi việc trong năm tuần, vậy họ sẽ phải quyết định cái gì nên làm trước. Khi bên phát triển làm việc này, họ đánh ưu tiên cho các chức năng chính, điều mà ta nên để cho bên kinh doanh quyết định. Bạn có thể quyết định các đàm luận như thế sẽ xảy ra thường xuyên ở sở làm mình hay không.

      Trong một dự án LTCĐ, các mức độ đánh ưu tiên và tuyên thệ được quyết định trong cuộc họp trò chơi kế hoạch, thường xảy ra vào ngày chót của từng chu lặp. Những bước dưới đây có nói về điểm truyện như được giải thích trong đoạn văn kế.

      Truyện hệ được ước lượng qua nhưng đơn vị tương đối. Nếu cần phải có hai ngày để hoàn tất một truyện hệ thì ta cho rằng nó đáng giá một điểm truyện. Một truyện hệ nên mang giá là một, hai hoặc ba điểm. Kêu khách hàng nhập các truyện ít hơn một điểm lại và tách các truyện nhiều hơn là ba điểm.

      Sau đây là các bước trong trò chơi kế hoạch:

      1. Tính ra số điểm hoàn tất truyện hệ trong chu lặp vừa qua

        Số điểm này sẽ là mức độ tuyên thệ, hoặc vận tốc, cho chu lặp kế tiếp. Giả định chu lặp kế tiếp sẽ là như chu lặp trước được gọi là thời tiết hôm qua, bởi vì trên trung bình thời tiết hôm nay là 76% giống như thời tiết hôm qua. Kinh nghiệm các đội LTCĐ cho thấy sự bấp bênh cố hữu trong từng chu lặp sẽ làm sa lầy bất cứ sự cải tiến lý thuyết nào mình có lẽ đã lấy được từ các phương sách tinh vi hơn (và chi phối nhiều thời gian hơn). Nếu có các thay đổi lớn giữa hai chu lặp (ví dụ nửa đội nghỉ hè trong chu lặp kế tiếp), thì chắc phải nhớ trù liệu nhưng không nên để việc nhỏ mọn làm toát mồ hôi.

        Cụ thể, nếu bạn đem thêm người vào đội phát triển, không nên đi trước cho rằng vận tốc dự án sẽ gia tăng. Thay vì vậy, đợi xem cái gì xảy đến và khi đó gia tăng vận tốc so đua với thay đổi như đã được nhận thấy – có thể nó bị tụt lại một tí xíu, nhưng đó chính là lý do tại sao chúng ta giữ các chu lặp ngắn hạn.

      2. Khách hàng chọn truyện cho chu lặp kết tiếp

        Sau khi vận tốc đã xác định, khách hàng chọn các truyện cho chu lặp kế tiếp. Họ nên làm việc này trước hết trên cơ sở giá trị doanh nghiệp, nhưng sự quản lý nguy cơ cũng là một yếu tố. Từng truyện một đã có một tổn phí điểm truyện rồi, và khách hàng có thể tự do chọn bất cứ các truyện nào, miễn sao phí tổn ước lượng không quá vận tốc chu lặp. Nếu có các sự lệ thuộc giữa các truyện, những cái này cần phải được ghi chú và cần phải thế là được lấy ra vào tài khoản, nhưng các sự lệ thuộc truyện nên là sự ngoại lệ chứ không phải là việc thường tình.

      3. Nếu có quá nhiều điểm, các nhà phát triển hỏi khách hàng tách đôi một truyện

        Đôi khi mình không thể làm cho phí tổn các truyện bằng vận tốc chu lặp, ví dụ: tất cả các truyện còn lại là 3 điểm, và vận tốc chu lặp là 10 điểm. Trong trường hợp này, khách hàng cần phải tách đôi một truyện thành truyện phụ nhỏ hơn, mà mỗi cái vẫn còn có ý nghĩa đối với doanh nghiệp. Thí dụ, nếu truyện chính thống là, cho vào các chi tiết khách hàng, chúng ta có thể tách đôi nó ra thành: cho vào các chi tiết đoàn thể khách hàng và ‘cho vào các chi tiết tư nhân khách hàng”.

      4. Ước lượng các truyện hệ mới

        Sau khi tách đôi cái truyện hệ cần tách đôi, các nhà phát triển ước lượng các truyện hệ mới. Tách đôi truyện hệ có thể làm biểu lộ những đòi hỏi mới, hoặc cho thấy vài khía cạnh của truyện không cần phải có, thế nên không bắt buộc rằng ước lượng mới phải cộng lên thành ước lượng trước.

      5. Tách các truyện hệ ra thành các công việc kỹ thuật

        There are multiple ways that a story could be broken into technical tasks, and choosing between them is a design activity. Often this step reveals some uncertainty that needs be resolved in cooperation with the customer.

        truyện hệ được diễn tả bằng ngôn từ kinh doanh, người nào đó cần phải phân chia nó ra thành các công việc kỹ thuật tương ứng. Trong một dự án LTCĐ, việc này là do toàn đội phát triển cùng làm trong cuộc họp trò chơi kế hoạch. Có nhiều cách chia truyện ra thành các công việc kỹ thuật, và chọn lựa giữa các cách đó là một hoạt động thiết kế. Bước này thường hay biểu lộ vài điều bấp bênh cần phải được giải quyết trong sự cộng tác với khách hàng.

      6. Các nhà phát triển nhận trách nhiệm cho các công việc kỹ thuật và các truyện hệ

        Sau khi các truyện được tách ta, từng nhà phát triển một chọn các công việc họ sẽ phụ trách. Quy luật đơn giản cho một đội xưa kia là không ai rời khỏi phòng cho đến khi mọi sự an bài, mặc dù chắc chắn có vài tinh tế tại sao nó xảy ra như thế. Các công việc cũng có điểm liên quan với chúng, nhưng là do do cá nhân quyết định; người đó nhận trách nhiệm cho công việc, và các nhà phát triển chỉ dùng để cân bằng gánh nặng việc làm riêng của họ – để làm chắc họ không ký nhận quá nhiều hoặc quá ít.

        Bây giờ chúng ta sẳn sàn bắt đầu làm chu lặp mới.


        Kế Hoạch Chu Lặp

        Một chu lặp có thể coi như là một loại quy trình công tác. Các chu lặp (iterations) trong văn cảnh một dự án nói về cái kỹ xảo của việc khuếch trương và giao hàng một cách gia tăng các thành phần cho hệ chức năng doanh nghiệp. Điều này hầu hết thường hay liên quan với sự phát triển phần mềm theo phong cách lanh lợi, nhưng có thể tiềm tàng áp dụng được vào bất cứ vật liệu nào khác. Các thành quả của một chu lặp đơn độc có thể là các gói hàng nhỏ nhưng hoàn tất của việc làm dự án mà có thể cùng nhau trình diễn vài chức năng doanh nghiệp hữu hình. Thực hiện nhiều chu lặp để tạo lập một sản phẩm tích hợp có đầy đủ tất cả các chức năng mong đợi. Cách này thường hay được so sánh với phương sách mô hình thác nước.

        Nên gọi một cuộc hội họp nhằm ra kế hoạch chu lặp vào lúc ban đầu của từng chu lặp để ra kế hoạch cho các công việc lập trình trong chu lặp đó. Mỗi chu lặp dài từ một đến 3 tuần. Các truyện hệ đã được khách hàng tuyển chọn cho chu lặp này từ cái kế hoạch phóng thích trong thứ tự truyện quý giá nhất đối với khách hàng nằm trước hết. Các cuộc trắc nghiệm chấp thuận bị hỏn cần phải được sửa chữa cũng được tuyển. Khách hàng lựa các truyện hệ với ước lượng tổng số lên đến vận tốc dự án từ chu lặp vừa rồi.

        Các truyện hệ và các cuộc trắc nghiệm đã hỏn được tách ra thành các công việc lập trình mà sẽ ủng hộ chúng. Các công việc được viết xuống thành văn bản vào mấy tấm thiếp như là các truyện hệ. Trong lúc các truyện hệ dùng ngôn ngữ khách hàng, các công việc viết bằng ngôn ngữ của nhà phát triển. Các công việc giống hệt nhau phải dẹp qua. Những tấm thiếp này sẽ là kế hoạch chi tiết cho chu lặp đó.

        Các nhà phát triển tự nhận làm các công việc và khi đó ước lượng bao lâu họ sẽ hoàn tất các công việc mình. Điều quan trọng là nhà phát triển chấp nhận một việc cũng là người ước lượng bao lâu nó sẽ kết thúc. Không hoán đổi con người được và người mà sẽ làm việc phải ước lượng công việc sẽ tốn bao lâu.

        Mỗi việc nên ước lượng dài 1, 2, hoặc 3 ngày lập trình lý tưởng trong thời kỳ đó. Những ngày lập trình lý tưởng là thời gian cần phải có để hoàn tất công việc nếu không bị làm lãng trí. Các công việc ngắn hơn 1 ngày có thể nhập lại thành một nhóm với nhau. Các công việc lâu hơn 3 ngày nên tách ra nhỏ hơn nữa.

        Bây giờ vận tốc dự án được dùng để xác định nếu chu lặp thiếu giờ cho các việc tuyển hay không. Tổng cộng thời gian ước lượng bằng số ngày lập trình lý tưởng của các công việc, kết quả này phải không có trội hơn vận tốc dự án từ chu lặp trước đó. Nếu chu lặp này có quá nhiều việc rồi thì khách hàng phải chọn các truyện hệ cần phải đợi đến một chu lặp sau (xúc tuyết).

        Nếu chu lặp có quá ít truyện thì cho thêm truyện khác vào. Vận tốc ngày việc (kế hoạch chu lặp) quan trọng hơn vận tốc trong tuần truyện (kế hoạch phóng thích) vì nó đúng đắn hơn.

        Người ta thường hay báo động khi thấy các truyện hệ bị xúc tuyết. Đừng có hốt hoảng. Nên nhớ điều quan trọng của việc trắc nghiệm đơn vị và tái hệ số (refactoring). Một món nợ trong những khu vực này sẽ làm chậm việc. Tránh cho thêm vào bất cứ hệ chức năng nào trước khi có thời biểu. Chỉ cho vào cái gì mà bạn cần cho hôm nay mà thôi. Đem gì ngoại đạo vào sẽ làm chậm việc.

        Đừng bị cám dỗ vào thay đổi ước lượng việc và truyện mình. Quá trình ra kế hoạch dựa vào thực tại lạnh lùng của ước lượng kiên định, làm giả dối để cho thấy thấp hơn một chút tạo nhiều vấn đề hơn.

        Giữ một con mắt trên vận tốc dự án và việc xúc tuyết. Có thể cần phải tái ước lượng tất cả cái các truyện và tái đàm phán kế hoạch phóng thích mỗi ba đến năm chu lặp, là việc bình thường. Miễn sao luôn trước hết thực hiện đầy đủ các truyện hệ quý giá nhất thì sẽ luôn làm càng nhiều càng tốt các việc khả thi cho đám khách hàng và ban quản lý của mình.

        Một phong cách phát triển theo chu lặp có thể đem sự lanh lợi vào quá trinh phát triển của mình. Chỉ cần ra kế hoạch kịp thời bằng cách không ra kế hoạch các công việc lập trình đặc biệt sớm hơn dự liệu của chu lặp đương thời.


        Làm ở Hoa Kỳ nhưng Sống ở Việt Nam

Advertisements

About cttmmd

creator of www.tapsu.com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Information

This entry was posted on 29-03-2007 by in CNTT, Làm Web, Lập trình.
%d bloggers like this: