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

Рулить группой программистов довольно интересное занятие, в особенности в ситуации, когда компания в лице менеджмента марширует под лозунгом Аджайла и самоорганизующейся команды, а на месте у руководителя нет полномочий принимать решения, плюс он завален всеми техническими проблемами. Как говорится: “денег нет, но вы держитесь”. Многие программисты и менеджеры ошибочно считают, что руководитель команды является основным программистом – цели и задача которого чинить косяки, помогать всем и без посторонней помощи допиливать релиз. Как ни странно, но такое я наблюдал как в своей компании, так и на интервью в другой компании, где вопрос ставился ребром: “сроки горят, денег нет, вариантов не осталось, ты руководитель, что будешь делать?”.

Автор обьясняет, что задача руководителя состоит в том, чтобы вырастить команду и как итог получить ту самую мифическую “самоорганизующуюся команду”. В команде должна быть дисциплина, ответственность и умение решать свои проблемы. Как же руководитель должен это все сделать, в описанной выше ситуации? В книге рассматриваются 3 состоянии команды: хаос, рост и само-управление. На каждой стадии руководитель играет разную роль и динамика команды меняется. Интересная заметка: как узнать если ваша команда находится на стадии хаоса? Задайте один вопрос: у команды есть “лишнее” время (на учебу и эксперименты)? Если нет, то вы в стадии хаоса.

Изначально руководитель занимает роль диктатора, цель и задача которого: ограничить количество и установить границу в плане доставляемой работы, тем самым получить время для развития команды. На этой стадии диктатор принимает все технические решения, даже если команда этого не хочет, например “мы используем гит для хранения и версионности кода”. Режим диктатора ни в коей мере не должен быть постоянным и служит исключительно одной цели – выбраться из хаоса. Стадия хаоса является самой сложной по многочисленным причинам. Первая причина психологическая: руководитель себя чувствует комфортно, работая героем: “я лично починил косяк в продакшене, все меня любят, начальство ценит и какой всплеск адреналина”, вообщем “я Дартаньян, а все пи…”

Вторая причина практическая: руководителю нужно выбить ресурсы – время, вызвав на ковер бизнес/начальство. Тут прийдется торговаться, бороться и говорить “нет”. Это занятие опасное для карьеры – она может быстро прерваться. Однако, если у команды нет времени думать, учиться и пробовать, то команда так и останется в стадии хаоса.

Следующая стадия – рост. В этой стадии руководитель занимает роль наставника, он должен проводить много времени с командой, как обучая, так и подталкивая индивидуальных членов команды к росту. Цель и задача этой стадии в том, чтобы команда не нуждалась в руководителе. Автор приводит много интересных тактик для роста. Одна важная тактика: когда член команды приходит с проблемой (технической или социальной), внимательно выслушав, руководитель должен задать один вопрос: “Что ты будешь по этому поводу делать?”. Автор отмечает, что вопрос может показать человеку грубым и отталкивающим, однако это заставляет “пациента” думать и решать свои собственные проблемы. Тут важно отметить, руководитель не должен оставить все на самотек, однако он не должен все время решать все проблемы – трюк в том, чтобы подтолкнуть человека к решению своих собственных проблем. Интересная заметка: если вы боитесь, беспокоитесь, не уверены, чувствуете себя не комфортно – это значит что вы учитесь! Вы вышли из зоны комфорта и попали в новое русло. Данная стадия нужна для того, чтобы все члены команды научились решать свои проблемы, научились учиться и выходить из зоны комфорта.

Не менее важный момент стадии роста это дисциплина! Нет не армейская, а дисциплина по доставке обещанного. Если команда не доставляет обещанные фичи бизнесу, то жизнь станет крайне сложной и вполне может вернуться на стадию хаоса. В этом плане, автор рекомендует использовать командный язык: “я доделаю фичу к 18:00 сегодня”, “я вышлю спецификацию после встречи сегодня в 13:00” и так далее. Теперь все программисты знают, что многие вещи не возможно доставить в определенный срок – например починить баг. Может баг простой, а может засосать на очень долго. С этого ракурса нужно использовать технику тайм-боксинга (ограничения по времени) и сказать: “я буду работать над этим багом 2 дня”. Если по истечению времени баг все ещё не отремонтирован, то можно остановиться и пересмотреть решения, как технические, так и ресурсные – добавить время, добавить программиста, перенести проблему на следующий релиз и тому подобное.

