Yesterday, we announced that we open-sourced a bunch of our SQL Server tools.
I say “yesterday,” but I’m writing this weeks in advance because a lot of thought and planning went into this. Here, I’m going to give you the behind-the-scenes story as a small business guy.
sp-Blitz and friends were successful.
About five years ago, I launched sp_Blitz onstage at the PASS Summit. I wanted to really blow the attendees’ minds by giving them a tool that would make their lives way easier. It worked – that session was voted #2 of the Summit overall.
That script inspired more scripts: sp_BlitzCache, sp_BlitzIndex, sp_BlitzRS, sp_BlitzTrace, and sp_AskBrent. Each script shared a common goal – let’s automate something difficult and make it beginner-friendly.
By all accounts, they were kick-ass successes. Tens of thousands of people per month downloaded the scripts. I got so many personal thank-yous from DBAs, developers, managers, ISV support engineers, and consultants who said these scripts helped them make a better living.
Along the way, we considered open sourcing them.
We’d always accepted community contributions, and the sp_Blitz changelog shows how folks helped us make it better. To make contributions easier, Jeremiah, Kendra, and I tried moving them to Github.
The first problem we ran into was people distributing old versions. They would upload ’em to Github or their web site, and those old versions were gaining SEO and getting downloaded by people who didn’t know better.
The next problem: consultants and software vendors taking our code, commenting out our names, and then distributing our code as their own. That one really made our blood boil, and we’d be damned if we’d make their jobs easier by open-sourcing it. (This happened twice again last month – it blows me away every time it happens.)
This year, three things made me go for it.
Microsoft embraced open source – no, really embraced, not embrace-extend-extinguish. Call me a sucker, but I believe Microsoft is a different company today than it was several years ago. I believe they’re changing towards an attitude of open-by-default, and I think they’re not just looking for token things to open source – they’re getting creative and pushing for more and more things to be opened up. Not cheap stuff, either, but things that take real money to open source. As a Microsoft community member and a Microsoft MVP, I want to follow that example.
DBAs started to embraced code and devops. I talked to our training class students and clients about what open source would look like, and some of them got really excited. For example, one client uses automated builds up in AWS, and they already fetch certain tools from Github. Putting our own stuff in Github means they can stay up to date faster, and even implement fixes faster.
I’m tired of fighting the inevitable jerks – as long as the tools are open T-SQL scripts, jerks are going to copy them, edit out the copyright, and claim the work as their own. Compiled applications have a better shot at this kind of thing, but stuff like T-SQL and PowerShell have a tough time at it. I’d rather spend my time empowering users.
The PASS speaker contract went sideways – Scott Currie explains the craziness. Right now, we can’t even mention VMware, Hyper-V, ZoomIt, Amazon Web Services, MySQL, or almost anything else onstage. I hope for the community’s sake that PASS Board hears the attendees’ voices (rather than just the sponsors), but for now the only way to talk about community tools is to make them open source and downloadable without giving an email address.
There are still drawbacks and risks: it’s going to mean less traffic on BrentOzar.com, for starters. We’re going to have to build new tools and create new value for the community in order to keep up our inbound marketing efforts.
It also means more work. Yes, open source is harder than keeping your light under a bushel.
The open-source work required wasn’t easy, but it was fun.
Before we could even announce it, we had to:
- Pick a license – we went with MIT to be as simple as possible
- Clean up our Github repo
- Migrate documentation pages from BrentOzar.com to Github (and eventually, we’ll move the syntax stuff over to StackOverflow’s new documentation product
- Migrate feature requests and tickets from Uservoice over to Github
- Change BrentOzar.com’s download & subscription pages
Now that it’s gone live, if we want this thing to succeed, we have to:
- Welcome new developers with friendly language, easy tasks to accomplish, and clear standards
- Help coordinate work between developers, testers, and documenters – a big part of these scripts is the more-details URL, and we don’t want to release code that doesn’t explain warnings to DBAs
- Rename sp_AskBrent (that name doesn’t seem right for an open source script)
- Build a roadmap – which sounds funny, but we’ve been doing reactive development on these for the last couple of years, and it’s time to have a vision so people can help drive it in the right direction (and not turn it into SQL Server Trivial Pursuit Warnings)
It’s already been fun seeing the forks, watching the traffic, and approving our first pull request. (Thanks, Nick Schonning!)