В одной из книг ДеМарко была приведена интересная история. Представьте, что к руководителю проекта приходит представитель Всемирно Известной Организации по Измерению Качества и сообщает, что команда проекта попала в Топ 10 всех команд в мире по качеству кодирования.
О чем думает руководитель? Его сердце наполняется теплотой и проскакивают мысли «Вот молоцы! А я всегда подозревал...». После чего, представитель вдруг возвращается и приносит свои извинения — произошла ошибка, проект на самом деле 10й с конца. Настроение руководителя кардинально меняется и он уже вовсю проклинает свою команду.
В чем ошибка руководителя? Он не измеряет качество кода.
А это делается быстро и безболезненно с помощью автоматизированных средств сбора метрик кода. В своем проекте мы используем Sonar. Вот как выглядит Dashboard страница проекта:

Sonar поддерживает Java, также возможна поддержка языков Flex, PHP, PL/SQL, Cobol, Visual Basic 6 с помощью плагинов. Полное описание метрик можно найти здесь.
Рекомендуемые значения некоторых метрик:
У нас налицо проблемы с юнит тестами. А у вас?
О чем думает руководитель? Его сердце наполняется теплотой и проскакивают мысли «Вот молоцы! А я всегда подозревал...». После чего, представитель вдруг возвращается и приносит свои извинения — произошла ошибка, проект на самом деле 10й с конца. Настроение руководителя кардинально меняется и он уже вовсю проклинает свою команду.
В чем ошибка руководителя? Он не измеряет качество кода.
А это делается быстро и безболезненно с помощью автоматизированных средств сбора метрик кода. В своем проекте мы используем Sonar. Вот как выглядит Dashboard страница проекта:

Sonar поддерживает Java, также возможна поддержка языков Flex, PHP, PL/SQL, Cobol, Visual Basic 6 с помощью плагинов. Полное описание метрик можно найти здесь.
Рекомендуемые значения некоторых метрик:
- Комментарии — рекомендуемый диапазон 20% — 40% от общего количества строк.
- Повторения строк — чем меньше, тем лучше.
- Средняя сложность методов — не больше 5.
- Покрытие кода тестами — от 80% и больше.
- Rules compliance (соответствие правилам, настраиваемым в Sonar) — чем больше, тем лучше.
- LCOM4 (разнесенность компонентов) — чем ближе к 1, тем лучше.
У нас налицо проблемы с юнит тестами. А у вас?