Последняя стадия – самоуправление. В этой стадии руководитель занимает пассивную роль – переставая на прямую управлять командой и отдавая бразды правления команде. Руководитель фокусируется на ограничениях вокруг команды, помогая из вне. Насколько я понимаю, эта та самая стадия, которая описывается в книгах по скраму (scrum), где нет руководителя.

Книга весьма интересная, но короткая – всего 200 страниц! Автор правильно подобрал название: “Заметки… “, а не «Полное руководство…». Также стоит отметить, что в книге есть опечатки и кривое форматирование. Как говорил Даниэль Суарэз: у вас есть все возможное время, когда вы пишете свою первую книгу, а после этого нужно укладываться в рамки. Не уходя от критики, книга разбита на две части: заметки от самого автора и вторая половина: гости. Вторая половина книги устроена простым принципом: один гость, одна глава. Хотя бывает, что один и тот же гость пишет две главы. Каждая глава большое напоминает быстрый рецепт к “выздоровлению” и местами отдает рекламой другого материала. Справедливости ради, некоторые темы достойны отдельной книги, но все же, возможно стоило сфокусировать, добавить авторов и расширить материал – хотя это спорный момент.

Итого:
+: Простое и доступное изложение
+: Детальное обсуждение проблем и решений
+: Чувствуется аутентичный опыт автора
+: Хороший возврат по затратам (ROI)
-: Книга короткая и хотелось бы больше сценариев по управлению командой
=: Книга хорошая и будет полезна многим программистам, в особенности тем, кто уже или собирается стать главой/руководителем команды разработчиков. Я советую посмотреть семинар, если вам он показался полезным то вперёд за книгой. Бэкап копия семинара

Название: Notes to software team leader
Авторы: Roy Osherove
Обложки:



Я подобрал эту книгу, так как много раз о ней слышал, да и Рой Ошеров хорошо отзывался. Я считаю себя здоровым скептиком, однако после первой главы я двинул в сторону глубокого скептицизма. Мне лично не пришлась по вкусу подача: все проблемы можно решить если купить книгу, прочитать её, практиковать ремесло, стать мастером влияния, получить докторскую, найти проблему, получить бюджет и наконец решать проблему до победного конца! Это не первая книга, которая на протяжении пары глав «сама себя продаёт». В одних книгах запугивают — аля: «ты пропадёшь без этого» или «не упусти возможности», а тут «все можно исправить — проблема не в силе воли, а проблема в умении».

Однако книга все же интересная и тут я не говорю «верьте всему написанному», я говорю «дайте шанс». Книга содержит довольно много полезных советов, подкрепленных историями и примерами. В центре всей концепции лежит шесть основных принципов влияния:

  • Личные мотивации
  • Личные способности
  • Социальные мотивации
  • Социальные способности
  • Структурные мотивации
  • Структурные способности

Авторы объясняют, что суть любого поведения всегда сводится к выше описанным факторам. Чтобы стать “властелином влияния” нужно овладеть всеми шестью принципами. Однако, не всегда нужно использовать все принципы, изначально нужно понять какие принципы поведения являются основными и какие принципы помогут это исправить. Чем сложнее проблема, тем больше принципов влияния нужно использовать одновременно!

На персональном уровне авторы отбрасывают идею воли (одним дано, другим нет) и утверждают, что само-контролю можно научиться, используя нехитрые трюки. Например: если вам очень хочется шоколадку, то можно отвлечь свое сознание мыслями о другом или играми. В таком же ключе можно бороться с раздражением и яростью, если чувствуете что «надвигается» тут же забросьте свой мозг какой-нибудь интеллектуальной задачей, да по-сложнее. Люди часто занимаются «не натуральными» занятиями — тем, что им не свойственно (например, чистка зубов), трюк в том чтобы сделать это занятие желаемым. В этом ракурсе человеку нужно ответить только на два вопроса: стоит ли оно того? И могу ли это сделать? Если ответ «да» на оба вопроса, то человек будет это делать!

