Saturday, January 25, 2025

Чистий Agile: назад до основ

 



Нотатки з книги:

“обмежує всі проєкти й накладає обмеження згідно з правилом хреста. Добре, швидко, дешево, готово. Оберіть будь-які три складники, які вам подобаються. Але четвертий ви подужати не зможете.”

“Agile — це комплекс методів, який допомагає розробникам та менеджерам здійснювати прагматичне управління проєктами.”

“Agile — це насамперед підхід, орієнтований на зворотний звʼязок. Кожен тиждень, день, година та хвилина визначаються результатами попереднього тижня, дня, години та хвилини, і потім уносяться відповідні корективи. Це застосовується як до окремих програмістів, так і до управління всією командою. Без даних важко належно керувати проєктом’”

“Аналіз можна розуміти як розбиття проєкту на структурні елементи (декомпозиція). Або ж як виявлення та розробку вимог. Можна як створення базової моделі даних або обʼєктної моделі тощо…”

“Етап проєктування програмного забезпечення для нас зрозумілі-ший. Він полягає в розділенні проєкту на модулі й створенні інтерфейсів між ними.”

“Аналіз та проєктування не працюють у парі як показники результативності. У них немає однозначних критеріїв завершеності.”

“Спринт — термін, який використовують у Scrum. Мені він не подобається, бо має на увазі, що потрібно мчати стрімголов. Проект із розробки програмного забезпечення — марафон, а хто на марафоні вдається до спринту?”

“Головна мета Agile - позбутися марних надій. Ми практикуємо Agile, щоб знищити надію, перш ніж вона спричинить «смерть» проєкту. Надія вбиває проєкт. Це те, що змушує команду з розробки програмного забезпечення вводити в оману менеджерів щодо її реального просування вперед. Коли менеджер запитує команду: «Як ідуть справи?», то в самому запитанні вже жевріє надія на відповідь «Дуже добре». Надія — дуже поганий спосіб управління програмним проєктом. A Agile — це спосіб забезпечити своєчасну й безперервну дозу холодної, суворої реальності навзамін надії.”

“Менеджери керують програмними проєктами, збираючи дані, а потім ухвалюють на їх основі найкращі рішення з можливих. Agile виробляє дані. Багато даних. Менеджери використовують їх, щоб привести проєкт до найкращого можливого результату.”

Закон Брукса стверджує: «Додавання робочої сили до проєкту, здача якого затягується, затримує його ще більше». [Brooks, Jr., F. P. 1995 [1975]. The Mythical Man-Month. Reading, MA: Addison-Wesley.]”

“Для цієї книжки я дібрав методи екстремального програмування, оскільки з усіх методологій Agile воно є найкращим, найвизна-ченішим, найповнішим та найменш заплутаним. Практично всі інші процеси Agile є підмножиною або варіацією екстремального програмування.”

“Beck, K. 2000. Extreme Programming Explained: Embrace Change. Boston, MA: Addison- Wesley. Існує й друге видання, датоване 2005 роком, але перше — моє улюблене, і я вважаю саме його кінцевим варіантом.”

“акцент Agile на тестуванні, рефакторингу, простоті дизайну та відгуках клієнтів — це очевидний лікувальний засіб від продукування поганого коду.”

“Ступінь легкості впровадження змін у програмне забезпечення вказує на те, наскільки сама команда заважає створенню ефективного програмного забезпечення. Клієнти, користувачі та менеджери очікують, що програмне забезпечення буде легко змінити, а вартість таких змін буде невеликою та пропорційною.”

“У Біллі про права клієнта сказано, що він має право: 1) ознайомитися із загальним планом і знати, що, коли й за які гроші можна буде отримати; 2) отримати максимально можливе з кожної ітерації; 3) бачити прогрес у робочій системі, отримати належно про- тестовану систему; 4) змінити свою думку щодо розробки, поміняти функціональність і пріоритети, не маючи непомірних витрат; 5) отримувати відомості щодо змін у графіку робіт, аби вчасно скоротити обсяг робіт і встигнути до необхідної дати: скасувати проєкт у будь-який час і отримати корисний робочий код, який виправдовуватиме інвестиції, зроблені до моменту скасування.”

“У Біллі про права розробника сказано, що він має право: 1) знати, що від нього хочуть, а також отримати чіткі декларації поставлених пріоритетів; 2) завжди виконувати роботу якісно; 3) просити та отримувати допомогу від колег, керівництва та клієнтів; 4) здійснювати власне оцінювання та оновлювати його відповідно до поточної ситуації; 5) брати на себе відповідальність, а не чекати, поки на нього покладуть зайві обовʼязки.”

“Agile не процес. Agile не тренд. Agile не просто набір правил. Це, найвірогідніше, сукупність прав, очікувань та методів, яка складає основу професійної етики.”

“Триваріантна оцінка. Один із методів, який досить добре підходить для виконання великих завдань, — це триваріантна оцінка. Такі оцінки складаються з трьох позицій: найкраща, номінальна (допустима) й найгірша. Ці позиції вказують на довірчий інтервал. Найгірша оцінка - показник часу, протягом якого ви відчуваєте себе на 95% упевненими, що завдання буде виконано. Допустима має лише 50 % довіри, а найкраща — лише 5 %. Наприклад, я на 95 % упевнений, що завдання буде виконано протягом трьох тижнів. Я лише на 50 % упевнений, що його буде завершено за два тижні. І я лише на 5% упевнений, що завдання буде завершено протягом одного тижня. Є ще один спосіб поглянути на це. Якщо взяти 100 подібних за-вдань, то пʼять із них буде виконано протягом тижня, 50 — двох тижнів, а 95 — протягом трьох тижнів.”

