<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>marcorusso.com</title><link>https://marcorusso.com/</link><description>Semantic models, and the architecture around them.</description><language>en-gb</language><atom:link href="https://marcorusso.com/feed.xml" rel="self" type="application/rss+xml"/><lastBuildDate>Thu, 01 Oct 2026 00:00:00 +0000</lastBuildDate><item><title>The orchestra conductor</title><link>https://marcorusso.com/writing/the-orchestra-conductor/</link><guid isPermaLink="false">https://marcorusso.com/writing/the-orchestra-conductor/</guid><pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate><category>essay</category><category>opinion</category><description>&lt;p&gt;&lt;em&gt;Is the world going to require more conductors than players? A reflection about AI-driven processes that goes beyond data analytics.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;I like orchestras. It has nothing to do with computers or with my job. I like orchestras because I am fascinated by seeing 100 people playing together, and I have always asked myself how it works. So I went to see it, I studied it, and what did I see? I saw that what happens there is like what happens here, in our world of data and AI. This is going to be a long post, though, because most people have never seen how an orchestra works, and without that the comparison is hard to follow. It is a good example, but it doesn&amp;rsquo;t work as a quick analogy.&lt;/p&gt;
&lt;p&gt;If you have sat through three or four hours of rehearsals for a concert, you understand what I mean, because the conductor does nothing during the concert. All the preparation, all the skills, everything is prepared beforehand. Then there is the concert, but that is a show for the audience. The conductor does something, of course, but that movement of the hand is a reminder of something that was said before. A bit more here, lower there. It is simply &amp;ldquo;I remind you of what we discussed three days ago,&amp;rdquo; and now I make that gesture, you look at me, and you understand.&lt;/p&gt;
&lt;p&gt;The conductor knows how to play. A conductor usually plays at least two instruments well, not as an amateur but as a professional. A conductor who cannot play is not in the cards. You do not even start the course if you cannot play. And you cannot think that you can read the score without playing an instrument. That is not an option either. The conductor directs because he knows what the others are doing. He may not be as good as the first violin at playing the violin, but he knows what he is asking for.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;With AI agents, work is changing shape.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now, with AI agents, everyone says that we are all becoming project managers. If you put it that way, it sounds very boring. A more interesting comparison, which better explains the skills involved, is the orchestra conductor, who can, at some level, play what he is asking the others to play. The project manager does not have this requirement, at least in most companies I have seen.&lt;/p&gt;
&lt;p&gt;We are moving in a direction where the number of orchestras increases. The study you need to understand what you are orchestrating increases too. Today&amp;rsquo;s education is often based on becoming an expert in a single thing. In data analytics, the things you need to be able to play are data modeling, SQL, perhaps DAX, and how the pieces fit together: the same things that were required before AI existed. You need them more than before, but you see them less because you don&amp;rsquo;t type the code anymore.&lt;/p&gt;
&lt;p&gt;I see this in my classroom. People come to the course; they know me, they have seen the videos, but they still need guidance. The first thing they must understand is: without effort, they will not get there. It is not enough to watch a video or attend a three-day course if you don&amp;rsquo;t apply yourself.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A demo in 5 minutes is easy.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Outside the classroom, it is the same. For example, a young amateur team I know built a small web app for the fantasy league of their soccer tournament, using one of those tools that generate an application from a description. The result is nice, and none of them are programmers: they couldn&amp;rsquo;t have built it by themselves. It tracks all the scores and the individual performance of every player, so it is both a data entry application for those who are at the pitch and collect the data during the match, and a data visualization application for all the others who want to know the results of the match, the updated ranking, and the statistics about the players that matter for the fantasy league scores. The app meets the user requirements, but nobody has done a deep security assessment. As long as it is free and has no real-world consequences, nobody is interested in attacking it. But imagine adding a feature to register for notifications that requires a minimum payment, or including a reservation system to book match tickets in advance by choosing a seat. At that point, with money in the loop, the app suddenly becomes a more interesting target for malware and viruses of any type.&lt;/p&gt;
&lt;p&gt;Writing code is harder than reading code. To write code, you must know many syntax details, first of all because the code must be syntactically valid, and then because it should produce the intended result and not something else. Perfectly valid syntax can still produce incorrect results. With AI, something else writes the code, and we have to validate it. A simple validation is looking at the results. However, limiting tests to a few checks on expected results is dangerous, because an untested combination of filters could hide an issue. So reading the code adds another layer of validation, and it requires the ability to read code. If you can write code, you can usually read code in the same language. However, you can learn to read without being proficient in writing. I am talking about programming languages, but I could say the same of human languages, right?&lt;/p&gt;
&lt;p&gt;And whatever I teach about how a specific tool works today is obsolete in three to six months. If you leave for a six-month cruise around the world and come back, you need two or three weeks to catch up, and that&amp;rsquo;s it.&lt;/p&gt;
&lt;p&gt;So I&amp;rsquo;m not going to teach the tool to write the code.&lt;/p&gt;
&lt;p&gt;I’m going to teach how to direct any tool that writes the code, DAX in my case, because that technique is not going to change much when the tool changes. Just as conductors don’t have to learn new skills every time they meet a new orchestra.&lt;/p&gt;
&lt;p&gt;Another note: describing what you want is a skill older than AI. Every time I take questions at a conference or in a course, I am amazed by how many people cannot explain a problem they know perfectly well. They lose themselves in a thousand details that have nothing to do with the question. You go to the doctor with foot pain, and you start talking about your lawyer. A colleague interrupts you and asks the right question. The machine won&amp;rsquo;t. It will happily solve the wrong problem you described. My favorite case is when I write back, &amp;ldquo;Please explain the question better,&amp;rdquo; and the reply is &amp;ldquo;never mind, while writing the explanation I solved it myself.&amp;rdquo; This happens more than you think! With AI, the same skill stopped being optional.&lt;/p&gt;
&lt;p&gt;Then there is the question everybody asks me: should I specialize in one thing? The simple answer is that being a super specialist in one thing is not very useful. Unless you are the top in the world, but that is a very high level. If you are there, someone will probably look for you because you know things nobody else knows. Imagine tennis players. There is a huge gap between the top 10, sometimes the top 5, and everyone else. The elite gets most of the rewards; all the others may have to do something else at a certain point in their career. So having competences in more domains obviously helps, especially in business intelligence. But how deep you must go to look critically at what the AI proposes is very complicated.&lt;/p&gt;
&lt;p&gt;And here I have a problem.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I don’t know how to motivate you.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I know what to say to describe the skills needed, but how do I motivate someone by telling them, &amp;ldquo;you must study these 300 things just in case; you will never use them, but you will need to know them, even if you do not know when&amp;rdquo;?&lt;/p&gt;
&lt;p&gt;Imagine studying piano for 10 years, knowing you will never play it. Imagine for a moment: you will never play a concert in public, never. And for 10 years you must study piano, and then you do something else. The classic example is the orchestra conductor, who does exactly this. But when he studies piano, he probably doesn&amp;rsquo;t think of becoming a conductor; otherwise, he wouldn&amp;rsquo;t start. Usually, nobody is born saying, &amp;ldquo;I want to be a conductor.&amp;rdquo; You say, &amp;ldquo;I like music,&amp;rdquo; and then one day you say, &amp;ldquo;You know what, I like to conduct.&amp;rdquo; It is an evolution. Here we are talking about something a bit different, so the example works only up to a point. We are saying a job no longer exists, but if you learn to do it anyway, you have what it takes to manage the new one. All fine, but it is very difficult to motivate this. What to study is the easy part: A, B, C, D. The difficult part is explaining that you will not use all of it.&lt;/p&gt;
&lt;p&gt;To be honest, this is the situation. Do you want to be safe? Study a lot. If you study a lot, you will be fine. But the problem is that you must study a lot without knowing whether that makes you the top in the world. It simply makes you survive, because what you study is above the threshold necessary to get to a certain point, and we do not know that threshold. I do not know where it is. This is the problem.&lt;/p&gt;
&lt;p&gt;If you have been in data analytics for 20 years, you did not need to read this. But if you have just entered, are entering, or are interested in entering, I want to explain one thing. Many people can tell you that you must study A, B, C, D, and I tell you: yes, but think carefully about what you really want.&lt;/p&gt;
&lt;p&gt;The conductor gets big applause at the end because he directed the preparation before the performance. The orchestra executes, and the same orchestra does not play the same piece the same way with different conductors. The best conductors are those who know what to ask, because they also know how to play.&lt;/p&gt;
&lt;p&gt;However, the orchestra conductor does not play a single note during the concert.&lt;/p&gt;</description></item><item><title>Inside the VertiPaq Engine</title><link>https://retrodata.live/</link><guid isPermaLink="false">https://retrodata.live/</guid><pubDate>Sat, 26 Sep 2026 00:00:00 +0000</pubDate><category>talk</category><category>teaching</category><description/></item><item><title>Start using DAX with AI</title><link>https://www.youtube.com/watch?v=KtO0BRKHBv4</link><guid isPermaLink="false">https://www.youtube.com/watch?v=KtO0BRKHBv4</guid><pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate><category>video</category><category>news</category><description/></item><item><title>Coders Anonymous</title><link>https://marcorusso.com/comics/330/</link><guid isPermaLink="false">https://marcorusso.com/comics/330/</guid><pubDate>Tue, 22 Sep 2026 00:00:00 +0000</pubDate><category>comic</category><category>fun</category><description>I promise, I will not touch the code anymore.</description></item><item><title>Where we stand on AI and DAX in 2026</title><link>https://www.sqlbi.com/blog/marco/2026/09/22/where-we-stand-on-ai-and-dax-in-2026/</link><guid isPermaLink="false">https://www.sqlbi.com/blog/marco/2026/09/22/where-we-stand-on-ai-and-dax-in-2026/</guid><pubDate>Tue, 22 Sep 2026 00:00:00 +0000</pubDate><category>blog</category><category>news</category><description/></item><item><title>The hidden complexity of a daily average in DAX</title><link>https://www.sqlbi.com/articles/the-hidden-complexity-of-a-daily-average-in-dax/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/the-hidden-complexity-of-a-daily-average-in-dax/</guid><pubDate>Mon, 21 Sep 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>Focus time</title><link>https://marcorusso.com/comics/329/</link><guid isPermaLink="false">https://marcorusso.com/comics/329/</guid><pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate><category>comic</category><category>fun</category><description>Overloaded with unnecessary meetings. Just do the damn thing!</description></item><item><title>Writing DAX at the correct granularity</title><link>https://www.sqlbi.com/articles/writing-dax-at-the-correct-granularity/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/writing-dax-at-the-correct-granularity/</guid><pubDate>Mon, 07 Sep 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>Using VALUES in iterators</title><link>https://www.youtube.com/shorts/-CJUStn15MA</link><guid isPermaLink="false">https://www.youtube.com/shorts/-CJUStn15MA</guid><pubDate>Wed, 02 Sep 2026 00:00:00 +0000</pubDate><category>video</category><category>teaching</category><description/></item><item><title>Matrix Totals - The Whiteboard #13</title><link>https://www.youtube.com/watch?v=jbGEXZ85Nr0</link><guid isPermaLink="false">https://www.youtube.com/watch?v=jbGEXZ85Nr0</guid><pubDate>Wed, 02 Sep 2026 00:00:00 +0000</pubDate><category>video</category><category>teaching</category><description/></item><item><title>Testing DAX measures by using AI</title><link>https://www.sqlbi.com/articles/testing-dax-measures-by-using-ai/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/testing-dax-measures-by-using-ai/</guid><pubDate>Mon, 24 Aug 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>Restoring alternating rows in Power BI matrices with Fluent 2</title><link>https://www.sqlbi.com/blog/marco/2026/08/10/restoring-alternating-rows-in-power-bi-matrices-with-fluent-2/</link><guid isPermaLink="false">https://www.sqlbi.com/blog/marco/2026/08/10/restoring-alternating-rows-in-power-bi-matrices-with-fluent-2/</guid><pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate><category>blog</category><category>teaching</category><description/></item><item><title>Creating DAX functions with AI to remove duplicated code</title><link>https://www.sqlbi.com/articles/creating-dax-functions-with-ai-to-remove-duplicated-code/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/creating-dax-functions-with-ai-to-remove-duplicated-code/</guid><pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>Analyzing the performance impact of visual calculations</title><link>https://www.sqlbi.com/articles/analyzing-the-performance-impact-of-visual-calculations/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/analyzing-the-performance-impact-of-visual-calculations/</guid><pubDate>Mon, 27 Jul 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>Optimizing supermarket product placement with Synoptic Panel in Power BI</title><link>https://www.youtube.com/shorts/B8d3TxhBurs</link><guid isPermaLink="false">https://www.youtube.com/shorts/B8d3TxhBurs</guid><pubDate>Thu, 16 Jul 2026 00:00:00 +0000</pubDate><category>video</category><category>teaching</category><description/></item><item><title>Introducing Synoptic Designer v2</title><link>https://www.youtube.com/watch?v=iBTchapkLCc</link><guid isPermaLink="false">https://www.youtube.com/watch?v=iBTchapkLCc</guid><pubDate>Wed, 15 Jul 2026 00:00:00 +0000</pubDate><category>video</category><category>news</category><description/></item><item><title>Dynamic formatting by hierarchy level with ISINSCOPE and ISATLEVEL</title><link>https://www.sqlbi.com/articles/dynamic-formatting-by-hierarchy-level-with-isinscope-and-isatlevel/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/dynamic-formatting-by-hierarchy-level-with-isinscope-and-isatlevel/</guid><pubDate>Mon, 13 Jul 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description>The question that comes up every time someone puts a hierarchy in a matrix.</description></item><item><title>Generative AI guidelines at SQLBI (2026 update)</title><link>https://www.sqlbi.com/blog/marco/2026/07/08/generative-ai-guidelines-at-sqlbi-2026-update/</link><guid isPermaLink="false">https://www.sqlbi.com/blog/marco/2026/07/08/generative-ai-guidelines-at-sqlbi-2026-update/</guid><pubDate>Wed, 08 Jul 2026 00:00:00 +0000</pubDate><category>blog</category><category>news</category><description/></item><item><title>Using REMOVEFILTERS in DAX user-defined functions</title><link>https://www.sqlbi.com/articles/using-removefilters-in-dax-user-defined-functions/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/using-removefilters-in-dax-user-defined-functions/</guid><pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>Display ship containers with Synoptic Panel in Power BI</title><link>https://www.youtube.com/shorts/pvPdUH9Z668</link><guid isPermaLink="false">https://www.youtube.com/shorts/pvPdUH9Z668</guid><pubDate>Thu, 18 Jun 2026 00:00:00 +0000</pubDate><category>video</category><category>teaching</category><description/></item><item><title>Optional parameters in DAX user-defined functions</title><link>https://www.sqlbi.com/articles/optional-parameters-in-dax-user-defined-functions/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/optional-parameters-in-dax-user-defined-functions/</guid><pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>ALL vs ALLSELECTED vs ALLEXCEPT vs REMOVEFILTERS</title><link>https://www.sqlbi.com/articles/all-vs-allselected-vs-allexcept-vs-removefilters/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/all-vs-allselected-vs-allexcept-vs-removefilters/</guid><pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>Introducing user-aware calculated columns in Power BI</title><link>https://www.sqlbi.com/articles/introducing-user-aware-calculated-columns-in-power-bi/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/introducing-user-aware-calculated-columns-in-power-bi/</guid><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>Filtering measures through slicers</title><link>https://www.sqlbi.com/articles/filtering-measures-through-slicers/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/filtering-measures-through-slicers/</guid><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>Understanding parameter types in DAX user-defined functions (UDF)</title><link>https://www.sqlbi.com/articles/understanding-parameter-types-in-dax-user-defined-functions-udf/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/understanding-parameter-types-in-dax-user-defined-functions-udf/</guid><pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>Using visual calculations to highlight an entire row</title><link>https://www.sqlbi.com/articles/using-visual-calculations-to-highlight-an-entire-row/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/using-visual-calculations-to-highlight-an-entire-row/</guid><pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>SQLBI+ updates in April 2026</title><link>https://www.sqlbi.com/blog/marco/2026/04/06/sqlbi-updates-in-april-2026/</link><guid isPermaLink="false">https://www.sqlbi.com/blog/marco/2026/04/06/sqlbi-updates-in-april-2026/</guid><pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate><category>blog</category><category>news</category><description/></item><item><title>The Third Edition of the Mastering DAX Video Course – unplugged</title><link>https://www.sqlbi.com/blog/marco/2026/04/01/the-third-edition-of-the-mastering-dax-video-course-unplugged/</link><guid isPermaLink="false">https://www.sqlbi.com/blog/marco/2026/04/01/the-third-edition-of-the-mastering-dax-video-course-unplugged/</guid><pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate><category>blog</category><category>news</category><description/></item><item><title>DAX user-defined functions (UDF) vs. calculation groups</title><link>https://www.sqlbi.com/articles/dax-user-defined-functions-udf-vs-calculation-groups/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/dax-user-defined-functions-udf-vs-calculation-groups/</guid><pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>Mastering DAX video course, 3rd edition</title><link>https://www.sqlbi.com/articles/mastering-dax-video-course-3rd-edition/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/mastering-dax-video-course-3rd-edition/</guid><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><category>article</category><category>news</category><description/></item><item><title>Creating functions for the like-for-like DAX pattern</title><link>https://www.sqlbi.com/articles/creating-functions-for-the-like-for-like-dax-pattern/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/creating-functions-for-the-like-for-like-dax-pattern/</guid><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>SQLBI+ updates in March 2026</title><link>https://www.sqlbi.com/blog/marco/2026/03/04/sqlbi-updates-in-march-2026/</link><guid isPermaLink="false">https://www.sqlbi.com/blog/marco/2026/03/04/sqlbi-updates-in-march-2026/</guid><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><category>blog</category><category>news</category><description/></item><item><title>Debugging DAX variables using TOJSON and TOCSV</title><link>https://www.sqlbi.com/articles/debugging-dax-variables-using-tojson-and-tocsv/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/debugging-dax-variables-using-tojson-and-tocsv/</guid><pubDate>Mon, 23 Feb 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>Understanding DATEADD parameters with calendar-based time intelligence</title><link>https://www.sqlbi.com/articles/understanding-dateadd-parameters-with-calendar-based-time-intelligence/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/understanding-dateadd-parameters-with-calendar-based-time-intelligence/</guid><pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>Show transaction details on the matrix visual in Power BI</title><link>https://www.sqlbi.com/articles/show-transaction-details-on-the-matrix-visual-in-power-bi/</link><guid isPermaLink="false">https://www.sqlbi.com/articles/show-transaction-details-on-the-matrix-visual-in-power-bi/</guid><pubDate>Mon, 26 Jan 2026 00:00:00 +0000</pubDate><category>article</category><category>teaching</category><description/></item><item><title>Fixing the “Black Icons” issue in Power BI Desktop: understanding the problem and a temporary workaround</title><link>https://www.sqlbi.com/blog/marco/2026/01/24/fixing-the-black-icons-issue-in-power-bi-desktop-understanding-the-problem-and-a-temporary-workaround/</link><guid isPermaLink="false">https://www.sqlbi.com/blog/marco/2026/01/24/fixing-the-black-icons-issue-in-power-bi-desktop-understanding-the-problem-and-a-temporary-workaround/</guid><pubDate>Sat, 24 Jan 2026 00:00:00 +0000</pubDate><category>blog</category><category>teaching</category><description/></item></channel></rss>