Стоимость разработки по сравнению с затратами на обслуживание

Я пытаюсь объяснить нашему отделу продаж соотношение затрат на разработку и обслуживание, и в настоящее время я в основном интуитивно чувствую, что мы тратим около 60% времени на обслуживание.

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

Другая «проблема» заключается в том, что мы расширяем наш сервис и нуждаемся в рефакторинге некоторой базовой инфраструктуры, чтобы сократить время выхода на рынок и другие точки измерения.

Есть ли у вас какие-либо хорошие предложения о том, на что я должен ссылаться, чтобы построить веский аргумент? И какие моменты я должен поднять, чтобы дать им хорошее понимание проблемы?

Может быть, где-нибудь есть отличный текст, на который я могу указать.


person Alexander Kjäll    schedule 13.08.2010    source источник


Ответы (5)


В «Часто забытых фундаментальных фактах о программной инженерии» Роберта Л. Гласса (статья в IEEE Software, май/июнь 2001 г.) он говорит о правиле программного обеспечения «60/60», то есть на обслуживание обычно уходит от 40 до 80% ( 60% в среднем) затрат на программное обеспечение, а затем на это усовершенствование приходится примерно 60% затрат на обслуживание программного обеспечения, а на исправление ошибок приходится около 17%.

person Jesse Naugher    schedule 13.08.2010
comment
Я видел эту ссылку в посте на слайде о микросервисах (slideshare .net/INPAY/the-why-what-and-how-of-microservices). Дело в том, увеличилась или снизилась стоимость через 16 лет? - person Irwin; 20.06.2016
comment
Куда идут 23%, которые не являются ни новыми функциями, ни исправлениями ошибок? - person Džuris; 13.12.2018
comment
@Džuris: вероятно, накладные расходы, электронная почта, расписания, встречи и т. д. - person jmoreno; 01.01.2019

После 29 лет работы в отрасли я могу сказать, что техническое обслуживание составляет 60-80% от общей стоимости. Развитие составляет не более 20%. Но сегодня большинство компаний, кажется, не осознают, что больше всего внимания они уделяют быстрой разработке и устанавливают сроки без надлежащей оценки. Это вынуждает разработчиков сбрасывать и уходить, что только усложняет обслуживание. Что в результате делают руководители? Они выбрасывают все собственное программное обеспечение и покупают стороннее. Затем происходит кошмар системной интеграции, и, может быть, 4 или 5 лет спустя они вроде как заставят все это работать, но стоимость этого экспоненциально выше, чем тратить время заранее и делать это правильно с первого раза. Тем временем все опытные старожилы вешают шляпы, и прилетает новая порода молодых баксов с позицией «мы можем исправить все». И это, друг мой, то, чем они будут заниматься долгое время.

Вот почему Agile в конечном итоге покорил меня, потому что водопад просто не работает в программном обеспечении. Никогда не было и никогда не будет. Все дело в небольших рабочих итерациях и разработке деталей. Так же, как Генри Форд показал нам в 1900 году...

person JWP    schedule 07.10.2014
comment
Дело в том, когда вы в последний раз поэтапно проектировали автомобильный двигатель? В области механики они на самом деле не проектируют основные части автомобиля (или их взаимосвязь) с нуля с помощью гибких методов — они просто установили шаблоны проектирования (которые возникли за более чем столетие использования двигателей внутреннего сгорания), которые они могут быть усовершенствованы с использованием гибких принципов, но фундаментально не переопределены. В программном обеспечении распространено фундаментальное переопределение, поэтому самые крупные ИТ-проекты (которые часто разрабатываются для интеграции небольших, но функциональных разрозненных решений) подвержены неудачам. - person Steve; 30.12.2017
comment
Они делают проектирование автомобилей поэтапно и итеративно. Только циклы намного длиннее - из-за разного распределения затрат между проектированием и изготовлением. Написание кода эквивалентно проектированию автомобиля. Компиляция — это изготовление. Для программного обеспечения изготовление ничего не стоит, но дизайн стоит тонну. Для автомобилей все наоборот. Таким образом, миллионы циклов перепроектирования/изготовления приемлемы для программного обеспечения, но не для автомобилей. Исходя из аналогичного рассуждения, вся автомобильная промышленность может быть уподоблена целому ряду ответвлений одного единственного проекта, возможно, выше средней сложности. - person user625488; 08.01.2019

Изучите понятие технического долга. Кроме того, попробуйте пообщаться с продавцами. Скорее всего, они не злые или им все равно; они просто сталкивались с разными вещами, у них другие навыки и интересы, чем у вас. Мягкие навыки имеют большое значение. Самой большой ошибкой было бы сообщить им, что «они не разбираются в компьютерах». Самый простой продавец, с которым я когда-либо работал, был бывшим QA, так что у него было много вещей. Между прочим, работа продавцов состоит в том, чтобы искажать правду и поддерживать приток этих долларов. Это тонкий баланс между тем, чтобы не брать на себя слишком много технического долга и не упускать возможности для бизнеса.

person Hamish Grubijan    schedule 13.08.2010

Попробуйте заставить их думать о программном обеспечении как о машине. На его постройку может уйти всего пара недель или месяц, но пока он будет использоваться в течение следующих недель, месяцев и лет, потребуется техническое обслуживание. Может быть, это просто плановое техническое обслуживание, чтобы все работало гладко; но это также может быть аварийное обслуживание, когда он делает что-то неожиданное и нуждается в исправлении.

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

person gabe3886    schedule 13.08.2010
comment
Использование повседневных аналогий — отличный способ обсудить такие темы. - person Adrian K; 06.09.2013
comment
Честно говоря, я не думаю, что это хорошая аналогия. Стоимость обслуживания автомобиля незначительна по сравнению с покупной ценой. Так почему же стоимость обслуживания вашего программного проекта превышает половину общего бюджета разработки? Это именно те рассуждения, которые иногда нужно опровергать. - person Bart Gijssens; 17.06.2015
comment
@BartGijssens, согласен. Стоимость содержания автомобиля заключается в сохранении его текущей функциональности. Аналогом этого в программном обеспечении может быть исправление незначительных ошибок для устранения утечек памяти, выполнения очистки данных, удаления старых файлов журнала и т. д. Настоящая стоимость обслуживания программного обеспечения обычно заключается в повторной адаптации и улучшении или исправлении фундаментальных концептуальных недостатков, а когда машина находится в постоянном использовании и накапливает состояние, стоимость становится более аналогичной установке или замене авиационного двигателя в полете. - person Steve; 30.12.2017

Что я испытал, так это то, что около 35% стоимости разработки будет потрачено в течение первого года обслуживания, 30% - во второй год, 25% - в 3-й год. Итак, если я потрачу 1 миллион долларов на разработку, я потрачу 350 тысяч в течение 1-го года и так далее. Через 3 года стоимость снова увеличивается на 5-10% каждый год. Следовательно, через 5 или 6 лет может потребоваться полная переработка приложения.

person Ravi Mani    schedule 17.02.2015