Các kỹ thuật chung có phần thông thường, điều quan trọng cần biết là chúng không đòi hỏi nhiều chuyên môn kỹ thuật.
Điểm khởi đầu với việc lập kế hoạch là xác định chính xác vấn đề cần giải quyết và có yêu cầu rõ ràng và rõ ràng. Nếu bạn không có điều đó, ước tính của bạn sẽ không chính xác. Có tài liệu này trong một số loại đặc tả tính năng trước khi bất kỳ ai bắt đầu viết mã sẽ có nghĩa là bất kỳ câu hỏi nào cần được hỏi sẽ được hỏi trước khi bắt đầu mã hóa. Đây là một trình tiết kiệm thời gian hiệu quả đáng ngạc nhiên. Quay trở lại và làm rõ các yêu cầu phá vỡ dòng chảy của một người như một lập trình viên và chờ phản hồi có thể chặn tiến trình.
Một khi bạn đã xác định được yêu cầu bạn cần xác định các nhiệm vụ công việc liên quan đến việc giải quyết nó. Đây là một bài tập phân chia và chinh phục cổ điển - bất kỳ nhiệm vụ nào có thể được chia nhỏ hơn nữa cần phải được chia nhỏ hơn nữa.
Trong một nhóm lớn hơn, bạn có thể sử dụng poker ước tính để có được ước tính dựa trên kinh nghiệm của mọi người tham gia. Điều đó không hoạt động tốt trong một nhóm nhỏ hơn, nhưng vẫn hữu ích khi có được ước tính độc lập từ cả hai nhà phát triển của bạn và có thể bao gồm một từ chính bạn - sự thiếu chuyên môn cụ thể của bạn có thể hữu ích ở đây vì giải thích cho bạn những gì nhiệm vụ liên quan từ quan điểm của họ, nhóm phát triển có thể sẽ nắm bắt vấn đề tốt hơn.
Với một nhóm nhỏ hơn, nó có thể giúp có được ước tính trường hợp tốt nhất / dự kiến / tồi tệ nhất cho mỗi nhiệm vụ, mang lại cho bạn một loạt các giá trị, nhưng nếu bạn nhận được nhiều ước tính vượt mức, bạn có thể nghiêng về trường hợp xấu nhất cho đến khi các nhà phát triển của bạn học để ước tính chính xác hơn.
Trong một cửa hàng nhỏ, các nhà phát triển thường kết thúc gấp đôi là sysadins, nhóm hỗ trợ và thậm chí cả người kiểm tra (mặc dù tất cả những điều họ có thể làm, kiểm tra là điều bạn nên cố gắng tránh bằng mọi giá) vì vậy bạn cần phải tính đến điều đó. Chỉ ra bao nhiêu thời gian của họ mà các nhà phát triển của bạn thực sự dành cho việc làm việc với các tính năng và yếu tố mới trong ước tính của bạn. Nếu một nhiệm vụ được ước tính là 2 ngày nhưng các nhà phát triển của bạn chỉ có thể làm việc trên sự phát triển mới 60% thời gian, thì bạn sẽ cần 4 ngày để hoàn thành. Bạn cũng có thể giúp với điều này bằng cách kiểm soát đường dẫn của các nhiệm vụ khác mà họ cần xử lý để quản trị viên hoặc nhiệm vụ hỗ trợ không khẩn cấp có thể được bó lại với nhau thay vì được xử lý trên cơ sở đặc biệt. Rất nhiều lập trình viên (chắc chắn bao gồm cả tôi trong số này) không phải là người quản lý thời gian tuyệt vời, vì vậy bất cứ điều gì bạn có thể làm để giúp một tay trong sự tôn trọng đó sẽ giúp ích. Đa tác vụ luôn dễ dàng hơn cho các lập trình viên so với đa tác vụ. Chặn thời gian trong ngày cũng có thể giúp với điều này.
Giữ một bản ghi - mỗi khi bạn có một phiên lập kế hoạch, ghi lại các ước tính và thực tế. Sau đó, bạn có thể sử dụng điều này a) như một hướng dẫn về việc tăng bao nhiêu ước tính của họ bằng cách lập kế hoạch và b) để giúp họ tinh chỉnh các kỹ năng ước tính của họ. Vào cuối mỗi lần lặp (hoặc bất cứ điều gì tương đương với bạn), toàn bộ nhóm nên xem lại công việc đã hoàn thành và tìm hiểu lý do tại sao phải mất nhiều thời gian hơn dự kiến để có thể kết hợp trong các ước tính trong tương lai. Đây cần phải là một nhiệm vụ đáng trách - bạn dường như có thái độ đúng đắn ở đây nhưng câu trả lời này có thể sẽ xuất hiện trong một thời gian vì vậy tôi sẽ thực hiện quan sát. Nếu ai đó nói "Tôi đã phạm sai lầm ở đây", bạn có thể biến điều đó thành "những gì bạn có thể làm tốt hơn", nhưng nói với mọi người rằng họ quá chậm hoặc làm mọi thứ sai sẽ chỉ làm cho vấn đề tồi tệ hơn.
Tôi biết rằng không có viên đạn bạc nào cho loại vấn đề này nhưng yếu tố lớn nhất là giao tiếp - điều này thực sự dễ dàng hơn với một nhóm nhỏ hơn - và sử dụng phản hồi để tinh chỉnh các kỹ năng tập thể của bạn.