Forwarded from FEDOR BORSHEV
Фабрика фич и просранное время
Когда в компании появляется быстрая разработка (а такое бывает, да), возникает большой соблазн превратить команду разработки в фабрику фич. Фабрика фич — это маленький заводик по клепанию фич без оглядки на реальность, когда никто не прогнозирует и не замеряет воздействие на бизнес. Такой подход быстро превращает продукт в болото из ненужного кода, в котором никто, включая разработчиков и QA, не знает, как должна работать та или иная фича.
Чтобы вылечить такие ситуации, я внедряю цикл Шухарта, когда вместо больших фич мы делаем маленькие гипотезы, замеряем их воздействие на бизнес, а потом уже делаем большие задачи, точно так же замеряя их денежный выхлоп. Типичная проблема с внедрением — когда бизнесовым ребятам пофиг на все эти продуктовые циклы: у них прямо сейчас фича горит, надо просто сделать и, вообще, нет времени объяснять.
Специально для таких ребят я придумал статус задачи «просранное время». Туда мы переводим все задачи, которые сделали в обход полноценного цикла проверки гипотез и которые при этом не оказали никакого воздействия на деньги. Такая «доска позора» где-нибудь в Трелло здорово мотивирует думать головой вместо того, чтобы давить на продуктовую команду.
Очень важно — в «просранное время» ни в коем случае нельзя переводить гипотезы, которые прошли по продуктовому циклу, но не выстрелили — если вы сели, придумали, как быстро проверить гипотезу, проверили и она не выстрелила, вы молодцы, и никакого времени мы не просрали.
Когда в компании появляется быстрая разработка (а такое бывает, да), возникает большой соблазн превратить команду разработки в фабрику фич. Фабрика фич — это маленький заводик по клепанию фич без оглядки на реальность, когда никто не прогнозирует и не замеряет воздействие на бизнес. Такой подход быстро превращает продукт в болото из ненужного кода, в котором никто, включая разработчиков и QA, не знает, как должна работать та или иная фича.
Чтобы вылечить такие ситуации, я внедряю цикл Шухарта, когда вместо больших фич мы делаем маленькие гипотезы, замеряем их воздействие на бизнес, а потом уже делаем большие задачи, точно так же замеряя их денежный выхлоп. Типичная проблема с внедрением — когда бизнесовым ребятам пофиг на все эти продуктовые циклы: у них прямо сейчас фича горит, надо просто сделать и, вообще, нет времени объяснять.
Специально для таких ребят я придумал статус задачи «просранное время». Туда мы переводим все задачи, которые сделали в обход полноценного цикла проверки гипотез и которые при этом не оказали никакого воздействия на деньги. Такая «доска позора» где-нибудь в Трелло здорово мотивирует думать головой вместо того, чтобы давить на продуктовую команду.
Очень важно — в «просранное время» ни в коем случае нельзя переводить гипотезы, которые прошли по продуктовому циклу, но не выстрелили — если вы сели, придумали, как быстро проверить гипотезу, проверили и она не выстрелила, вы молодцы, и никакого времени мы не просрали.
Forwarded from DataEng
Интересный обзор новых БД от автора книги Seven databases in seven weeks. Автор планирует написать 3 поста с небольшими обзорами главных фич.
Первая часть посвящена: TileDB, Materialize и Prisma. Во второй части будут разобраны EdgeDB, Tremor и Debezium (CDC). И в финальной части автор обещает сделать выводы.
Ссылка на статью: https://lucperkins.dev/blog/new-db-tech-1/
Первая часть посвящена: TileDB, Materialize и Prisma. Во второй части будут разобраны EdgeDB, Tremor и Debezium (CDC). И в финальной части автор обещает сделать выводы.
Ссылка на статью: https://lucperkins.dev/blog/new-db-tech-1/
#arch #microservices
Большой лонгрид про Cloud-Native и эти ваши микросервисы.
Очень годный там парад антипаттернов(особенно орнул с DeathStar)
Большой лонгрид про Cloud-Native и эти ваши микросервисы.
Очень годный там парад антипаттернов(особенно орнул с DeathStar)
InfoQ
Adoption of Cloud-Native Architecture, Part 1: Architecture Evolution and Maturity
In this article, authors Srini Penchikala and Marcio Esteves discuss what organizations should assess when adopting cloud native architectures for hosting their applications on cloud. It focuses on architecture hosting models. They also discuss how architecture…
Тут завтра и в пятницу намечаются интересные стримы про java и около нее с Шипилевым и другими именитыми товарищами. А ну ка быстро все го слушать про кишочки)))
Хабр
Онлайн-стримы с Алексеем Шипилёвым и с Артемом Ерошенко
Конференции продолжаются, и на этой неделе мы приглашаем вас окунуться в мир Java и тестирования вместе с нашими шоу. Расписание на эту неделю: Среда: Java — Первая чашка кофе с JPoint...
Forwarded from oleg_log (Oleg Kovalov)
Интересно, оказывается был такой пост 10+ дней назад, про отказ от TS во внутренних частях Deno.
- compile time when changing files takes several minutes
- isn’t proving itself helpful to organize Deno code
- и еще 3, которые сюда пихать не хочу :)
https://startfunction.com/deno-will-stop-using-typescript/
- compile time when changing files takes several minutes
- isn’t proving itself helpful to organize Deno code
- и еще 3, которые сюда пихать не хочу :)
https://startfunction.com/deno-will-stop-using-typescript/
#postgres
Тут намечается классный сериал от 2ndquadrant про проблемы постгреса. Первая часть про 32-битные указатели транзакций получилась довольно интересной, ждем обещанного продолжения
Тут намечается классный сериал от 2ndquadrant про проблемы постгреса. Первая часть про 32-битные указатели транзакций получилась довольно интересной, ждем обещанного продолжения
2ndQuadrant | PostgreSQL
PG Phriday: 10 Things Postgres Could Improve – Part 1
Part 1 of the series on “10 Things #Postgres Could Improve” starts with examining Postgres XID wraparound complications in greater depth.
I hate overtime
#postgres Тут намечается классный сериал от 2ndquadrant про проблемы постгреса. Первая часть про 32-битные указатели транзакций получилась довольно интересной, ждем обещанного продолжения
А пока ждем, вот еще набор постгрес-болей от обладателя петабайтного кластера
Medium
10 Things I Hate About PostgreSQL
Over the last few years, the software development community’s love affair with the popular open-source relational database has reached a…
Forwarded from oleg_log (Oleg Kovalov)
a toy jvm in awk, based on this tutorial: zserge.com/posts/jvm
https://github.com/rethab/awk-jvm #ненормальное
https://github.com/rethab/awk-jvm #ненормальное
Zserge
How to write a (toy) JVM
Exploring JVM specification and trying to write a little code to interpret a Java class like a real JVM.
#dwh
Еще одно годное сравнение Кимпбаловского и Инмоновского подхода. Ну и в целом ресурс годный, очень много качественного материала про "DWH для чайников"
Еще одно годное сравнение Кимпбаловского и Инмоновского подхода. Ну и в целом ресурс годный, очень много качественного материала про "DWH для чайников"
zentut
Kimball vs. Inmon in Data Warehouse Architecture
We will discuss about the Kimball vs. Inmon in data warehouse architecture and design approach. We also answer the question of how to choose Kimball or Inmon's architecture to build data warehouse.
Тут, кстати, Spark 3.0 вышел! Вот полный release notes, но, самое интересное вот:
P.S внезапно оказалось, что наиболее распространен не оригинальный Scala Spark, а PySpark
adaptive query execution; dynamic partition pruning; ANSI SQL compliance; significant improvements in pandas APIs; new UI for structured streaming; up to 40x speedups for calling R user-defined functions; accelerator-aware scheduler; and SQL reference documentation P.S внезапно оказалось, что наиболее распространен не оригинальный Scala Spark, а PySpark
Forwarded from oleg_log (Oleg Kovalov)
Стырю свой твит, короч.
Хороший пост от Дейва о логировании, вот прям за каждый абзац готов дать +
Правда по поводу ненадобности Warn чуть-чуть бы поспорил, но лень, можно и так жить спокойно.
https://dave.cheney.net/2015/11/05/lets-talk-about-logging
Еще про уровни логирования можно читнуть: WakeMeUpInTheMiddleOfTheNight https://divan.dev/posts/wakemeupinthemiddleofthenight/ (уже не раз на канале упоминал, стоит держать в уме).
Ах да, это все language agnostic, поэтому не думайте, что это только для Go, вещи правда полезные озвучены в этих постах.
Хороший пост от Дейва о логировании, вот прям за каждый абзац готов дать +
Правда по поводу ненадобности Warn чуть-чуть бы поспорил, но лень, можно и так жить спокойно.
https://dave.cheney.net/2015/11/05/lets-talk-about-logging
Еще про уровни логирования можно читнуть: WakeMeUpInTheMiddleOfTheNight https://divan.dev/posts/wakemeupinthemiddleofthenight/ (уже не раз на канале упоминал, стоит держать в уме).
Ах да, это все language agnostic, поэтому не думайте, что это только для Go, вещи правда полезные озвучены в этих постах.
#db
Кстати, @Databases митап от мейла внезапно оказался интересным. Мне больше всего понравился доклад про их S3-велосипед, но и другие доклады были прям ничего
Кстати, @Databases митап от мейла внезапно оказался интересным. Мне больше всего понравился доклад про их S3-велосипед, но и другие доклады были прям ничего
YouTube
Online @Databases Meetup #2
Организаторы @Databases Meetup #2: Mail.ru Cloud Solutions https://mcs.mail.ru/yt и Tarantool. Анонсы в Telegram: https://t.me/k8s_mail Выступить на митапе: https://mcs.mail.ru/speak Программа: https://corp.mail.ru/ru/press/events/databases-2/
Forwarded from DataEng
Всем привет!
Нужна ваша помощь. Я решил в виде Twitter треда собрать список полезных материалов для изучения data engineering: https://twitter.com/adilkhash/status/1274757239488774144
Если вы пользуетесь Twitter, то просьба поставить лайк/сделать ретвит, это поможет распространить этот тред на большее количество людей.
Спасибо!
Нужна ваша помощь. Я решил в виде Twitter треда собрать список полезных материалов для изучения data engineering: https://twitter.com/adilkhash/status/1274757239488774144
Если вы пользуетесь Twitter, то просьба поставить лайк/сделать ретвит, это поможет распространить этот тред на большее количество людей.
Спасибо!
Twitter
Adil 🇰🇿
Wanna dive into Data Engineering? Here is the list of subjects and corresponding resources you can follow. Thread 👇
Интересная история из Dropbox про то как они строили монорепу на Git.
TLDR парням пришлось дождаться новой версии гита, самим поправить баги и в итоге написать свой враппер над гитом и все равно
Кароч очередной привет всем кто считает, что достаточно Bazel поставить
TLDR парням пришлось дождаться новой версии гита, самим поправить баги и в итоге написать свой враппер над гитом и все равно
git status у них подскакивает до 1.5сек. Так же в статье есть ссылка на аналогичный success-story от Микрософт.Кароч очередной привет всем кто считает, что достаточно Bazel поставить
dropbox.tech
Speeding up a Git monorepo at Dropbox with <200 lines of code
Forwarded from Lil Functor
Хорошая статья с чеклистом для ревью кода внутри распределённых систем.
Обращение к сторонним компонентам
- обрабатываются ли все ошибки, прописано ли восстановление после ошибок?
- закрываются ли ресурсы в случае ошибок, откатываются ли изменения состояния?
- есть ли таймаут на обращение к другому компоненту? обрабатывается ли таймаут отдельно от остальных ошибок?
- есть ли ретраи на таймауты?
- ограничивается ли нагрузка при ретраях (экспоненциальные ретраи, circuit breaker)?
- в случае использования batch API, ограничен ли размер батча?
- кешируются ли ответы?
Разработка API
- идемпотентно ли API?
- ограничено ли время ожидания ответа?
- может ли API работать батчами? ограничен ли размер принимаемого батча?
- собираются ли логи/метрики обращений к API?
- какой статус должен получить клиент в случае отказа отдельных этапов обработки запроса?
- не протекают ли доменные модели между частями системы?
Ещё у автора есть пост по дизайн ревью новых компонентов системы: https://www.kislayverma.com/post/design-review-checklist-for-distributed-systems
Обращение к сторонним компонентам
- обрабатываются ли все ошибки, прописано ли восстановление после ошибок?
- закрываются ли ресурсы в случае ошибок, откатываются ли изменения состояния?
- есть ли таймаут на обращение к другому компоненту? обрабатывается ли таймаут отдельно от остальных ошибок?
- есть ли ретраи на таймауты?
- ограничивается ли нагрузка при ретраях (экспоненциальные ретраи, circuit breaker)?
- в случае использования batch API, ограничен ли размер батча?
- кешируются ли ответы?
Разработка API
- идемпотентно ли API?
- ограничено ли время ожидания ответа?
- может ли API работать батчами? ограничен ли размер принимаемого батча?
- собираются ли логи/метрики обращений к API?
- какой статус должен получить клиент в случае отказа отдельных этапов обработки запроса?
- не протекают ли доменные модели между частями системы?
Ещё у автора есть пост по дизайн ревью новых компонентов системы: https://www.kislayverma.com/post/design-review-checklist-for-distributed-systems
Kislay Verma
Code review checklist for distributed systems | Kislay Verma
A basic checklist for reviewing code in a distributed systems environment
Forwarded from HABR FEED + OPENNET
Что нужно знать об архитектуре ClickHouse, чтобы его эффективно использовать. Алексей Зателепин
https://habr.com/ru/post/509540/?utm_source=habrahabr&utm_medium=rss&utm_campaign=509540
Tags: IT-инфраструктура, Open source, Администрирование баз данных, Высокая производительность, Хранение данных, clickhouse
Author chemtech #habr
https://habr.com/ru/post/509540/?utm_source=habrahabr&utm_medium=rss&utm_campaign=509540
Tags: IT-инфраструктура, Open source, Администрирование баз данных, Высокая производительность, Хранение данных, clickhouse
Author chemtech #habr
Хабр
Что нужно знать об архитектуре ClickHouse, чтобы его эффективно использовать. Алексей Зателепин (2018г)
ClickHouse — высокопроизводительная аналитическая база данных с открытыми исходниками, разработанная в Яндексе. Изначально ClickHouse создавался для задач Яндекс.Метрики, но постепенно нашёл...
#security
Elastic заопенсорсили свой набор detection rule'ов. Я тот еще мамкин безопасник, поэтому понятия не имею как это правильно заюзать, но возможно кому-то будет полезно
Elastic заопенсорсили свой набор detection rule'ов. Я тот еще мамкин безопасник, поэтому понятия не имею как это правильно заюзать, но возможно кому-то будет полезно
Elastic Blog
Elastic Security opens public detection rules repo
Elastic Security has opened its detection rules repository to the world. We will develop rules in the open alongside the community, and we’re welcoming your community-driven detections. This is an opp...
#concurrency
Очень интересный лонгрид про уровни concurrency паттернов с миленькими бенчами на разных архитектурах.
Очень полезно(хоть и больно, т.к. код на крестах) будет почитать всем кто не очень понимает в чем отличие по перфомансу spin wait'a от atomic'ов
Очень интересный лонгрид про уровни concurrency паттернов с миленькими бенчами на разных архитектурах.
Очень полезно(хоть и больно, т.к. код на крестах) будет почитать всем кто не очень понимает в чем отличие по перфомансу spin wait'a от atomic'ов
Performance Matters
A Concurrency Cost Hierarchy
Concurrent operations can be grouped relatively neatly into categories based on their cost
тут в твиттере мелькнула интересная мысль: этот ваш софтваре девелопмент отлично ложится на Akin’s Laws of Spacecraft Design(ну или, по-крайней мере, если следовать этим законам, то софт будет получаться сильно лучше)
Все знают про каррирование функций названное в честь Хаскелла Карри, но не многие в курсе, что концепция каррирования была немного раньше(до Карри) уже изобретена Мосесом Шонфинкелем(не уверен, что правильно перевел Schoenfinkel). Так что технически мы с вами функции шонфилькируем)))