I hate overtime
869 subscribers
129 photos
4 videos
54 files
961 links
Some DevOps, SRE and IT development stuff
Download Telegram
Forwarded from FEDOR BORSHEV
Фабрика фич и просранное время

Когда в компании появляется быстрая разработка (а такое бывает, да), возникает большой соблазн превратить команду разработки в фабрику фич. Фабрика фич — это маленький заводик по клепанию фич без оглядки на реальность, когда никто не прогнозирует и не замеряет воздействие на бизнес. Такой подход быстро превращает продукт в болото из ненужного кода, в котором никто, включая разработчиков и 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/
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/
#postgres
Тут намечается классный сериал от 2ndquadrant про проблемы постгреса. Первая часть про 32-битные указатели транзакций получилась довольно интересной, ждем обещанного продолжения
#dwh
Еще одно годное сравнение Кимпбаловского и Инмоновского подхода. Ну и в целом ресурс годный, очень много качественного материала про "DWH для чайников"
Тут, кстати, Spark 3.0 вышел! Вот полный release notes, но, самое интересное вот:
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, вещи правда полезные озвучены в этих постах.
#db
Кстати, @Databases митап от мейла внезапно оказался интересным. Мне больше всего понравился доклад про их S3-велосипед, но и другие доклады были прям ничего
Forwarded from DataEng
Всем привет!
Нужна ваша помощь. Я решил в виде Twitter треда собрать список полезных материалов для изучения data engineering: https://twitter.com/adilkhash/status/1274757239488774144
Если вы пользуетесь Twitter, то просьба поставить лайк/сделать ретвит, это поможет распространить этот тред на большее количество людей.
Спасибо!
Интересная история из Dropbox про то как они строили монорепу на Git.
TLDR парням пришлось дождаться новой версии гита, самим поправить баги и в итоге написать свой враппер над гитом и все равно git status у них подскакивает до 1.5сек. Так же в статье есть ссылка на аналогичный success-story от Микрософт.
Кароч очередной привет всем кто считает, что достаточно Bazel поставить
Forwarded from Lil Functor
Хорошая статья с чеклистом для ревью кода внутри распределённых систем.

Обращение к сторонним компонентам
- обрабатываются ли все ошибки, прописано ли восстановление после ошибок?
- закрываются ли ресурсы в случае ошибок, откатываются ли изменения состояния?
- есть ли таймаут на обращение к другому компоненту? обрабатывается ли таймаут отдельно от остальных ошибок?
- есть ли ретраи на таймауты?
- ограничивается ли нагрузка при ретраях (экспоненциальные ретраи, circuit breaker)?
- в случае использования batch API, ограничен ли размер батча?
- кешируются ли ответы?

Разработка API
- идемпотентно ли API?
- ограничено ли время ожидания ответа?
- может ли API работать батчами? ограничен ли размер принимаемого батча?
- собираются ли логи/метрики обращений к API?
- какой статус должен получить клиент в случае отказа отдельных этапов обработки запроса?
- не протекают ли доменные модели между частями системы?

Ещё у автора есть пост по дизайн ревью новых компонентов системы: https://www.kislayverma.com/post/design-review-checklist-for-distributed-systems
#security
Elastic заопенсорсили свой набор detection rule'ов. Я тот еще мамкин безопасник, поэтому понятия не имею как это правильно заюзать, но возможно кому-то будет полезно
#concurrency
Очень интересный лонгрид про уровни concurrency паттернов с миленькими бенчами на разных архитектурах.
Очень полезно(хоть и больно, т.к. код на крестах) будет почитать всем кто не очень понимает в чем отличие по перфомансу spin wait'a от atomic'ов
тут в твиттере мелькнула интересная мысль: этот ваш софтваре девелопмент отлично ложится на Akin’s Laws of Spacecraft Design(ну или, по-крайней мере, если следовать этим законам, то софт будет получаться сильно лучше)
Все знают про каррирование функций названное в честь Хаскелла Карри, но не многие в курсе, что концепция каррирования была немного раньше(до Карри) уже изобретена Мосесом Шонфинкелем(не уверен, что правильно перевел Schoenfinkel). Так что технически мы с вами функции шонфилькируем)))