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

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

14 января 2023 г.

Дискуссии о дизайне программного обеспечения иногда начинаются с попыток обоснования: «Зачем нам это делать?», «В чем польза?» «Какова цель?» Я думаю, что это отличный способ начать, потому что последующие решения (например, когда вы выбираете между шаблонами проектирования) часто могут руководствоваться целями, которые определены на данном этапе.

Некоторыми общими целями проектирования программного обеспечения являются знакомые фразы организации кода, сокращения технического долга, создания НАДЁЖНОГО, связанного или несвязанного кода, повышения удобства сопровождения, поощрения повторного использования или обеспечения возможности тестирования. Без сомнения, это великие цели, которые нужно преследовать, и они определенно приведут к созданию программного обеспечения гораздо лучшего качества, чем если бы разработка программного обеспечения выполнялась исключительно ради него — что, я думаю, столь же нежелательно, как и когда никто вообще не заботится о разработке программного обеспечения.

Однако с целями дело в том, что они также являются показателями, и то, что вы измеряете, вы оптимизируете. Поэтому очень важно правильно измерять.

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

Однажды я работал с парнем, который, несмотря на то, что был программистом, был настолько искусным в убеждении деловых людей в принятии новых технологий. Я не забыл, что он сказал о том, как он это делает. Кое-что о том, что «всегда рассказывайте, как ваша идея может увеличить доход или снизить затраты, и что вы должны говорить с деловыми людьми через эти термины». Это дало мне не только способ продать идею, но и дало мне новый взгляд на отношения между технологиями и бизнесом.

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

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

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


Также опубликовано здесь

Избранное изображение источник.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE