Все ли в порядке с вашим трекером задач и ошибок?
Хотите узнать быстрый способ, как за пару минут проверить процесс разработки в вашем проекте? Наблюдая работу большого количества команд из различных компаний, мы постоянно видим достаточно интересную закономерность - не сказать чтобы полный, но достаточно приличный бардак, творящийся в используемом баг(-таск) трекере. В чем это проявляется? Вот основные моменты:
Кстати, используя в качестве трекера Devprom, вы никогда не столкнетесь с первыми тремя проблемами, потому что:
Попробуйте потратить несколько минут, взгляните на ваш трекер, нет ли в нем похожих проблем? Было бы очень интересно увидеть в комментариях, что у вас получилось! |
Настройка проектной команды
Когда вы начинаете работу над новым проектом, приходите на новое место работы или в вашей проектной команде появляются новые люди, то возникает масса вопросов по процессам, которые будут использоваться в работе команды, по правилам работы, инструментам, которые будут использовать аналитики, разработчики, тестировщики и другие роли. Чаще всего наблюдаются такие сценарии решения этих вопросов:
Думаю не стоит отдельно упоминать, почему каждый из этих вариантов является неприемлемым для проектных команд, заботящихся о своей эффективности. Посмотрите на поясняющую диаграмму ниже: Каждый участник команды обладает своим пониманием жизненного цикла разработки ПО, владеет близкой ему терминологией, опытом ведения проектов, уровнем владения той или иной дисциплиной, полученными в прошлом. У каждого участника есть специфичный опыт работы с различными инструментами. Любая методология или унифицированный процесс (или framework) выстраиваются относительно некоторых условий выполнения проектов, навыков и уровня квалификации участников проектов, особенностей взаимодействия с заказчиком, пользователями или рынком. В лучшем случае методология требует выполнения определенных магических ритуалов, а в худшем - просто предлагает набор методик и практик, которые при "правильном" применении решают все основные проблемы проекта. Если эти тезисы вызывают у вас сомнения, то самое время перечитать описание семейства методологий Crystal от Alistair Cockburn Организация, в которой работает проектная команда, выставляет свои требования к ведению проектов, форматам и составу отчетности, обладает относительно постоянным штатом сотрудников, не предоставляет полной свободы в формировании проектной команды. Организация поставляет проектным командам заказчиков, каждый из которых имеет свои требования к ведению проектов и свое понимание того, как достигать необходимых результатов. Любой инструмент предназначен для автоматизации вполне конкретных задач: в лучшем случае инструмент предлагает автоматизацию вполне конкретного процесса разработки ПО (например, семейство продуктов IBM Rational для автоматизации работы по RUP), в худшем - реализует простую вводилку или трекинг списка дефектов. Так вот, для построения действительно эффективного процесса разработки необходимо подбирать наиболее подходящие инструменты, практики и учитывать особенности организации, заказчиков и членов проектной команды. Как это сделать? Начните с того, чтобы просто договориться о процессе ведения очередного проекта со всем его участниками. На этих встречах вы много узнаете нового об опыте членов команды, возможностях инструментов, особенностях методологий и выстроите такой процесс, который будет всеми принят и понят. Очень часто проектные команды совершают ошибку, пытаясь использовать инструменты, которые предназначены для других процессов, например, баг-трекер используют для ведения проекта по разработке ПО, вместо ведения проекта по поддержке. Вместо того, чтобы настраивать или допиливать баг-трекер до системы управления проектами, просто используйте подходящий инструмент. |
Примеры использования MindMaps в проектной работе
Примерно год назад мы открыли для себя mindmaps в качестве очень удобного дополнительного инструмента в работе над проектами. Хочется рассказать про два кейса, которые мы наиболее часто применяем в работе, на примере проекта построения достаточно большого хранилища данных:
Фиксирование результатов митинговМожно писать meeting minutes в виде письма, можно оформлять в виде документа Word, а можно вести минутки митингов в виде mindmaps. Очень удобно, сидя на встрече, прямо на ноутбуке или листе бумаги фиксировать обсуждаемые вопросы, договоренности, ответственных и сроки выполнения. Потом приехать в офис, дооформить до красивого вида и отправить всем участникам по почте. Просто и наглядно. Скорость восприятия информации - невероятная. Но есть один минус, специально его не буду указывать - скажете, какой?
Мини-проектыПод мини-проектами я подразумеваю отдельные проектные активности, в которые вовлечено несколько человек, но которые не имеет смысла учитывать в общем плане проекта. Например, нам понадобилось пересмотреть архитектуру существующего хранилища для обеспечения его работы на гораздо больших объемах данных, а так же удовлетворения все появляющихся гораздо более продвинутых чем раньше потребностей заказчика. Для этих целей был приглашен консультант, и для того, чтобы работа шла эффективно, нужен был некий перечень проектных активностей для достижения желаемого результата. И это не ложилось в понимание Плана проекта, так как активности в целом исследовательские и заранее не предугадываемые. Здесь mindmaps опять пришлись как нельзя кстати, позволяя очень удобно фиксировать все значимые проектные активности, составляя так называемый роадмап, а так же заодно записывать результаты митингов. Единственное неудобство - невозможность положить mindmap в быстром и редактируемом виде в вики проекта, приходится вставлять как картинку. Но тем не менее, даже такой способ крайне удобен для совместной работы команды:
Координирование оперативной работыЭтот способ мы использовали в ситуации, когда на стене не висела доска, на которой можно писать новую информацию, доступную каждому, но требовалось четкое следование быстроменяющемуся плану и самое важное - нельзя ничего забыть. В качестве примера:
А вы используете карты памяти на своих проектах? |
Инструменты тестирования: Watin + NUnit
Если вы уже почувствовали необходимость автоматизации тестирования вашего приложения через графический интерфейс, с целью снизить накладные расходы на ручное функциональное или приемочное тестирование, то перед вами встает выбор подходящего инструмента. Существует достаточно большой набор инструментов, но мы остановимся на тех, которые удовлетворяют следующим критериям:
Для собственных проектов мы выбрали связку NUnit + Watin, которая позволяет использовать готовую инфраструктуру автоматического юнит-тестирования и добавить к ней тестирование работы приложений через графический интерфейс пользователя (прокликивание). Разработка тестов для прокликивания интерфейса пользователя заключается в написании программного кода на C#, вызова методов браузера и валидации полученных значений или содержания страниц приложения. Чтобы упростить генерацию программного кода тестов можно использовать также свободный продукт Watin Test Recorder, который позволяет записывать действия пользователя при непосредственной работе с продуктом и затем конвертировать их в Watin-тесты, например, на C#. Интересной возможностью является автоматическое добавление сообщений об ошибках от Watin в проект, в рамках которого разрабатывается приложение. Вы избавляете команду от анализа логов, подключению к серверу тестирования для получения скриншотов с экранами об ошибках. Таким образом, вы можете построить исключительно автоматическую систему тестирования своих продуктов:
Для организации регистрации сообщений об ошибках из тестов, достаточно добавить следующий код:
class WebAssert
{
...
public static void Fail(IBrowser browser, string msg)
{
String picturePath = TestHelper.CaptureScreen(browser, "");
Context context = new Context();
context.Server = new Uri("http://localhost").Host;
context.Project = "myproject";
context.UserName = "user";
context.UserPassword = "password";
Report report = new Report();
report.Description = msg;
report.AttachFile(picturePath);
report.Submit(context);
Assert.Fail(msg);
}
...
}
Классы Context и Report определены в файле CSharpBugReporter.cs, инструкцию по использованию которого вы можете найти в разделе C#: пример организации обратной связи. |
Инструменты проектирования: Enterprise Architect
Используемый в разработке программного обеспечения инструментарий не ограничивается только лишь системой управления проектом и интегрированной средой разработки. Для моделирования и проектирования разработаны специализированные инструменты, о которых обязательно нужно знать разработчикам и уметь применять. В этом посте я хочу рассказать про наш опыт использования Enterprise Architect (EA) в собственных проектах. Основное назначение инструмента: предоставить возможность моделирования и проектирования приложений при помощи графического языка UML. Однако, поскольку, метамодель заложенная в основу UML позволяет описать практически любые модели, используемые в разработке ПО, то EA расширяем и предоставляет возможности моделирования бизнес-процессов, баз данных и т.п.
Что касается вопросов интеграции, то EA можно использовать совместно с Eclipse и VSTS, организовать контроль версий моделей при помощи систем контроля версий. Отдельно хотелось бы отметить возможность организации единого репозитория проектов и моделей на базе СУБД. В этом случае все участники команды могут работать с единым хранилищем всей информации, сосредоточенной в моделях EA. |