Интересный и не маловажный (из личного опыта) путь изменения сознания как одного так и группы людей это викарный опыт. Викарный опыт применяется там, где вы хотите поменять поведение, но вы не можете заставить/убедить человека попробовать что-то самому и/или с помощью помощника. Вместо этого вы можете детально продемонстрировать видео записи или в живую как что-то делается или происходит. Таким образом зритель может получить опыт, при этом сам ничего не трогая.

На социальном уровне “игра” переходит на следующий уровень. Как ни странно, но люди — социальные животные и, соответственно, восприимчивы к соц. давлению, поэтому считаются с мнением лидеров / уважаемых в обществе людей. Один из подходов — найти лидеров и внедрять изменения через них — “если лидер так делает, то…”. Так же можно использовать групповую ответственность — все помогают и отвечают друг за друга, однако тут нужно убедиться в возможности открытого и безопасного обсуждения. Если ты видишь проблему, то она моментально должна быть вынесена на обозрение — никакого кода молчания! Так же не стоит забывать о простом методе “пряника и кнута”, но с ним нужно быть очень тактичным и острожным. Потенциальная проблема с “пряником” заключается в том, что она может привить неправильное поведение, например: раздаем “пряники” за перевыполнение плана — штампуем больше, качество меньше и в итоге компания несет убытки. Момент с кнутом: если не готов хлестать, то не угрожай. Люди очень быстро “схватывают” ваше бессилия и это может привести к пониженной продуктивности с вытекающими последствиями. Тут мне вспоминается книга: “Сначала надо нарушить все права”

Структурный уровень один из моих любимых по одной простой причине — чисто инженерский подход, который может легко пережить поколения! Многие советы приходят из мира массового производства, как в книге “14 принципов Тойоты”. Если сделать правильную архитектуру и/или устройства, то люди будут использовать их без какой-либо задней мысли, следуя заданному поведению. Тут поделюсь личным опытом: когда на работе решили повышать качество кода и установили автоматическую систему анализа, то люди резко стали смотреть на ошибки и исправлять найденое. И тут отмечу — да, система не идеальная, и знающие программисты легко могут “танцевать” вокруг неё! Однако стоит обратить внимание на 3 очень важных фактора:

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

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

Итого:
+: Простое и доступное изложение
+: Примеры и байки
+: Обсуждение каждого принципа
+: Много пересечений с уже пройденными материалами, плюс к доверию?
-: Книга коротка относительно материала – создается ощущение, что нужно “докупить” опыт на отдельных семинарах
=: Материал довольно интересный и, если у вас есть время, то рекомендую для общего развития. Я считаю, книга будет полезна тем кто находиться в позиции, где можно и нужно что-то менять.

Название: Influencer – the new science of leading change
Авторы: Joseph Grenny, Kerry Patterson, David Maxfield, Ron McMillan, Al Switzler
Обложки:


Победи банк – канадский путеводитель к простому инвестированию.

Как ни странно, но за все надо платить. После рождения ребёнка, моя жена узнала, что канадское государство дарует деньги на высшее образование ребёнка. Формула достаточно простая: открываешь специальный образовательный банковский счёт на имя ребёнка и кладёшь туда деньги.  В свою очередь государство за каждые вложенные $2 доллара, вкладывает $1 с лимитом в районе $1300 в год. Однако держать деньги без какого-либо инвестирования довольно плохое решение, так как инфляция берет своё, а вдобавок, скажем $30000-$40000 для 4-х летнего университетского образования – маловато! Что делать? Инвестировать!

Я никогда не интересовался инвестициями, так как нечего было инвестировать – «все есть, а денег нет.». Однако ребёнок подтолкнул в правильную сторону и моя жена взялась за работу. Она прочитала книгу, изучила разные варианты инвестирования и сказал: вот книга, ты ее читаешь!

