Let's be honest. People are messy. Organizations are incredibly dumb. Code can look like spaghetti. Given those facts, it's absolutely amazing that anything of significance (or even functioning) can be built by people from around the world that have never met. Yet here we are, almost five years into this Foundation product, today releasing Foundation for Sites 6.2.2. It's incredible to see over 12000 commits by 1000+ contributors. How in the world does this all work?
Given that we were not professional open source coders, the whole thing was a tad intimidating when we embarked on this journey in 2011. But we've learned a lot these past 5 years, and we're more excited than ever about the ways the community is contributing to Foundation's future. We've examined what's helped grow Foundation and narrowed it down to three things.
Here are the elements of success:
Have A Strong Opinion
This may sound counter intuitive, but the way you keep a vibrant open source project is by saying 'no' more than you say 'yes.' How can that be? Because strong opinions guide the growth of a project, attract like minded contributors and keep the quality level high. Foundation has always been more than a tool for us, it's a philosophy, a point of view. We have a clear mission here at ZURB, to change the way people design connected products and services, and Foundation is one the ways we're helping transform organizations.
Our vision for Foundation is not simply to create tools for implementation, but rather to create a shared language for designers and developers to communicate about what they are creating. This vision helps shape which contributions we accept and which we don't. As a product design company, we're constantly dreaming of new ways to push the limits of what the web can do, and we use Foundation day in and day out to make those dreams a reality.
This means we're always looking contributions that take the cutting edge and make it accessible and extensible. The details vary - maybe you have a great idea for packaging up the latest innovations in CSS, figuring out how to better incorporate the amazing progress in Javascript frameworks, or reworking a plugin to expand the range of possible applications. Whatever it is, we want to hear about it. Not sure where to start? You can always check out the Help Wanted tag in the Github issues.
Tools Matter Less Than Collaboration
As a technical product, we're selective about the tools and services we use to develop Foundation. The development process all flows through Git, a revision control tool that was created by Linus Torvalds, the creator of Linux, and specifically optimized for the problems that arise when managing a large software project with hundreds or thousands of contributors. Building on top of that, we use Github, giving us a web-based hub for our source code.
But the really important part is the collaboration these tools enable. Github helps us issue reports and have conversations that are rooted in the code. Slack and email help us have bigger conversations and involve the whole team. And the Foundation Forums put us in direct contact with users around the world. There's a misconception that software development is carried about by isolated nerds wearing headphones, eyes fixed on screens, and saying little to each other. The nerd part is true, granted, but development of something as big as Foundation is a very communication intensive endeavor and requires all kinds of interactions to be a success. While tools are important, it's the interactions that they foster that carry the most value.
Project Inspired (Not Project Managed)
Foundation has it's roots in our internal styleguide, and is used every single day in all of our client work. We absolutely depend on it, it has to work. You can imagine how hard it was for us to let go and open it up to the world. But you know what it? It made Foundation better! This is not to say we didn't have a few bumps in the road.
When we started opening up the Foundation development process more to the community, quite bluntly we had no idea how to update our processes to facilitate community development. We accepted pull requests on a rather haphazard basis, but mostly we continued to manage development and issue fixing mostly in-house. And you know what? Project managing sucks!
We realized that instead of project managing, we needed to share our goals with the community, provide a few guidelines, and let these brilliant developers run with it. We set up some contributing guidelines to get us all on the same page and christened a new team of superhero devs, the Yetinauts, to lead the way. We're proud to be able to say that our last 2 releases have been over 80% community driven.
Constantly Evolving
Five years into this, and Foundation remains the leader of the pack, advancing not just frameworks forward but the web as a whole. It was difficult to 'let it all hang out', but moving development out into the open was the best decision we could have made. With your help, we're upping the ante even further. You can start by talking in the Foundation Forum, dig into the Foundation for Sites outstanding issues, or get involved with Foundation for Emails 2. This is your chance to help change the future of the web.