In episode 2 of EnterpriseReady, Grant chats with Tom Preston-Werner about how the open source company he co-founded, GitHub, rose up to become an essential coding resource for developers everywhere.

[…]

As we approached all of the enterprise problems, we take it from that approach, we were learning what enterprises needed at the time. Like I said before, I hadn’t ever made software for enterprises. I had no idea what features they wanted.

[…]

That choice is one that everyone’s faced with which is, “Do we create a fork of our repository and build enterprise features there? Because we don’t need them in the SaaS products, so let’s not complicate the SaaS product with them. We’ll build those features in the enterprise model only, and then we’ll port all of the new stuff from the SaaS model into the enterprise codebase. Because Git can do that. It’s good at merging stuff.” So that’s what we did, we had a separate repository.

We forked off GitHub.com SaaS model repository, and new enterprise features went in there. We hired a person specifically to do this merge process, which was a thankless horrible task, and we did it for a while and it was just extremely slow. Merging is not amazing, ever. If you have conflicts it’s a nightmare. It’s a never-ending nightmare.