“можу порекомендувати вивчити техніку оцінювання та аналізу програм і проєктів (PERT) [https://en.wikipedia.org/wiki/Program_evaluation_and_review_technique]”

“Історія користувача - це скорочений опис функцій програми, розказаний з погляду користувача.”

“оцінювання відбувається не за часовими пара-метрами, а за складністю виконання. Одиниці складності історії мають бути лінійними. Картка з оцінкою 2 повинна вимагати приблизно половини зусиль картки з оцінкою 4. Однак лінійність не повинна бути ідеальною.”

“час спланувати першу ітерацію. Перший крок - зустріч, присвячена її плануванню. Ця зустріч повинна тривати одну двадцяту всієї ітерації. Тобто для двотижневої ітерації зустріч має тривати близько пів дня. На зустріч, присвячену плануванню ітерації, має зʼявитися вся команда, тобто програмісти, тестувальники, керівник проєкту, а також зацікавлені сторони. Останні мають попередньо прочитати оцінювані історії та відсортувати їх у порядку цінності для свого бізнесу.”

“Важливо усвідомити, що швидкість не є обовʼязком. Команда не обіцяє виконати 30 одиниць за час ітерації. Вона навіть не обіцяє зробити спробу в цьому напрямку. Це не що інше, як здогадка про те, скільки одиниць за найкращого розвитку подій буде завершено до кінця ітерації. Таке передбачення не дуже точне.”

“квадранти використовуються для розрахунку рентабельності інвестицій (ROI). Це неформальний підхід, і математика тут не потрібна. Зацікавлені сторони просто дивляться на картку й роблять висновки на основі цінності та складності історії.”

“Мета ітерації - генерувати дані для менеджерів.”

“Користувацькі історії — це прості висловлювання, застосовувані нами як нагадування про функції. Ми намагаємося не занотовувати занадто багато подробиць, коли пишемо історію, бо знаємо, що ці деталі, імовірно, зміняться. Подробиці записують пізніше, але у формі приймальних тестів,”

“Історії мають відповідати критеріям якості, закладеним в абревіатурі INVEST.”

Незалежність (І — Independent). Історії користувачів незалежні одна від одної. Це означає, що їх не потрібно реалізовувати в якомусь конкретному порядку. До прикладу, після входу в систему не потрібно одразу реалізовувати функцію виходу. Це нежорстка вимога, бо цілком можуть існувати історії, які залежать від інших, котрі потребують першочергової реалізації.”

Придатність для обговорення (N - Negotiable). Це ще одна причина, чому ми не записуємо всі деталі. Ми хочемо, щоб вони стали предметом обговорення розробників та замовників.”

“Наприклад, клієнти можуть попросити створити дивовижний інтерфейс із функцією перетягування. Розробники ж можуть порекомендувати щось простіше, з прапорцями, пояснивши, що в такому разі його розробка буде значно дешевшою. Такі обговорення важливі, оскільки вони є чи не єдиним способом надати клієнтам уявлення про управління вартістю розробки програмного забезпечення.”

Цінність (V - Valuable). Цінність історії для замовника повинна бути чітко окресленою й вимірюваною.”

“Рефакторинг ніколи не вважають історією. І архітектуру також. Та й наведення ладу в коді. Історія — це завжди те, що містить у собі цінність для клієнта.”

“історія пройде крізь усі рівні системи. Вона може частково містити трохи графічного інтерфейсу, проміжного програмного забезпечення, баз даних тощо. Сприйміть історію як тонкий вертикальний зріз крізь горизонтальні прошарки системи.”

Піддається оцінці (Е — Estimable). Користувацька історія повинна бути достатно конкретною, щоб розробники могли її оцінити.”

Малий обсяг (S — Small). Користувацька історія не повинна бути великою, щоб бути реалізованою одним або кількома розробниками за одну ітерацію.”

“Не слід давати можливість одній історії домінувати в роботі всієї команди протягом цілої ітерації. Ітерація повинна містити приблизно стільки ж історій, скільки розробників є в команді. Якщо в команді 8 розробників, то кожна ітерація повинна містити приблизно від 6 до 12 історій. Однак ви ж не хочете заплутатися у вирішенні цього питання. Це більше рекомендація, аніж правило.”

Придатність для тестування (Т - Testable). Клієнт повинен мати можливість обрати тести, які підтвердять, що історію завершено.”

“Зазвичай ці тести пишуть спеціалісти з перевірки якості (QA-спеціалісти), вони будуть автоматизовані та використовуватимуться для перевірки того, чи завершено історію.”

“Grenning, J. W. 2002. Planning Poker or how to avoid analysis paralysis while release planning. Доступ за адресою https://wingman-sw.com/articles/planning-poker

“Розбиття історій — трохи цікавіше заняття, оскільки вам потрібно дотримуватися критеріїв INVEST. Як простий приклад розбиття історії розглянемо вхід (залогування). Якщо ми побажаємо розділити його на більш дрібні історії, то можна створити такі: вхід без пароля, вхід з однією спробою, дозволити кілька спроб уведення пароля та забули пароль.”

“Метою кожної ітерації є отримання даних шляхом виконання істо-рій. Команда повинна зосереджуватися на історіях, а не на завданнях, які лежать в їхніх межах. Набагато краще зробити 80 % історій, ніж кожну історію на 80 %. Зосередьтеся на доведенні історій до завершення.”

“У менеджерів та ведучих буде спокуса призначати програмістам історії. Та цього слід уникати. Набагато краще дозволити програмістам самим між собою домовлятися.”

“Якщо спеціалісти з контролю якості ще не почали писати автоматизовані приймальні тести, то щойно завершиться зустріч із приводу планування ітерації, уже час починати. Тести для історій, які заплановано виконати серед перших, слід підготувати якнайраніше. Завершені історії не мусять чекати, коли приймальні тести будуть нарешті готові.”

“Написання приймального тесту повинно проходити швидко. Ми очікуємо, що всі вони будуть готові до середини ітерації. Якщо не всі приймальні тести буде створено до середини, то деяким розробникам слід припинити роботу над історіями й почати працювати над приймальними тестами.”

“Якщо спеціалісти з контролю якості продовжують провалювати написання тестів до середини кожної ітерації, то, імовірно, співвідношення інженерів з контролю якості та розробників неправильне.”

Коли історія пройшла приймальні тести, її можна вважати завершеною.”

“Кожна ітерація закінчується короткою демонстрацією нових історій для зацікавлених сторін. Ця зустріч повинна тривати не більше однієї двох годин, залежно від розміру ітерації.”

“Найкраще, якщо самі зацікавлені сторони перевірять роботу системи, аби розробники не спокушалися можливістю приховувати те, що не працює.”

“Графік швидкості говорить нам про те, наскільки добре керують командою. Графік швидкості буде доволі спотвореним, особливо під час перших ітерацій, оскільки команда ще зʼясовуватиме основи проєкту. Але після кількох ітерацій неточності повинні знизитися до рів-ня, який би дозволив визначити середню швидкість робіт.”

“Ми не розраховуємо, що команда буде прискорюватися або ж уповільнюватися протягом тривалого часу.”

“Якщо ми бачимо зростання на графіку, це навряд чи означає, що команда реально почала швидше просуватися у виконанні роботи. Це, імовірніше, означає, що керівник проєкту чинить тиск на команду, спонукаючи її йти швидше. Коли цей тиск зростатиме, команда несвідомо зміщуватиме значення своїх оцінок, удаючи, що їй удається просуватися швидше. Це просте знецінення. Одиниці — це валюта, і команда знецінює їх, потрапляючи під зовнішній тиск. Повернімося до цієї команди наступного року і побачимо, що за ітерацію вони отримають мільйони балів. Напрошуються висновки, що швидкість — це спосіб вимірювання, а не мета. Теорія управління радить: не тисніть на те, що вимірюєте.”

“Спадання швидкості. Якщо графік швидкостей показує стійкий негативний ріст, то найбільш вірогідною причиною є якість коду. Команда, імовірно, застосовує недостатньо рефакторинга, і код починає псуватися. Одна з причин того, чому команди не в змозі здійснити рефакторинг: вони пишуть недостатньо модульних тестів, тому й бояться, що рефакторинг порушить те, що раніше працювало. Боротьба зі страхом перед змінами є головною метою управління командою, і все це зводиться до дисципліни тестування.”

“Швидкість спадає, а от тиск на команду зростає. Це знецінює одиниці складності. За роздуванням одиниць може ховатися падіння швидкості виконання проєкту.”

“Еталонна історія. Одним зі способів уникнути знецінення є постійне порівняння історій з початковою еталонною, стандартом, за яким будуть оцінюватися інші історії. Памʼятайте, що вхід був нашою первинною еталонною історією, і вона оцінювалася 3 одиницями. Якщо нова історія, наприклад виправити помилку в пункті меню, отримує оцінку 10, то стає зрозуміло, що в хід пішло знецінення.”

“То що таке специфікація? Специфікація, по суті, є тестом.”

“Коли тестування переноситься на кінець, уся відповідальність за затримки падає на плечі спеціалістів із контролю якості.”

“У Scrum клієнта називають власником продукту. Це людина (або група), яка обирає історії, установлює пріоритети та надає своєчасний зворотний зв’язок.”

“Коли цілісна команда ділить між собою один простір, може статися магія.”

“Коли члени команди перебувають у межах одного простору, робота йде рівномірніше.”

“Коли члени команди працюють з дому, то все ж спостерігається значна нестача невербального спілкування. Безтурботні розмови трапляються набагато рідше.”

“програмний проєкт — це марафон, а не спринт чи серія спринтів. Щоб виграти, потрібно правильно розподілити сили. Якщо ви стрибаєте через перешкоди й женете на всіх парах, у вас вичерпається енергія задовго до фінішної прямої.”

“Понаднормова робота - це не спосіб проявити свою відданість роботодавцю. Вона лишень свідчить про те, що плануєте ви погано, що погоджуєтесь із термінами, з якими погоджуватися не повинні, що роздаєте обіцянки, які не мали б давати, що ви керований чорнороб, а не професіонал. Це не означає, що працювати понаднормово завжди погано або що ніколи не варто так робити. Існують помʼякшувальні обставини, у яких єдиним виходом є понаднормова робота. Але вони повинні виникати вкрай рідко. І вам необхідно добре усвідомити, що цей понаднормовий робочий день, імовірно, коштуватиме вам дорожче, аніж час, який ви заощадите за графіком.”

“Визначте, скільки годин сну потребує ваш організм, а потім надайте цим годинам найвищий пріоритет. Сон упродовж цих годин повністю окупиться. Маю правило: перша недоспана година коштує мені дві години денної роботи. Друга недоспана година коштує мені ще чотири години продуктивної роботи. І звичайно, про продуктивність можна забути узагалі, якщо я недоспав три години.”

“на стендап-зустрічах дозволяється говорити лише розробникам. Менеджери та інші співробітники можуть слухати, але втручатися не повинні.”

“Подвійна бухгалтерія. Бухгалтери мають алгоритм дії, винайдений 1000 років тому. І на- зивається він подвійна бухгалтерія». Кожна транзакція, яку вони проводять, вноситься до книги двічі: уперше як кредит на один рахунок, а вдруге як дебет — на інший. Ці рахунки зрештою зливаються в єдиний документ, який називається баланс, де від суми активів віднімається сума боргових зобовʼязань та власного капіталу. Така різниця повинна дорівнювати нулю. Якщо вона не дорівнює нулю, то десь допущено помилку?.”

“Керована тестами розробка — це аналогічна бухгалтерській практика для програмістів. Кожна дія повторюється двічі: спершу пишуть тест, а потім виробничий код, який зможе цей тест пройти. Ці дві дії взаємодоповнюють одна одну, як активи й пасиви. Коли ці дві дії виконуються разом, то зрештою отримуємо нульовий результат: жодний тест не провалено.”

“Ці два напрямки — ведення подвійної бухгалтерії та керована тестами розробка — рівнозначні. Вони обидва виконують ту саму функцію - запобігати помилкам у критично важливих документах, де кожен символ повинен бути правильним.”

“Керовану тестами розробку можна описати трьома простими пра- вилами. 1) Не пишіть готовий код, доки спершу не буде написано тест, який не вдасться пройти саме завдяки відсутності виробничого коду. 2) Не пишіть тестів більше, ніж це необхідно для провалу. Збій під час компіляції також уважається провалом. 3) Не пишіть коду більше, ніж достатньо для проходження тесту, який до цього завершився провалом.”

