Nhận Agile
Tôi muốn đề nghị như sau:
Chỉnh sửa các tập tin tương tự
Đầu tiên, sử dụng Git (hoặc một hệ thống phiên bản đồng thời tương tự). Miễn là bạn đang chỉnh sửa các phần khác nhau của cùng một tệp, bạn sẽ không gặp phải xung đột. Nếu bạn nhận được xung đột, chúng sẽ được đánh dấu rõ ràng như vậy.
Cố gắng quản lý một dự án đa nhà phát triển mà không có Git cũng giống như cố gắng làm một cái bánh pudding mà không có một cái bát pudding. Có thể, nhưng nó sẽ trở nên khá lộn xộn khá nhanh.
Như đã được chỉ ra trong các ý kiến, Git không phải là thuốc chữa bách bệnh, nhưng kết hợp với kiểm tra tự động, nó chắc chắn giúp ích rất nhiều.
Liệt kê tất cả các tính năng
Thứ hai, phá vỡ dự án thành các tính năng hiển thị của người dùng. Ví dụ: "khi người dùng đăng ký, họ sẽ nhận được email" hoặc "Người dùng có thể thêm một mục". Thu hút tất cả các bên liên quan ở đây. Nhận tất cả mọi người trong một căn phòng, và có tất cả mọi người hét lên các tính năng của họ.
Đây phải là những tính năng hiển thị của người dùng, bạn có thể nói về chiến lược thực hiện sau này.
Viết tất cả các đề xuất trên thẻ chỉ mục, ngay cả những người câm. Nhanh chóng hợp lý hóa danh sách để loại bỏ các bản sao và sắp xếp tất cả các thẻ trên một bàn lớn, hoặc thậm chí là sàn nhà.
Thêm vào bất kỳ thẻ bổ sung cần thiết. Nói rằng ứng dụng của bạn sẽ gửi tin nhắn văn bản SMS. Bạn có thể không biết làm thế nào để làm điều đó, vì vậy bạn có một câu hỏi. Viết "Điều tra cổng SMS" trên thẻ. Tương tự như vậy đối với bất kỳ ẩn số lớn khác. Bạn sẽ phải giải nén những thứ này sau. Những tính năng này có thể sẽ không làm cho nó vào lần chạy nước rút đầu tiên của bạn.
Bây giờ sắp xếp các thẻ của bạn thành các nhóm, xáo trộn chúng, cảm nhận về chúng. Đây là phạm vi dự án của bạn.
Lập kế hoạch chơi bài
Có một kế hoạch poker. Vẫn với tất cả mọi người cùng nhau, cung cấp cho tất cả các thẻ nhà phát triển có nội dung "1 điểm", "2 điểm", v.v., tối đa "4 điểm". Cũng là một thẻ "thêm". Một điểm gần tương đương với một giờ.
Đi qua danh sách tính năng từng cái một. Khi bạn đọc một tính năng, mọi người phải chơi bài. Nếu một người chơi 1 và một người khác chơi 4 thì có vấn đề giao tiếp ở đó. Một người hiểu tính năng này có nghĩa là một cái gì đó khác với người khác. Có một cuộc thảo luận và tìm ra những gì thực sự có nghĩa và lưu ý nó trên thẻ.
Nếu bạn đồng ý rằng một tính năng là "nhiều hơn", thì tính năng đó quá lớn. Bạn phải phá vỡ tính năng đó. Làm điều này theo cách tương tự như trước đây.
Khi bạn có thỏa thuận, hãy viết các số trên thẻ bằng bút màu khác.
Điểm tốt hơn giờ
Sử dụng điểm thay vì hàng giờ sẽ lấy đi thứ "xem tôi có thể mã hóa nhanh như thế nào" mà các nhà phát triển chúng ta thường tham gia. Đó là một sự khác biệt tinh tế, nhưng tôi đã thấy nó hoạt động khá tốt.
Bây giờ soạn một nước rút
Chạy nước rút là một sự bùng nổ nhanh chóng hướng tới một mục tiêu. Quyết định về thời gian chạy nước rút, có thể 5 hoặc 10 ngày. Nhân số ngày với số lượng nhà phát triển với số điểm mỗi ngày.
Giả sử 6 điểm mỗi ngày cho mỗi nhà phát triển ban đầu. Đây là một con số có thể đạt được. Nếu bạn có 5 người, đó là 5 * 5 * 6 = 150 điểm. Kết hợp với tất cả các nhà phát triển và quản lý, chọn các tính năng từ danh sách, tối đa 150 điểm. Đó là nước rút của bạn.
Không bao giờ bị cám dỗ để ép nhiều hơn sẽ phù hợp. Quá hứa hẹn làm tổn thương tất cả mọi người về lâu dài, bao gồm cả bạn.
Bạn sẽ cần phải tính đến sự phụ thuộc ở đây. Ví dụ, thiết lập môi trường rõ ràng phải được đưa vào lần chạy nước rút đầu tiên. Điều này thực sự tương đối dễ thực hiện khi mọi người có mặt. Bạn có 6 bộ não trong phòng, tất cả đều nói "điều này phụ thuộc vào điều này", v.v. Sau đó, bạn có thể xáo trộn các thẻ xung quanh để thể hiện sự phụ thuộc.
Khi bạn đã chạy nước rút, không có gì có thể được thêm vào nó, nó đã bị khóa trong 5 ngày. Tính năng creep sẽ gây căng thẳng cho đội, làm hỏng tinh thần và làm mọi người chậm lại. Cuối cùng, creep sẽ trì hoãn một dự án. Là trưởng nhóm, bạn phải bảo vệ nhóm của mình khỏi tính năng creep. Nếu một yêu cầu tính năng mới xuất hiện, nó phải được thêm vào lần chạy nước rút tiếp theo. NẾU nước rút tiếp theo đã đầy, một cái gì đó phải được lấy ra.
Không bao giờ bị cám dỗ để ép trong bổ sung. Quá hứa hẹn mang lại cho bạn một khách hàng hạnh phúc trong vòng 1 ngày, sau đó là 4 ngày căng thẳng của nhóm và cuối cùng, rất có thể, một số khách hàng không hài lòng khi nhóm không thể giao hàng đúng hẹn.
Bây giờ đi đến nó.
Phát thẻ, hỏi ai muốn làm gì. Bạn có đầy đủ tầm nhìn về những gì đang được thực hiện và bạn có thể đếm số điểm đánh dấu xuống không. Có một standup vào đầu mỗi ngày để mọi người biết ai đang làm việc gì, và những gì đã được thực hiện.
5 hoặc 6 nhà phát triển có động lực tốt làm việc cùng nhau như một đơn vị cho các mục tiêu có thể quản lý được xác định rõ ràng có thể đạt được số lượng công cụ khá lớn trong giai đoạn nước rút 5 ngày.
Duy trì khả năng hiển thị
Hãy chắc chắn rằng tất cả mọi người có thể thấy tình trạng của dự án là gì. Bluetack tất cả các thẻ vào tường. Bên trái là những thẻ chưa hoạt động. Bên phải là những thẻ được thực hiện.
Khi một nhà phát triển đang làm việc trên một thẻ, họ lấy nó ra khỏi tường và đặt nó trên bàn của họ. Điều này duy trì khả năng hiển thị và giữ cho mọi người không giẫm lên ngón chân của nhau quá nhiều.
Có những lựa chọn công nghệ cho thẻ chỉ mục, nhưng không có gì vượt qua khi có một màn hình lớn hiển thị trạng thái dự án trên tường.
Nếu có thể, có tất cả mọi người trong cùng một phòng trong suốt thời gian của dự án. Có các bên liên quan xung quanh càng nhiều càng tốt, lý tưởng mỗi ngày.
Đốt cháy, tiêu hủy
Bạn có thể vẽ biểu đồ điểm của bạn tiến dần về 0 trên biểu đồ phát sinh. Nếu dòng phù hợp nhất của bạn vượt qua 0 trước khi bạn đạt đến giới hạn thời gian của mình, bạn có khả năng đang đi đúng hướng. Nếu không, bạn có thể cần phải cho khách hàng của bạn biết ngay bây giờ, trước khi bạn đến quá gần thời hạn.
Nếu bạn sẽ thất bại, thất bại sớm.
Bạn có thể tạo ra một bản phát hành bằng phần mềm, nhưng tôi thích chỉ là một mảnh giấy lớn trên tường. Vẽ và viết tất cả lên nó.
Kiểm tra tự động
Khi bạn có nhiều nhà phát triển làm việc trên cùng một công cụ cùng một lúc, họ có thể sẽ phá vỡ mã của nhau theo thời gian. Giao tiếp và khả năng hiển thị giúp ích cho việc này, nhưng có lẽ bạn sẽ muốn giới thiệu một số công nghệ để giúp tìm kiếm các vấn đề.
Kiểm thử đơn vị là quá trình viết các bài kiểm tra cho từng phần riêng biệt của cơ sở mã của bạn (lý tưởng là từng phương pháp). Kiểm tra đơn vị của bạn nên được chạy thường xuyên, với mỗi lần lưu nếu có thể. Có nhiều công cụ có thể giúp với điều này, ví dụ Karma hoặc Rspec.
Kiểm tra từ đầu đến cuối bao gồm kiểm tra toàn bộ dự án của bạn, coi các phần bên trong là một hộp đen. Dựa trên các thử nghiệm này dựa trên các yêu cầu kinh doanh cấp cao của bạn, ví dụ: "Người dùng có thể đăng ký" hoặc "Người dùng có thể xem danh sách các mặt hàng". Protractor là một ví dụ hay về khung kiểm tra dựa trên web kết thúc.
Có toàn bộ sách viết về thử nghiệm, nhưng có ít nhất một số thử nghiệm chấp nhận tại chỗ có thể giúp đảm bảo không có gì bị hỏng khi bạn làm việc trong dự án của mình.
Tránh nợ kỹ thuật và hoàn thành công việc
Nợ kỹ thuật là một khái niệm mô tả những thứ sẽ phải được làm sạch sau này. Một nguồn nợ phổ biến là các tính năng được đánh dấu là đã hoàn thành nhưng chưa bao giờ được "thực hiện". Một tính năng được thực hiện được kiểm tra trong Git, đã được các bên liên quan chấp thuận và có một thử nghiệm.
Đừng kiểm tra các tính năng của bạn cho đến khi chúng được thực hiện - hoàn thành. Không bao giờ xoa bóp đồ thị. Một lần nữa, điều này làm tổn thương tất cả mọi người về lâu dài, bao gồm cả bạn.
Đây là một lý do tại sao ban đầu chúng tôi chỉ trích dẫn 6 điểm cho mỗi nhà phát triển, mỗi ngày. Xong việc hoàn thành cần thêm công việc, nhưng cảm thấy tuyệt vời và mang lại cho nhóm tăng cường.