Running Around Naked

How open development helps us be better programmers

Open Data Institute Tech Team ยท @ukoditech

The Open Data Institute

  • launched October 2012
  • non-profit
  • funded by
    • UK Government
    • matched by others
  • dedicated to Open Data
    • increasing supply
    • increasing demand
    • education and training

Open Culture

ODI Tech Team

  • started January 2013
  • mixture of skills
    • data science
    • statistics
    • public data
    • devops
    • engineering
  • building tools for open data
  • showing best practice
  • open culture in code

Open By Default

  • encourage public engagement
  • plan in the open
  • comments, forks, contributions
There are more good ideas in the world than there are in the ODI

Borrow Mercilessly

  • We will build on other's work
  • Avoid reinvention
  • Focus efforts into new areas
  • Contribute back
  • Show appreciation for what others have done

Experiment and Learn

  • Try new tools and ways of working
  • Reflect continuously on what works
  • Adapt to suit, or move on
  • Continuous improvement

Share Everything

  • Document and discuss experiences
  • Create reusable components
    • Eat your own dogfood
  • Share learning to help others

Be Ourselves

  • We are all individuals
  • We work as a team and in a community because we have common purpose
  • Express individual opinions, considerately.


  • Agile Approach
  • Open Tools
  • Open Communication
  • Open Collaboration

Open Tools

Git and GitHub

How did anybody ever do anything before GitHub?


  • Distributed version control
  • Extremely cheap branching
  • Extremely good merging


  • Git hosting
  • Issue tracking
  • Wikis for documentation

Pull Requests

Fork (or branch) and Pull

How GitHub Uses GitHub to Build GitHub

I've added something to your code, and I want you to merge it upstream.


  • Clone the repository
  • Create a branch
  • Write some code (with tests!)
  • Publish branch
  • Open a pull request back to master

Behaviour-Driven Development

  • Natural-language behaviour definition
  • Written with stakeholders
  • Clearly expresses desired behaviour


All watched over by machines of loving grace
Richard Brautigan

Continuous Deployment

Master Builder

  • Written using the Jenkins Job DSL
  • Monitors all branches of all our projects
  • Creates all the Jenkins jobs
  • Tags selected branches
  • Also does:
    • Coverage
    • Documentation
    • Github status
    • Notifications

Treat your servers as cattle, not as pets

No more snowflakes!


  • Infrastructure == code
  • Continuous deployment
  • Deploys latest release
  • Holds the keys!
  • Code live in 10 minutes
  • No human intervention
  • cucumber-chef

Code Maintenance


Open Communication


  • Regular blog schedule
  • Tech team weeknotes #theodi


Open Collaboration

Working In The Open

  • stops us cutting corners
  • catches more mistakes
  • gives better results
  • helps us find collaborators
  • gives something back
  • is fun!
... being Open By Default is exhilarating. But I suspect that streaking at a cricket match is exhilarating, too. And sometimes it does feel like we're running around naked...
Sam Pikesley -
Stuart Harrison Sam Pikesley James Smith Jeni Tennison

Open Data Institute Tech Team
@ukoditech #theodi


ODI Creative Commons