Скажу прямо, книга довольно шокирующая, так как раскрывает одну важную тему: комиссии больших банков на ваши инвестиции! Например, такой сценарий: вы работаете, откладываете, вкладываете в пенсионный фонд, проходит 30 лет, а вы узнаете что 40% вашего капитала ушли на оплату всяких банковских комиссий. Бред! Как такое может быть? Автор книги раскрывает секреты мастерства канадских банков: «…. иииии денег нет!»

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

Итого:
+: Легко читается
+: Все просто и наглядно
+: Раскрывает глаза на “мир”
+: Достаточно информации чтобы жить и не париться
-: Автор затрагивает тему налогообложения, но абсолютно поверхностно
=: Рано или поздно нам всем нужно откладывать деньги на пенсию. Автор написал хорошую, простую книгу для всех и, возможно, она спасет ваши накопления от комиссий больших банков.

Название: Beat the Bank: The Canadian Guide to Simply Successful Investing
Авторы: Larry Bates
Обложки:

Quotes from the book:

The stock market is a device for transferring money from the impatient to the patient. — Warren Buffet

There is nothing so passionate as a vested interest disguised as an intellectual conviction. — Frank Herbert, Author

Freedom is realizing you have a choice. — T. F. Hodge, Author


Жизнь – это игра, а в любой игре герой отправляется в путешествие, чтобы преодолеть трудности и победить финального босса. Последние 4 года я находился в таком путешествии, с само-назначенным квестом: тестирование кода.

Шаблоны тестирования в xUnit стала последней книгой для меня и иронично самой сложной. Эту книгу я отыскал на Амазоне и решил: «она большая и, наверное, содержит много материала, о котором я никогда не слышал». В реальности мой рационал не мог быть дальше от правды. Книга действительно содержит много информации и однозначно полезной, однако у книги есть несколько фундаментальных проблем, которые в совокупности сводят коэффициент полезного действия фактически к нулю. Но, пойдём по порядку.

Первая проблема – длина книги! Она слишком большая! Книгу стоило разбить на две отдельные книги: первые 300 страниц – все что нужно знать, вторые 500 страниц ещё раз и с глубокими примерами и добавочными мыслями. Если бы я писал книгу, то однозначно бы сжал ее до 350 страниц и на этом концерт был бы закончен.

Вторая проблема – механизм доставки! Все сухо, с определениями, повторами и со странной структурой. Автор жутко напоминает профессора, который готов бубнить что-то 3 часа подряд, не взирая на аудиторию или её отсутствие. В какой-то момент (после 350-ой страницы) я реально стал задумываться, если автору платят по количеству слов в книге. Я предположу одно: возможно когда книга такая длинная, то сложно следить за изложением мыслей и структурой. Однако пишут же хорошие и очень длинные книги по фантастике?!?!?

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

Четвёртая проблема – реклама! После половины книги можно легко догадаться, что автор является большим поклонником книги Мартина Фалера – Рефкторинг, на книге даже стоит печать от Мартина. Но как можно на протяжении всей книги вставлять рекламные отсылки: “и тут мы используем рефактор технику от Мартина… чтобы отрефакторить тест…”? Обычно в книгах упоминают и делают ссылки либо при первом использовании, либо в начале или конце книги. Однако делать это на протяжении всей книги и фактически в каждой главе, причем ссылаясь на одну и туже технику (по большинству) это уже бесстыдная пиар компания и уместно задать вопрос: а цель автора состоит в том, чтобы убедить читателя купить ещё одну книгу?

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

Финальные мысли: книга в принципе хорошая, однако советовать её всем не могу! Книга прийдется по вкусу тем кто уже знаком с темой и хочет по максимуму выжать все что можно. Однако давать её программистам для улучшения навыков, того не стоит! Есть куда более полезные книги: Разработка через тестирование по примерам и Искусство модульного тестирования с примерами C# не говоря о блогах и других ресурсах. Автор мог бы сделать шикарный материал, если бы убрал все выше описанные недостатки и сфокусировался на рецептах.

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

