2010-02-23 25 views
9

Chúng tôi có một ứng dụng doanh nghiệp lớn, nơi các dự án được thiết kế theo phạm vi và cuối cùng được mã hóa bằng cách sử dụng quy trình thác chính thức. Tôi thường được thay đổi mã cho các sáng kiến ​​không liên quan chỉ vì chúng nằm trong cùng một phần mã. Tất cả các sáng kiến ​​phải được bật cùng một lúc. Nhóm phát triển cũng có ít nói về phạm vi hoặc thời gian giao hàng. Chúng tôi không thể nói chuyện với người dùng, chúng tôi phải trải qua một nhóm các yêu cầu tập hợp những người không biết kinh doanh.Giữ Agile trong một thác nước

Có ai có bất kỳ lời khuyên nào về cách thực hiện ngay cả những kỹ thuật nhanh nhất nhỏ nhất cho môi trường cố thủ như vậy không.

+1

Rất riêng của S. S. Lott đã viết về điều gì đó tương tự trong bài viết "Thác nước không hoạt động - Ngay cả khách hàng đã nói" (http://homepage.mac.com/s_lott/iblog/architecture/ C551260341/E20080211062302/index.html). Anh ấy đang nói về nó từ góc nhìn tư vấn, nhưng một số ý tưởng nên được chuyển giao cho một đội ngũ trong nhà chiến đấu cùng một trận chiến. –

Trả lời

7

Ít nhất bạn có thể bắt đầu viết các bài kiểm tra đơn vị, hoặc thậm chí - nhiều như hoàn cảnh cho phép - Kiểm tra phát triển bản thân (có thể truyền bá ý tưởng giữa các đồng phát triển của bạn). Bạn có thể thay đổi rất nhiều mà không cần quản lý ngay cả khi nhận thấy bất kỳ điều gì ;-)

Tất nhiên, ở nơi trung bình hoặc tốt hơn, mọi người trong quản lý không hoàn toàn ngu ngốc. Theo thời gian, khi bạn đã cố gắng nâng cao nhận thức về những vấn đề này trong nhóm phát triển, bạn (như nhóm, chung) cũng có thể nói chuyện với cấp trên và thuyết phục họ thực hiện các bước đi đúng hướng. Bắt đầu nhỏ, có được kết quả cụ thể, và xây dựng trên chúng - và xây dựng đòn bẩy bằng cách tìm kiếm đồng minh cả trong nhóm dev và (càng nhiều càng tốt) trong quản lý và người dùng.

Rất thường xuyên một số quy trình được theo sau chỉ vì "chúng tôi luôn sử dụng để làm điều đó như thế này". Nếu bạn có thể chỉ cho mọi người thấy rằng có những cách tốt hơn - và chứng minh điều đó với các lập luận thuyết phục - bạn có cơ hội thành công. Lưu ý rằng quản lý và người dùng cần các đối số khá khác so với các nhà phát triển. Bạn có thể thử tính toán chi phí-lợi ích thô (hoặc google - Tôi khá chắc chắn có rất nhiều thứ trên mạng về những điều này). Tôi cũng nhớ có tài liệu tốt về điều này trong Kent Beck's first XP book. Bạn cũng có thể thu thập số liệu thống kê lỗi theo thời gian (hy vọng) cho thấy các tính năng được phát triển theo cách nhanh nhẹn có ít lỗi hơn trong giai đoạn sau (tích hợp kiểm tra hoặc sản xuất). (Đối với điều này, bạn cần một hệ thống theo dõi lỗi, nếu bạn chưa có một hệ thống.)

Một công cụ hữu ích khác là đặt câu hỏi. Nếu bạn có điều gì đó - một tài liệu, cách làm mọi thứ - bạn không hiểu, dám đặt câu hỏi:

  • Tại sao chúng ta làm như vậy?
  • Có cách nào tốt hơn không?
  • Chúng ta có thực sự cần điều này không?
  • Ai cần tài liệu này?
  • Cô ấy thực sự cần thông tin gì?
  • Nó có chứa thông tin phù hợp với cô ấy không?
  • Đã cập nhật chưa?
  • Ai cập nhật?

Thường thì mọi người chỉ lấy những thứ như "đã cho", nhưng khi bạn bắt đầu yêu cầu nguyên nhân, bạn có thể tìm thấy nhiều điều thú vị ... và ý tưởng cải tiến.