“Покриття тестами трохи більше за 90 %, імовірно, буде достатнім і справді досяжним.”

“Застереження. Повнота тесту — це показник для команди, а не для менеджерів. Менеджери навряд чи в курсі, що саме він означає. Менеджери не повинні використовувати цей показник як напрямок дій або ціль. Команда має використовувати його виключно для інформування про свою стратегію тестування.”

“Коли у вас є повний набір тестів, ви втрачаєте страх здійснити зміни в коді. Утрачаєте страх очищення коду. Отже, ви таки почистите код. Ви будете тримати систему акуратною та впорядкованою. Ви збережете структуру системи незмінною. Ви не створите масу кодового перегною, яка затягне команду в депресію низької продуктивності та спричинить подальші невдачі. Ось чому ми застосовуємо керовану тестами розробку. Ми практикуємо її, бо вона дає нам сміливість підтримувати код чистим і впорядкованим. Сміливість діяти як професіонали.”

“Рефакторинг - це метод удосконалення структури коду без зміни поведінки, визначеної тестами. Інакше кажучи, ми змінюємо імена, класи, функції та вирази, не провалюючи жодного тесту. Ми вдосконалюємо структуру системи, не впливаючи на і поведінку.”

“рефакторинг — безперервний, а не виконуваний періодично й за планом процес. Ми не створюємо великого роз-гардіяшу день у день, а потім не заходимося його очищувати. Краще вже зробити зовсім невеликий безлад, на хвилину-дві, а потім цю маленьку плутанину прибрати. Слово рефакторинг ніколи не повинно зʼявлятися в графіку робіт. Це не той різновид діяльності, який виконується плановано. Ми не резервуємо час на рефакторинг, бо це лишень частина нашого похвилинного й погодинного підходу до написання програмного забезпечення.”

