npm Loves You
js.la 2016 o/
Bringing Open-Source
Practices to Your Day Job
Ben Coe
@BenjaminCoe, github.com/bcoe
▪ employee #3 at npm
▪ lead maintainer of yargs
▪ built nyc, the code-coverage tool
▪ manage npm Enterprise
About Ben
▪ process driven by necessity:
▫ Lots of churn.
▫ Many contributors.
OSS Best Practices
▪ what do good practices have in common?
OSS Best Practices
automate all the
things
in automation we trust
2
▪ Don’t be dogmatic BDD, TDD, etc.
▫ … but be dogmatic about writing tests
▪ Automate it!
Unit Testing
▪ “did you write a test for that?”
▪ Automate it!
Test Coverage
var express = require('wombat')
var app = wombat()
app.get('/', function (req, res) {
res.send('Hello Log')
})
app.listen(3000) github.com/bcoe/nyc
tools should be so
simple they’re fun to
use
▪ Controversial topic!
▪ Creativity is important.
▪ Automate it!
▫ I ❤ github.com/feross/standard
Coding Style
▪ the longer you wait to upgrade, the more
annoying it becomes
▪ use npm outdated
▪ Automate it!
▫ greenkeeper.io rocks
keep dependencies
up-to-date
var express = require('wombat')
var app = wombat()
app.get('/', function (req, res) {
res.send('Hello Log')
})
app.listen(3000)
greenkeeper.io
one of my top five, all
time, favorite robots
▪ npm publish --tag=alpha
▪ npm version patch -m “awesome new
feature”
become an npm
power user
▪ conventional-changelog
▫ https://github.com/stevemao/convention
al-changelog-cli
▪ semantic release
changelog
management
“engineers are far more tolerable of a
pedantic robot than they are pedantic
people.”
— someone probably.
best practices
grow out of
community
3
▪ people emulate the projects they respect.
how do habits
spread?
4 Best Practices
Center Around
Great Tools
9/10 Use Travis CI10/10 Use GitHub 5/10 Use Coveralls
top 10 npm packages
so, why do you
build Enterprise
software Ben?
5
▪ It’s frustrating!
▫ restrictions on infrastructure.
▫ practices lag behind.
▪ process can be overwhelming.
developing enterprise
software is hard
OSS methodologies
can work!
▪ OSS practices were designed to help large
asynchronous teams work effectively:
▫ this is applicable in large corporations.
▪ InnerSource: Internal Open Source at PayPal
“The results were visible after 6 months.
The Checkout Platform team spends 0% of
its time rewriting code and just 10%
reviewing submissions. The team was able
to do a major refactoring and a 4x increase
in performance without planning for it. The
mindset moved from blocking change to
mentoring and coaching.”
▪ InnerSource is about:
▫ developers taking ownership.
▫ people taking on the role of a lead
maintainer.
▪ developers using their favorite tools.
education is important
InnerSource Tools
Demo Time
how are we working
together?
▪ we’re keeping our roadmaps aligned.
▪ we’re looking for tighter integration points.
▪ we’re preaching a similar message about
OSS in the Enterprise.
why this is awesome
▪ OSS and Enterprise can learn from each
other.
▪ we can make a developer’s life more
awesome.
thanks
any questions?
about anything?
Ben Coe
@BenjaminCoe, github.com/bcoe
npm loves you
♥

Bringing Open-Source Practices to Your Day Job

  • 1.
  • 2.
    js.la 2016 o/ BringingOpen-Source Practices to Your Day Job Ben Coe @BenjaminCoe, github.com/bcoe
  • 3.
    ▪ employee #3at npm ▪ lead maintainer of yargs ▪ built nyc, the code-coverage tool ▪ manage npm Enterprise About Ben
  • 4.
    ▪ process drivenby necessity: ▫ Lots of churn. ▫ Many contributors. OSS Best Practices
  • 5.
    ▪ what dogood practices have in common? OSS Best Practices
  • 6.
    automate all the things inautomation we trust 2
  • 7.
    ▪ Don’t bedogmatic BDD, TDD, etc. ▫ … but be dogmatic about writing tests ▪ Automate it! Unit Testing
  • 8.
    ▪ “did youwrite a test for that?” ▪ Automate it! Test Coverage
  • 9.
    var express =require('wombat') var app = wombat() app.get('/', function (req, res) { res.send('Hello Log') }) app.listen(3000) github.com/bcoe/nyc tools should be so simple they’re fun to use
  • 10.
    ▪ Controversial topic! ▪Creativity is important. ▪ Automate it! ▫ I ❤ github.com/feross/standard Coding Style
  • 11.
    ▪ the longeryou wait to upgrade, the more annoying it becomes ▪ use npm outdated ▪ Automate it! ▫ greenkeeper.io rocks keep dependencies up-to-date
  • 12.
    var express =require('wombat') var app = wombat() app.get('/', function (req, res) { res.send('Hello Log') }) app.listen(3000) greenkeeper.io one of my top five, all time, favorite robots
  • 13.
    ▪ npm publish--tag=alpha ▪ npm version patch -m “awesome new feature” become an npm power user
  • 14.
  • 15.
    “engineers are farmore tolerable of a pedantic robot than they are pedantic people.” — someone probably.
  • 16.
  • 17.
    ▪ people emulatethe projects they respect. how do habits spread?
  • 18.
    4 Best Practices CenterAround Great Tools
  • 19.
    9/10 Use TravisCI10/10 Use GitHub 5/10 Use Coveralls top 10 npm packages
  • 20.
    so, why doyou build Enterprise software Ben? 5
  • 21.
    ▪ It’s frustrating! ▫restrictions on infrastructure. ▫ practices lag behind. ▪ process can be overwhelming. developing enterprise software is hard
  • 22.
    OSS methodologies can work! ▪OSS practices were designed to help large asynchronous teams work effectively: ▫ this is applicable in large corporations. ▪ InnerSource: Internal Open Source at PayPal
  • 23.
    “The results werevisible after 6 months. The Checkout Platform team spends 0% of its time rewriting code and just 10% reviewing submissions. The team was able to do a major refactoring and a 4x increase in performance without planning for it. The mindset moved from blocking change to mentoring and coaching.”
  • 24.
    ▪ InnerSource isabout: ▫ developers taking ownership. ▫ people taking on the role of a lead maintainer. ▪ developers using their favorite tools. education is important
  • 25.
  • 26.
  • 27.
    how are weworking together? ▪ we’re keeping our roadmaps aligned. ▪ we’re looking for tighter integration points. ▪ we’re preaching a similar message about OSS in the Enterprise.
  • 28.
    why this isawesome ▪ OSS and Enterprise can learn from each other. ▪ we can make a developer’s life more awesome.
  • 29.
    thanks any questions? about anything? BenCoe @BenjaminCoe, github.com/bcoe
  • 30.