WTFs per minute
Идеальная метрика для оценки качества кода. Просто засеките время, начните рецензирование кода и считайте количество раз, когда воскликните или просто подумаете "Что это???" или "Какой идиот это написал???" (What the F?).
И никакой замороченности на анализ связанности кода и прочие "полезные" измерения.
Все предельно просто и ясно, а главное дает полное представление о качестве кода.
Оригинал здесь.
UPD: Когда писал, думал прикрепить тег Humor. Когда написал, почему-то стал воспринимать метрику серьезней.
пятница, 22 августа 2008 г.
Еще одна метрика для оценки качества кода
Теги: Code review, Metrics
понедельник, 18 августа 2008 г.
Сколько бэклогов нужно распределенному Agile проекту?
Это на самом деле вопрос к вам, ниже попробую описать свое текущее понимание происходящего.
Классический подход подразумевает всего два (три) бэклога - продукта, итерации и бэклог проблем (impediments backlog - немного частный случай, так как содержит проблемы, а не истории пользователей).
Владелец продукта, являясь полноправным владельцем бэклога продукта, расставляет приоритеты историй, исходя из из ценности для разрабатываемого продукта (обычно также используется предварительная оценка трудоемкости).
Далее на митинге планирования итерации в бэклог итерации попадают верхние элементы бэклога продукта (наиболее приоритетные), укладывающиеся в скорость разработки команды.
Вроде все понятно, но.
Важно также знать, какая у нас цель релиза, какую функциональность мы добавим к продукту и когда этот релиз будет доступен пользователям (если кол-во итераций в релизе нефиксировано). Цель релиза и планируемая функциональность особенно важны для условий распределенной разработки, когда общение ограничено и очень важно иметь общее видение проекта членами команды.
Таким образом, добавляется еще бэклог релиза, которым так же управляет владелец продукта и который наполняется на основе скорости разработки команды.
А что если у нас продуктовая разработка? И мы настолько гибки и зрелы, что даем пользователям добавлять сообщения об ошибках и предложения новых фич прямо в нашу систему управления разработкой продукта?
Если эти истории пользователей будут попадать в бэклог продукта, то владелей продукта будет просто не в состоянии управлять этим бэклогом.
Получается нужен еще один список историй, user backlog (не нашел такого термина в гугле) или wishlist - в который изначально попадают новые истории пользователей. Владелец продукта просматривает эти истории и, например, утверждает их, т.е. они попадают в бэклог продукта и будут отправлены в разработку.
Итого получилось 4 + 1:
User backlog - Product backlog - Release backlog - Iteration backlog (+ Impediments backlog)
На первый взгляд кажется много, но зато это дает более ясную картину проекта, особенно распределенного, когда общение с владельцем продукта и вообще внутри команды из-за разницы во времени и месте осуществляются в значительной части через среду управления проектом.
