Share and Enjoy !

Find this Podcast “Ledger – An Open-Source SharePoint Inventory Tool” on the ThreeWill Soundcloud, Stitcher, and iTunes.


Danny Ryan:Hello and welcome to the ThreeWill podcast. This is your host Danny Ryan and today I have a group of people here with me. I’ve got four people in the room and I’m pretty excited about doing this podcast. I have two interns and someone else from ThreeWill and myself and we’re going to talk today about something that they worked on this summer. It’s called Ledger. We’ll get a little bit more into what exactly that is. I’m going to have them do a quick intro. What your name is and what your role is, and anything else you want to say. You don’t have to say anything else if you don’t want to.


Will Holland:Hi, my name’s William Holland and I’ve been here at ThreeWill. I’m a software engineer and I love Danny.


Danny Ryan:Thank you Will. That was so nice. You love being this close to me, right?


Will Holland:Yeah.


Danny Ryan:I noticed how as soon as you talk into the mic you back away a little bit. It’s all right, I’m not going to hold your hand dude. Okay, up next. You can step right up to the mic.



Luke Perrin:


Hello, I’m Luke Perrin. I’m an intern for the summer. I go to Southern Polytechnic State University.


Danny Ryan:Excellent.


Luke Perrin:Or as it is now called Kennesaw University.


Danny Ryan:Kennesaw University, welcome. Excellent, and finally.



Jared Daniel:


Hi, I’m Jared Daniel. Intern here, I’m from Georgia Tech and I actually love Danny even more than Will.


Danny Ryan:Another Georgia techer here.


Luke Perrin:I didn’t know this was about to turn into a love triangle.


Danny Ryan:This is a love triangle. All right, we got Georgia Tech represented in the room. That’s very nice. Awesome. Thank you guys for taking the time to do this. You’re wrapping up your internship here within the next couple weeks, is that correct?


Jared Daniel:Yeah, that’s right. This week actually.


Danny Ryan:This week and you’re out of here. Is that why you guys are so happy today? It’s like, it’s your last week, yeah.


Will Holland:They were really excited to do a podcast.


Danny Ryan:All right. Why don’t we get this kicked off and Will, I’ll direct these to you initially and you guys feel free to jump in if you’d like to. Ledger, where did this thing come from? Give me the backstory on what Ledger is?


Will Holland:Yeah, ledger is a SharePoint inventory tool. A way for you to take a look at all of the different site collections you have in your Microsoft 365 tenant or your on-premise farm.


Danny Ryan:Okay.


Will Holland:You can get some data points, like how much data a particular site collection has, how many list items, who owns it, those sort of things.


Danny Ryan:Nice.


Will Holland:The idea came from a previous project we were on, we were doing a large scale migration and we sort of developed a similar process for inventorying these things.


Danny Ryan:Okay.


Will Holland:It was sort of done in a hastily way.


Danny Ryan:Okay.


Will Holland:We wanted to refine that process a little bit and make it reusable, something that we could potentially give to future clients.


Danny Ryan:Okay.


Will Holland:To help them with doing some migration analysis or just wanted to keep tabs on things in their farm. In the end we decided to actually make it open source, so this is now on GitHub,, it’s called Ledger on there. Check it out, contribute, we’d be happy to have that.


Danny Ryan:How does somebody get started with this? Walk me through that process, somebody might be interested in doing an inventory and do they go to the GitHub site to get started?


Will Holland:Yep, for now you go to GitHub and download the source code. Unfortunately we don’t have a packaged exe right now.


Danny Ryan:Okay.


Will Holland:You’d have to download the source code and compile it, we will be fixing that hopefully sometime in the near future but there’s two components to it right. For the on-premise version you have to run a one executable that’ll go through and actually build the list of all the site collection URLs.


Danny Ryan:Okay.


Will Holland:Then there’s a second component which can be run from anywhere that will go through and get all the various data points.


Danny Ryan:You would run that first exe if you had an on-premise?


Will Holland:Mmhmm (affirmative).


Danny Ryan:Okay. But then if you were on Microsoft 365 completely …


Will Holland:Then it’s just the second part.


