{"description":"Semantic models, and the architecture around them.","feed_url":"https://marcorusso.com/feed.json","home_page_url":"https://marcorusso.com/","items":[{"content_html":"\u003cp\u003eI 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\u0026rsquo;t work as a quick analogy.\u003c/p\u003e\n\u003cp\u003eIf 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 \u0026ldquo;I remind you of what we discussed three days ago,\u0026rdquo; and now I make that gesture, you look at me, and you understand.\u003c/p\u003e\n\u003cp\u003eThe 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.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eWith AI agents, work is changing shape.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eNow, 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.\u003c/p\u003e\n\u003cp\u003eWe are moving in a direction where the number of orchestras increases. The study you need to understand what you are orchestrating increases too. Today\u0026rsquo;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\u0026rsquo;t type the code anymore.\u003c/p\u003e\n\u003cp\u003eI 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\u0026rsquo;t apply yourself.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eA demo in 5 minutes is easy.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eOutside 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\u0026rsquo;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.\u003c/p\u003e\n\u003cp\u003eWriting 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?\u003c/p\u003e\n\u003cp\u003eAnd 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\u0026rsquo;s it.\u003c/p\u003e\n\u003cp\u003eSo I\u0026rsquo;m not going to teach the tool to write the code.\u003c/p\u003e\n\u003cp\u003eI’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.\u003c/p\u003e\n\u003cp\u003eAnother 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\u0026rsquo;t. It will happily solve the wrong problem you described. My favorite case is when I write back, \u0026ldquo;Please explain the question better,\u0026rdquo; and the reply is \u0026ldquo;never mind, while writing the explanation I solved it myself.\u0026rdquo; This happens more than you think! With AI, the same skill stopped being optional.\u003c/p\u003e\n\u003cp\u003eThen 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.\u003c/p\u003e\n\u003cp\u003eAnd here I have a problem.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI don’t know how to motivate you.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI know what to say to describe the skills needed, but how do I motivate someone by telling them, \u0026ldquo;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\u0026rdquo;?\u003c/p\u003e\n\u003cp\u003eImagine 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\u0026rsquo;t think of becoming a conductor; otherwise, he wouldn\u0026rsquo;t start. Usually, nobody is born saying, \u0026ldquo;I want to be a conductor.\u0026rdquo; You say, \u0026ldquo;I like music,\u0026rdquo; and then one day you say, \u0026ldquo;You know what, I like to conduct.\u0026rdquo; 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.\u003c/p\u003e\n\u003cp\u003eTo 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.\u003c/p\u003e\n\u003cp\u003eIf 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.\u003c/p\u003e\n\u003cp\u003eThe 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.\u003c/p\u003e\n\u003cp\u003eHowever, the orchestra conductor does not play a single note during the concert.\u003c/p\u003e\n","date_published":"2026-10-01T00:00:00Z","id":"https://marcorusso.com/writing/the-orchestra-conductor/","summary":"Is the world going to require more conductors than players? A reflection about AI-driven processes that goes beyond data analytics.","tags":["essay","opinion"],"title":"The orchestra conductor","url":"https://marcorusso.com/writing/the-orchestra-conductor/"},{"content_text":"Inside the VertiPaq Engine","date_published":"2026-09-26T00:00:00Z","id":"https://retrodata.live/","tags":["talk","teaching"],"title":"Inside the VertiPaq Engine","url":"https://retrodata.live/"},{"content_text":"Start using DAX with AI","date_published":"2026-09-23T00:00:00Z","id":"https://www.youtube.com/watch?v=KtO0BRKHBv4","tags":["video","news"],"title":"Start using DAX with AI","url":"https://www.youtube.com/watch?v=KtO0BRKHBv4"},{"content_text":"I promise, I will not touch the code anymore.","date_published":"2026-09-22T00:00:00Z","id":"https://marcorusso.com/comics/330/","summary":"I promise, I will not touch the code anymore.","tags":["comic","fun"],"title":"Coders Anonymous","url":"https://marcorusso.com/comics/330/"},{"content_text":"Where we stand on AI and DAX in 2026","date_published":"2026-09-22T00:00:00Z","id":"https://www.sqlbi.com/blog/marco/2026/09/22/where-we-stand-on-ai-and-dax-in-2026/","tags":["blog","news"],"title":"Where we stand on AI and DAX in 2026","url":"https://www.sqlbi.com/blog/marco/2026/09/22/where-we-stand-on-ai-and-dax-in-2026/"},{"content_text":"The hidden complexity of a daily average in DAX","date_published":"2026-09-21T00:00:00Z","id":"https://www.sqlbi.com/articles/the-hidden-complexity-of-a-daily-average-in-dax/","tags":["article","teaching"],"title":"The hidden complexity of a daily average in DAX","url":"https://www.sqlbi.com/articles/the-hidden-complexity-of-a-daily-average-in-dax/"},{"content_text":"Overloaded with unnecessary meetings. Just do the damn thing!","date_published":"2026-09-08T00:00:00Z","id":"https://marcorusso.com/comics/329/","summary":"Overloaded with unnecessary meetings. Just do the damn thing!","tags":["comic","fun"],"title":"Focus time","url":"https://marcorusso.com/comics/329/"},{"content_text":"Writing DAX at the correct granularity","date_published":"2026-09-07T00:00:00Z","id":"https://www.sqlbi.com/articles/writing-dax-at-the-correct-granularity/","tags":["article","teaching"],"title":"Writing DAX at the correct granularity","url":"https://www.sqlbi.com/articles/writing-dax-at-the-correct-granularity/"},{"content_text":"Using VALUES in iterators","date_published":"2026-09-02T00:00:00Z","id":"https://www.youtube.com/shorts/-CJUStn15MA","tags":["video","teaching"],"title":"Using VALUES in iterators","url":"https://www.youtube.com/shorts/-CJUStn15MA"},{"content_text":"Matrix Totals - The Whiteboard #13","date_published":"2026-09-02T00:00:00Z","id":"https://www.youtube.com/watch?v=jbGEXZ85Nr0","tags":["video","teaching"],"title":"Matrix Totals - The Whiteboard #13","url":"https://www.youtube.com/watch?v=jbGEXZ85Nr0"},{"content_text":"Testing DAX measures by using AI","date_published":"2026-08-24T00:00:00Z","id":"https://www.sqlbi.com/articles/testing-dax-measures-by-using-ai/","tags":["article","teaching"],"title":"Testing DAX measures by using AI","url":"https://www.sqlbi.com/articles/testing-dax-measures-by-using-ai/"},{"content_text":"Restoring alternating rows in Power BI matrices with Fluent 2","date_published":"2026-08-10T00:00:00Z","id":"https://www.sqlbi.com/blog/marco/2026/08/10/restoring-alternating-rows-in-power-bi-matrices-with-fluent-2/","tags":["blog","teaching"],"title":"Restoring alternating rows in Power BI matrices with Fluent 2","url":"https://www.sqlbi.com/blog/marco/2026/08/10/restoring-alternating-rows-in-power-bi-matrices-with-fluent-2/"},{"content_text":"Creating DAX functions with AI to remove duplicated code","date_published":"2026-08-10T00:00:00Z","id":"https://www.sqlbi.com/articles/creating-dax-functions-with-ai-to-remove-duplicated-code/","tags":["article","teaching"],"title":"Creating DAX functions with AI to remove duplicated code","url":"https://www.sqlbi.com/articles/creating-dax-functions-with-ai-to-remove-duplicated-code/"},{"content_text":"Analyzing the performance impact of visual calculations","date_published":"2026-07-27T00:00:00Z","id":"https://www.sqlbi.com/articles/analyzing-the-performance-impact-of-visual-calculations/","tags":["article","teaching"],"title":"Analyzing the performance impact of visual calculations","url":"https://www.sqlbi.com/articles/analyzing-the-performance-impact-of-visual-calculations/"},{"content_text":"Optimizing supermarket product placement with Synoptic Panel in Power BI","date_published":"2026-07-16T00:00:00Z","id":"https://www.youtube.com/shorts/B8d3TxhBurs","tags":["video","teaching"],"title":"Optimizing supermarket product placement with Synoptic Panel in Power BI","url":"https://www.youtube.com/shorts/B8d3TxhBurs"},{"content_text":"Introducing Synoptic Designer v2","date_published":"2026-07-15T00:00:00Z","id":"https://www.youtube.com/watch?v=iBTchapkLCc","tags":["video","news"],"title":"Introducing Synoptic Designer v2","url":"https://www.youtube.com/watch?v=iBTchapkLCc"},{"content_text":"The question that comes up every time someone puts a hierarchy in a matrix.","date_published":"2026-07-13T00:00:00Z","id":"https://www.sqlbi.com/articles/dynamic-formatting-by-hierarchy-level-with-isinscope-and-isatlevel/","summary":"The question that comes up every time someone puts a hierarchy in a matrix.","tags":["article","teaching"],"title":"Dynamic formatting by hierarchy level with ISINSCOPE and ISATLEVEL","url":"https://www.sqlbi.com/articles/dynamic-formatting-by-hierarchy-level-with-isinscope-and-isatlevel/"},{"content_text":"Generative AI guidelines at SQLBI (2026 update)","date_published":"2026-07-08T00:00:00Z","id":"https://www.sqlbi.com/blog/marco/2026/07/08/generative-ai-guidelines-at-sqlbi-2026-update/","tags":["blog","news"],"title":"Generative AI guidelines at SQLBI (2026 update)","url":"https://www.sqlbi.com/blog/marco/2026/07/08/generative-ai-guidelines-at-sqlbi-2026-update/"},{"content_text":"Using REMOVEFILTERS in DAX user-defined functions","date_published":"2026-06-29T00:00:00Z","id":"https://www.sqlbi.com/articles/using-removefilters-in-dax-user-defined-functions/","tags":["article","teaching"],"title":"Using REMOVEFILTERS in DAX user-defined functions","url":"https://www.sqlbi.com/articles/using-removefilters-in-dax-user-defined-functions/"},{"content_text":"Display ship containers with Synoptic Panel in Power BI","date_published":"2026-06-18T00:00:00Z","id":"https://www.youtube.com/shorts/pvPdUH9Z668","tags":["video","teaching"],"title":"Display ship containers with Synoptic Panel in Power BI","url":"https://www.youtube.com/shorts/pvPdUH9Z668"},{"content_text":"Optional parameters in DAX user-defined functions","date_published":"2026-06-15T00:00:00Z","id":"https://www.sqlbi.com/articles/optional-parameters-in-dax-user-defined-functions/","tags":["article","teaching"],"title":"Optional parameters in DAX user-defined functions","url":"https://www.sqlbi.com/articles/optional-parameters-in-dax-user-defined-functions/"},{"content_text":"ALL vs ALLSELECTED vs ALLEXCEPT vs REMOVEFILTERS","date_published":"2026-06-01T00:00:00Z","id":"https://www.sqlbi.com/articles/all-vs-allselected-vs-allexcept-vs-removefilters/","tags":["article","teaching"],"title":"ALL vs ALLSELECTED vs ALLEXCEPT vs REMOVEFILTERS","url":"https://www.sqlbi.com/articles/all-vs-allselected-vs-allexcept-vs-removefilters/"},{"content_text":"Introducing user-aware calculated columns in Power BI","date_published":"2026-05-18T00:00:00Z","id":"https://www.sqlbi.com/articles/introducing-user-aware-calculated-columns-in-power-bi/","tags":["article","teaching"],"title":"Introducing user-aware calculated columns in Power BI","url":"https://www.sqlbi.com/articles/introducing-user-aware-calculated-columns-in-power-bi/"},{"content_text":"Filtering measures through slicers","date_published":"2026-05-04T00:00:00Z","id":"https://www.sqlbi.com/articles/filtering-measures-through-slicers/","tags":["article","teaching"],"title":"Filtering measures through slicers","url":"https://www.sqlbi.com/articles/filtering-measures-through-slicers/"},{"content_text":"Understanding parameter types in DAX user-defined functions (UDF)","date_published":"2026-04-20T00:00:00Z","id":"https://www.sqlbi.com/articles/understanding-parameter-types-in-dax-user-defined-functions-udf/","tags":["article","teaching"],"title":"Understanding parameter types in DAX user-defined functions (UDF)","url":"https://www.sqlbi.com/articles/understanding-parameter-types-in-dax-user-defined-functions-udf/"},{"content_text":"Using visual calculations to highlight an entire row","date_published":"2026-04-06T00:00:00Z","id":"https://www.sqlbi.com/articles/using-visual-calculations-to-highlight-an-entire-row/","tags":["article","teaching"],"title":"Using visual calculations to highlight an entire row","url":"https://www.sqlbi.com/articles/using-visual-calculations-to-highlight-an-entire-row/"},{"content_text":"SQLBI+ updates in April 2026","date_published":"2026-04-06T00:00:00Z","id":"https://www.sqlbi.com/blog/marco/2026/04/06/sqlbi-updates-in-april-2026/","tags":["blog","news"],"title":"SQLBI+ updates in April 2026","url":"https://www.sqlbi.com/blog/marco/2026/04/06/sqlbi-updates-in-april-2026/"},{"content_text":"The Third Edition of the Mastering DAX Video Course – unplugged","date_published":"2026-04-01T00:00:00Z","id":"https://www.sqlbi.com/blog/marco/2026/04/01/the-third-edition-of-the-mastering-dax-video-course-unplugged/","tags":["blog","news"],"title":"The Third Edition of the Mastering DAX Video Course – unplugged","url":"https://www.sqlbi.com/blog/marco/2026/04/01/the-third-edition-of-the-mastering-dax-video-course-unplugged/"},{"content_text":"DAX user-defined functions (UDF) vs. calculation groups","date_published":"2026-03-25T00:00:00Z","id":"https://www.sqlbi.com/articles/dax-user-defined-functions-udf-vs-calculation-groups/","tags":["article","teaching"],"title":"DAX user-defined functions (UDF) vs. calculation groups","url":"https://www.sqlbi.com/articles/dax-user-defined-functions-udf-vs-calculation-groups/"},{"content_text":"Mastering DAX video course, 3rd edition","date_published":"2026-03-24T00:00:00Z","id":"https://www.sqlbi.com/articles/mastering-dax-video-course-3rd-edition/","tags":["article","news"],"title":"Mastering DAX video course, 3rd edition","url":"https://www.sqlbi.com/articles/mastering-dax-video-course-3rd-edition/"},{"content_text":"Creating functions for the like-for-like DAX pattern","date_published":"2026-03-09T00:00:00Z","id":"https://www.sqlbi.com/articles/creating-functions-for-the-like-for-like-dax-pattern/","tags":["article","teaching"],"title":"Creating functions for the like-for-like DAX pattern","url":"https://www.sqlbi.com/articles/creating-functions-for-the-like-for-like-dax-pattern/"},{"content_text":"SQLBI+ updates in March 2026","date_published":"2026-03-04T00:00:00Z","id":"https://www.sqlbi.com/blog/marco/2026/03/04/sqlbi-updates-in-march-2026/","tags":["blog","news"],"title":"SQLBI+ updates in March 2026","url":"https://www.sqlbi.com/blog/marco/2026/03/04/sqlbi-updates-in-march-2026/"},{"content_text":"Debugging DAX variables using TOJSON and TOCSV","date_published":"2026-02-23T00:00:00Z","id":"https://www.sqlbi.com/articles/debugging-dax-variables-using-tojson-and-tocsv/","tags":["article","teaching"],"title":"Debugging DAX variables using TOJSON and TOCSV","url":"https://www.sqlbi.com/articles/debugging-dax-variables-using-tojson-and-tocsv/"},{"content_text":"Understanding DATEADD parameters with calendar-based time intelligence","date_published":"2026-02-09T00:00:00Z","id":"https://www.sqlbi.com/articles/understanding-dateadd-parameters-with-calendar-based-time-intelligence/","tags":["article","teaching"],"title":"Understanding DATEADD parameters with calendar-based time intelligence","url":"https://www.sqlbi.com/articles/understanding-dateadd-parameters-with-calendar-based-time-intelligence/"},{"content_text":"Show transaction details on the matrix visual in Power BI","date_published":"2026-01-26T00:00:00Z","id":"https://www.sqlbi.com/articles/show-transaction-details-on-the-matrix-visual-in-power-bi/","tags":["article","teaching"],"title":"Show transaction details on the matrix visual in Power BI","url":"https://www.sqlbi.com/articles/show-transaction-details-on-the-matrix-visual-in-power-bi/"},{"content_text":"Fixing the “Black Icons” issue in Power BI Desktop: understanding the problem and a temporary workaround","date_published":"2026-01-24T00:00:00Z","id":"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/","tags":["blog","teaching"],"title":"Fixing the “Black Icons” issue in Power BI Desktop: understanding the problem and a temporary workaround","url":"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/"}],"language":"en-GB","title":"marcorusso.com","version":"https://jsonfeed.org/version/1.1"}