“Правила простого проєктування Кента Бека. 1. Пройдіть всі тести. 2. Розкрийте наміри. 3. Видаліть продубльовані елементи. 4. Скоротіть кількість елементів.”

“Завдання простого проєктування - зберегти проєктну вагу коду якомога меншою.”

“Складність програмного проєкту варіює від досить простого до надзвичайно складного. Що складніша конструкція, то більшим є когнітивне навантаження на програмістів. Це навантаження - проєктна вага. Що більша вага цієї конструкції, то більше часу й сил потрібно програмістам для осягнення системи й управління нею.”

“Досягнення балансу складності структури та функцій — мета простого проєктування. Застосовуючи цей метод, програмісти постійно перепроєктовують конструкцію системи, аби забезпечити її врівноваженість відповідно до вимог, а отже, підтримувати максимальну продуктивність.”

“Парне програмування — це діяльність двох програмістів, спрямована на вирішення однієї проблеми. Вони можуть працювати разом на одній машині, зі спільним екраном, клавіатурою та мишкою. Або на двох підключених компʼютерах, споглядаючи той самий код і керуючи ним. Останній варіант чудово працює завдяки програмам, які забезпечують спільний доступ до екрана.”

“Часом програмісти, котрі працюють у парі, виконують різні ролі. Один може бути водієм, а інший — штурманом. У водія — клавіатура та миша, штурман більше часу відводить на перегляд коду на екрані й дає рекомендації. Інший варіант розподілу ролей полягає в тому, що один програміст пише тест, а інший має його пройти та написати наступний тест — для першого програміста. Іноді цей метод називають пінг-понг.”