Công cụ nhanh nhẹn rất hữu ích là retrospectives.Sau mỗi lần lặp lại (bất kỳ lần lặp nào được gọi trong quá trình thực tế), nhóm sẽ tập hợp lại và suy nghĩ về các số

  • những gì đã xảy ra trong lần lặp lại này và cách đảm bảo nó không xảy ra lần nữa (hoặc ít nhất là cải thiện nó) chừng mực nào đó)
  • gì đi độc đáo và làm thế nào để đảm bảo nó sẽ tiếp tục như thế

điều này có thể khá dễ dàng để có được chấp nhận của Ban Giám đốc và là một cách tốt để bắt đầu chuyển biến tích cực. Điều quan trọng nhất là thức dậy và kích hoạt mọi người - để khiến mọi người nhận ra rằng sự thành công hay thất bại của dự án là (ít nhất là ở mức độ nào đó) trong tay họ, rằng họ có thể làm điều gì đó để cải thiện tình hình.

+1

Kết quả cụ thể là chìa khóa.Tìm cách để có được con số cho thấy các kỹ thuật mới hoạt động. Người quản lý ăn thứ đó lên. – thebretness

+2

Bạn đưa ra giả định ngầm rằng Agile/XP là "đúng cách". Tôi không nhớ là đã được chứng minh. _All_ các kiểu quản lý này có điểm tốt, "Agile" và "XP" chỉ là IMO hợp thời trang IMO và sẽ được thay thế bằng một cái gì đó khác. –

+0

Bài kiểm tra đơn vị là một phần của phần mềm tiêu chuẩn trong những ngày này và có thể phù hợp với bất kỳ phương pháp luận nào. Thác nước có thể bao gồm các bài kiểm tra đơn vị mà không có bất kỳ sự kéo dài định nghĩa nào. –

2

Agile là tất cả về phá vỡ những bức tường thác nước. BDUF; đồng thời, phát hành đa thành phần; thiếu thông tin liên lạc giữa nhà phát triển và chủ sở hữu quy trình kinh doanh; kế hoạch lặp đi lặp lại - tất cả các đứng theo cách của bạn trong quá trình thác nước.

Ở vị trí của tôi, chúng tôi đã chia nhỏ rất nhiều những bức tường này - và bắt đầu bằng cách truy cập trực tiếp vào khách hàng. Khi điều đó xảy ra, khách hàng có một sản phẩm tốt hơn. Điều đó đã dẫn đến khách hàng hạnh phúc hơn. Điều đó đã đẩy đi những thứ như BDUF, v.v.

Chúng tôi vẫn chưa thực sự có các lần lặp lại/chạy nước rút thực sự, tích hợp liên tục, v.v., nhưng chúng tôi đang đến đó. (Thói quen cũ, và tất cả điều đó.)

1

Bạn là nhóm phát triển vẫn có thể phối hợp trong nội bộ sử dụng phương pháp nhanh nhẹn (phát triển thử nghiệm điều khiển, lập trình cặp, thẻ câu chuyện, CI, ngôn ngữ chung, vv)

nhanh nhẹn trong tâm trí của tôi là về việc có thể có sự tự tin trong những thay đổi đối với phần mềm và ngăn chặn các khoản đầu tư lớn vào các tính năng mà không ai cần ba bước xuống con đường thác nước. Kiểm tra và tái cấu trúc và tránh over-kỹ thuật là chìa khóa ở đây.

0

Tùy thuộc vào miền của bạn, thử nghiệm tự động và tích hợp liên tục sẽ có thể thực hiện được.

Ngoài ra, hãy xem xét đến danh sách tóm tắt chi tiết của riêng bạn (inchstones) cho các tác vụ hiện được chỉ định của bạn. Nó sẽ giúp ước tính công việc của bạn dễ dự đoán hơn và giúp bạn dễ dàng giải thích bất kỳ thao tác trượt theo lịch trình nào và các tác vụ ngoài dự kiến.

Nói chung, hãy theo dõi một số chỉ số trong hệ thống của bạn. Nếu bạn có thể hiển thị một số kỹ thuật Agile thêm giá trị (rút ngắn thời gian chu kỳ, giảm tỷ lệ lỗi, vv), nó sẽ dễ dàng để bán lãnh đạo của bạn về kỹ thuật đó.

... tùy thuộc vào người quản lý, bạn có thể muốn tránh thực sự sử dụng từ "Agile", đặc biệt nếu bạn chỉ đang tìm kiếm một chiến thắng nhỏ khi sử dụng một kỹ thuật.

