Питання, яке ви повинні задати собі, полягає в тому, як продавець знає, що функція коштуватиме x робочих днів роботи розробника. Зважаючи на те, що навіть хороші керівники проектів з багаторічним професійним досвідом часто не можуть сказати про це, такі дані, що надходять від продавця, здаються надзвичайно ... спекулятивними .
Згідно з моїм досвідом, продавці зазвичай не складають оцінок, але здогадуються про те, скільки це занадто багато для менеджменту чи замовника: якщо керівництво готове заплатити 50 чоловіків-тижнів роботи, але абсолютно відкине 75 людино-тижнів, розповімо що ця функція займе 70 чоловічих тижнів, тоді як вона готова до переговорів (щось не викликає сумніву для реальної оцінки) аж до 55 чоловічих тижнів.
З одного боку, у вас є оцінки, зроблені IT-експертами, які говорять про щось на кшталт:
Відповідно до цього аудиту, ми витрачаємо 8 000 доларів на день, використовуючи застарілу технологію порівняно з аналогічними проектами подібного розміру, які використовують новіші технології. Здається, також буде потрібно від 50 до 80 людино-тижнів для міграції всієї кодової бази; за цей час нових функцій не буде випущено. Також існує 10% ризик, що міграція певного компонента може спричинити за собою 20-30 додаткових трудових тижнів.
З іншого боку, ви здогадуєтесь продавцями, виходячи з їх важелів під час переговорів з людиною, яку потрібно переконати.
Це все про те, наскільки ти впливаєш у своїй компанії. Комунікація тут є ключовою, і саме тут продавці зазвичай перемагають ІТ-фахівців, коли мова йде про пояснення переваг функції для менеджменту (або замовника).
Зауважте, що якщо в минулому ваші оцінки були досить точними, ви отримуєте репутацію та вплив. Якщо ваші оцінки завжди помилялися, керівництво, ймовірно, ігнорувало ваші пропозиції.
Що стосується оцінок, то тут надзвичайно важко зробити цінний, оскільки враховувати величезну кількість параметрів. Серед інших:
Ви насправді знаєте, наскільки вміла ваша команда в C # порівняно з VB6? Це засновано на фактичних вимірах чи просто здогадах?
Чи розробили цей колектив великі проекти в C #? Чи знають вони інструменти, якими вони повинні користуватися (IDE, налагоджувачі, профілі тощо)? Вам потрібні додаткові ліцензії (які в світі Microsoft означають тисячі доларів на машину)?
Чи є поточний проект повністю зрозумілим, і ви можете гарантувати, що сюрпризів під час міграції не буде? Чи просто переписати все , кожну функцію, чи були б сюрпризи?
Чи є у вас інфраструктура, яка підтримує C #? А як щодо постійної інтеграції? Що з вашим сервером збірки? Стильові путівники? Статичні шашки?
Чи можуть сервери (якщо це веб-додаток) або персональні ПК (якщо це додаток для настільних ПК) можуть запускати версію .NET Framework, яку ви плануєте використовувати?
Але найголовніше - знати, чому ти хочеш все переписати. Яку проблему ви намагаєтеся вирішити за допомогою переписування? Втрата продуктивності? Як ви вимірюєте це? Як ви показуєте цю втрату продуктивності керівництву?
Після того, як ви показали, що витрачаєте, скажімо, 8 000 доларів на день через VB6 (а це означає, що ви заощадите 8 000 доларів на день, перейшовши на C #), як ви поясніть перевагу використання кожного нового розвитку функцій та зосередившись на повному переписуванні? Яка вигода порівняно з прогресивним перезаписом, коли ви мігруєте свої компоненти невеликими шматками один за одним, одночасно постачаючи нові функції?