Загальні методи є дещо здоровим глуздом, важливо знати, що вони не потребують великих технічних знань.
Вихідним пунктом планування є визначення точної проблеми, яку потрібно вирішити, і мати чітку і однозначну вимогу. Якщо у вас цього немає, ваші оцінки будуть невірними. Якщо це задокументовано в якійсь специфікації функції, перш ніж хтось почне писати код, це означає, що будь-які питання, які потрібно задати, будуть задані до початку кодування. Це напрочуд ефективна економія часу. Якщо повернутися назад і уточнити вимоги, це порушує процес роботи програміста, а очікування відповідей може блокувати прогрес.
Після того, як ви визначили вимогу, вам потрібно визначити робочі завдання, пов'язані з її вирішенням. Це класична вправа на розбиття та перемогу - будь-яке завдання, яке можна розбити далі, потребує подальшого розбиття.
У більшій команді ви можете використовувати оціночний покер, щоб отримати оцінку, виходячи з досвіду всіх учасників. Це не так добре в меншій команді, але все-таки корисно отримати незалежну оцінку від ваших розробників і, можливо, включити її також і від вас - ваш брак конкретних знань може бути тут корисним, тому що пояснюючи вам, що завдання передбачає, з їх точки зору, команда розробників, можливо, краще зрозуміє проблему.
З меншою командою це може допомогти отримати найкращу / очікувану / найгірший випадок для кожного завдання, яка дає вам цілий діапазон значень, але якщо ви отримуєте велику кількість завищених оцінок, ви можете схилитись до гіршого випадку, поки ваші розробники навчитися точніше оцінювати.
У невеликому магазині розробники часто закінчуються подвоєнням, як систематики, команда підтримки і навіть тестери (хоча з усіх речей, які вони могли б зробити, тестування - це те, чого слід намагатися уникати будь-якою ціною), тому вам потрібно це врахувати. З’ясуйте, скільки часу власне розробники витрачають на роботу над новими можливостями та врахуйте їх у ваших оцінках. Якщо завдання оцінюється в 2 дні, але ваші розробники здатні працювати над новою розробкою лише 60% часу, тоді для його завершення вам знадобиться 4 дні. Ви можете допомогти з цим, також контролюючи конвеєр інших завдань, з якими вони повинні виконуватись, щоб невідкладні завдання адміністратора чи підтримки могли бути об'єднані дещо разом, а не оброблятися на спеціальній основі. Дуже багато програмістів (безумовно, включаючи мене на цьому) - не чудові менеджери часу, тому все, що ви можете зробити, щоб подати руку в цьому відношенні, допоможе. Одночасне завдання програмістам завжди легше, ніж багатозадачність. Блокування часу протягом дня також може допомогти у цьому.
Ведіть облік - кожен раз, коли ви проводите сеанс планування, записуйте кошториси та факти. Потім ви можете скористатися цим a) як керівництвом щодо того, наскільки збільшити їх оцінку під час планування, і b) допомогти їм удосконалити свої навички оцінювання. Наприкінці кожної ітерації (або в будь-якому іншому еквіваленті) вся команда повинна переглянути виконану роботу і з'ясувати, чому це зайняло більше часу, ніж очікувалося, щоб це можна було включити в майбутні оцінки. Це повинно бути беззаперечним завданням - ви, здається, маєте тут правильне ставлення, але ця відповідь може бути деякий час, тому я зроблю спостереження. Якщо хтось скаже: "Я тут помилився", ви можете перетворити це на "що можна було б зробити краще", але сказати людям, що вони занадто повільні чи неправильні, це лише погіршить справи.
Мені відомо, що для подібного роду проблем немає жодної срібної кулі, але найбільшим фактором є спілкування, що насправді простіше з меншою командою - і використання зворотного зв'язку для вдосконалення колективних навичок.