“Ніхто не формує пари. Вони утворюються й розпадаються відповідно до бажань програмістів. Менеджери не мають утручатися, створюючи графіки чи матриці спільної роботи.”

“Провідні програмісти - сеньйори - мають потурбуватися, щоб якомога частіше працювати в парі з молодшими - джунами, а не з такими ж досвідченими, як вони самі.”

“Мета полягає в поширенні та обміні знаннями, а не в їхньому одноосібному накопиченні.”

“Важко виміряти витрати на парне програмування. Найбільш пряма витрата — це те, що над виконанням одного завдання працюють двоє людей. Здається очевидним, що на це витрачаються не подвійні зусилля, проте, імовірно, якісь витрати є. Різні дослідження показали, що прямі витрати можуть становити близько 15 %. Інакше кажучи, знадобиться 115 програмістів, які працюють у парі, аби виконати роботу, котру зроблять 100 осіб (без аналізу коду). Примітивний розрахунок дозволив би припустити, що втрати команди, яка працює в парі 50 % часу, будуть менші за 8 %. З іншого боку, якщо робота в парі замінює огляд коду, то, найвірогідніше, зниження продуктивності взагалі не відбудеться. Тоді ми повинні врахувати переваги взаємного навчання та обміну знаннями. Такі переваги неможливо порахувати, але вони, схоже, є значними.”

ніколи-ніколи не просіть дозволу на роботу в парі. Або на тестування. Чи на рефакторинг. Або… Ви тут фахівець. І вам вирішувати.

Цінності Agile… Кент Бек назвав чотири цінності Agile. Це сміливість, комунікація, зворотний звʼязок та простота.

“Сміливість. Перша цінність — сміливість, або, інакше кажучи, розумний ступінь ризику. Члени команди Agile не настільки зосереджені на політичних заходах безпеки, аби жертвувати якістю та можливостями. Вони усвідомлюють, що найкращий спосіб керувати проєктом із розробки програмного забезпечення в довгостроковій перспективі - проявляти певний ступінь агресії.”

“Віра в те, що якість та дисципліна підвищують швидкість, смілива, оскільки їй постійно будуть кидати виклик впливові, але наївні колеги, котрі поспішають.”

“Комунікація. Ми цінуємо пряму та часту комунікацію, що застосовує перехресні канали зв’язку. Члени команди Agile хочуть поговорити одне з одним. Програмісти, замовники, тестувальники та менеджери хочуть сидіти поруч і часто комунікувати між собою, і не лише в робочому контексті. Не лише електронною поштою, у чатах та за допомогою службових листів. Вони поціновують неформальне міжособистісне спілкування.”

“Команда, члени якої сидять разом і підтримують тісне спілкування, може творити дива.”

“Зворотний зв’язок. Практично всі напрямки Agile, які ми вивчали, спрямовано на забезпечення швидкого зворотного звʼязку для людей, які приймають важливі рішення.”

“Простота. Наступна цінність Agile — це простота, інакше кажучи, прямота, чесність.”

“Коли ви визнаєте проблему, але мовчки дозволяєте собі перекласти її розв’язання на когось іншого, то поводитеся нечесно. Коли ви пристаєте на вимоги менеджера чи замовника, усвідомлюючи катастрофічність наслідків, ви чините нечесно.”

“Простота — це прямота, прямота в коді та безпосередність і чесність у спілкуванні та вчинках.”

“Зберігайте простоту коду. Створіть у команді атмосферу простої взаємодії”

“рух Agile, — це проблема роботи невеликих команд розробників. Ми не знали, як ефективно організувати відносно невелику групу програмістів задля досягнення їхньої ефективності. І саме цю проблему вирішив Agile. Важливо розуміти, що ця проблема стосувалася розробки програмного забезпечення, а не самої невеликої команди.”

“У 2010 році Ліса повністю описала власний підхід до коучингу у своїй книжці Coaching Agile Teams. [Adkins, L. 2010. Coaching Agile Teams: A Companion for ScrumMasters, Agile Coaches, and Project Managers in Transition. Boston, MA: Addison-Wesley.]”

“Одна з цінних навичок коуча — це вміння проводити ефективне опитування, одним із призначень якого є «постановка запитань, які призводять до відкриттів, осяянь, зацікавленості та дій».”

Прямувати до великого, зосереджуватися на малому

“У нас зʼявилися списки невиконаних завдань та користувацькі історії замість документів із вимогами. У нас були дошки та діаграми згоряння завдань замість діаграм Ганта. Ми мали стікери, які щоранку рухали відповідно до нашого просування в процесі роботи. У стікерах відчувалася потужна енергетика — те, що викликало глибоку психологічну залежність. Вони ніби репрезентували нашу приналежність до Agile. Що більше стікерів у нас було на стінах, то більший звʼязок із Agile ми відчували. Ми стали командою Scrum, а не будівельною бригадою.”

“Компанії ще недостатньо дозріли, аби зрозуміти, що технічні проблеми насправді є бізнес-проблемами.”

“Майстерно продумане програмне забезпечення означає добре розроблений і протестований код. Це код, який ми не боїмося змінювати і який дозволяє бізнесу швидко реагувати на зміни. Це гнучкий і надійний код.”

“Ідеологія — це система ідей та ідеалів. Методологія ж — це система методів і практик. Ідеологія визначає ідеали, на які слід орієнтуватися. Для досягнення цих ідеалів можна використовувати одну або кілька методологій. Вони є засобом для досягнення мети.”