Итого:
+: Огромное количество информации по тестированию
-: Слишком длинная
-: Изложение довольно сухое
-: Много повторений и рекламы другой книги
-: Излишний фокус на фрейворки по тестированию ( которые уже устарели )
=: Книга для тех кто хочет выучить тему вдоль и поперек. Однако рекомендовать её программистам я бы не стал – слишком низкий возврат по инвестициям. Есть куда более полезные книги для практического применения, не говоря о блогах и других ресурсах!

Название: xUnit Test Patterns: Refactoring Test Code
Авторы: Gerard Meszaros
Обложки:


Легко рационализировать как Форд/ДжиМ/Крайслер стали огромными и успешными мировыми авто-производителями — Америка богата ресурсами, стабильна и никогда не была в полной разрухе. Однако не легко понять как Тойота, будучи в стране с очень ограниченными ресурсами и пост-военном хаосе, смогла стать успешным и крупнейшим мировым авто-производителем. Книга «14 принципов Тойоты» раскрывает секреты успеха.

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

Поскольку Тойота является авто-производителем, в книге описание крутится вокруг массового производства деталей и автомобилей. Однако тут стоит притормозить и отметить, что Генри Форд придумал коверную сборку после наблюдения за работой мясной фабрики. А делегация от Тойоты, приехавшая в Мичиган на “Румяную” фабрику Форда, привезла домой новые идеи по производству автомобилей, наблюдая за работой Американских супермаркетов! Отсюда можно сделать вывод, что правда в еде, но более рациональный вывод — решения не должны находиться в каких-либо рамках.

Книга весьма интересная и напоминает “Проект Феникс”, однако менее романтична и концентрируется на принципах, которые весьма успешно сработали для Тойоты. 14-принципов довольно просты (в понимании), однако не являются моментальным решением, а наоборот — долгосрочными и взаимосвязанными. Если вырвать один принцип – например: “устранение потерь/отходов” то можно добиться результатов, по меньшей мере на определенном шаге производства, однако если не переорганизовывать все шаги, то устранение потерь на конкретном шаге может не дать никаких конечных результатов, а в худшем случае увеличит потери на следующем шаге производства.

Лично мне понравились несколько принципов, которые как ни странно напрямую пересекаются с программированием:
– Держи все в чистоте, чтобы можно было легко находить проблемы и ошибки;
– Контролируй поток визуальными инструментами/значками – люди визуальные существа;
– Используй простые решения, если это решение не помогает людям, то никакое количество технологических новшеств не решит эту проблему.

И тут поделюсь своим домашним (не профессиональным) опытом: моя жена и я переодически планируем череду задач – мелкие жизненные “проекты”. Однако моя жена достаточно забывчивая и задачи часто не выполнялись вовремя или не выполнялись вообще. Я, со своей технологической башни потратил достаточно денег на органайзеры, телефоны, смарт-часы и другие высоко-технологичные решения, которые, если верить “продавцам”, решат все проблемы! Однако результат не изменился, задачи не выполнялись вовремя, проекты растягивались и это было не прикольно, потому что пришлось бы отложить отпуск. Решение пришло с нескольких сторон: “принцип использую простые решения”, “принцип сделай поток визуальным” и простая kanban доска, которую я тупо сделал на кухонной стене используя простую изоленту (для покраски) и фломастер. Результат? Ошеломительный! Мне даже не приходится жене ни о чем напоминать. Задачи выполняются, а если зависают, сразу видны, и тут же проводится референдум (почему, кто, когда и как) — моментальная переорганизация.

Однако есть пара моментов, которые мне в книге не понравились. Если четко следить за книгой, то можно найти пару-тройку противоречий (с кем не бывает). Также в книге отсутсвует какая-либо критика принципов или системы Тойоты, как и самой компании — местами создается ощущение, что книга служит рекламой компании. Но что есть, то есть.

Итого:
+: Простое изложение
+: Примеры и байки
+: Обсуждения каждого принципа и его применения
+: Без воды и ступы
-: Отсутствие критики принципов и производственной системы Тойоты
=: Книга хорошая и я однозначно рекомендую ее читать – отличный возврат на инвестицию времени и денег. Да, мы все думаем, что наша работа не имеет ничего общего с конвейерной сборкой, но это не так, в любой работе можно найти повторяемые задачи и оптимизировать их!

