Найти в Дзене
Анастасия Ржевская

Качество кода для больших проектов в заказной разработке. Что такое внешнее и внутреннее качество кода?

Внешнее качество программного продукта — количество ошибок, обнаруженное в системе. Внутреннее качество— качество кода программы, которое определяет, насколько легко добавлять или изменять уже разработанный функционал. При разработке крупных проектов на первое место выходит внутреннее качество. В процессе разработки проекта очень важно не только создать функционал, но и сделать так, чтобы в дальнейшем его можно было легко поддерживать: дорабатывать и изменять. Цитируя одного из заказчиков, с которым общались: «Я нанял программиста-фрилансера, год платил ему зарплату, потратил существенные для меня деньги. Потом, когда он решил уйти с этого проекта, я обратился к другим. И фрилансеры, и компании говорили, что в коде невозможно разобраться и нужно переписывать всё с нуля. Год работы пришлось выкинуть.» На графике приведен типичный пример, из которого видно, как влияет внутреннее качество кода на количество времени, проведенного за определенной задачей (трудозатраты): Мы видим, что для ма

Внешнее качество программного продукта — количество ошибок, обнаруженное в системе.

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

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

Цитируя одного из заказчиков, с которым общались: «Я нанял программиста-фрилансера, год платил ему зарплату, потратил существенные для меня деньги. Потом, когда он решил уйти с этого проекта, я обратился к другим. И фрилансеры, и компании говорили, что в коде невозможно разобраться и нужно переписывать всё с нуля. Год работы пришлось выкинуть.»

На графике приведен типичный пример, из которого видно, как влияет внутреннее качество кода на количество времени, проведенного за определенной задачей (трудозатраты):

-2

Мы видим, что для маленьких проектов, в которых небольшое количество, форм, заявок, документов (до 20) нет необходимости делать высокое качество кода (зелёная кривая). Здесь код написан небрежно, не качественно, но зато быстро и дешево. Для небольших проектов этот вариант может быть приемлем. Но кардинально другая ситуация, когда проект большой (больше 60 форм), то небрежности в коде обойдутся в огромные трудозатраты (зелёная кривая уходит в заоблачные высоты), а соответственно в финансовые затраты! Большие проекты можно делать только с кодом высокого качества.

Некоторые компании могут позволить себе нести огромные затраты и идти по зеленой кривой дольше, но всё равно настанет момент, когда от такого проекта придется отказаться. Ранее такая практика была распространена в IT-отделах крупных банков.

Как же обеспечить внутреннее качество для проекта?

  • Правильный выбор инструментов разработки

используйте только те инструменты для разработки, которые помогают делать понятные и прозрачные программы. Программы, которые понятны IT специалистам. (У нас к компании мы пишем на платформе Java.)

  • Средства автоматизированной проверки качества кода

подключайте системы автоматической проверки качества checkstyle, findbug и др.

  • Автоматические тесты

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

  • Code Review (инспекция кода)

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

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

Статья написана в соавторстве с директором компании ООО "Симплекс Софтвер", IT-экспетом Ржевским Дмитрием.

Читайте так же нашу совместную статью "Голубой" и "алый океаны" в автоматизации бизнеса как инструмент отсройки от конкурентов