“Highsmith, J. 2009. Agile Project Management: Creating Innovative Products, 2nd ed. Boston, MA: Addison-Wesley, 85”

“Поширеною помилкою в спільнотах Agile і майстрів розробки є надання переваги методам перед цінностями, які покладено в основу методів.”

“Розробники не повинні випрошувати дозвіл на написання тестів. Вони не повинні мати окремі завдання для проведення одиничних тестів або рефакторингу. У них не має бути окремих завдань, аби реалізувати функціонал. Такі технічні заходи необхідно враховувати в процесі розробки будь-якої функції. Вони не є факультативними. Менеджери та розробники мусять обговорювати лише те, що й коли буде випущено, а не в який спосіб.”

“Розмови між розробниками та бізнесом повинні вестися про те, чому, що і коли відбуватиметься, а не присвячуватися питанню як.”

“Майстерність просуває ідею розробки програмного забезпечення як професії. Існує різниця між роботою та професією. Робота — це те, що ми робимо, але це не частина нашої сутності. З іншого боку, професія — частина нашої особистості.”

“Професія — це те, у що ми вкладаємо гроші. Це те, у чому ми хочемо покращити свої вміння. Ми хочемо здобути більше навичок і мати довготривалу та повноцінну карʼєру.”

“професія. Це щось додаткове, що приносить нам задоволення і доповнює нашу особистість. Професія наповнює сенсом наше життя.”

“Ці основи — цінності, принципи й методи, зазначені в книжці Extreme Programming Explained Кента Бека. Ці основи - мотива-ція, прийоми та методи з книжки в Refactoring? Мартіна Фаулера. Їх було викладено Бучем, ДеМарко, Юрдоном, Константином, Пейдж- Джонсом та Лістером. [1) Beck, K. 2000. Extreme Programming Explained: Embrace Change. Boston, MA: Addison-Wesley. 2) Fowler, M. 2019. Refactoring: Improving the Design of Existing Code, 2nd ed. Boston, MA: Addison - Wesley.]”

#1 Додаток для Швидкочитання (promo) 

Friday, January 24, 2025

The Extra Hour: Powerful Techniques to Create More Time in Your Day



Best word game apps (promo)

Best notes from the book:

“For all those who type with one finger, and for those they drive crazy.”

“Tim Urban, the author behind the fantastic WaitBut Why blog demonstrates one thing: that life is a finite resource, and far too short to waste.”

“new technology should be used to liberate us from work, rather than tie us to it.”

“THE PRODUCTIVITY EQUATION. Work Completed = (Time Spent) X (Intensity of Concentration) X (Speed of Execution)”

“As far as we’re concerned, to become super-productive, you must: 1) Get organized: allocate enough time to do each job properly. 2) Concentrate: give each task the focus it requires. 3) Accelerate: get through each task as quickly and efficiently as possible.”

“Why you should just say no. The definition of productivity is not doing lots of things’. Productivity is about strategically choosing your priorities and picking the battles that best line up with your objectives.”

“Without a doubt, one of the most useful bits of advice we received was this: If you’re not turning down at least 20 percent of meetings, you’re not managing your time properly. If you’ve ever felt that at least one in five of the people at most of your meetings has no reason to be there, well, you’re right.”

“we have a better memory of active tasks than of completed ones,… Today, we call this the Zeigarnik Effect, which, in a nutshell, states that an unfinished task takes up a lot more space in the brain than a completed one does.”

“More technical note-taking apps. Entrepreneurs we spoke with also use Google Keep, No-tion, Any.do, Trello, Todoist, and Remember the Milk. The main advantage of these apps is the ability to easily synchronize notes across different platforms, find what you need quickly, share documents easily, and filter by category.”

“Don’t spend hours looking for the perfect app. What matters is how you use it.”

“if a task on your to-do list will take you less than two minutes to complete, do it. Immediately.”

“Every time you look over your to-do list, the first thing you should ask yourself is, ‘what can I delegate here?’.”

“Every minute you spend prioritizing your time is worth ten minutes of work time. Prioritizing your tasks is one of the most productive activities you can do in your day.”

“Most entrepreneurs suggested blocking out slots of one to two hours, but feel free to choose your own length of time. For example, you might try the Pomodoro method, which was invented by Francesco Cirillo, an Italian researcher who discovered that the optimum concentration period for the human brain is 25 minutes. He suggests breaking your schedule into 25-minute work periods punctuated by five-minute breaks.”

“Offline time. Time spent in offline mode (when you’re on a plane for example represents a great opportunity to make some headway on your most important tasks. Many entrepreneurs told us that they take advantage of being cut off from emails, text messages, and other distractions to work on the tasks that require the most attention.”

“Over the long term, procrastination can poison our lives, because the most important tasks - the ones that really test us, and will benefit us most in our personal and professional development - are invariably the most difficult.”

“If you don’t do the small things, you’ll never get the big things done.”

“One of the most obvious ways of avoiding procrastination is to set yourself a precise deadline.”

“the average office employee works for only 11 minutes between interruptions [Gloria Mark, University of California, Irvine]. Alternating between tasks gives the illusion of productivity: employees believe that they’re working full-speed ahead, responding quickly to a multitude of demands… Multitasking is one of productivity’s biggest enemies.”

“Professor and psychologist Glenn Wilson led a study that showed we risk losing the equivalent of ten IQ points if we are interrupted while solving a problem. That interruption could be something as seemingly benign as receiving an email.”

“The first technique you should rely on to avoid these distractions is the to-do list”

“Mixmax is an add-on for Gmail that reminds you to follow up on an email if you haven’t received a reply within a set timeframe. An equivalent tool for Outlook is Boomerang.”

“Inbox Zero is a classic method for increasing productivity and is used by over a third of the entrepreneurs we met with. The premise is simple: keeping your inbox empty keeps your mind calm.”

“The Inbox Zero Method in three stages: 1) As soon as you read an email that doesn’t require an action, archive it straight away. 2) If an action on your part is needed and you have time, reply and then archive the email. [Enabling the ‘Send and Archive’ button in the Gmail Settings menu will bring up a button you can use to automatically archive a conversation once you’ve sent your reply.] 3) If you don’t have time, add the action required to your to-do list and then archive the email. Remember that you should have only one centralized to-do list to prioritize tasks effectively.”

