про вивчення 2-3 альтернативних рамок / інструментів
Іноді це може статися, якщо у вас є особливі вимоги, вам потрібно зробити деякий POC, щоб вибрати найкращий інструмент для вирішення вимоги. Це те, для чого є шип, тому що, не знаючи, якою рамкою ви скористаєтесь, ви, швидше за все, не зможете оцінити історію, а зберігання без кошторису неможливо спланувати та розділити на завдання.
потім, вивчаючи рамки, які ми вибираємо для проекту
Добре. Це досить небезпечно. Коли клієнт платить вам за SW, він очікує, що ви професіонали, які вже вміють користуватися його інструментами. Клієнт не платить вам за навчання або пробний / невдалий підхід до розробки. Відповідальність за розробник - це освоєння нових інструментів у вільний час або в спеціальний відведений час, який оплачує його працівник, а не клієнт. Витрачати гроші клієнта на навчання без повідомлення клієнта непрофесійно.
Якщо вам справді доводиться використовувати щось особливе (наприклад, обраний клієнтський API чи замовник інструменту), яке ви ніколи не використовували, перш ніж ви повинні повідомити клієнта, що ціна буде збільшена на час, необхідний для того, щоб навчитися користуватися API. Можливо, клієнт передумає, якщо зростання цін буде занадто великим.
Звичайно, я не маю на увазі ситуацію, коли потрібно шукати якусь нову проблему в рамках, яку ти багато разів використовував. Я маю на увазі ситуацію, коли ви починаєте використовувати новий API або фреймворк, не витрачаючи значного часу (поза проектом) на навчання.
Якщо ви порушите це, це все одно буде видно у вашій швидкості, оскільки ви доставите дуже невелику кількість ділової вартості за ітерацію. Якщо замовник не знає причини, він, швидше за все, скасує проект.
Це все ще справедливо у випадку внутрішніх проектів - ви повинні повідомити свого менеджера / бізнес про час, необхідний для вивчення нового API чи інструменту. Зазвичай це дуже погані наслідки, якщо менеджер розраховує з вашою нормальною продуктивністю, а ваша продуктивність - лише частка через новий API, який ви намагаєтеся засвоїти під час виконання завдань. Це, очевидно, ще гірше, якщо деякі люди з продажу розраховуються з нормальною продуктивністю, коли підписують контракт із замовником.
налаштування серверів (SVN, баз даних тощо)
Це ваша інфраструктура та внутрішні витрати. Коли ви запускаєте проект, очікується, що у вас буде підготовлена ваша інфраструктура. Налаштування вашого середовища розробки не має значення для замовника і не повинно бути частиною будь-яких показників, пов'язаних з проектом - наприклад, швидкості в Scrum. Я бачив, що це реалізується як спеціальна ітерація перед проектом, яка використовується лише для налаштування середовища, створення базової інфраструктури тощо.