Название: Toyota 14 principles
Авторы: Jeffrey K. Liker
Обложка:


Эту забавную книгу я обнаружил на одном блоге по программированию, в листе «любимых» книг. Идея мне понравилась: как определить когда люди пытаются от тебя что-то скрыть.

Техники и методики были написаны сотрудниками ЦРУ и использовались по прямому назначению. Однако книга не раскрывает все секреты мастерства, по понятным причинам. Но делится довольно интересными и серьезными техниками, которые на мой субъективный взгляд полностью эффективны.

Авторы дают много примеров и анализа в попытке познакомить читателя с ситуациями, разговорами, строением предложений и физиологической реакцией. Из личного опыта скажу: в таком деле нужна практика, если вы когда-либо покупали б/у авто с рук, то знаете, что разговаривать с продавцом довольно важно. Если продавец начинает кривить, отвечать на другой вопрос и так далее, то это еще не повод бежать, но точная заметка, что надо копать дальше. Пример из личной жизни: «авто когда-нибудь было в аварии?», ответ: «нет, пока я ездил на авто, я никогда не попадал в аварию» – перевод на Русский: я не знаю или не хочу раскрывать полную историю автомобиля, но я на нем не бывал в аварии. Повод уходить от покупки? Нет! Это повод очень серьёзно посмотреть на все стыки в корпусе, в моем случаем были видны признаки аварии.

Книга конечно же не является пособием «молодого бойца», однако хорошо подойдёт всем кто хочет проводить конструктивные интервью/беседы, так как основная цель и задача не давить на человека, а заставить его самого, свободно рассказать правду, всю правду и ничего кроме правды. Единственная критика, которая приходит мне в голову: есть разница когда идёт профессиональное интервью в ЦРУ / полицейском участке и разговор между двумя людьми в офисе – если кто-то не хочет говорить, то в одном случае могут быть последствия, а в другом – развернулся и ушёл.

Итого:
+: Хорошее изложение
+: Примеры
+: Просто и эффективно
+/-: Написана для общей публики – без глубины
-: Короткая – хотелось больше примеров и теоретической отработки материала
=: Книга интересная и, пожалуй, стоящая, но без практики может оказаться бесполезной.

Название: Spy the Lie
Авторы: Philip Houston, Michael Floyd, Susan Carnicero, Don Tennant
Обложка:


«Мы не стали программистами чтобы убивать людей…» – uncle Bob.

Интересное предложение, которое может быть интерпретировано разными способами, в особенности если вы программируете логику для оружия. Но это не то, что имел ввиду дядюшка Боб. Что он подразумевал, так это баги в программах, которые в последствии ведут к гибели человека, а таких сценариев придумать можно много, но можно и не придумывать, а поискать в интернете и, к сожалению, примеров достаточно.

Я не знаю почему начал с такой «оптимистической» ноты — когда я сел писать мысли о прочтенной книге, именно эта цитата пришла в голову. Исторически я начал программирование довольно традиционно — пишешь код, потом тыкаешь в программу и вроде все работает. Года 4 назад мне повезло и я работал с людьми, которые практиковали TDD (разработка через тестирование) ремесло. Я присосался на сколько мог и с того момента стал поклонником методики. Традиционно, программисты знают как «правильно» писать код и тесты, однако не все субъективные «правила» тесто-писания улеглись в моих мозгах. Некоторые из них меня напрягали, зудели и всячески не хотели приживаться. Визуально некоторые из правил выглядели так: если деталь куда-то не влазит, то по «правилам» нужно взять молоток, да побольше, и бить, пока не влезет, а когда расплющенная деталь влезла в разбитый корпус, тогда берешь напильник и замазку — «эх, говорил же тебе, что все влезет!!!».

Я никогда не умел забивать (привет дяде Роме и уже сгнившему забору на даче). По этой причине я продолжил изучать эту тематику. С опытом и дополнительными знаниями, я понял, что нет точных/абсолютных правил написания тестов, есть только основные (Three Laws Of TDD by uncle Bob). Все зависит от системы, кода и кучи других не сильно замысловатых факторов.