“What’s important here is getting your work done, not having an empty inbox. An appropriate approach would be to aim for Inbox Zero twice a week - Wednesdays and Fridays, for example.”

“To keep your mind clear and free from distractions, keep your desk clean. Put in place a weekly ritual whereby you organize your desk properly on a Friday afternoon so that you get to work on Monday morning and you’re ready to go. The same rule applies to your virtual office: get rid of old files that clutter up your desktop and you’ll feel incredibly better (Hazel for Mac automatically moves files on your desktop that haven’t been used for a week into a dedicated folder).”

“An alternative would be to download an app for your smartphone, such as Headspace, Calm, or Insight Timer (the top-rated free meditation app developed by teachers the world over). Even if you only meditate for ten minutes a day, you’ll quickly notice the benefits.”

“Blocking apps. There are various apps available (such as Freedom) which you can set up to block your access to particular websites or apps for a specific amount of time.”

“We recommend Pocket, an excellent extension for Chrome, that lets you save articles and videos with one click, which you can pull up later on any device.”

“the brain is less distracted by familiar songs than by new ones [Morgan K. Ward & Joseph K. Goodman & Julie R. Irwin, ‘The same old song: The power of familiarity in music choice.’ Marketing Letters, 25 (2014): 1-11.]. It’s also worth trying out the excellent website (and Google Chrome extension) Noisli. It provides dozens of background soundscapes that can help you concentrate, from quiet riverbanks, to cafés, to a cabin during a thunderstorm.”

“CHOOSE ASYNCHRONOUS COMMUNICATION”

“Synchronous communication: this is when both parties communicate at the same time, as in face-to-face and phone conversations.”

Asynchronous communication: this is when neither party is required to respond immediately, as in let-ters, emails or text messages.”

“The key point is that synchronous communication threatens your productivity because it requires your immediate involvement and therefore interrupts your work.”

“According to The 3 Email Rule by Phil Simon, if you need to send more than three emails to someone on one subject, you should be talking. Ideally, plan your call with the other party in advance to avoid causing unnecessary interruption.”

Don’t check your emails more than three times per day

“do not, we repeat, do not read work emails outside of office hours.”

“We recommend using email for anything important and chat apps for the more light-hearted stuff. The added bonus here is that by systematically using emails, you’ll have automatically filed anything important in the same place, making it easier to find in the future.”

“Work remotely at least half a day every week to be fully focused and get things done.”

“Do not answer phone calls from numbers that you do not recognize.”

“Fundamentals, Automation, Speed, Twenty/Eighty Rule: welcome to the FAST method. If it works well in the kitchen, it does wonders at work.”

“Concentration requires a huge amount of energy: the average adult brain uses between 20 and 25 percent of the body’s total energy consumption despite representing only 2 percent of its weight.”

“Make sure you take enough breaks in your day - real ones. A break isn’t just time spent not working or being lazy, it is a fundamental requirement for improving efficiency and creativity. Don’t feel guilty about taking a real lunch break or about scheduling some downtime between meetings.”

“Each day we make hundreds of micro-decisions like these that take up both time and energy as we first define our options, weigh the pros and cons of each, and then make a choice. The end result is decision fatigue, a condition you may already be familiar with. The cumulative effect of all these micro-decisions is that we drain ourselves of the time and energy we need to make important decisions, like whether or not to hire a candidate, start a new project, etc.”

“Lots of our entrepreneurs endorsed morning runs or lunchtime workouts (running, yoga, CrossFit, squash …) as ways to up their concentration and productivity for the rest of the day… During exercise, the body releases all kinds of hormones into your system.”

“The digestive system is more than just a series of organs designed to process food and transform it into fuel for the body. It’s more like a second brain: our intestines contain over 200 million neurons - as many as in a dog’s brain - and more nerve cells than our eyes, ears or skin.”

“Scientists discovered that electrically stimulating the vagus nerve (the nerve responsible for communication between the brain and the digestive system) could have dramatic effects on a subject’s mood.”

“your mind is most lucid first thing in the morning, when sleep has cleared away mental clutter, leaving you equipped to tackle your most demanding to-dos.”

“The entrepreneurs we spoke to all had a clearly-defined morning routine. Here are some of the most common recommendations: 1) Define your three most important tasks. Then start with the hardest. (Remember the frog.) 2) Exercise. 7 Minute Workout, anyone? Meditate. The best chance you have of not being disturbed is when everyone else is still asleep. 3) Drink a big glass of water. You lose about 7oz of water during a night’s sleep, which is not a lot, but it’s never a bad idea to rehydrate yourself. 4) Make your bed. A simple task easily accomplished will help provide motivation for those that follow.”

