Community Coding

I wanted to share how my recent experience in community coding helped me improve what I was doing internally. At Agile IT, we’ve been making big investments in building PowerShell scripts, Azure DevOPS processes, and improving our automation processes to make our service delivery even more awesome. In doing so, we’ve been leveraging many components that are freely available via GitHub.

Recently, we created a script that allows for quick discovery of all Active Directory, Azure Active Directory groups (in this case we were looking for Office 365 groups), and Microsoft Teams (it’s a cool new project and service, but we’ll talk about that another time (or just call us)). We wanted the export of all this information into a spreadsheet, but the only option we had was to put it into CSV and then merging that together later when we have another script running where Excel is installed. It’s huge pain and while there are many workarounds, there were none we liked (nor anyone else).

By the power of Google and GitHub, we found a cool module called, “ImportExcel”, which is a project led by Doug Finke (Thanks Doug!). It does everything we need and way more. And you DON’T need to have Excel installed locally to use it. The project is managed within GitHub and provides lots of great examples, but none that fit what we wanted to do. However, with some playing around, we were able to get it to work.

The results worked great and we “thought” we were done.

To “give back”, I decided to take what we learned and make an example. Using GitHub, I was able to perform a “Pull request” which allows me to add a piece of my code into a branch with comments and await approval. I thought I was done, and it was awesome. However, that wasn’t the case.

Within an hour, Doug provided a comment back and telling me “thank you”, but I had some code in there that wasn’t required. “Say what?”

After taking his comments and refactoring a few things, the code went down in size and it removed the need or some variables I was using. Afterwards, I updated the code in GitHub and it was later accepted and merged into the production branch.

First off, I was super pumped that I was able to contribute to something I found very useful. But then I went back and updated our own PowerShell script that was using it. Not only was it cleaner now, but also ran faster!

Thus, contributing to the community code that I was leveraging wasn’t just a good feeling, it made my work better.

At Agile IT, we’re looking how we can contribute more to what we’re using internally, but also looking at our upcoming release of a new PowerShell product and how we can combine that with public community coding.