The BBC Responsive codebase has developed many robust tools and libraries that could easily be reused, extended and improved upon within the developer community. The codebase has matured from a prototypal project into a fully fledged solution to making BBC News a responsive site. However, all that great work that could be shared is currently locked away in private repos on Github. Briefly we'll cover both the Pros and Cons of Open Sourcing our code.
- Collaboration from the community to produce the best tools and libraries we can
- Heighten the profile of the BBC as a leading edge, innovative, and creative organisation
- Generate useful feedback from developer community
- Good advert for potential developers considering working for us
- Reignites developer passion in what we're building / producing.
- Exposes the BBC as leaders in the responsive web development field
- Better tested solutions
- Easily point industry experts to code where we'd like feedback. Instead of creating long-winded gists or bins.
- Managing support, communication, and collaboration overhead. This could turn into a time-consuming process. Or it becomes something we incorporate into the job i.e. the best developer to review a Pull Request or feedback is assigned as part of their weekly workload.
- Opens code up to public scrutiny
- Developers submitting code need to adhere to the same standards we currently have in place
- Integrating Pull Requests
- Introduction of bugs from externally contributed code. Largely mitigated by stringent testing!
- Security implications
A repo should be open-sourced when it is identified as useful and reusable outside of the BBC. It shouldn't expose the inner workings of the BBC platform such as Frameworks or the PAL.
We may have to create quite specific rules for collaboration to ensure other developers strive for the same standards the Responsive team do. For instance, a Pull Request must include: unit tests, documentation, integration tests, etc
Would making the repos public but denying public contribution render its openness of no real value?
@jclevely @murrayrowan @manjitr What do you think?