“most modern software is SaaS (which means you have access to whatever you need with any web browser) and as such is available for both Mac and PC. Your call.”

“The Golden Rule: if you need to repeat the same action more than one single time, automate it.”

“Let your computer autofill forms”

“For remembering usernames and passwords, 1Password works well.”

“Let your computer sort through your emails”

“Mixmax = Gmail on steroids”

“Mixmax is one of only two tools that has its own box in the book, and for good reason. Mixmax can unleash Gmail’s full potential, and was cited as a game changer by many of the entrepreneurs we spoke to.”

“Send later. You can set Mixmax to send an email at the date and time of your choice”

“You speak faster than you write so if you’re not already doing so, we recommend using voice recognition to dictate your smartphone messages, whether that be for texts, WhatsApp, or anywhere else. But avoid sending audio messages to your recipient because messages are still faster to read than to listen to.”

“Type faster. First things first: let’s test your typing speed (there are plenty of sites for this, but 10fastfingers is good). If you type less than 30 words per minute, you’re slower than average - so the good news is that there’s plenty of room for improvement. Just to give you an idea, a professional typist can produce between 70 and 100 words per minute,”

“There are some great online tools to help improve your typing. For us, one of the best is Typingclub, which is used by over 50,000 schools across the United States.”

Read faster. The average reader reads between 200 and 300 words per minute, but the fastest are capable of reading closer to 1,000 in that time. There are two key secrets behind their ability to read so quickly. 1. They don’t subvocalize. Subvocalization is essentially the process of mentally speaking the words we read, which slows reading speed down to speaking speed. 2. They increase their scanning speed. Contrary to what you might think, our eyes do not read the words in a line of text in order, one by one, but in a series of five to six jumps, each one lasting about 0.25 seconds. To skim text faster, you can try reading the third word on each line and the third to last word on that same line, and let your peripheral vision do the heavy lifting.”

Legentas offers online lessons to help you reduce the number of stopping points on a line, while Spreeder trains you to read faster by flashing sequences of words across the screen, a method known as Rapid Serial Visual Presentation.”

“if you struggle to find the time to read, try listening to podcasts - or audiobooks.”

“Warren Buffet claims to spend 80 per cent of his time reading, Bill Gates gets through more than 50 books a year, and Elon Musk claims he learnt how to build rockets simply by reading books.”

“Keith Rayner, Elizabeth R. Schotter & Michael E. J. Masson, ‘So Mụch to Read, So Little Time: How Do We Read, and Can Speed Reading Help?’ Psychological Science in the Public Interest, 17 (2016): 4-34.”

“good memory is not an innate talent, it just involves learning and mastering some techniques, like any other subject taught in school.”

“On average, your short-term memory lasts 18 seconds and allows you to store anywhere between five to nine pieces of information.”

“The second memory technique will allow you to remember sequences of numbers: building access code, credit card number, social security number, birth dates, telephone numbers of your loved ones … This is the so-called major system method. It requires quite a bit of training at first, but once you realize what you get out of it, you will be pleasantly surprised by your new ability and have a hard time doing without it! (And once you can remember the license plates of passing cars, you’ll be ready to apply to the CIA).”

“we recommend the following book by Kevin Horsley, a master in the subject: Unlimited Memory: How to Use Advanced Learning Strategies to Learn Faster, Remember More and Be More Productive.”

“just need to remember that X% of Y is the same as Y% of X.”

“Alfred is a true ninja app, capable of saving you significant time on those frustrating micro-tasks that eat away at so much of the day. Given everything it can do, the $25 price tag (a one-time payment, not a yearly fee) is pretty negligible. Some of Alfred’s most popular features. 1). Instant Searches. … 6) The One Tab extension for Chrome lets you close all your tabs with one click. You can also use it to close only a certain group of tabs, e.g. all tabs to the right of the active one. 7) Paste for Mac is the app that’s revolutionizing the clipboard by saving your entire copy/paste history. Clipclip is the equivalent for PC.”

“Parkinson’s Law, which states that work expands so as to fill the time available for its completion’.”

“If 80 per cent of the effects are produced by 20 per cent of the causes, it follows that we should be concentrating most of our efforts on that 20 per cent.”

“As LinkedIn founder Reid Hoffman puts it, if you aren’t embarrassed by the first version of your product, you’ve launched too late’.”

Done is better than perfect.

“The future belongs to those who work less.”

full list, up-to-date list of tools at www.extrahourbook.com/tools

“Manage files: Hazel (only available for Mac with a one-off payment of $32) or DropIt (PC equivalent available for free).”

“Alfred App for Mac only (the search function is free, otherwise it’s a one-time payment of $25): Run a search for a file or open an application without using the mouse. Speed up typing using Snippets, access the clipboard quickly, or instantly run a search on any site with custom web searches.”

“Swiftkey (free mobile app): Speed up your typing on a smartphone.”

“10fastfingers: Test your typing speed, then Typing-club to practice.”

“Paste for Mac (free) or Clipclip for PC (free): Save your copy and paste history for easy access.”

“Rambox: Group all your messaging, chat, and email apps into a single interface.”

Read FASTER with BETTER Comprehension.  (promo)

Колір магії (Terry Pratchett)

  Кращі нотатки з книги: “На дискосвіті тиждень, звісно, має вісім днів, а спектр світла поділяється на вісім кольорів. Вісімка тут - узагал...