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

Стив МакКоннелл в своей книге Code Complete говорит, что средняя отраслевая статистика ошибок составляет около 15–50 ошибок на 1000 строк доставленного кода. Например, в нашем Workflow Engine у ​​нас есть примерно 36 000 строк кода, и, по словам г-на МакКоннелла, у нас должно быть от 540 до 1800 ошибок. Собственно, это близко к истине. Думаю, мы потратили пару человеко-лет, чтобы исправить все эти ошибки. Похоже, каждая строчка кода содержит ошибки. Но что с этим делать? Как уменьшить длину кода?

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

Возьмем для примера типичную систему. Представьте себе компанию, которая 10 лет разрабатывала систему управления контрактами. В команде разработчиков было 6 человек, и им потребовалось 3 года, чтобы построить систему. Их бизнес-заказчик ожидал получить эффективный недорогой продукт, но был очень разочарован, когда в течение следующих 7 лет команда разработчиков предоставляла техническую поддержку и постоянно добавляла новые функции по запросам пользователей, что оказалось довольно дорогостоящим. Кроме того, на выполнение обычных задач уходило все больше и больше времени. Например, на добавление нового поля в форму ушло 35 рабочих дней. Заказчик нанял новых разработчиков, но это только усугубило ситуацию, так как у новой команды не было священных знаний о том, как работать с системой. Стало ясно, что проблема не связана с квалификацией разработчиков.

Показатели проекта:

А теперь проанализируем структуру разработки системы, а также временные и финансовые затраты:

· UI (формы) - 35% (152000 строк кода)

· Рабочий процесс - 32% (137 000 строк кода)

· Обработка данных - 16% (69 000 строк кода)

· Бизнес-логика - 12% (51 000 строк кода)

· Другое - 5% (21 000 строк кода)

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

Чтобы исправить эту ситуацию, необходимо будет выполнить рефакторинг кода частей системы. Обычно процесс рефакторинга кода занимает от 3 до 12 месяцев. За это время разработчики переписывают устаревшие модули или заменяют их готовыми компонентами. Но если вы хотите добиться максимального эффекта, вам нужно будет провести рефакторинг пользовательского интерфейса и рабочего процесса.

Моя компания предлагает два следующих подхода к улучшению подобных систем:

· Интеграция компонентов Form Builder и Workflow Engine

· Переход на DWKit, который включает пользовательский интерфейс и рабочий процесс.

В результате рефакторинга кода с использованием наших продуктов длина кода может быть уменьшена на 40% с 430 000 до 258 000 строк кода, а распределение кода станет более оптимальным и сбалансированным.

Это могло выглядеть так:

· UI (формы) - 26% (68 000 строк кода) вместо 35% (152 000 строк кода)

· Рабочий процесс - 19% (49 000 строк кода) вместо 32% (137 000 строк кода)

· Обработка данных - 27% (69 000 строк кода) вместо 16%

· Бизнес-логика - 20% (51 000 строк кода) вместо 12%

· Другое - 8% (21 000 строк кода) вместо 5%

Заключение

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