The Secret to NuGet’s Success. You!

comments edit

On a personal level, NuGet has been an immensely satisfying project to work on. I’ve always enjoyed working on open source projects with an active community in my spare time, but being able to do it as part of my day job is really fulfilling.

And I don’t think I’m alone in this as evidenced by this tweet from a co-worker, Matt Osborn who was contributing to NuGet on his own time from the early days.

Matthew M. Osborn (osbornm) on Twitter - Google
Chrome%20on%20Twitter%20-%20Google%20Chrome_376b3d07-f7e2-4ad7-8af3-3380d8a789c1.png "Matthew M. Osborn (osbornm) on Twitter - Google Chrome")

A big part of the satisfaction comes from being able to collaborate with members of the community, aka you, in a deeper manner than before, which includes accepting contributions.

If you go to the OSS community site, Ohloh.net, you can see a list of contributors to Nuget. As you might expect, the top five contributors are Microsofties who work on NuGet as part of their day job. But three of the top ten are external contributors from the community.

NuGet Contributors - Ohloh - Google
Chrome

It looks like 21 of the 36 contributors are external. Take these numbers with a slight grain of salt because we use a distributed version control system and it appears some developers are counted twice because they used a different email address on a different computer.

Note to those developers! Create an account on Ohloh.net and claim those check-ins! Ohloh will provide a merged view of your contributions.

Contributions come in all sizes.We’ve had folks come in and “scratch an itch” with single commits adding things like support for WiX or the .NET Micro Framework. Such commits form a key pillar of open source software as Linus Torvalds stated when discussing a Microsoft patch to Linux:

I agree that it’s driven by selfish reasons, but that’s how all open source code gets written! We all “scratch our own itches”.

While other contributions took a lot of work among multiple community members such as the work to fix Proxy issues within NuGet. We didn’t have the ability to test the wide range of proxy servers people had in the wild. Fortunately several folks in our forums worked on this and tested out daily builds till we got it working in Package Explorer. This will soon be rolled into NuGet proper. Thanks!

As with most open source projects, commits do not tell the full story of a community’s contributions to a project. In some cases, these folks were involved in a lot of design and verification work that ended up being perhaps one commit.

Our discussion boards are full of active participants telling us we’re doing it wrong, or doing it right, or what we need to do. And that’s great! The commitment of their time to help us shape a better project is greatly appreciated. Even those who come in and criticize the product are making a noteworthy contribution as they’ve taken the time to give us food for thought. As they say, indifference is worse than hate and we’ve found a lot of folks who are not indifferent.

Getting Results!

I think all this community contribution to NuGet is a big factor in the success of NuGet. With your help (and a few recent tweaks to their popularity algorithm), we’ve become the #1 most popular extension on the Visual Studio Extension Gallery website.

Visual Studio Gallery - Google
Chrome

If you enjoy using NuGet and have a moment, consider going to the site and rate NuGet.

Moving Forward

As well as I think NuGet is doing, I’m by no means satisfied. In fact, I’m probably one of the most critical people when it comes to where NuGet is today as compared to where I’d like NuGet to be.

My team is a very small team. If we’re going to make even more progress than we’ve had, we’re going to need to cultivate contributors, both drive-by and consistent. That seems to me like the best way to scale out our development.

If you have tips on how to do that best, do let me know! In the meanwhile, I’ll brainstorm some ideas on how we can encourage more people to participate in the development of NuGet.

Comments