### thom4.net/talks/2014/develop-bbc/
@@@
@@@
@@@
@@@
@@@
~~~~
Open Source can be seen as Wonderland when you are outside of it.
@@@
~~~~
But if you have had to do it for the first time, you would rather fear to expose bad code and to be seen as a failure.
@@@
## No *in between*…
@@@
~~~~
I will bring you inside the BBC fortress to give you essential keys to understand how to do Open Source in large organisations
![](../../img/avatar.jpg)
## *Thomas* Parisot
[thom4.net](https://thom4.net) –
[@thom4parisot](https://twitter.com/thom4parisot)
@@@
![Pardon my French](../../images/pardon-my-french.jpg)
@@@
![Full Stack JavaScript](../../images/javascript.png)
@@@
## BBC R&D
[github.com/bbcrd](https://github.com/bbcrd)
[bbc.co.uk/rd](http://bbc.co.uk/rd)
@@@
![I published](../../images/npm.png)
[npmjs.org/~thom4](https://npmjs.org/~thom4)
@@@
[![Sud Web](../../images/sudweb.png)](http://sudweb.fr)
# Open Source at the BBC
13rd November 2014 — [{ develop: BBC }](http://www.bbc.co.uk/academy/technology/events/article/art20141001095726612)
~~~~
Let's start by some story and some context.
This is a story about open sourcing a tool named peaks.js from BBC R&D.
This is a story about how and why we did it.
# What if I don't write *code*?
@@@
# Words
Typo, wording, clearer sentence or paragraph.
@@@
@@@
# Docs
Fix the pain of the next user.
@@@
@@@
@@@
# Bug reports
Tests are much appreciated!
@@@
# Improvements
Feature ideas, bug fix etc.
# Where to *start*?
@@@
# Find an *excuse*
@@@
@@@
# But for *audio*?
@@@
@@@
# … like *that*?
@@@
@@@
# We wanted to do it *well*
It was heavily awaited by editors.
… *Open Source*, please?
@@@
# “Okay…
## … you have *two months*”.
# *Clear* indicators
@@@
# *Time*
Two months — user study, tests, doc…
@@@
# Definition of *done*
Visualise audio archives and snip bits of them.
@@@
# *Risk*
Which technology between SVG and Canvas?
@@@
# *Metrics*
Innovative work, accountable deliverable, esteem++.
@@@
# *Exploratory* work
@@@
# Filling *paperwork*
Justified case for openness without business risk.
@@@
# Starting *closed* source
Done as it if would be open.
@@@
# *Canvas* favoured
SVG is nice but felt harder to build a UI with.
@@@
# waveform-data.js
Based on [Audacity](http://audacity.sourceforge.net/). Two for One deal.
# Ship it, ship it!
@@@
# `rm -rf .git`
No history in public.
@@@
# *README*.md
Solid API user documentation.
@@@
# *package*.json
*Self-contained* and *reusable* project.
Includes runtime and tooling dependencies.
@@@
# `npm test`
Ensures quality in IE9, Chrome and Firefox with [karma](http://karma-runner.github.io/),
[Travis CI](https://travis-ci.org/bbcrd/peaks.js) and [BrowserStack](https://www.browserstack.com/).
@@@
# `npm i peaks.js`
Install should be as easy as that.
@@@
# `npm publish`
# Now what?
@@@
# *Spread* the word
Blog about it, demo it to colleagues.
@@@
# *Maintenance* mode
Bug fixes, product related or quick features.
@@@
# That's it!
Unless if it is a strategic project.
# *Beyond*…
@@@
# First *circle* recommenders
Provide support to colleagues.
@@@
# *Key* features
Open issues, document the implementation.
@@@
# Finding *supporters*
Product owners in your team, in other teams.
@@@
# Sniffing *buyers*
Supportive demo, get notified of upcoming projects.
@@@
# Collecting *metrics*
Activity, usage, external products.
@@@
# Building a *momentum*
@@@
@@@
# Wrap up
@@@
# *Open* Source is…
@@@
# … *time* and effort
To maintain, to support and to care about.
@@@
# … a tool to *learn*
Only douchebags will blame you.
@@@
# … a *visibility* tool
To your team. To other teams and organisations.
@@@
# … a *culture* change tool
People may like it or dislike it.
@@@
# … a *leadership* tool
Get trusted. By your team. By the community.
@@@
# … a *continuity* tool
Open Source on top of Open Source.