Danny Ryan:Then it’s just that second part.


Will Holland:Correct.


Danny Ryan:That second part, what do you run? Is it like a command line utility? What are you running?


Will Holland:Right now, it’s just an executable.


Danny Ryan:It’s still an executable that’s run against Microsoft 365.


Will Holland:Yeah. Correct, you would download it in any laptop, Windows laptop I should say.


Danny Ryan:Okay.


Will Holland:You would run it from there and as long as you have access to SharePoint online you can get any of that data.


Danny Ryan:So there’s two executable’s that we’re talking about?


Will Holland:Mmhmm (affirmative).


Danny Ryan:Okay. Then the executable you’re supplying to it some credentials to go and do the inventory?


Will Holland:Yeah. Jared actually programmed the bit of the interface, I’ll let him speak to everything that goes into it. But yeah, user name and password definitely part of it.


Danny Ryan:I’m using this for the first time and what’s the easier one to go after, the on-premise or the Microsoft 365?


Will Holland:On-premise.


Danny Ryan:The on-premise. I’m using the on-premise version of this. This is not going to be a tough question. I’m using that, what am I’m supplying to it, some credentials? What am I doing?


Jared Daniel:Yeah, you’re going to need an account that has access to all of your SharePoint sites.


Danny Ryan:Okay.


Jared Daniel:As long as you have that, user name, password is all you need to put in and then those are the only two perimeters, you run it from there.


Danny Ryan:Okay. Then that starts going out, inventorying and then writing it to a list or what is that doing when it does that inventory with the on-premise one?


Jared Daniel:It goes to a SharePoint list.


Danny Ryan:Okay.


Jared Daniel:You would have a SharePoint site setup and it would generate the list for you. You don’t have to create the lists in all the different fields, it will do all that for you.


Danny Ryan:Okay.


Jared Daniel:Then populate it with all your data you get from your sites.


Danny Ryan:Then you run that and then you’ve got some custom list that’s populated with a bunch of information about your site collections?


Jared Daniel:Yeah, that’s right.


Danny Ryan:Okay. That’s the on-premise version. Is the Microsoft 365 version doing something different? How is that doing … I’m a little confused still about the difference between the two?


Will Holland:Sure, it’s easy to be confused. Right now the only functioning part we have is for the on-premise version. That’s what these guys have been working on all summer.


Danny Ryan:Okay.


Will Holland:The only difference between the on-premise version and the future, I’m using air quotes there.


Danny Ryan:Okay.


Will Holland:The future online version is just the removal of the on-premise part.


Danny Ryan:Okay.


Will Holland:On-premise versus SharePoint online, you have to have that server component to get the actual URLs for every site collection. SharePoint online is much easier.


Danny Ryan:Okay.


Will Holland:It just hasn’t actually been coded yet.


Danny Ryan:Okay. It’s something that eventually it’s going to be one executable that you’re using or will there always be two?


Will Holland:There would always have to be two.


Danny Ryan:There will always have to be two, okay. I’m using the online version, am I still supplying credentials to that and it goes and does the same thing or?


Will Holland:The only difference would be you would have to give it a URL.


Danny Ryan:Okay. I point it to a specific URL and it goes out?


Will Holland:Yeah, you would have to point it to your SharePoint tenant.


Danny Ryan:Okay, excellent. Let me get why somebody would want to download this. They want to get an idea of what’s in a specific … This is multiple sites? It can crawl multiple site collections, is that correct?


Will Holland:That is correct.


Danny Ryan:Okay, then you’re going out and give me some examples of some of the … You mentioned some of them a little bit earlier, but maybe a little bit more details about, does it do things like take a look at what’s been customized, does it look at workflows, what sort of information is in the inventory itself?


Will Holland:There is quite a bit of information. A few that I mentioned earlier, list items and guys, jump in if I’m missing anything. There’s list items, the number of lists, document libraries, which kind of go into that one total. It will tell you how many workflows there are.


Danny Ryan:Okay.


Will Holland:The customization that was featured that we had in our previous project, something that we tried to get these guys to go after, it ended up being a little more complicated then we had time for. Didn’t we get the custom solution stuff in?


