понедельник, 22 мая 2017 г.

Сколько стоит разработка программного обеспечения

«Вот спецификация, сколько будет стоить создание этого программного обеспечения?» Я слышу это почти каждый день от клиентов Teamed.io и потенциальных клиентов, которые планируют стать нашими клиентами и передать нам аутсорсинг разработки программного обеспечения. Мой лучший ответ: «Я не знаю, это зависит». Кажется странным ответом для человека, который утверждает, что знает, что делает, не так ли? «Вот 20-страничная спецификация, которая объясняет все функции продукта: почему вы не можете оценить стоимость?» Я могу, но не буду. Вот почему.

Позвольте мне спросить вас кое-что еще: зачем вам оценка? Да, я имею в виду - почему вы спрашиваете меня, сколько это будет стоить для разработки программного обеспечения для вас?

Любое программное обеспечение, независимо от того, насколько оно велико или хорошо, всегда нуждается в улучшении и исправлении ошибок

Программный продукт - это то, что может остаться в развитии навсегда и никогда не будет завершено. Посмотрите на YouTube, например. Как вы думаете, сколько потребуется для создания такого веб-сайта, где пользователи смогут загружать свои видео и просматривать их? Несколько дней для хорошего веб-разработчика. Потоковое видео? Да, это будет. Будет ли он готово конкурировать с YouTube? Нет, не будет. Добавьте несколько сотен разработчиков в команду, несколько лет и несколько миллионов долларов, и даже тогда вы недостигните уровня YouTube. Просто потому, что это бесконечный процесс. Любое программное обеспечение, независимо от того, насколько оно велико или хорошо, всегда нуждается в улучшении и исправлении ошибок.

Таким образом, когда вы спрашиваете, сколько будет стоить создание системы, похожей на YouTube, в соответствии с вашими требованиями, мой честный и точный ответ должен быть: «Все ваши деньги, и этого будет недостаточно». Подпишите ли вы контракт и передадите мне проект после этого ответа? Нет, не думаю. Вот почему я должен лгать и обещать что-то вроде «три месяца и 40 000 долларов». Если вы достаточно умны, то не поверите в это.

Я хочу сказать, что независимо от того, что я вам обещаю, я ошибаюсь. Ужасно, но это так.

Каково решение? Чем ты занимаешься? Я полностью понимаю, что вам нужна цифра, чтобы строить ваши планы и планировать затраты. Вам нужно выбрать правильного партнера по аутсорсингу программного обеспечения, и вам нужно знать, чего ожидать и когда, но ...

Вы задаете неправильный вопрос!

У этого вопроса есть только один правильный ответ, и это - ответ, который никто никогда не даст вам - развитие займет вечность и поглотит все ваши деньги. Все остальные ответы - просто ложь.

Извините, если я вам сообщил плохие новости.

Но вернемся к исходной проблеме: почему вы спрашиваете меня, сколько потребуется для разработки программного обеспечения, если вы знаете, что это бесконечный процесс, и нет предела? Потому что вы хотите удостовериться, что ваши 40 000 долларов будут использованы правильно и воплотятся в максимум результата. 

Чтобы получить от меня эту уверенность, вы просите дать оценку. Я говорю вам, что ваше программное обеспечение будет готово за 40 тыс. долларов, и вы хорошо спите. Пока вы не осознаете, что вас обманули.
Развитие займет вечность и будет стоить все ваши деньги
Ваши запросы совершенно справедливы. Вы хотите потратить не более $ 40 тыс., И вы хотите получить продукт, который поможет вам достичь ваших бизнес-целей. Например, вы хотите выйти на рынок и приобрести первые несколько тысяч пользователей. Другими словами, ваше самое большое беспокойство в том, что ваши доллары превратятся в нужное количество правильного программного обеспечения.

Любая команда разработчиков программного обеспечения может потребить ваши 40 тыс., но каждая команда будет выпускать различное количество программного обеспечения различного качества.

Я хочу сказать, что вместо того, чтобы спрашивать, сколько будет стоить проект, вы должны спросить, сколько кода мы можем создать за каждый доллар, который вы нам даете, и каково его качество.

В принципе, не просите нас оценивать, сколько потребуется, чтобы добраться до финиша, потому что нет финишной черты. Вместо этого спросите нас, сколько мы берем за каждый кусочек кода и какова наша производительность.

Различные команды используют разные показатели для измерения результатов (честно говоря, большинство из них не используют). Мы, в Teamed.io, используем хиты кода, ошибки, запросы pull, тестовое покрытие и несколько других показателей в качестве измеряемых показателей количества и качества. Мы точно знаем, сколько программ мы можем произвести за каждые 100 долларов, которые вы нам платите.

Соберите эти цифры у других команд и сравните их. Кроме того, убедитесь, что вы можете контролировать эти числа в ходе проекта. Это гарантия, которую вы ищете. Теперь вы знаете, что вы покупаете, и сколько вы платите за это. Другими словами, как я сказал выше, наличие этих чисел перед вами докажет, что ваши деньги производят максимальное количество программного обеспечения, которое оно может произвести, при самом высоком качестве.

Остается только задать вопрос, как вы узнаете, что покупаете правильное программное обеспечение. Другими словами, вы знаете, сколько мы взимаем за галлон и сколько галлонов мы используем за милю, но как вы знаете, что мы едем в правильном направлении и не делаем слишком много кругов или объездов?

Существует только один механизм, гарантирующий, это: регулярные контрольные точки. Вы должны спросить нас, поставляем ли мы программное обеспечение небольшими и регулярными приращениями и разрешаем вам проводить регулярные независимые обзоры нашего прогресса. Кроме того, убедитесь, что мы расставляем приоритеты в наших технических целях, используем контрольные точки, расширяем выпуск, публикуем заметки о выпуске и т.д. Убедитесь, что в ходе нашего путешествия вы можете контролировать прогресс и вносить исправления.

Комментариев нет:

Отправить комментарий