Объяснить или давать разбираться?

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

Я затрону тему возможности улучшения коммуникации.

Stand-up meeting: лучшие и худшие практики

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

Все эти вопросы снимают ежедневные планерки. Ещё их называют летучки, собрание «на ногах», stand-up meeting, стендапы, daily scrum. Эту практику настоятельно рекомендуют использовать в Scrum и eXtream Programming. Вы найдете утренние планерки в организациях любого направления, но в IT есть свои особенности.

Конференция Платформа 2011 моими глазами

Платформа 2001

17-18 ноября в Москве я был на конференции Платформа 2011, где посетил несколько докладов и пообщался с морем людей. Ниже описал эту конференцию, как её увидел я.

Платформа 2011

Платформа 2001

17 ноября начнется двухдневная конференция Платформа 2011 от компании Microsoft. Из большого списка докладов я выбрал наиболее интересные для себя.

Консультации и серия тренингов «Результативное программирование»

За мою практику работы программистом, техническим директором, руководителем проектов, блоггером и преподавателем в ВУЗе я сталкивался с самыми разными, сложными и актуальными задачами, которые стояли перед программными проектами.

Материалы с конференции разработчиков

1 октября 2010 г.

28 сентября 2010 года в Инновационном бизнес-инкубаторе состоялась конференция разработчиков.

Фото-отчет http://picasaweb.google.ru/alexander.byndyu/TXLCxE

Впечатления из Twitter'а https://twitter.com/#search/%23dotnetconf

Доклады с видео и слайдами

№1 Автоматизация тестирования интерфейса в web-приложениях

№2 Big switch: Жизнь после Microsoft

№3 Организация работы команды в Agile: разработка + тестирование

Спасибо докладчикам и участникам!

Материалы конференции разработчиков. Доклад «Организация работы команды в Agile: разработка + тестирование»

Доклад от меня. Прозвучал на конференции разработчиков.

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

Материалы конференции разработчиков. Доклад «Автоматизация тестирования интерфейса в web-приложениях»

Доклад от Вадима Кадученко начальника отдела тестирования проекта Главснаб. Прозвучал на конференции разработчиков.

Вадим рассмотрел следующие вопросы:

  • Что такое интеграционные тесты и чем они отличаются от традиционных юнит-тестов.
  • Роль интеграционных тестов в проекте.
  • Готовые инструменты для написания автоматизированных тестов UI.
  • Как интеграционные тесты вписываются в общую схему разработки продукта?
  • Главное преимущество, которое дают интеграционные тесты.
  • Возможные проблемы при написании таких тестов

Материалы конференции разработчиков. Доклад «Big switch: Жизнь после Microsoft»

Доклад от Алексея Захарова директора компании Witcraft. Прозвучал на конференции разработчиков.

В своем докладе Алексей раскрыл преимущества перехода со стэка .NET + Windows на Linux + Rails и рассказал о причинах побудивших его команду на столь рискованный шаг.

Конференция .NET разработчиков

28 сентября 2010 года в 16-00 в Инновационном бизнес-инкубаторе по адресу г. Челябинск, ул. Троицкая 1-в состоится конференция .NET разработчиков.

Цель конференции - обсуждение передовых практик и инструментов .NET разработчиков. Если вы удачно (или неудачно) применили какой-то инструмент или технологию и хотите поделиться своим опытом, то эта конференция для вас.

Количество мест ограничено и регистрация обязательна. Всего туда cможет попасть 60 человек. Уже зарегистрировалось 50.

Зарегистрироваться →

Совершенный код №2. Пример реализации Unit Of Work с NHibernate

В комментариях и письмах к статье Совершенный код №2. Реализация Unit Of Work вы предложили довольно мало реализаций. Я опишу принципы своего видения реализации и учту ваши предложения и исправления к моему коду в предыдущих статьях.

Совершенный код №2. Реализация Unit Of Work

Тема реализации паттерна Unit Of Work уже поднималась в комментариях к статье «Совершенный код. Разбор выпуска №1». После чего мне пришло множество писем с вопросами по этой теме. Одно из последних писем выношу на отдельное обсуждение.

Материалы с конференции Agile Days 2010 Екатеринбург

4 июня 2010 года прошла конференция Agile Days 2010 Екатеринбург. Были освещены различные аспекты работы по принципам гибкой разработки. Я рассказывал про человеческий фактор. Ниже видео моего доклада и слайды:

Domain-Driven Design: aggregation root

Для создания удобного и полезного домена приложения нужно понимать, как использовать корень агрегации (aggregation root). Это понятие логическое и в коде явным образом нигде не прописываться. В разных пользовательских историях одна и так же сущность домена может быть корнем агрегации и может быть внутри агрегации. На нескольких примерах я покажу принцип работы и цели использования корня агрегации.