+0

Một cái gì đó nhóm của tôi đã làm là biên dịch danh sách các lỗi, lỗi, các tính năng còn thiếu của chúng tôi và như vậy. Chúng tôi gọi đó là danh sách "Nợ kỹ thuật" của chúng tôi và bắt đầu xử lý nó như một biểu đồ phân loại. – thebretness

1

Đối với tôi vấn đề dường như không phải là bạn đang sử dụng Thác thay vì Agile. Đó là việc thực hiện thác nước của bạn có vấn đề lớn. Rõ ràng nhất là:

Yêu cầu tập hợp những người không biết kinh doanh

Thác có thể và không làm việc tốt nếu được thực hiện đúng cách. Tôi nghĩ có vẻ như một số người tham gia và họ làm những việc sai, không phải là quá trình khái niệm.

+1

Đồng ý, chúng tôi bị nhiều mẫu chống nhưng, rất nhiều vấn đề là một chức năng theo vấn đề hình thức. Chúng ta dường như không thể thực hiện bất kỳ thay đổi tốt nào do những trở ngại về cấu trúc. Mục đích là để xem liệu chúng ta có thể thực hiện một số phương pháp nhanh nhẹn cho thấy giá trị của chúng và sau đó từ từ giành quyền kiểm soát nhiều hơn đối với toàn bộ vòng đời của dự án là vấn đề chính. – rerun

4

Theo kinh nghiệm của tôi, các doanh nghiệp lớn có liên quan đến RỦI RO, KHẢ NĂNG BẢO VỆ, và KẾT QUẢ NGHIÊN CỨU. Bạn sẽ có một thời gian dễ dàng hơn (mặc dù có thể không phải là dễ dàng) giới thiệu Agile nếu hiển thị cách nó phù hợp với các chỉ số đó tốt hơn các thực tiễn hiện có.

  1. Làm cho nó thể để vận chuyển thường xuyên, ngay cả khi bạn không làm điều đó được nêu ra: công cụ đòn bẩy CI và tự động xây dựng các kịch bản để xây dựng và đóng gói ứng dụng của bạn. Bằng cách này, bạn được tận dụng để tận dụng mọi cơ hội để phát hành dần mã mới có thể xuất hiện.

  2. Đo năng suất của bạn tại nên bạn chỉ còn một đường cơ sở: Bạn càng có thể đo lường càng tốt.

    1. Số giờ lập trình trung bình cho mỗi "đối tượng địa lý".
    2. Khoảng thời gian trung bình giữa việc kiểm tra mã và phát hiện ra các lỗi chống lại mã đó.
    3. Thời gian trung bình giữa phát hiện lỗi và độ phân giải khuyết tật trong sản xuất.
    4. Lượng thời gian trung bình cần thiết để xác định, giải quyết và triển khai sửa lỗi.
    5. , vv
  3. Dự án những thay đổi về các chỉ số theo một quy trình Agile: Ví dụ, trong hầu hết trường hợp, chúng tôi sớm tìm thấy một lỗi dễ dàng hơn/rẻ hơn đó là để sửa chữa, vì vậy lợi ích từ TDD và phát hành nhanh chóng cho QA nên dễ dàng định lượng.

  4. Bắt đầu nhỏ: Bạn có thể có lịch trình thác nước được trao cho bạn, nhưng bạn vẫn có thể chia nhỏ thành các lần lặp lại, do đó, hãy làm như vậy. Chuẩn bị kỹ thuật thực hành của bạn, sau đó bắt đầu cố gắng điều chỉnh quy trình. Xem bạn có thể thử Agile trên một dự án phụ trợ nhỏ làm bằng chứng về khái niệm hay không.

  5. Tìm một nhà tài trợ: Cố gắng và thuyết phục ai cao hơn theo thứ tự mổ hơn bản thân của những giá trị của Agile. Thu hút sự giúp đỡ của họ trong việc đóng khung các đối số "Agile vs. Waterfall" trong điều kiện quen thuộc với người ra quyết định.

  6. Hãy kiên nhẫn ... có thể mất thời gian để xem kết quả.

  7. ... hoặc không. Nếu bạn quan tâm sâu sắc đến Agile và không nhận được hỗ trợ, hãy tìm một công việc mới. Có ích khi thay đổi từ bụng của con thú, nhưng bạn cũng nên làm việc với mọi người rằng chia sẻ ý tưởng của bạn về xây dựng phần mềm.

Các vấn đề liên quan