По иронии судьбы, к моменту «прозрения» я наткнулся на эту книгу. Кент Бэк обнаружил TDD технику в “древних” книгах по программированию и решил возродить ремесло. В этой книги Кент затрагивает многие темы, начиная от базовых примеров и заканчивая ответами на тяжелые вопросы: «а когда тест считается слишком большим?». Автор затрагивает многие типичные проблемы, которые вы рано или поздно встретите в TDD разработке, и даёт как конкретные, так и философские ответы. Этот материал является, на мой субъективный взгляд, основой, так как в индустрии можно найти много разных интерпретаций, в особенности, если смотреть TDD дебаты на YouTube-е.

Если вы заинтересованы в ремесле, стоит читать книгу, однако подготовьтесь — первые 40 страниц могут показаться нудными и тривиальными, однако не стоит их пропускать. Автор разбивает темы на под-темы и короткие отдельные главы — с одной стороны это немного раздражает, но со временем медленно вырисовывается шаблон. Шаблон служит как пример: мышления и написания кода. Очень интересно проходит параллель между изложением книги и программированием. Чувствуется, что автор книгу не писал, а программировал — название самой книги на 100% отображается в материале!

Не все в книге прошлось мне по вкусу. В некоторых моментах изложение довольно замороченное. Юмор автора тоже не даёт расслабиться, в итоге отдельные темы мне пришлось перечитывать несколько раз, а порой и ходить за альтернативным объяснением в интернет. Но тут я многое списываю на культурную и возрастную разницу (не первый раз натыкаюсь на такой стиль изложения).

Итого:
+: Структура, примеры и дискуссии
+: Наглядно от и до
+: Содержит все основы
+: Где использовать и какие существуют ограничения техники
+/-: Изложение местами оставляет желать лучшего
=: Отличная книга, которую стоит читать всем программистам. Я жалею, что не наткнулся на эту книгу всего пару лет назад.

Название: Test Driven Development: By Example
Авторы: Kent Beck
Обложка:


Сначала надо нарушить все правила — книга, в который мой скептицизм встретился с моим прагматизмом. Книгу я обнаружил в офисе нашего CEO и обложка показалась мне знакомой (не знаю почему). Не моргнув глазом, я её позаимствовал (и скоро верну), но читать её не стал, вместо этого я решил пройтись по аудиокниге — потейто-потато. По завершению книги я тут же хотел написать свои мысли о материале (спасибо OCD), но внутренние чувства меня раздирали на части: с одной стороны согласен с материалом из-за личного опыта, с другой — либерализм и почти здоровый скептицизм.

Книга написана для менеджеров: “Изучая неудачи, вы не найдете пути к совершенству. Только изучая совершенство, вы обретете совершенство.”, но пригодится не только им. На мой субъективный взгляд. книга довольно хорошая, даже если отбросить исследования и описанный статистический анализ. Много рецептов, с которыми я согласен, по меньшей мере из моих личных наблюдений.

Однако не все улеглось с первой попытки и я все ещё продолжаю внутренние дебаты. Например золотое правило, которое нужно пустить под откос: “обращайся с другими так как хочешь чтобы обращались с тобой”. Автор разбивает шаблон простым примером: менеджер, который любил публичные выступления и признания, решил поощрить своего лучшего работника предоставив ему центральное место на сцене перед всей компанией, не учтя того, что работник ненавидит публичные выступления и внимание публики. Результат получился довольно печальным, но более важен факт того что с каждым человеком нужен индивидуальный подход и то что нравится тебе может не понравится другим! Банально, просто, но почему-то игнорируется “золотым правилом”, которое весьма широко циркулирует в нашей жизни.

Другой, не менее интересный, но более спорный рецепт — проводите свое время (время менеджера) с самыми лучшими работниками — помогайте им. Моя личная предвзятость просто кричит: “Что за бред? У всех есть потенциал! Нужно лишь помочь!!!”. Однако за мое недолгое время в индустрии я заметил, что из уже отличных работников можно получить ещё больший результат если им помогать, убирая с дороги бюрократию, шелуху и предоставляя то что они просят. С другой стороны, сколько я не тянул за собой отстающих, как только я отпускал, то все возвращалось на круги свои – печально, но пока что таков мой личный опыт.

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

