DevEx for Pros: UDFs, the Tools That Stick – Ep. 473
Developer experience matters—even in BI. Mike and Tommy break down what good DevEx looks like for Power BI and Fabric developers, spotlight DAX User Defined Functions as a major productivity unlock, and discuss how tools like Tabular Editor earn a permanent spot in the workflow.
Resources Discussed
-
TMDL Scripts, Notebooks, and Tabular Editor — How Does It All Fit Together — Tabular Editor’s blog on how TMDL, scripts, and notebook-style development patterns integrate into their tooling.
-
Developer Experience: What Is It and Why Should You Care? — GitHub’s take on why DevEx is a strategic priority, not just a nice-to-have.
-
Quantifying the Impact of Developer Experience — Azure Blog — Microsoft’s research on measuring DevEx impact on productivity and outcomes.
-
DAX User Defined Functions — Microsoft Learn — Official documentation for UDFs in DAX, enabling reusable function definitions.
-
Tabular Editor UDF Tutorial — Hands-on guide to creating and using UDFs in Tabular Editor.
Main Discussion: DevEx and UDFs
What Is Developer Experience in BI?
Mike and Tommy adapt the broader software engineering concept of DevEx to BI:
- Speed of iteration — How fast can you go from idea to working measure?
- Tool reliability — Does the tool get out of your way or fight you?
- Discoverability — Can you find what you need without digging through docs?
- Feedback loops — How quickly do you know if something works?
DAX User Defined Functions (UDFs)
UDFs are a significant addition to DAX:
- Reusable logic — Define a function once, use it across measures
- Cleaner models — Reduce copy-paste DAX and inconsistencies
- Calendar patterns — Tabular Editor’s calendar UDFs simplify time intelligence
- Maintainability — Change the function definition and all callers update
Tools That Stick
They discuss what makes a tool earn its place in a developer’s daily workflow:
- Tabular Editor stuck because it solves real friction (speed, TMDL, scripting)
- Power BI Desktop is necessary but not always loved
- The best tools reduce context switching and let you stay in flow
Looking Forward
DevEx in BI is maturing. UDFs, TMDL, and notebook-style workflows bring BI development closer to software engineering best practices. The tools that reduce friction and enable faster iteration will win—and right now, that’s the Tabular Editor + TMDL + git combination.
Episode Transcript
Full verbatim transcript — click any timestamp to jump to that moment:
0:00 Good morning and welcome back to the explicit measures podcast. We are back live again. As you can tell, we’re starting a bit late this morning just
0:33 Because it has been a bumpy technology morning. So, getting everything working, figuring things out as we go. We We figured it out. We’re working. All right, Tommy. How are you doing this morning? Oh, I’m [clears throat] a little I’m ready to go, dude. This is what? We do this for free. We don’t have producers. We are the producers. So, what are you going to expect? It’s It’s true. Yep. , and computers as they may be, sometimes they get a bit cranky with us in the morning and , especially when you fire them up the first time, you kept them off. For some reason, you have to restart a couple
1:05 Times. Anyways, my computer’s good now. We are set. We’re ready to go. Tommy, , our main topic today is , DevX for PowerBI pros, dev experiences or dev dev tools , around , it udfs and the tools that are going to stick inside whatever you’re building in. This is going to be more geared towards Fabric and PowerBI, but dev tools, more advanced analytical tools that we’re going to be using, , and what can we talk about there. So, that’s going to be our main topic today, talking about professional developer tools. Before we get into that, let’s do a couple news
1:38 Items. I know we’re running a little bit late here, so let’s trim down the news slightly. Tommy, let’s just pick the one that you’re most passionate about right now. Tommy, what are you seeing? We had we had four articles here. We may kick some more to Thursday. , what do you like? Microsoft name a leader in the forester wave for data fabric platforms. I think it’s a solid. But isn’t Microsoft fab? I guess data fabric is a thing. Anyways, Microsoft fabric scored the highest in the current offering and strategy categories the top marks for enginic AI real-time
2:11 Integration unified governance. So that’s a big one. So Mike, what do you think of that? So this is diff this is a different Forester way than I’m used to seeing in the past, right Tommy? We’re typically used to seeing PowerBI and Microsoft at the upper echelon of the Forester is it visualization or BI reporting tools. There’s there’s another chart. This is like a different one than we’re used to seeing. Correct. Yeah. So this is not your normal the normal business intelligence ones. Forester has a this is not Gartner either. So Sure.
2:41 I was looking to see I’m like where’s the magic quadrant? Yeah, that that is a Gartner magic quadrant and I think they focus a bit more on like BI tools and Microsoft fabric or PowerBI has been very heavily on the upside there. This is data platform like full platform data data solutions and this is where Microsoft sitting one of the companies that I will notice here Tommy. So I like to do ends of the spectrum here a little bit. As you look at this blog post, we see Microsoft in the strength of offering Microsoft and the strength of
3:14 Strategy also Microsoft. Look who’s at the very bottom end of this chart. SAP SAP AWS and AWS, which is very interesting to me to see those two data systems so far down on the the Forester Wave chart. Anyways, I find that very interesting. If I had to say what are the biggest competitors to Microsoft Fabric, it would be things like Snowflake, some of these other ones
3:46 Here, I I don’t pick Oracle as a big competitor or player against Microsoft in this space, but apparently they’re much larger than I think. I’ve always thought the Oracle products to be very overly priced compared to what you get for them. Very comprehensive, but overly priced. Terod data I find very interesting that that’s up as high as it is as well. So I thought terod data was more of like an infrastructure deployment. sorry I’m thinking about Terraform. Terod data is another solution. I have played with a little bit but totally different solution. Anyways interesting chart. Go check out the
4:19 Article. I’ll put the article here in the chat window as well. I definitely highly recommend you read this one. I’m very pleased Tommy that we are in a platform that is in the winner circle. We are in the winner circle. Nice to tie yourself to the winner and hang there as we but we did this way before like before there was even a data platform. We were already there. Anyways, really really excited to see Microsoft Fabric get much further up here in these platforms. Dude, I love it. I absolutely love it. is it is it weird that they maybe had like data fabric platforms and maybe
4:53 Microsoft fabric the naming there? Maybe there was like a lead in. [laughter] I don’t know. I don’t know. Yeah, I was like maybe that’s why they called it fabric. [laughter] What what will Forester call it? Maybe we should just use the same name they’re going to use for data fabric platforms. Anyways, very interesting article. Good read. , also very excited to see what what the next couple years take for Fabric’s only been around for two years and already they’re a leader. Yeah. So that’s exciting to see that Microsoft has come in, made a statement and is
5:26 Taking the leadership role. Exciting. Anything else you want to talk about quickly before we get into our main topic? Tommy online services are going down for PowerBI server and then we’ll talk about the new visual whenever that time comes. Okay, so this is another interesting article. I’ll put this one in the chat as well. The deprecation or announcement of office online server retirement. interesting article. I don’t think I ever use this one, but this is basically if you’re running your own server, they’re not letting you do that anymore. that’s going to be unsupported in the
5:58 Future. So, what are your thoughts on this one, Tommy? Do you use online server at all? I do not. I do not. I had one company who did, but that is not my cup of tea. So, the key date here is the office online server will be effectively retired December 31st, 2026. So, you’ve got some time. Not this year. You’ve got one more whole year around. And then the reason this is the PBIRS users, so those are ser those report
6:32 Server users will no longer be able to host an Excel workbook. So if you were hosting Excel workbooks in there, those will no longer be supported. Time planned. , when I was doing metric sets, but good thing they’re giving you a whole year. You had like a week for the deprecation of that one. Jeez. Anyways. Okay, awesome. That being said, let’s get into our main topic today and we’ll jump in today. So, ah we have a phone call, we have a call in today. So, I’d love to bring to the audience here for our main topic today.
7:05 I would like to introduce Greg Baldini. for those who may not know Greg, he is a staple in the fabric PowerBI community. You’ve been doing this thing forever, Greg. And if if I ever need any semantic model question, concern, I don’t understand, Greg is is there. He’s on point. He knows how the model engine works at a level that I can’t even understand. Greg, you’re a genius. I love learning from you. , you write essays every time I ask a question, a simple question. Absolutely love it. Thank you for being on the show
7:36 Today. We really appreciate you being here. Yeah, , longtime listener, first- time caller. I’m really excited to join you guys. I [laughter] love that. I love that. So Tommy was Tommy was joking before we got on this episode here. We’ve got we’ve got a Baldini, we’ve got a Pulia, and we’ve got well a Carlo, but I really don’t know what my last name really was. Maybe it was a D. Carlo at some point, but we’ve got the three Italians on a podcast now. So I think if nothing else, you’re going to have Sparks and this is going to be loud like regardless. [laughter]
8:09 Anyways, let’s jump into our main topic today. Tommy just give us a quick kickoff here around some of them the the key points here and I think Greg we’re going to defer to you for some of these definition terms we have in our title today. U Tommy to you first and then we’ll go over to Greg. And Greg I believe you’re going to be with us for a few more than just one episode. and we asked we wanted to talk to you and we asked hey where do you want to go in terms of if you want to spend four hours with us
8:41 And I think we’re excited for the audience where we’re going to get into DevX the developer experience and we’re going to be talking about this in the realm of PowerBI and the realm for P fabric professionals we’re going to be really diving into a ton of things automation obviously I’m looking at your background, Greg. And for those who can’t see you because we are podcast first, you have this giant background and I have a feeling that we’re going to be talking about this for quite a big deal, but your
9:14 Background is tablet editor and I think this is that enterprise solutions. We all know Tableau editor where it’s hey if if you’re really a professional, if you’re really a developer, use Tableau Editor 3. and I think that’s we’re going to be really where we’re diving in. So, Greg, if for those who don’t know you, because you’re the only one who has doesn’t work at Microsoft, , go, why did you want to go this route with developer experience for our series? And who the heck are you? Yeah. So, , we’ll start, , the name
9:48 Greg Baldini. We’ve said it a couple of times. , online, you usually find me as Greggy B. I’ve been doing BI and data analytics for pretty much my entire career. I started in DAX in Power Pivot. and just to give a true lineage, I started in Power Pivot before the transition of the space in the name. So I’ve been doing DAX for more than a decade, which is fun at this point because PowerBI has just turned a decade. I worked in the consulting area for a while. I did some freelancing. I even worked for the dark side and was at AWS for a little bit in their data practice. And I wanted to
10:20 Do something a little bit a little bit more interesting to me. not just build another BI solution, but build the tools that help to build BI solutions. And I think that’s ultimately what’s going to be running through the conversation today. I work for Tabular Editor. Like you said, we’re a solution for developers and programmers in the PowerBI and fabric space. We offer an IDE, both a free and open source version and a commercial one. And I am one of the core developers. And I like to say that my primary responsibility as a developer is scope creep. And I make sure that we always have more to work
10:52 On. [laughter] Well, so so let’s go in a little bit more on like I again tabular editor is amazing and this was born out of a brainchild of Daniel O’are that’s his his brainchild and so it started out as tabular editor 2 which was like kind like the free open source version still still free still open source still getting updates actually as we speak so it’s still a very solid tool that’s out there but that then born
11:24 Into an actual company which was like look we really need enterprise to have additional support around this tooling because it’s it’s getting to the point where we need reliance needs to be dependable. there’s new features that like enterprise customers are asking for and you need like the support behind that to really scope creep to Greg’s [laughter] to use Greg’s point here. We got to scope creep to a lot of things to keep the product moving forward and building what customers want. And so this is where tablet editor 3 comes out which is a paid product. It has like a very lightweight free version of it that you can get like a personal
11:57 Version I think only or a lowerc cost version of it but then it scales up to like enterprise grade where your full enterprise can use licenses across your team and all that that features as well. Let me just I got to I got to toot my horn here a little bit about Greg because Greg has impressed me a lot with his just in general developer knowledge like just in general his credentials there are second to none. One time I was asking, I don’t remember what it was, Greg. I was asking you about something about , hey, what , I like using this tool. It’s like online or something like that. And
12:29 Greg’s like, “Oh, just spin up your own VM with a Docker container and do this, this, this, and this.” And yeah, it should be no easy. It’s actually much cheaper to run it if you just run your own Docker container. And I’m like, Greg, I don’t have the mental brain power to figure out all the things and update the server and make sure the container image is right. I don’t have all my time. And Greg’s like, “No, no, it’s actually like two minutes of my time every week or every month, whatever. It’s not a big deal. Such I’m like you made it sound so incredibly simple and I felt like an idiot for like just don’t know. I don’t have the time. So I felt I felt really insignificant cuz Greg was like yeah it’s no big deal.
13:02 And I’m like I have no clue what’s going on. Anyways to your high to speak to your high knowledge around these things like it becomes second nature to you and and my experience is you are a pure really good developer. So want to just commend you on your excellent dev skills. Thank you. , as for purity, I went to Catholic school, so I’m I’m very impure. [laughter] Ah, amazing. Let’s let’s define a developer experience. Like, so let’s talk let’s talk just pull tools away from this. Let’s not talk PowerBI. Let’s talk
13:33 Fabric. Let’s step back a little bit and just say, okay, when we’re saying developer experiences, what does this mean? And I think Tommy and I debate a lot between is this a report developer? Are we a are we a data modeler? Are we a data engineer? Now we’re data scientists inside fabrics. The scope of what we could be talking about for developer experiences. Greg, in your mind, what does the developer experience look like to you? How would you define that? Yeah. So I I think it’s easiest to compare to what we know as UI and UX,
14:07 The user interface and the user experience. So UI is the stuff that’s actually on the screen. so if you’re in some web app and you use a dropdown, that dropdown is the interface, the the user experience is how easy it is to use that drop down to achieve the goal that you want. So let’s say that you’re selecting your birthday and that dropown has a list of every single date from 1900 through today and you want to find your birth date. [laughter] That’s a terrible user experience. Yes. Yes, it is. The the user interface is the drop down. Drop downs are neither good nor bad but
14:40 How we use it can be good or bad. So then we shift that and we talk about the developer experience and what is the developer interface that would be analogous to the user interface. So the developer interface is literally anything we see while we are developing. This could be if we’re talking PowerBI and fabric this could be a notebook in the fabric service. This could be the PowerBI report canvas. This could be the model view in PowerBI desktop. This could be a lakehouse this could be the lakehouse explorer to look at the tables and things like that. Those are all interfaces to something that we will
15:13 Do while we’re developing and like you said we might be developing in many different areas and the developer experience is how effective these things are for us as developers if we want to build something or we want to understand something and I think the understanding is much more important usually than the building. building tends to be easier once what’s going on and what you need to build. It’s understanding how the things should work together. And so if you want to understand what you’re building, you need tools that help you to inspect. You need tools that help you to build. You need tools to help you
15:46 Especially debug or troubleshoot. And so the developer experience is the collection of things that you use that help you to achieve those ends. And they come in many different interfaces from terminals and command line interfaces all the way through to shiny things like the fabric UI. I liked your point around debug and fix that that is that is h how much time Tommy do we sp we spend fixing things with whatever we’ve been giving whatever the tool is right
16:20 That’s a large majority of developer time Tommy to you a thousand% and I’m taking a look at some of the articles that there have been the podcast and and YouTube as well you you added some from Tableau editor talking purely about tindle and then one from Jira and then one from GitHub about developer experience. This is where the crux is for Mike and I when it comes to pure old-fashioned argument is who is the developer in PowerBI in fabric and before you say all of us that
16:53 That’s not necessarily the case because there’s a spectrum here for for me and Mike I we are more geared towards I will learn terminal commands I like look working the command line give me my VS code give me cursor that’s awesome and being able automate and figure things out with code. But a lot of people if they’re still dealing with just PowerBI desktop and you can do tindle there, you can do the D query albeit and I am not arguing that it is better experience but you can still do it. So when
17:27 We’re talking about the developer experience, let’s talk about let’s define a developer first. Yeah. so I think if we want to narrow the conversation down a little bit it would it’s probably easier to speak in more concrete terms and I would say let’s talk about a semantic model and developing a model for the purposes of reporting and analysis. In that case the developer is anyone who needs to do anything with the semantic model in terms of changing or understanding it. So this is both the developer who’s
18:00 Building a semantic model who may have much more of a focus on the data but it is also important for people who are consuming that model to build things because they also need to understand and like I said understanding is oftentimes the harder of the things to do and so this does extend and span into people who are building reports. You can’t really build a report if you have no idea what the data is. You need to understand the model at some level. You might not need to be able to build the model, but you need to be able to have tools that help you see it and understand it.
18:31 Okay, these are these are two Tommy and I have beat this one to death. This is this is one that we’ve like we have tal talked about this idea over and over and over again because I I absolutely love this point here because changing the model is again when I look at the roles Microsoft gives like touts out to the community right it’s the report analyst it is a data engineer to data scientist right that that’s the lens of the roles they give you and I don’t think those are granular enough to
19:04 Really explain what’s really happening when we talk about the reporting side, the model side and then what I would say is like the warehouse side or the data warehouse like all the stuff that is behind the scenes to get it to the model, right? And so Tommy and I’ve had this idea and again Greg I’d love that you have your opinion on this too. We’ve I’ve manufactured this mental concept is like everything happens on the back end engineering wise and then it like the whole system pinches down to like a semantic
19:37 Model or or a again the semantic model might be like the thing that sticks in my mind the most. it could also be like SQL tables that are like going to be used to be exported. So there there’s this definition there’s a layer in the very middle here that’s that business user level narrowing of all this table information down to something that’s usable that users can go build on top of. So whether it’s the semantic model and I feel like the semantic model is the pinch point for a lot of our design work and then after you get past the semantic model it
20:09 Expands again to okay well the semantic model can support a pageionate report the semantic model can report a powerbi report a metric set a scorecard like there’s all these other things on the other side so I look at these two worlds of the data engineering come in from one side we narrow down to a semantic model and then we expand on the other side back out to all these different visualization tools And again I really resonate with your comment around developer the semantic model developer is a person has to be able to understand what’s in the model make new measures design new tables
20:41 Communicate what they need back upstream or do the engineering upstream to shape that data to make better models to make better measures to make it easier for the model to run and there’s I’ll just pause right there Tommy your thoughts on this is is this jing I gotta hear what the great Baldini has to say about this. Do Do you agree, Greg? Am I am I am I is my mental model okay on this? I saw you nodding along, so I think maybe I’m on the right track here. Yeah. So, the semantic model, I think, is incredibly well named because
21:13 Semantics means meaning. When we talk about semantics, we’re talking about the meaning of things. And Microsoft has been in the semantic model game for a long time. They forgot for a while and called them data sets. But they were semantic models from the first release of multi-dimensional all the way through today. And the semantic model is the place where business meaning is made. That that’s ultimately what it is to me. And so like you said, it is this pinch point or this culmination of data engineering work and these inputs coming from across the business from across different systems. And it’s the place where we put things when we want to make
21:45 Meaning of them. and measures are a way to take business logic and package it up into little bite-sized units. Now, we’ve got other functionality as well that helps us to package up functionality into bite-sized units to represent what things mean in terms of our business. And it’s also the place where you can have lots of fights over what things mean. I don’t know about you guys, but I’ve had plenty of conversations about a word, let’s say, revenue and what revenue means. What’s included? What’s excluded? Yes. Yes.
22:16 And so it’s it is a pinch point not just technically but also politically and in terms of how we make meaning of the business data. This is where we have that debate and also hopefully solve or at least find local solutions to those debates of for the purposes of reporting. This is what sales means and here’s a measure that encapsulates all of that and does it reliably in any of the reports we might use. Oh, I love that. That’s really good. I again I have had those conversations and even now like with customers that we
22:49 Currently talk with we think of building reports a certain way and this is this is also really interesting like when we’re talking about developer tools and like the process of creating things particularly these I liked your your message here around packaged functionality for the business that’s a great analogy there but when we build these things there’s also this this handshake there’s there’s an agreement and I think the semantic model does a really good job of delegating a handoff agreement between someone who’s developing the business logic model, the the the semantics of
23:23 Your business and then transition that over to here’s what we understand. This is my understanding and then you give a customer the ability to build their own reports on top of your semantic model. That’s the exchange. That’s the exchange of run responsibility. I’m responsible for making sure this model works correctly. you’re responsible for building the report in an accurate way. And so I think there’s a there’s an interesting handoff here. I’m going to go back up to your earlier comment, Greg, around the you were making this the note around where did I put them in my notes? Oh, shoot. Did you
23:57 Just copy that out? My notes, Tommy, I don’t know. I was taking notes there. I haven’t. Okay. So Greg you were talking earlier around the idea of like the the semantic model being these editing you can edit or understand the semantic model. So the understanding is also incredibly important because that’s again the same thing we’re transitioning and I see so many customers having weakness in no measure descriptions, no column descriptions, no table descriptions. And so this is where I think protooling or the dev experience
24:31 Really comes into play here is I’ve got one model. I may have hundreds of models, thousands of models across my organization where I now need to provide additional business context cuz we just stuck stuff out the door. Yeah. How do I get descriptions on all this stuff at scale quickly? And this is where I think this is where the desktop experience for me falls apart a bit cuz I can’t go at scale and rip through programmatically or using repeatable things. And this is where I think maybe I lean a bit more is when I talk about developer experience. I think a lot about more around automation. Automating
25:03 I think for me is very powerful and it makes my time and effort much more scalable when I think about automation with professional tooling. So yeah, let me ask at what point then does PowerBI desktop not be enough when we go from protodev? And I think a lot of people have dealt in the world of PowerBI, maybe dabble on Tableau editor, but at what point do you think there’s that threshold where it’s like I need to have a developer experience in order to be more successful in my organization or
25:37 In what I do? Yeah. So Tommy to yours unfortunately the answer is it’s not it depends but it is a continuum [laughter] there’s no specific cut off point there’s I can’t say as soon as you have columns and measures you cannot use PowerBI desktop it’s impossible to make a statement like that but as the model grows and I would say there are two forms of growth that we want to think about as the model grows you start to hit limits and want more autom
26:08 Automation or just tools that allow you to operate in different ways that might not be automation but more bulk editing. And so the the two forms of growth, one is in terms of number of objects. So number of tables, number of columns, number of measures, just things that exist and you could have a huge model by this metric. You could have thousands of tables, columns, measures, but you might only have, , dozens of rows. That would be an extreme. You might doubt there’s any real model that only has dozens of rows, but it could be a very expansive model with very little
26:40 Actual data in it. That’s one metric or one axis along which a model can grow. The other axis is data volume. So scaling into a fact table that has hundreds of millions or billions of records as you get from things that are measured in megabytes to things that are measured in gigabytes, terabytes and for some customers even into pabytes today for large data lakes. And so as as you move up that as you move up in size in either of these dimensions, you start to need tools that do different things. C
27:12 Can I can I I don’t want to reinterpret what you said, Greg, because I agree 100% with both of these these issues. And again, I’ve struggled with both of them. Model tables get really large. You have lots of measures. , one of one of my experiences that pushes this one direction or the other is when you have a lot of timebound or lots of date tables like multiple date tables that define the the basis for your calculations. A lot of this in manufacturing, shipping, , order date, , all these different date calendars, 445s. Sometimes you you want a bunch of
27:45 Measures that support multiple different date calendars that are inside the same semantic model. And that really can proliferate, , to your point earlier, sum of revenue, that very simple calculation. Well, sum of revenue by what? By what dates are we talking about? And that can really very quickly balloon that single measure to 10 measures because you need to calculate the sum of revenue based on different business filter context based on what they want. And so that makes sense. , that’s again back to the business requirements. This is a
28:16 Definition of what they need to do their job. It needs to be there. But then to your point, it becomes a proliferation. And maybe what I would add just as a note here as a point as I see this is it all for me boils down to time. And let me and let me reiterate on this one. As the model scales in size, as you get more partitions, bigger tables, more rows, right? The time to refresh the model becomes longer. And so your time becomes a valuable aspect. And so again, Greg, back to your point earlier around
28:47 Data volume, bigger partitions, larger tables that pushes us to scale to a different tool set that allows us to refresh individual partitions. That’s why we start choosing incremental refresh for things because we don’t want to reload, , the 30 million, 300 million row table. Instead, we want a tool that’s going to say we’re going to incrementally load this because that’s more reasonable and the time helps us scale that way. Mhm. I’ve also seen the same effect in measures and tables. The the larger your model becomes, the more effort you are
29:21 Required to understand what that model is. When you build a new measure, what are the interactions of that measure against other parts of that model and making sure that whatever you test or whatever you build new doesn’t break everything else. like if you’re if you’re changing some core measures, you don’t want to adjust them knowing that there’s a bunch of downstream dependent measures that are going to break because of that. So again, I’ll go back to my analogy of like time. When the model gets more objects, changes to that model just take more time. And so again, this is another place where I’d say in both
29:53 Situations here, I see time as the common denominator as to when you feel like you’re spending a lot more time on doing very repetitive or arduous tasks and features of things. That’s the opportunity. That’s the signal I would use to say, hey, maybe we need to start thinking about scaling out to developer tooling that’s going to help you handle this at scale. Let me pause there. I see you nodding your head, Greg. reactions. Yeah. Well, I think if I scripted this, I couldn’t have had you say
30:24 Anything better. one of the links that I had shared, it’s in the the description for for the streams is from Microsoft. It’s all about developer experience. And they did some research with GitHub and they found three things that are absolutely critical for improving developer experience. And this is across the board, not just, , PowerBI, not specific tools. And those things are flow, cognitive load, and feedback loops. And I think this is a summary of some of what you’re saying there. That state of flow is something that’s actually been studied a lot in
30:56 Psychology. And it’s all about this ability to be productively absorbed. So being able to be in the zone and it feels like the world is just slipping by, but you’re dialed in and you’re able to get things done. And part of that is this idea of being a feeling as if you’re in control, as if you can make the things happen as you’re thinking of them. And so it’s this state where you’re thinking about something and then you make it happen. And then you think about the next thing and you make it happen. And that happens in a very tight loop where you feel as if you are you feel as if you’ve got this
31:31 Control and this congruence between what you’re thinking and what you’re achieving. And that’s what developer experience is really about. It’s how do we reduce friction in any of the many ways it can come about so that we can stay in that state of flow. Man, this is gold. I hope people are listening to this because this is this is blowing my mind right now. The things you’re saying I’m like I’m so deeply in touch with. I like I love the phrase productively absorbed. That is like Tommy. I could [laughter] I could I
32:04 Could see Tommy being productively absorbed by AI all this thinking time because [laughter] every time I talk to Tommy, he’s like, “Oh, I got this large language model and it’s running on my machine and I’m doing all this cool stuff and I’ve got like all these flows happening.” I’m like, “Tommy, you are productively absorbed with your AI. Make sure you actually get client billable work done [laughter] because you’re so absorbed with all the fun stuff.” So, like that phrase so much resonates. Tommy, you were gonna say something. Go ahead. No, I I was just going to say as we go through this, yeah, there’s all the experience, but you got we got to admit
32:37 That the developer experience and yes, Fabric is trying to have Mike knows we’ve tried to have a user experience in Fabric lately, Microsoft’s tried to build, but , we are finally getting to a point, Greg, would you agree at least from the Microsoft side to support data developers and not just, , you have to be SSAS or pure DBA SQL projects to be a developer with an actual experience because if if we were having this conversation what a maybe even a year
33:12 And a half ago we source control was barely something that was available. We had really no use case for using any IDE such as VS Code. and really the only developer support was thirdparty tools. Yeah. So I think Microsoft is making a lot of good strides but I would point less at the specific experience that you’ve just called out and I would point at things that grant flexibility and
33:44 Interoperability. So in the September release of PowerBI desktop they opened up all modeling operations. So you can treat PowerBI desktop nearly identically to a local analysis services instance now huge. That wasn’t something you could do before and that opens up a lot of avenues. It’s not just Microsoft building a single experience. And this is neither that single experience is good or bad. It’s about opening the door for whatever tooling or whatever approach you might want to take because now anything that
34:16 Talks XMLA talks to PowerBI desktop without limitations. And so that’s huge not just for us in tabular editor, but it’s also great for it’s great for anything that knows XMLA. You could use I haven’t tested this, but it should just work. You should be able to use the ALM toolkit to diff open PowerBI desktop models and then bring them into alignment or not. demo, we’ll have a demo next week. Demo next week from Greg. [laughter] We’ll have it on We’ll have it on the YouTube channel and we’ll get a quick tips going. and we’ll get Greg on to
34:48 Demo ALM toolkit doing between two tests. And again, Greg, I’m going to I’m going to hold that idea to the I think I’m going to grant that idea to the public because I don’t have time for it. [laughter] I love it. I love it. It’s it’s the idea of of this opening and yeah, Microsoft is building some first-party experiences and that’s great, but what I’ve personally found is that the ability to bring tools I’m already fluent in is more important than someone trying to build an experience that fits for everyone. , but the the other side where Microsoft
35:20 Has opened up a lot lately is increasing the surface area of models that can be downloaded from the service that have been edited by XMLA. There’s still some limitations. , an incremental refresh model can’t be downloaded right now, I don’t believe, but anything edited by XMLA now can be. So again, this opens up the door where you can use any tool that speaks XMLA and still get that back. or the the other big opening for PowerBI specifically in fabric are the get and put definition APIs. So you can get the definition of a report and get a PBIR that JSON
35:52 Or you can put the definition of a report and that makes programmatic deployment much easier and say I love that point. Yes, we we are doubling down on that feature alone because so we have power designer which is a workload that does exactly that thing. So we we develop puts directly from our template program that can build an entire report schema. It’s it’s like a report schema, not semantic model schema. It’s like a report schema. We build a a report schema for you and then hook it into, hey, by the way, what semantic model do you want to attach
36:24 This report to? Oh, and by the way, it just all bolts together and just starts working. So to your point, Greg, like I’m super pro on the opening of the tools. to your to your point there. Sorry, I didn’t mean to interrupt. No, no, I was I think I hit a period somewhere in there. [laughter] Okay, good. Sounds good. Tommy, I want to go back to your comment around the source control thing because I think I agree with Greg on this point here as well. So, Greg, you made a note here around like, , Tommy, you’re bringing up CI/CD, developer tools, how that helps. I think the CI/CD of source control is a bit more focused
36:58 On like resilience and team process. I would focus that on that area of the world. And Greg, I think to your point and what you’re describing here is when I start focusing on building more open tooling, building more reporting, like the whole XMLA opening up of having it work in desktop as it does with the service and allowing external tools to talk to desktop and the service in the same way. To me, Microsoft is really good at building the infrastructure like the framework, right? Yeah,
37:29 Microsoft comes up with a definition of this is what a PBIP project looks like. Here’s how a semantic model can be built in JSON object, right? The the the TMSL. And then Microsoft comes in and says, “Oh, by the way, that’s too hard to read. Let me give you a new format called the TMDL timle which allows you to take this large JSON file split it apart into small files which supports the process of your organization which is the source control CI/CD stuff right but to your point Greg though it’s still
38:01 Focusing on Microsoft’s really good at building the like the infrastructure and this is where I think I like to step in here because I’m a again Greg you’re a tool developer I’m a tool developer we’re building solutions for scale at mass large organizations here around software we like to come in I think and and decorate the house right Microsoft can come in and build the frame are the bones of the infrastructure there and then we as developers can come in and furnish the room with well I prefer a modern
38:35 View of my house right so I’m going to have very sleek cleanlin lined furniture Tommy prefers a very Italian style of house so there’s going to pictures of pizza on the wall and there’s lots of pasta in the cabinets. , there’s lots of cabinets and a kitchen [laughter] is is paramount for Tommy. It’s got to be a big kitchen with a big freezer so we can have all the fish and the fresh seafood that’s there, right? But that’s left that analogy I think fits with the idea that we’re going to push towards the developers the software developers to round out the
39:09 Experiences and and then we could to your point Greg as well. Like I like your idea here around developers can build what tools developers need in a tool or system they already are comfortable with. Like you like VS Code, great. you we’ve got tools for that. You want to have a tabular editor- like tool with a UI that feels a lot like SMS. Like here you go. Like you got a thing that that works that way for you. All right. Sorry things. Tommy, pause. I go to you Tommy. No. And and I think this is where we’re we’re actually going. And I don’t know if we want to change gears slightly
39:42 Here, but with tabular editor, Greg, I actually wanted to ask you about that because Mike and I have actually had some conflict here when we’ve talked about timar editor and it’s actually been that’s been the that’s been the debate where on one side is Tableau editor and the other side is Tim that if you either you’re going to use one or the other. For me, I love the Tableau Editor 3 experience. , I I’m used to it. I’ve done it for so long, especially with
40:14 From measures, columns, just taking a look at dependencies. But that being said, Mike has definitely moved me closer and closer to what Tindle can do. For example, I had two giant models that were all tindle and I just basically ran it through a claw agent and said basically combine these. These used to be two, but all the measures, all the, , anything that was created in this model or this model, just put it all in one. And I didn’t have to open up PowerBI once. I didn’t have to open up desktop at all or
40:49 Tablet editor. I literally just had VS Code run through and edit Timo files and it was done. So I think there’s this debate right now when when I think of developer review when especially in the in the context in the definition that you said in terms of is this something that they can be productiv productive what’s the impact and how satisfied are they my first thought is that VS code and that source control as Mike was saying is the more heavy developer experience where tablet editor is more of a
41:23 Enterprise prize slashpro with your foot in developer waters. , I don’t know if you want to retort that or what your thoughts on that are. Well, first I’ll say that it’s it’s not a a verse or a competition. It’s not TIMDL versus tabular editor. It’s they’re very different things really. Tabular editor is a tool. Tim is a serialization format. , TimL doesn’t do anything. Tindle describes tabular editor can do things and this is not
41:57 To say one is better than the other again it’s not a competition this is just definitions timal describes a model it is a way to put onto disk as text the structure of a model timil the JSON that you would get in a BIM is also a description of the model tabular editor doesn’t care if you are using tindle or timsil you can save a bim you can save tindle you can open up either of them and you get the same exact operations because they’re the same structure. Tindle and Timsel represent the same things which is the structure of a data model. , if you have a
42:31 Preference for dealing with text and you want to use a text editor and you’ve got workflows that work really well for you like VS Code and you’re comfortable with Claude to do that manipulation of large text for you, that’s great. You can you can do that on timal files. You can also I know that Microsoft is working on an MCP server for PowerBI desktop and other people are working on many different things. we’ve also shown our AI assistant in preview a couple of times. Okay, this is underway. I wanted to think about this a little bit. We won’t go into the details of that, but I want to touch on that a
43:02 Little bit too. I think we’re going to talk a little bit more about automation and AI on our next chat. [laughter] But the true the idea is, , you you’ve got these different ways to edit a tim file. Tabular editor is one way to edit a TIMDLE file. Like you can think of it that way. PowerBI desktop is another way to edit a TIMDLE file. cloud code in VS Code running in the VS code terminal. That is another way to edit a TIMDLE file. All of this is operating on the model. And so what you want to talk about is what are the operations that are enabled and what are the operations that are made easier. What are the
43:34 Things that give you a good experience? And so Tindle, like you were saying, Mike, is really optimized for readability. That’s that’s what Microsoft wanted. They wanted a serialization format that was more readable than JSON. and so that’s what they built. And can I add just another I think there’s another Yes, I agree with that one. And because I want to add a little bit more to that one. I also think the serialization of a Timsel file is very arduous for process when you’re trying to track changes. So another part that was a weakness of the Timsel era
44:07 And again I will also argue tablet editor was the first thing I ever saw that did this like bar none serializing a Timsel file TMSL first time I ever saw it tablet editor 2 you built it and you could go save model to files and it would take the entire model and build a folder structure of measures and tables and columns and all the things that you wanted to put together. This was the I was like, “Oh my gosh, this is so much better.” Yeah. And so to I I think we’ll talk more about that in our Okay.
44:38 In our serialization. Don’t get it started on AI [laughter] warning. So I like that point to come back to it. The the idea of tindle. Tindle is just a serialization format and that it enables people to do things that they felt they couldn’t with Tinsel. It’s great, but it’s not a tool. that and that’s I think an important distinction because we’ve been talking a lot about tools. We’ve been talking about PowerBI desktop. We’ve been talking about the fabric service. We’ve been talking about things like a notebook and maybe you would bring up semantic link labs. All of these are
45:10 Different tools that to work on a model. Timsel is just the description of it. And if you build good workflows around ed or sorry Tim timdul is just the description of it. So if you build a workflow around editing timal that’s great but we should be very clear your workflow is the tool. timal is just the thing you’re operating on. And if you wanted to, you could build the same experience against JSON. It’s just the question of what are you reading and writing. that’s true. Most most AIs actually don’t care. Like TimL was more important for people were reading it. AIS don’t
45:45 Care as much. both Tindle and the Tim Soul format do suffer a little bit from just character bloat. there’s a lot of stuff that is necessary for the structure of the serialization that it doesn’t actually describe meaning that’s useful for the the AI. So I think both are interesting but they’re just serialization formats. This is interesting. Okay. So I do want to be mindful of some of Tommy’s time here. Tommy, you got to like wrap here a little bit. This is a fascinating conversation and and I I’ll play Let me give you my final thought
46:19 Here because because we’re going to wrap here a little bit. , apologize for those who want to get a full 1 hour in with Greg here talking and chatting. We’ll be a bit better on getting things ironed out next time for our next podcast. But so one of the things I just kind want to note here is I think there’s a really good conversation for the line I believe for citizen let’s call them citizen builders, citizen developers and the professional developers or or people that are way more in the technical side of things. I
46:51 I like to think of things as like a scale, a a perspective, right? We have people on one end of this idea that’s like, I don’t really care to learn all the technical details. I just need it to work, right? And then the other end, I love to understand every single thing about this and really want to build super scalable, really big hyper things, but I need to be really technical to get there, right? If we look at that spectrum, there’s going to be people in various degrees of education levels where they’re comfortable, where they’re not comfortable. And so what I think Microsoft is doing is they’re moving with a lot of their standard tooling. Again, we’re talking like powerbi.com
47:25 Desktop, those things. And even people like me, right? Stuff that I’m building, power designer, tabular editor. We’re trying to move this highly technical space and move that line closer to more accessibility for the broader audience of people to get involved building and creating things. And I think Microsoft is going the same way as well. they have these really technical analysis services things that they want to get into the hands as of as many people as they possibly can. In order for them to do that, they’ve got to provide some, to your point, Greg, tooling that’s easy to get started with,
47:59 But maybe doesn’t have all the bells and whistles. And so there’s a threat there’s a transition point where I think you start transitioning from the easy stuff has been taken care of and now we got to do some of the harder things and some of the tooling Microsoft provides today doesn’t address all the hard things and that’s where additional tooling is brought in to save you time automate more do more scripting like that’s that’s where some of the stuff I think really starts to change and now you can have a single person managing a lot more things bigger models, more
48:32 Stuff by transitioning to different tooling. So, I really like that thought. Let’s let’s go Tommy, maybe your final thought here as we wrap and then we’ll go to Greg. No, I I think we we’re are entering this stage now with the Yes, there’s we still need to be mindful though of the self-service side, especially with Fabric, especially with Microsoft. a big push right now if fabric’s going to be successful is do we make sure that or do we have for the normal user a adequate experience and that we
49:05 Can also train them rather than saying hey the only way you can use fabric is start learning Python and also command line and powershell that cannot be the case that being said I think for for you and I Mike and for honestly what your the lifestyle is we are developers And we need a developer experience. And I think yeah, hitting the nail on the head. We need to look for something that’s productive that helps with our impact and honestly helps us automate and one watch for errors, but two be
49:39 Efficient in our time. So I cannot wait for the rest of these conversations. I’m already my mind’s already blown. Greg, to you. What what are your final final thoughts as we wrap some of this conversation around dev experiences? Oh, well, I hate to end on a disagreement, but [laughter] I don’t I don’t love the framing around citizen developer or other categories. And I will I was trying to use that carefully. [laughter] I’ll do a quick aside. , Excel is the host to the most popular programming language in the world. That language doesn’t really have a name, but it is
50:12 Excel formulas. Excel has over a billion users, and people are writing formulas, which are programs. They’re small. They’re self-contained. They’re presented through a UI that people find friendly, but people are writing programs every day in Excel. Everyone using PowerBI in any way is interacting programmatically with data. Even if you’re just consuming a report, you’re viewing the report. A query is behind that viz. You might not know, you might not understand it too well, but you understand enough to be able to interpret the data. So, somehow that there’s data
50:45 Behind this visual. And so I would push back on the idea that there are different types of developers. I think there are different use cases and different needs. Some people need to see data and we have tools that allow them to interact with data like reports. Some people need to engineer data and we have tools that allow them to do data engineering. For example, building an ETL pipeline using notebooks in a Spark environment. That’s one tool you could use to build an ETL pipeline. And similarly when we talk about semantic models there are many different people with many different needs. I saw in the
51:17 Chat that there is that there was a link to Bravo. That’s one tool and it meets certain needs and it’s not so much about who the person is. It’s about what their needs are at that point in time and what can meet those needs. And that’s a relationship between the person and their experience the tool its UI and its developer experience. And so it’s not about citizen developers versus quote unquote real developers. They’re not separate. They’re just developers dealing with data in some structured way with different tools for different needs. And I think that’s the the really
51:49 Important thing to think about is what’s going to meet the need that I have right now. What is the tool or what is the experience that can help me move forward with my tasks with my job? Gold. Just gold. It’s just rich. Like this is Oh boy. I’m just so I’m such I get so giddy, Greg, when you say things because the things you hit are just you resonate. I think the term I agree with you the term citizen developer is overweight. I get very cautious when I use that but I do again would would I just really quick I just want to again not trying to debate here a bit more but do you do you agree or do you
52:23 Not agree with is there a spectrum the skills of what the developer leans to. Do you think there’s like entry level people versus like more seasoned or the needs are different? Does that drive you to one end of the spectrum or is it just or do you envision it’s just a pile of needs and you click off the needs that you need and that be that regardless you’re a developer regardless like how how do in your mind what’s your mental model of that look like to you? It’s far more multifaceted than a single spectrum. but it has some more structure and many many many continua [laughter]
52:56 Many different spectrums many different spectra or axes on which these things can be compared. So it’s not just a pile, but it’s also not just one spectrum. There are many of them. And it’s it’s really where like I said, it’s the relationship between experience, need, tool, and experience. It’s like a cube. So it’s like a data cube. It’s Yeah. And maybe you need to slice on these different axes to understand exactly [laughter] exactly what developer you are. You get it here, folks. You get you get
53:28 Developer semantic model jokes on the explicit measures podcast. You can’t get these anywhere else. Nobody’s popping out like this is comedy hour for lucky. Aren’t you lucky? Okay. Well, that being said, I think that’s a great ending, Greg. I love it. , , developers is a cube. I think that’s what we came down to here. You can slice your developer experience any which way you want on various axes. I love it. The analogy there sticks for me. Oh, dude. I’m going to be laughing about that all day. That’s great. Awesome. [laughter] , that being said, thank you all very much
54:00 For participating. and we really appreciate your listenership on the podcast. we’re very thankful for you guys to to be here with us. We really appreciate you Greg. Your time is extremely valuable. We know you’re doing really good on on all the fronts here. Really pleased that you’re at tabular editor doing great things over there as well. Your knowledge and experience is super fun to watch and interact with. We really appreciate your time today. That being said, if you like this Yeah, no problem. If you like this podcast and you want to become a member, you can watch all these episodes without any ads on YouTube if you’d like to. That’s in our subscribers area on
54:33 The YouTube channel. So, if you wanted to check that out there, you can always watch our podcast for free. We have some ads on there just to help us pay for the apps that we use to push this stuff out. We really don’t do much with this. But that being said, thank you so much. We hope you enjoyed your run, your walk, your biking, your exercise. Hopefully, we’ve heard a lot of feedback of people exercise while listening or your commute is going well. Tommy, where else can you find the podcast? You’ll find us on Apple, Spotify, or wherever you get your podcast. Make sure to subscribe and leave a rating. It helps us out a ton. You have a question, idea, or topic that you want us to talk
55:06 About in a future episode? Well, head over to PowerBI tipsodcast. Leave your name and a great question. And finally, join us live every Tuesday and Thursday, 7:30 a.m. Central, and join the conversation on all of Power Data Tips social media channels. Thanks, Greg. Thanks, everyone. We’ll see you next time. Thanks, guys. Let’s
Thank You
Want to catch us live? Join every Tuesday and Thursday at 7:30 AM Central on YouTube and LinkedIn.
Got a question? Head to powerbi.tips/empodcast and submit your topic ideas.
Listen on Spotify, Apple Podcasts, or wherever you get your podcasts.