Jared Daniel:Yes, we got that in.


Will Holland:Like I said, it will detect if you have a custom farm solution.


Danny Ryan:Okay.


Will Holland:On a site collection. What else is there guys?


Luke Perrin:In place information management. I remember it does have that. Let me think what else.


Will Holland:You work on the taxonomy stuff right?


Luke Perrin:Yeah, global taxonomies, taxonomy that’s shared between different site collections. It tells you if it has any of those so that you’ll know for migration purposes if you need to copy that. It also tells basically if you have taxonomy terms that are only for that one site.


Danny Ryan:Okay. Lot’s of great information. They would use this in order to determine about upgrading to SharePoint 2016 or moving to Microsoft 365, right? That’s what they’re going to be using this information for.


Will Holland:Yes, that’s the primary business case that we have for right now.


Danny Ryan:Okay.


Will Holland:You’re looking to do a migration and you want to get a sense for what you have out there. Help you kind of determine how long it’s going to take, how much money it might costs.


Danny Ryan:Nice.


Will Holland:Something like that.


Danny Ryan:We put it out on GitHub just so that the world, the community can go use this, if somebody sees something they want to add to it they can go add to it, all that good stuff that comes from open source, correct?


Will Holland:Yep, it was something that we had a great experience learning from on that previous project. We thought it was a useful tool and we thought it was something that we would definitely use again in the future and as sort of a way to share that knowledge that we gained from that project with the SharePoint community we wanted to go ahead and put it on GitHub.


Danny Ryan:Nice. You guys will probably be keeping an eye on contributors, seeing who’s actually using this once it takes off and goes viral, right?


Will Holland:Yep, that’s absolutely right. That’s on my to do list every day, check for new contributors.


Danny Ryan:This is the first time … Well there was one other thing I thought I saw in our GitHub, it was one of the internal meetings that we had that we were doing on Friday’s …


Will Holland:Yeah, we had a hack-a-thon and we were using GitHub for that. That’s usually kind of been the limited use of GitHub for us. Internally is just for little fun projects that we’ll do sometimes. We use more private source control for clients and we don’t have a private GitHub account, so everything we do on there is public.


Danny Ryan:Nice. Congratulations guys. How does it feel to put something out there? The world can see all your code. I don’t know if the world wants to see when I was coding. I didn’t want the world to see my code. Does that make you guys a little nervous?


Luke Perrin:Will wanted me to clean out my code, I tried.


Danny Ryan:Excellent, yeah.


Jared Daniel:There’s no saving my code. Being humble.


Danny Ryan:Yep. It’s nice to have something out there. I look forward to seeing how much it’s used on upcoming projects for us. It will be interesting to see if other, I guess other consulting companies can use this as well to sort of get inventories of stuff and hopefully we’ll get some contributors from them and then probably larger enterprises who want to use this as well. Are there other tools out there to do similar things than this? Did you look into that at all?


Will Holland:Yeah, there is a well known tool that we learned about or I learned about on that previous project called CASAHL.


Danny Ryan:Okay.


Will Holland:It’s a very heavy weight licensed product that does everything that we were trying to do and a whole lot more. But again it’s not a free product like what we put on GitHub.


Danny Ryan:This is more of a light weight version of what that does?


Will Holland:CASAHL from my understanding has a lot of reporting capabilities. Will tell you that this is a very complex site, this is a very easy site to migrate. Our tool kind of says, here’s all the data points.


Danny Ryan:Got you.


Will Holland:You can kind of formulate your own opinions from that but again it’s free.


Danny Ryan:If it’s in a custom list, I’m sort of playing this through, somebody can take that data and pull it into an Excel spreadsheet or do different things that everybody can do within a custom list in SharePoint.


Will Holland:Yeah, once it gets into a custom list, you have the full power of SharePoint behind it so you can do all sorts of crazy stuff with it, put it in a workflow, export to Excel, all sorts of stuff.


Danny Ryan:Excellent, great. I appreciate the overview there. Guys, what were some of the things, anything that you picked up learning-wise from being on this project? You did learn something this summer, correct?


