emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc. – Telegram
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
3.48K subscribers
119 photos
15 videos
22 files
1.14K links
Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, Extreme Programming, SDLC, Agile, etc.

Chat: https://news.1rj.ru/str/emacsway_chat

Persistence: https://dckms.github.io/system-architecture/
Download Telegram
"Using Event Sourcing and CQRS with Incident - Part 1" for Elixir-developers
https://pedroassumpcao.ghost.io/event-sourcing-and-cqrs-using-incident-part-1/

P.S.: не читал, не могу прокомментировать. Но, думаю, что у функциональщиков она вызовет интерес.

[UPDATE]: тут ребята-функциональщики еще обращали внимание на https://github.com/commanded/commanded

#DDD #FunctionalProgramming
Проанализируем популярную на этой неделе картинку.

1. С ходу бросается в глаза противоречие между "авторитарный Product Owner" и "каждый принимает участие в принятии решений". На деле в Agile экономика разработки критически зависит от достижения баланса бизнес и технических интересов https://news.1rj.ru/str/emacsway_log/124

2. Не совсем понятно, что именно автор противопоставляет Agile. Вероятней всего - BDUF.

Во времена СССР потребителям был хорошо известен термин "дефицит", являющийся следствием недостаточной адаптивности плановой экономики.

В то время как капиталистические рыночные экономики хорошо знакомы с таким кризисным явлением, как "перепроизводство", - которое является следствием недостаточности заблаговременного планирования и координирования.

Т.е. в ключевых своих аспектах адаптивность преобладает как раз в итеративных методологиях, таких как Agile, что отождествляет его скорее с капиталистической рыночной экономикой, нежели с советской плановой экономикой.

#Agile
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Проанализируем популярную на этой неделе картинку. 1. С ходу бросается в глаза противоречие между "авторитарный Product Owner" и "каждый принимает участие в принятии решений". На деле в Agile экономика разработки критически зависит от достижения баланса бизнес…
3. Является ли Agile идеологией и религией?

На самом деле, трудно сделать экономику исключительно плановой, как и трудно достигнуть в чистом виде Top-Down или Bottom-Up проектирование. Обычно имеет место некий баланс с преобладанием одного или другого аспекта. И при Сталине была кооперация, и был даже период НЭП.

Методики разработки тоже имеют разное соотношение заблаговременного проектирования (прогнозирования) и адаптации.

В BDUF доля заблаговременного проектирования составляет 100%.

В RUP (спиральная методика) уже присутствует адаптация, но доля заблаговременного проектирования все еще велика.

В Agile (итеративная методика) доля заблаговременного проектирования минимальна.

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

Т.е. в каждом конкретном проекте выбирается сбалансированное соотношение заблаговременного проектирования и адаптации в пределах их экономической целесообразности. Len Bass, Grady Booch и Craig Larman хорошо раскрывают эту тему.

Интересно то, что разработчики пытались вести разработку итеративно еще с 1930 года, и целесообразность итеративной разработки хорошо описывал еще F. Brooks в своем "Мифическом человеко-месяце".

Серебряной пули нет. Любая методика выбирается исходя из контекста её применимости и экономической целесообразности. А значит, выбор методики не может быть вопросом веры.

#Agile
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
4. "Маленькие команды продуктивней больших" - это, на самом деле, Закон Брукса, и Agile тогда еще не было. #Agile
5. "Работа разделена на спринты" - действительно ли работа (т.е. реализация), а не решения?

Итерация - это математический термин, which means applying function to itself. Каждая итерация на вход принимает результат работы предыдущей итерации. Это позволяет принимать решения на основе практического фидбэка предыдущих итераций с целью обработки неопределенности в тех случаях, когда осуществить прогноз трудно или дорого (дороже, чем реализовать итерацию).

Таким образом, итерация необходима для принятия решений в условиях недостаточной информированности, а не для разделения работ по реализации.

#Agile
"How to read more books. An ever-growing list of tips that help me read more books." by Mathias Verraes.
https://verraes.net/2012/12/2012-12-23-how-to-read-more-books/

P.S.: ответ на один из самых частых вопросов.

#Career
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Гы... недавно был холиварчик в архитекторской группе на эту тему. Там же: 📝 "A software architect who does not code is like a cook who does not eat." - Grady Booch https://twitter.com/Grady_Booch/status/1301810374598033408?s=19 #SoftwareDesign #SftwareArchitecture
📝 "The “real place” in software development is the code, which suggests that first-level managers are master programmers who are frequently evaluating the code."
- https://less.works/less/principles/systems-thinking.html

📝 "“Место, где происходит реальная работа” в программировании - это код, из чего следует, что первоклассными менеджерами должны становиться лучшие разработчики, которые часто оценивают код."
- https://less.works/ru/less/principles/systems-thinking.html

- Craig Larman, известный как создатель GRASP и LESS

#Agile #Career