воскресенье, 8 ноября 2015 г.
отзыв о "Scrum and XP from the tranches"
книга API design for C++
- книга содержит большой объем избыточного материала, который слабо связан с её темой
- основной материал книги разбросан по всему объему и находится на разном уровне качества
- у книги не заметно основной идеи.
суббота, 31 января 2015 г.
Забавные пересечения анализа организаций и теорий командного взаимодействия
Постоянно замечаю пересечения между материалом курса и различными теориями командного взаимодействия.
Из последного сильно зацепившего:
* описание Руссо охоты на оленя описывает те же причины, решения и следствия, которые подымают у себя в курсах команда Стратоплана при помощи мамонта. И эти же причины совпадают с теми, которые приводят к возникновению коалиций при анализе организации с помощью модели торговли/бюрокраии.
* Ппричины кризиса коалиции после достижения цели один в один совпадают с причинами реформинга в модели Такмана.
Интересно, что будет дальше... :)
понедельник, 1 сентября 2014 г.
О частоте релизов
После прочтения continuous integration, delivery и иже с ними выкристаллизировалось:
Редкие по частоте релизы проекта для своего успешного проведения мастерства на уровне искусства. А вот для проведения частых релизов уже нужно немного другое - инженерное мастерство.
Т.е. опять повторение спора художника и ремесленника. Только сейчас у нас разработка программ - это индустрия и инженерное дело. А значит ремесленник в приоритете.
Хотя выстроить процедуру частых релизов - это все ещё искусство... ;)
воскресенье, 9 марта 2014 г.
Stroustrup и 16 способов положить кота в стек
{
public:
class id
{
friend stack;
private:
int i;
};
...
};
- раз, и логическая привязка к основному классу;
- два, и неприводимость к базовому типу(int/string/etc);
- три, и неизменяемость его наружными классами, а только передача между различными функциями.
воскресенье, 16 декабря 2012 г.
Пара мыслей о Канбане
Достоинства - не даёт проводить субоптимизацию по элементу, который не является бутылочным горлышком процесса, - по сути навязывает оптимизацию по "бутылочному горлышку" всему процессу.
Забавно, что поход с пареньком Херби из "Цели" Голдрата можно рассматривать как пример Канбана, потому что остальные дети вытягивали только то, что он проходил. А вот ситуация со станком "Херби" уже не может быть рассмотрена как подобный пример, потому что ресурсы не вытягивались к станку по мере необходимости, а выталкивались на основании прогнозов о том, когда они ему понадобятся. Но "цель" и "дао тойота" пересекаются очень интересно...
P.S. Не используйте канбан у себя на кухне, иначе тарелки будут грязные всегда, а отскребать засохшую грязь тяжело. Иногда выталкивание лучше вытягивания... :)
вторник, 5 июня 2012 г.
Adrenaline Junkies and Template Zombies - отзыв
По мере прочтения узнавал кучу ситуаций, с которыми уже сталкивался в процессе работы. И книга с точки зрения описания ситуаций очень хороша. Но вместе с тем у неё есть 2 недосказаности, которые вместе не дают внести её для себя в список "рекомендовано к прочтению".
Первая недосказаность - это отсутствие "способов лечения" ситуаций. Но учитывая, что все команды разные, то расписывание всех вариантов лечения в каждом случае, увеличило бы размер книги в лучшем случае в 3 раза. Так что это скорее не недостаток, а мелкая придирка с моей стороны.
Вторая недосказаность - это отсутствие описания последствий: "А что будет, если мы не будем это лечить?" Ведь не у всех же такой опыт как у членов "The Atlantic Systems Guild", и вполне возможно что при анализе последствий будет что-то упущено. Или же с точки зрения выгоды для себя и для людей, условному мне будет выгодно засушить ситуацию, чтобы она пришла к ожидаемому условно негативному варианту... И вот отсутствие этого анализа даёт послевкусие неокончености книги. Как, если бы из дипломного проекта на защите было доступно только введение.
Честно говоря, было странно читать такую "незаконченную" книгу от авторов Deadline и Peopleware. Итого - хорошая, но необязательная к чтению книга.
четверг, 1 марта 2012 г.
Упрощенное GTD
Делюсь своей наработкой для отслеживания задач.
У неё есть определённая специфика - ориентирована только на рабочие задачи. Я не хотел видеть в списке рабочих задач личную жизнь(мухи отдельно, котлеты отдельно).
воскресенье, 4 декабря 2011 г.
IT-People Pecha-Kucha: первые впечатления
Disclaimer: это не анализ, это впечатления по быстрому... ;)
Для чисто технического спеца, который не планирует растить в себе softskills и заниматься хоть каким-то управлением людьми, это мероприятие было бы почти бесполезной тратой времени, потому что было больше ориентировано на работу с людьми. Всё таки не даром в названии торчит "People" :)
Собственно сами впечатления:
Выступление Дмитрия Миндра. Само по себе выступление было неплохим для вводного, но выбор темы был просто непонятен - в кафе и так собрались люди, которые не "сидят на попе ровно" (с)Панкратов. Так что идея о необходимости убеждать пришедших, что стоит вкладываться в самообразование, networking и делать работу качественно, - вызывает сомнения.
«Роль менеджера в гибкой разработке» - внятные впечатления просто не формулируются... Аджайл всегда такой аджайл...
Тим Евграшин и Сергей Бережной - просто качественные презентации. Правда понимание того, что стоит за этим "просто" и "качественно" заставляет снять шляпу перед авторами - хоть сейчас утаскивай это "просто и качественно" как опорный конспект для действий.
Презентация BABOK - прикольный анонс киевской группы BA, сделано весело и так чтобы привлечь внимание, но это пока не в области моих интересов.
Был человек, которому микрофон мешал выступать :) Очень зажигательно, очень быстро - впечатление как от китайской пиротехники: Вспышки, взрывы...Трах-бах! Бздыщ!! Но в конце вопрос: "что ЭТО было??!!" Может поэтому и не запомнил как его зовут?
"Просто и качественно" можно сказать и о Квантоновом скачке Панкратова, но от него ожидал подспудно большего.
Вика Придатко с "Техническим интервью с человеческим лицом" и выступление Орлова - лучшие для меня презентации на этой PechKucha и новый пункт в моё must view для TL или ПМ.
Собственно презентации большой 5-ки планирую пересмотреть ещё раз, когда организаторы выполнят обещание и выложат их в сети, для более качественного анализа и составления списка ToDo.
Update:
Андрей Анпилогов начал выкладывать записи с мероприятия на youtube
Update2:
Теперь понятно, почему в панкратовской чувствовалось возможность улучшения. Оказывается на ExpertLabs у него был более полный доклад - смотреть здесь.
понедельник, 17 октября 2011 г.
TDD в условиях плотного использования ATL/COM
И проблема была даже не в том "как протестировать сам COM-компонент?" - это не представляло особой проблемы, потому что был и есть явно заданный интерфейс класса, единственной особенностью которого является то, как создаётся объект этого класса. Дальше всё сводилось к классическому подходу для TDD.
Основной проблемой являлся вопрос "как протестировать класс, который уже активно использует COM-компоненты?"
Почему проблемой являлся именно этот вопрос? В случае, когда уже существует код, который уже активно использует COM, для качественного тестирования нужно предоставить классу набор заглушек для уже используемых комовских компонентов, которые и будут задавать условия для проверяемого поведения внутри компонента.
И корень проблемы был даже не в том, что приходилось создавать эти классы-заглушки - это то как раз было довольно просто и входило для меня в область допустимых накладных расходов от применения TDD. Проблема была в том как обеспечить создание и использование классов-заглушек не изменяя кучи кода.
Подсказкой к решению является скрытая причина этой ситуации - у нас уже по всему коду протянута неявная зависимость от реестра системы. Соответственно для удобства в написании тестов я должен обеспечить единую точку доступа и контроля этой зависимости. Что привело меня к следующей идее: введём дополнительный архитектурный слой с единичным контейнером, который контролирует процесс создания COM-компонентов (по аналогии с слоем работы с объектами базы данных).
Единый контейнер прийдёт к нам со всеми своими достоинствами и недостатками:
- единая точка контроля создания компонентов
- у нас должны быть гарантия что контейнер объектов существует в едином экземпляре, иначе у нас будет возможна ситуация, когда в одной и той же функции у нас будет мок-COM-объект и нормальный COM-объект - это приводит нас к синглтону - т.е. у нас будет или глобальная точка входа или обязательный параметр для функций, которые создают объекты
- дополнительный слой абстракции
Архитектурная идея с подобными контейнерами не сильно распространена в C++, но она решает свою задачу.
P.S.
Я таки дописал хоть один пост за прошедший год.