
Hosted by Alessandro · EN
This podcast explores how craftsmanship, architecture, engineering rigor, and organizational practices come together in modern R&D environments. Each edition refines and deepens my earlier reflections, building a coherent and evolving body of knowledge around Agile Software Engineering

Send us Fan MailIn this episode of The Agile Software Engineering Deep Dive, Alessandro Guida begins a two-part journey into compiler theory with a look at Backus-Naur Form, or BNF.For many software engineers who studied computer science in earlier decades, BNF belonged to the world of compilers, formal languages, syntax, parsing, YACC, and the famous Dragon Book. Today, many developers may never encounter it directly.But the need for it has not disappeared.Whenever we add formulas, macros, templates, filters, workflow conditions, configuration syntax, rule engines, or domain-specific languages to an application, we are doing language design. Often informally. Often accidentally.And that is where complexity starts to grow.This episode explains why syntax is not just documentation, why a small language is still a language, and why grammar matters when applications become programmable.It is not a call for every developer to become a compiler engineer. It is a reminder that some old computer science disciplines remain deeply relevant, especially when we give users the ability to express logic inside our systems.Part 1 focuses on BNF, syntax, and grammar.Part 2 will continue with compiler thinking more broadly: lex, YACC, compilers, interpreters, the Dragon Book, and why the discipline still matters in the age of modern development tools and AI-generated code.Support the showThis Podcast is an audio version of the written Agile Software Engineering newsletter. If you want to go deeper, don't forget to subscribe the newsletter too.

Send us Fan MailIn this episode of The Agile Software Engineering Deep Dive, Alessandro Guida takes a historical and slightly playful look at Lisp - one of the strange little languages that helped shape the early world of artificial intelligence.Long before AI became associated with Python, neural networks, GPUs, and large language models, artificial intelligence was also about symbolic reasoning, rules, lists, logic, search, and knowledge representation. Lisp was built for that world. Its focus on symbolic expressions, recursion, lists, and the close relationship between code and data made it a natural fit for early AI research.This episode is not a call to abandon modern AI tools and return to 1960s programming. It is an invitation to understand where some of the deeper ideas in AI and software engineering came from - and why an old language full of parentheses can still feel strangely modern.Support the showThis Podcast is an audio version of the written Agile Software Engineering newsletter. If you want to go deeper, don't forget to subscribe the newsletter too.

Send us Fan MailIn this episode of The Agile Software Engineering Deep Dive, we take a field trip into software engineering memory lane.Modern software teams have better tools than ever: CI/CD pipelines, cloud platforms, automated testing, observability, feature flags, and now AI assistants. But better tools do not remove the need for engineering discipline.This episode revisits a set of older or half-forgotten practices that still ask very relevant questions: Zero Bug Bounce, Zero Bug Strategy, Definition of Done, Entry and Exit Criteria, Code Freeze, Bug Triage, Root Cause and Defect Escape Analysis, Regression Test Strategy, Usability Lab Testing, and Performance Testing.The purpose is not to bring back old bureaucracy. It is to recover the practical engineering questions hidden inside these practices.Are we stabilizing? Are known defects visible? Does done really mean done? Do we understand what our bugs are teaching us? Do we know what must never break silently? Are users actually able to use the product? And do we detect performance degradation before it becomes failure?Modern tools can help us move faster and with better evidence.But they do not remove the need to ask the right engineering questions.Support the showThis Podcast is an audio version of the written Agile Software Engineering newsletter. If you want to go deeper, don't forget to subscribe the newsletter too.

Send us Fan MailIn this episode of Agile Software Engineering Deep Dive, we take a more reflective look at artificial intelligence.When we discuss AI, we often compare it to human intelligence, as if humanity were the only valid model for thinking. But is that the right comparison?This episode explores how AI brings old philosophical questions back into modern software engineering. We look at Turing’s imitation game, Searle’s Chinese Room, Descartes’ ideas about language and reason, and Plato’s distinction between knowledge and appearance.We also discuss why intelligence may not have one single architecture. Symbolic AI, neural networks, neuro-symbolic AI, embodied AI, neuromorphic computing, and biological computing all suggest that thinking may have many possible forms.The central question is not whether AI is already human. It is not.The deeper question is whether AI helps us understand that intelligence was never only one thing.Support the showThis Podcast is an audio version of the written Agile Software Engineering newsletter. If you want to go deeper, don't forget to subscribe the newsletter too.

Send us Fan MailIn this episode of The Agile Software Engineering Deep Dive, Alessandro Guida continues the SAFe Light series with a discussion about estimation.Estimation is often treated as a promise, even though it is by definition an approximation made under uncertainty. This episode explores why false precision creates mistrust, why story points and velocity can hide uncertainty, and why better estimation starts with better understanding.The episode introduces a practical SAFe Light estimation model: no-estimate for small low-risk work, lightweight breakdown when teams need grounded understanding, WBS-based estimation when predictability matters, and exploration before estimation when the work is still too unclear.The central idea is simple: estimation should not create false confidence. It should create understanding, expose dependencies, reveal architectural risks, and support better decisions.Support the showThis Podcast is an audio version of the written Agile Software Engineering newsletter. If you want to go deeper, don't forget to subscribe the newsletter too.