Jared Daniel:I honestly hadn’t been exposed to SharePoint at all before this.


Danny Ryan:Okay.


Jared Daniel:It was pretty cool to see a tool that a lot of businesses use on their backend.


Danny Ryan:Mmhmm (affirmative).


Jared Daniel:It’s honestly a lot more complicated then I thought it would be but that’s what this summer was for, it was for learning all about that.


Danny Ryan:Yeah, excellent. It was getting some new exposure to SharePoint. There’s not going to be like at Georgia Tech you’re not going to have any classes where you’re learning about the SharePoint object model.


Jared Daniel:I don’t think so.


Danny Ryan:CSOM and all that wonderful stuff. You get to look forward to that in your career after you’re done at Tech, you get to deal with some of the kludge stuff, right?


Jared Daniel:Yeah.


Danny Ryan:Well good. Some good exposure for you to get, that’s excellent. What about over there.


Luke Perrin:I’m in the same boat as Jared. When I started I had no idea what SharePoint was at all. Having to learn how to code for SharePoint on top of having to code for the first time in about four semesters was rather entertaining.


Danny Ryan:Good. Did you pick anything up? You were running, were you using Scrum to develop this at all?


Luke Perrin:A little bit.


Danny Ryan:Yeah a little bit. A touch, you were using the S and the C part of Scrum.


Luke Perrin:We did a few sprint plannings and stand ups.


Danny Ryan:That’s good. Did you have daily stand ups?


Luke Perrin:For the first while, yeah. Then things changed.


Danny Ryan:Then life occurred.


Luke Perrin:I’m a terrible Scrum master, what can I say?


Danny Ryan:No, here it comes out. That’s been fully documented now. O’well for posterity to see. Let me ask you guys, for the interns was this your first experience with using an Agile process like Scrum or you pick that up in school, what’s your experience?


Jared Daniel:Yeah, this was the first experience for me.


Danny Ryan:Okay.


Jared Daniel:There were a few meetings we had about explaining the process. It took me awhile to figure out why it was even helpful but I can see how that’s a lot better than the waterfall approach.


Danny Ryan:Got you. Excellent.


Luke Perrin:Same boat again. Throughout school they kind of shoved the waterfall method down our throat and I actually like this a lot better. It flows a bit easier and is a bit more useful.


Danny Ryan:Mmhmm (affirmative). I think one way of looking at Agile and Scrum is you’re doing a lot of really short waterfalls. It’s quicker feedback on the whole cycle which is always a good thing to get. Good for you guys to get some exposure. This is the last week, huh? What was one of your favorite things about the internship besides the Three Musketeer bars and the free coffee, was there anything that you really liked about the internship?


Jared Daniel:Shout out to Will for coaching us through all this and putting up with our dumb questions.


Danny Ryan:Nice.


Jared Daniel:I would probably be sitting at the beginning of this project still if it weren’t for him helping me out with it.


Danny Ryan:Nice. Very good. You can shout out to me if you want to?


Will Holland:Luke, I know there’s a shout out to Danny.


Luke Perrin:Probably to everyone in general that works at ThreeWill, because between everything I’ve been having to do this summer for the internship I’ve learned a lot and definitely Will for putting up with the questions and Jared for putting up with my terrible code.


Danny Ryan:Now the whole world can see, that’s excellent. We appreciate everything you guys did this summer. Thank you so much. Thank you for putting up with me today on doing this. Hopefully this was not too painful and you can share this if you want to with friends and family or you can never share and hope it just goes and nobody ever listens to this. Who knows? I appreciate you guys taking the time to do this. Thanks for all your hard work. Thank you Will for leading up the inters this summer. That was very cool for you to step up there.


Will Holland:Thanks to them for making it easy.


Danny Ryan:What was that like?


Will Holland:It was my first experience doing anything of the sort and looking forward to hopefully doing it again.


Danny Ryan:Awesome. Thank you, I appreciate you guys chiming in on this podcast and thank you everybody for listening and have a wonderful day. Take care. Bye-Bye.



Share and Enjoy !

Related Content: