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

Я начал читать книгу г-на Роджера С. Прессмана под названием «Разработка программного обеспечения: подход для практиков». В этой книге автор хорошо объяснил проектирование и разработку программного обеспечения по сравнению с процессом производства оборудования. Да, я тоже нашла ответы на свои вопросы. В этом сообщении в блоге я пытаюсь поделиться своими мыслями по поводу этих ужасающих вопросов.

Вы можете получить это быстро, Вы можете получить это правильно или Вы можете получить это дешево

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

Компьютерное программное обеспечение стало важной частью нашей жизни. Он взял под свой контроль нашу жизнь, начиная с установки утреннего будильника и заканчивая выключением света ночью с помощью системы умного дома. Так что я бы сказал, что вещи лучше быть правильными, чем дешевыми 👊. Кто хотел бы уделить важное место в своей жизни дешевому продукту? Нас окружают миллионы программ, но мы не можем предсказать непредвиденные проблемы с программами. Я хотел бы процитировать фразу, которая сильно поразила меня во время чтения книги.

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

Вы действительно разбираетесь в программном обеспечении?

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

  1. Программное обеспечение проектируется или разрабатывается, а не производится в соответствии с традиционным процессом.

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

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

На приведенном выше рисунке показана кривая ванны, которую можно использовать для объяснения процесса производства оборудования. В самом начале проекта мы можем видеть более высокую частоту отказов из-за различных проблем с продуктом, но со временем проблемы исправляются и частота отказов снижается, но снова увеличивается с износом аппаратных компонентов продукта. Это совершенно очевидно, поскольку каждая часть оборудования имеет срок службы, а компоненты оборудования изнашиваются под воздействием различных факторов окружающей среды, таких как температура, давление, влажность и т. д.

2. Программное обеспечение не изнашивается

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

Но что, если вы представите новую функцию или обновите кодовую базу?

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

Вывод

По моему личному мнению, я хотел бы иметь правильные продукты, ориентированные на клиентов в более быстром подходе (Agile вперемешку с DevOps). Я надеюсь, что эта статья объясняет, почему разработка и разработка программного обеспечения требует больше времени и денег, а также почему поддержка программного обеспечения требует больше затрат, чем разработка и разработка продукта с нуля.

Подпишитесь на нас в Twitter🐦и Facebook👥и Instagram📷 и присоединяйтесь к нашим Facebook и Linkedin Группы💬.

Чтобы присоединиться к командному чату Slack нашего сообщества🗣️ прочитайте наши еженедельные темы Faun🗞️,и свяжитесь с сообществом📣нажмите здесь⬇

Если этот пост был полезен, пожалуйста, нажмите кнопку аплодисментов 👏 несколько раз, чтобы выразить свою поддержку автору! ⬇