Send us Fan MailIn this episode of The Agile Software Engineering Deep Dive, Alessandro Guida continues the discussion on SAFe Light and explores why lightweight Agile scaling needs evolutionary architecture.SAFe Light is based on preserving team autonomy while making the essential coordination points visible. But that only works if the architecture supports independent change. Without clear boundaries, explicit dependencies, contract-based integration, fitness functions, and continuous feedback, teams may appear autonomous while remaining blocked by hidden coupling and integration surprises.The episode introduces evolutionary architecture as architecture planned for change: a disciplined way to let systems evolve incrementally without losing coherence. It also explains why strong architecture can reduce the coordination burden in scaled Agile environments.The central idea is simple: when architecture is weak, process expands to compensate. When architecture is strong, process can remain lighter.Support the showThis Podcast is an audio version of the written Agile Software Engineering newsletter. If you want to go deeper, don't forget to subscribe the newsletter too.

Send us Fan MailIn this episode of The Agile Software Engineering Deep Dive, Alessandro Guida explores one of the most important questions in the next phase of artificial intelligence: what happens when AI starts learning from itself?For years, generative AI has been trained largely on human-created material from the internet. But the internet is changing. More and more text, images, code, summaries, documentation, and online content are now generated or heavily assisted by AI. That raises a difficult question: when future AI systems are trained on the output of earlier AI systems, will they become more capable, or will they slowly lose contact with the richness and diversity of human knowledge?The episode examines both sides of the self-learning machine problem. On one side, poorly controlled recursive training may lead to model collapse, narrowing, and fluent but less grounded outputs. On the other side, well-designed self-learning loops may accelerate progress in areas such as strategic games, reasoning systems, medical treatment optimization, synthetic data generation, and scientific discovery.The central distinction is simple but important: a bad loop says generate, consume, repeat; a good loop says generate, test, filter, learn, repeat. The future of AI may depend less on whether machines learn from machines, and more on whether those learning loops remain connected to reality, evidence, constraints, and human judgment.Support the showThis Podcast is an audio version of the written Agile Software Engineering newsletter. If you want to go deeper, don't forget to subscribe the newsletter too.

Send us Fan MailIn this episode of The Agile Software Engineering Deep Dive, Alessandro Guida challenges one of the most common simplifications about generative AI: that it is “just a statistical machine guessing the next most likely word.”There is a small technical truth in that statement, but it misses the most important part of what happens inside a modern AI model. Before any token is generated, the input is transformed through embeddings, attention mechanisms, neural network layers, contextual representations, and inference. Probability is part of the process, but it is the final step - not the whole explanation.The episode explains, in accessible engineering language, why generative AI is not a human mind, not a truth machine, but also not a simple autocomplete toy. It explores how layered neural processing, context, intent, and representation allow these systems to produce surprisingly coherent and useful outputs - and why reducing all of that to “just guessing the next word” is not an explanation, but an oversimplification.Support the showThis Podcast is an audio version of the written Agile Software Engineering newsletter. If you want to go deeper, don't forget to subscribe the newsletter too.

Send us Fan MailIn this episode of The Agile Software Engineering Deep Dive, Alessandro Guida explores the role of ethics in modern software engineering.As software increasingly shapes critical systems and human behavior, and as AI introduces systems whose behavior cannot always be fully predicted, the question is no longer only what we can build, but whether we should build it.The episode reflects on why ethics is often overlooked in software engineering, how responsibility shifts in the presence of complex and adaptive systems, and how the ACM/IEEE Code of Ethics can serve as a practical framework for navigating difficult decisions.If you are building software in today’s increasingly complex and AI-driven landscape, this episode offers a grounded perspective on responsibility, judgment, and the role of ethics in engineering practice. Support the showThis Podcast is an audio version of the written Agile Software Engineering newsletter. If you want to go deeper, don't forget to subscribe the newsletter too.

Send us Fan MailIn this episode of The Agile Software Engineering Deep Dive, Alessandro Guida explores the gap between engineering quality and customer-perceived quality.While engineers often define quality in terms of architecture, testing, and process, customers evaluate it through experience: whether the software works, whether it is easy to use, whether it is reliable, and whether it performs without friction.The episode reflects on why many essential engineering practices remain invisible when they work well, why elements like security are expected but rarely noticed, and how this disconnect can lead teams to optimize for the wrong signals.If you are building software in complex environments, this episode offers a grounded perspective on how to align engineering discipline with what truly defines quality from the outside.Support the showThis Podcast is an audio version of the written Agile Software Engineering newsletter. If you want to go deeper, don't forget to subscribe the newsletter too.