Планирование (включая оценку) того, что нам нужно сделать в релизе, квартале, за год - это Сизифов труд?The Sisyphean Tragedy of Planning | Stop Trying To PUSH Rocks Up-Hill Like SisyphusИ вроде все верно, и про неточность прогнозов, оценки, изменяющийся контекст. И то что просто "вытягивать" (брать следующее по приоритету) и релизить по готовности удобнее, чем заранее планировать и коммититься в даты.И в целом забытый (ну или пропавший из инфолент) лозунг #NoEstimates про это же.Но бизнес не привык и не будет так работать. И большинство клиентов тоже. Им всем нужно понимать что будет сделано, а не "может быть сделано".Истина скорее где-то посредине, но все ближе к планам/целям и отмеченным датам. Иначе - это бесконечная история "а вот тут еще один мега-супер-пупер важный запрос прилетел, а вот еще..."А вообще в голове сложился тот коммент, что первым там нарисовался.#процессы
В IT чудес не бывает
@it_without_miracles
Лайт-версия блога https://www.maxshulga.ru/ про менеджмент, качество и процессы в IT от доброго доктора АйТиболита @maxbeard12
Похожие каналы
Все →Последние посты
Я всегда говорил: везде есть свой уроборос..."Tech debt causes slowness. Slowness creates pressure. Pressure creates more tech debt. If your diagram has no loops, you probably haven’t looked hard enough. Chains are comforting because they have endpoints. Loops are uncomfortable because they don’t. That discomfort is the point!"Ask “what conditions made this likely?” rather than “what caused this?” This shifts the question into something systematic, rather than looking for a silver bullet.Every system has holes (incomplete tests, ambiguous runbooks, technical debt, etc). Individually, none of them are “the cause".The incident happens when enough of them line up at the same time.The Root Cause Fallacy In which framing it as a root cause means you've already lost#мысли_вслух #процессы
Практические знания (получаем контекст):- о тестируемом объекте (SUT) в целом- о том, что мы сделали нового- о внесенных изменениях и затронутой ими части функциональности- об основных (самых популярных/ожидаемых/итп) пользовательских сценариях- о пользовательских данных и том, как они участвуют во всех пунктах выше- кто и как тестировал внешние для нас компоненты, которые делают другие командыВсе приемы "перевода" качества в количество основаны на примитивных отношениях (например таком: X=1-A/B, где А - число нереализованных функций; В - число описанных функций). И дальше все это так или иначе "агрегируется". Вообще гляньте этот ГОСТ Р 25023-2021 "Измерения качества системы и программной продукции" - прикольно для фанатов отчетности и тех, кого мучают вопросами "а что у нас с качеством?". Как это применять в реале представить сложно (не сталкивался), но видимо кто-то пользуется. Виталий Шароватов у себя подробнее рассказывает тему с рисками.Ну а если по старинке, то определяем то, на что больше обращать внимание исходя из контекста и ответов на вопросы из прошлого поста.Начнем с поставки продукта (фичей) - без этого пользователь не получит ничего.Если поставляем коробку для on-premise, то значит будет установка - риск по “совместимости”. Если хостим сами (что-то а-ля SaaS) - то вопрос чуть другой. Какие вопросы задаем (или решаем сами исходя из опыта поддержки):- какая самая популярная ОС из поддерживаемых (но, помним - проверять, что ставимся на все поддерживаемое, все равно нужно, вопрос лишь в том, как часто).- или самая “капризная” (исходя из опыта предыдущих тикетов)- свежая ОС в спискеИм больше всего внимания.Обновление установки: - целостность хранимых данных при обновлении - важный вопрос. Тестирование миграций часто идет фоном и происходит “благодаря” тестированию обычных фичей. А именно в этом месте может стрельнуть, особенно если стенды обнуляются при накатывании новых версий. Но данные бывают разными, каких-то и не жалко.- кастомные настройки (“тюнинг”)
Продолжаем.Что нам поможет с рисками? (почему-то вспомнился мем "а чего мы хотим?")Теория.ISO 25010 (Systems and software engineering|Systems and software Quality Requirements and Evaluation (SQuaRE)|System and software quality models и ее аналог ГОСТ Р ИСО/МЭК 25010-2015 (в виде pdf).Этот ISO описывает модель качества продукта через характеристики.• Functional Suitability (Функциональная пригодность): Полнота, корректность и уместность функций.• Performance Efficiency (Эффективность производительности): Временные характеристики, использование ресурсов, емкость (потенциальные возможности).• Compatibility (Совместимость): Совместное использование, интероперабельность.• Usability (Удобство использования): Понятность, обучаемость, управляемость, защита от ошибок пользователя, эстетика интерфейса.• Reliability (Надежность): Завершенность, доступность, отказоустойчивость, восстанавливаемость.• Security (Безопасность): Конфиденциальность, целостность, неподдельность, отслеживаемость, подлинность.• Maintainability (Поддерживаемость): Модульность, возможность повторного использования, анализируемость, модифицируемость, тестируемость.• Portability (Переносимость): Адаптируемость, возможность установки, замещаемость.Это то, что можно использовать, как реперные точки, относительно которых мы пытаемся обсуждать вопросы.“Просто” берем каждую из характеристик/подхарактеристик, уточняем наше текущее состояние и обсуждаем с бизнесом насколько его ожидания расходятся с нашей суровой реальностью. Что из этого критично, а чем можно пренебречь на данном этапе и как долго можно “пренебрегать”. Для новой функциональности делаем это на входе.Чем больше прозрачности - тем проще. Даже если бизнес, в силу разных обстоятельств, не может нам дать конкретики, то понимание того, где мы сейчас находимся, очень полезно нам самим.Банальный пример: вместо вопроса "а у нас будут заказчики с большими файлами?" (с ответом "конечно будут"), лучше задавать "у нас сейчас грузятся файлы до 10GB, этого дост
Продолжение про "рисковое тестирование" будет, мне самому интересно. Но потом :)А пока новости из инфоленты. Всегда было интересно, исходя из чего ИИ выбирает решения для базовой функциональности, которая нужна почти всегда (базы, файловые хранилища, ORM, CI/CD, аутентификация, тесты и тдтп).Тут небольшой ответ на этот вопрос (на примере Claude Code). И чуда не произошло - "не все рекомендации одинаково полезны" и думать все равно нужно. Но некоторые "решения по умолчанию" вполне логичны. Интересно, можно ли теперь в момент выбора опираться на "используется ИИ по умолчанию"? :)#tech_read
Forget coverage; focus on risk"...the goal shouldn’t be more tests. It should be less risk. Quality isn’t about measuring lines of code, it’s about understanding where things can go wrong and ensuring we catch critical issues early.""Risk thinking aligns quality with business impact, not just technical metrics.""Хорошие тесты лучше, чем много тестов" (Don’t aim for more tests; aim for the right tests) - этот дзен не всем понятен и в целом, в автоматизации тестирования количество не всегда переходит в качество. Это происходит достаточно часто, потому что многие находятся в вечном "достижении количества" в условиях "постоянно уходящего поезда из новых фичей".Вот вроде все хорошо с этим risk based подходом, за исключением нюанса - никто не мало кто знает, что такое "риск".Про риски тут в канале уже было бубубу:Со словом "риски" у меня с недавних пор сложные отношения, но в целом действительно, если отталкиваться от них, действительно можно получать более предсказуемые результаты проекта. Но работать с ними никто не умеет (я таких не встречал)...В статье есть подсказки:• Какие риски для бизнеса являются наиболее критическими?• Какие сбои нам было бы стыдно объяснять руководству? И следующие за ними:• Есть ли у нас тесты, которые позволяют снизить эти риски на ранних этапах жизненного цикла разработки?• Если нет, как мы можем повысить уверенность в этой области?—Очень логичным кажется пойти к бизнесу и спросить про эти риски. Но часто ответ будет "нужно, чтобы все работало и лучше вчера, на крайняк - сегодня" и вообще "за качество отвечает разработка".А если ответ будет не таким, то будет что-то вида "репутационные риски" и "финансовые претензии" от "несоответствия ожиданий заказчика реальности". А, еще, "нужно писать фичи, а то продаж не будет" - вот где настоящий риск.И мой опыт показывает, что история настолько комплексная и многоаспектная, что в 90% случаев "прилетает" по вопросам/проблемам всем давно известным, но которые намеренно или не намеренно "упустили" в моме
Я уже готовлюсь, инструмент закуплен, навык использования имеется. Не пятничный и может не айти #it_memes
Дома мне чуток не хватает офисного шума. Мои постоянно теперь вертящиеся вокруг собаки не замещают фона, к которому привык за долгое время.Пробую DevOpsRadio.Спасибо авторам :)#байки
Если честно, ии-стерия ввергает меня в некоторую степень апатии, недоверия или пофигизма (а может это весенний авитаминоз). Во что это в итоге выльется пока непонятно. Изменения точно будут, но маловероятно, что во всех аспектах разработки и применения софта.Из всего, что мелькает вокруг по этой теме хорошо леглипервые 2 главы от Олега. С аналогиями и параллелями из "обычной" разработкой лучше заходит. PS Цитата про тесты - до слез 😹Хорошие инженеры могут воспринимать тесты, особенно — интеграционные тесты, как особый вид документации. Преимущество тестов перед документами в Word/docx в том, что их можно запустить и мгновенно получить ответ — выполняются требования или нет. По крайней мере, такова мечта. Об этом рассказывают на конференциях, строят умные модели и рисуют пирамидки. По факту, тесты мало у кого есть. Либо они проверяют какую-то ерунду. Докладчики, возвращаясь с позёрских QA-конференций, на работе видят пустоту и разруху. #tech_read
Ну, за приоритет Ы The word “priority” came into the English language in the 1400s, and it was singular, meaning the very first thing, the thing that came before all others. It stayed singular for the next five hundred years.Only in the 1900s did we pluralise the term and start talking about “priorities.”...Think about your own organisation for a moment.• How many parallel roadmaps and subroadmaps exist, with engineers smeared fractionally across all of them? For example, does your security roadmap fight with your product roadmap and your performance roadmap?• How many teams have their own backlog of P0 items, with each saying they need more people to work on them?• How many initiatives are all happening at once, each with their own sponsor claiming that theirs is the most important, leading to silos and politics?Here’s the rub: the plural form of the word has given us permission to avoid the hard work of truly deciding what comes first....Take ten minutes and try this exercise:• List everything. Write down every project and initiative currently in flight for your team or department. Don’t filter or categorise yet, just get them all down.• Force a ranking. Put them in order from one to n. Not tiers, not categories: a single ordered list. No ties allowed.• Notice the hesitation. Where do you want to create exceptions? Where does it feel impossible to choose? That hesitation is where the real prioritisation work lives.• Identify who decides. Can you make these choices on your own, or do you need input from your team and peers? If it’s the latter, that conversation is the one you’ve been avoiding....it’s priority, not priorities: you should just have one single list.One list to rule them all. A simple list can make all of the hard decisions happen.#management #process