Скачать исходный код примеров (git, Visual Studio 2010)

Совершенный код. Разбор выпуска №1

Вы прислали очень много решений и замечаний к коду из выпуска №1 в письмах и комментариях. Думаю авторам будет приятно увидеть свои идеи ниже.

Открытие рубрики «Совершенный код»

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

AgileDays 2010 в Екатеринбурге

6 мая 2010 г.




4 июня в Екатеринбурге пройдет конференция AgileDays 2010.

Асхат и Никита пригласили меня принять участие в качестве докладчика. Долго думал над темой и решил рассказать про то, что меня больше всего цепляет в Agile. Моя тема «Человеческий фактор и Agile»

Тезисы

Самая эффективная команда та, в которой каждый участник имеет правильную жизненную позицию. Команда в данном случае — это участники процесса создания программного продукта, т.е. программисты, руководители и заказчик. Сразу такую команду не создать, нужен инструмент. Agile — это «инструмент» создания такой команды.

Мы рассмотрим влияние ценностей и практик на успешнось команды, а также границы применимости Agile.

Domain-Driven Design: создание домена

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

Карточка развлечений

Работа в стиле мелких итераций (у нас итерация длится 1 неделю) довольно трудная штука. Приходится действительно постоянно отжигать. Это дает отличную отдачу, потому что сразу виден результат твоей работы, но все-таки бывает тяжело без перерывов.

IoC-контейнер в ASP.NET с использованием шаблона MVP (Model-View-Presenter)

После видео про управление зависимостями в коде многие интересуются, как же сделать тоже самое в классическом ASP.NET. Проблема в том, что нужно найти точку старта для активного внесения зависимостей. В ASP.NET MVC она создана за нас – это фабрика контроллеров IControllerFactory.

По решению этой проблемы есть довольно много статей, я дам на них ссылки и добавлю свои комментарии.

Видео. Управление зависимостями в коде

7 апреля 2010 г.

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

Основные темы:

Перед этим видео желательно посмотреть пример разработки приложения с помощью TDD.


Исходники проекта

5й подкаст Петербургской группы ALT.NET

1 марта 2010 г.

Парни из Петербургской группы ALT.NET пригласили меня поговорить по поводу принципов проектирования. Разговор получился не только об этом. Мы затронули отношение разработчиков к качеству кода, методологии ведения проекта и многое другое...

Скачать этот выпуск подкаста (62.3 Мб)

Ссылки из обсуждения:

Scrum & XP

Pain-Driven Development

Spolsky vs Uncle Bob

Технические долги

Видео. Пример разработки приложения с помощью TDD

18 февраля 2010 г.

В этом видео я разрабатываю приложение с помощью TDD на языке C#. Кроме демонстрации того, как надо писать модульные тесты, я постарался показать, как работает TDD на уровне приложения в целом.

При разработке применил принцип инверсии зависимости, а также использовал IoC-контейнер.

Ссылки:

Когда TDD начинает обгонять?

После статьи «TDD для начинающих. Ответы на популярные вопросы» мне на почту прислали довольно много разных вопросов. Большинство из них было про границы применимости TDD и о том, когда мы начинаем получать плюсы от использования этой практики. Вот один из типичных вопросов:

Насколько оправданно использовать этот подход [TDD] в небольших проектах в плане скорости?

Сейчас читаю книгу «Applying Domain-Driven Design and Patterns» Jimmy Nilsson. Автор книги пишет, что применение TDD по сравнению с обычными подходами приводит к более скорому завершению проекта. Но скорость разработки растет не сразу, а даже изначально проект будет продвигаться медленнее. (Понятно, что написание тестов и постоянный рефакторинг отнимает много времени). Вот мне интересно наступит ли в небольшом проекте этот момент, когда подход TDD начнет выигрывать по времени по сравнению с обычными подходами разработки?

TDD для начинающих. Ответы на популярные вопросы.

Исходники проекта написанного с помощью TDD (git, C#)

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

Мне задают много вопросов про TDD. Из этих вопросов я выбрал ключевые и написал на них ответы. Сами вопросы вы можете найти в тексте, они выделены курсивом.

А есть рускоязычная звезда в программировании?

6 января 2010 г.

Мы все цитируем Мартина Фаулера, Гради Буча, Роберта Мартина, Эрика Эванса и т.д.

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

Есть ли в России или странах СНГ программист, который публикует книги?

Внимание! Не тренер/евангелист, который рассказывает про формирование команд, внедрение методологий и т.п. Именно программист.

Если есть, то подскажите, пожалуйста, его имя. А если нет, то может знаете почему его нет?

Моя книга «Антихрупкость в IT»

Как достигать результатов в IT-проектах в условиях неопределённости. Подробнее...