Итого:
+: Рецепты и техники
+: Опыт успешных менеджеров
+: Интересные исследования
+/-: Изложение не самое лучше
+/-: Местами отдает догмой
=: Хорошая книга, которая не обязательна, но может вполне пригодиться, если вы стоите во главе (чего либо) и в особенности если вы менеджер. Если есть время, то инвестируйте — читайте.

Название: First, Break All the Rules: What the World’s Greatest Managers Do Differently
Авторы: Marcus Buckingham, Curt Coffman
Обложка:


Признаюсь, я не помню как эта книга попала в поле зрения и однозначно не знаю почему я решил ее прочитать. Несмотря на мою амнезию и нерешительность, я рад что прочитал ee. Честно говоря, эта книга для меня не откровение, а только подтверждение моего уже и так существующего мировоззрения — “лучше меньше, да лучше”, а ещё лучше ещё меньше.

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

Я целиком согласен с автором и рад, что он сформулировал идеи чётко, ясно, с примерами и техниками ведения “дел”. Однако не все идеи были рассмотрены достойно! На мой взгляд автор мог бы более конкретно рассмотреть идею “ценности” и “значимости”. На худой конец, рассмотрение можно было бы спихнуть на другую книгу или ресурс. Понятие “ценности”, конечно глубокий философский вопрос, который не должен быть переадресован в другую абстракцию – “самый высокий вклад в общество”. А если я отличный покупатель? И мой самый высокий вклад в общество это вклад мною заработанных денег в новые, красивые гаджеты! Я же помогаю обществу с продвижением и адаптацией технологий! Или все на чём мы должны сосредоточиться это работа и только работа? И вот это автор не рассматривает, а печально.

Итого:
+: Хорошо и просто изложено
+: Многочисленные примеры
+: Рецепты, методики и техники эссенциалиста
+: Философия жизни
-: Отсутствие дискуссии на тему “ценностей”, “значимости” и “приоритетов”
=: Хорошая книга, которую стоит прочитать! Книга является отличным пособием для всех кто хочет добиться большего и напоминанием, что в жизни нужно активно делать выбор (иначе сделают выбор за вас). Но в тоже самое время в книге отсутствует довольно важный аргумент. Как добавочный материал советую прочитать: “Глубокая работа…” и “Человеческий поиск смысла”.

Название: Essentialism: The Disciplined Pursuit of Less
Авторы: Greg McKeown
Обложки:


Сегодня закончил очередную серию книг от Питера Хамильтона – Пустота. Книги у меня валялись уже достаточно давно, однако не было времени. Вдобавок я хотел перечитать “Звезда Пандоры” и “Иуда освобожден” так как трилогия основывается на этих книгах.

Хамильтон продолжает сагу “Содружества” новой, захватывающей историей. В то время когда человечество находится на критическом эволюционном распутье, вселенная подвергается новой, но очень старой опасности.

Трилогия не разочаровала — захватывающая, непредсказуемая и интересная. Даже после всех прочтённых книг Хамильтона, я все ещё удивляюсь поворотам и развитию событий (возможно это только я). Конечно трилогию можно читать и по отдельности, однако некоторые нюансы будут упущены, поэтому я рекомендую читать по порядку.

Было здорово снова погрузиться в мир “Содружества”, однако отсутствие некоторых героев было не самым приятным поворотом. Но автор прав — даже с учётом того, что люди стали фактически бессмертны, не значит что они будут продолжать жить бесконечно.

Итого:

+: Продолжение саги “Содружества”
+: Легко читается
+: Интересная история и описание окружающего мира
+: В лучших традициях Питера Хамильтона
-: Отсутствие старых героев и несколько “роялей в кустах”
=: Трилогия хорошая и рекомендуется всем кому понравилась сага о “Содружестве”. Однако подготовитесь к некоторым “роялям в кустах” и отсутствию некоторых предыдущих героев.

Название: The Dreaming Void, The Temporal Void, The Evolutionary Void
Автор: Peter F. Hamilton
Обложка:


Next Page »