open source 
product management 
with npm 
@othiym23 / Forrest L Norvell 
npm, Inc.
npm
npm is many things 
• project 
• company 
• team 
• philosophy & ethos 
• product family
npm is many 
softwares 
• registry 
• website 
• CLI
the CLI team
me
npm CLI team duties 
• meet npm, Inc.’s business 
objectives 
• fix bugs 
• support current npm users 
• keep npm moving forward
make npm the most useful 
tool it can be for the most 
people
“useful”
pragmatism > 
rigor
simplicity > 
completeness
problems > 
solutions
($ > !$)
• 356 support tickets 
• 222 bugs 
• 236 feature requests
traditional product 
management 
• own the roadmap 
• sell the strategic vision 
• mediate between business 
owners, developers, & other 
stakeholders
say no a lot, but 
be stubborn about 
what you say yes to
open-source product 
management 
• balance competing demands 
• consensus-seeking 
• but sometimes you have to say 
no
example: making 
npm more 
extensible
1. lifecycle
2. ADD M0AR 
HO0KZ
3. yay!
nope
(2. add more 
commands, like 
git)
npm is not an 
infinitely extensible 
miracle pegacorn
turn the problem 
inside out
npm as a set of 
APIs plugged into 
a CLI
LET A THOUSAND 
PACKAGE MANAGERS 
BLOOM
CAVEATS
• looked at a lot of different 
requests 
• came up with a global solution 
for many local problems 
• try to keep each goal 
supporting the others
npm’s roadmap 
• scoped packages 
• multi-stage install / dependency 
tree realization 
• npm as API 
• better Windows support 
• client-side development support
you
the npm release 
process 
• new release every Thursday 
• new releases published to 
npm@next for about a week of 
burn-in 
• `npm@latest` for safe production 
release, `npm@next` if you want 
to help test the next release
supporting npm 
• the CLI team doesn’t have much 
time for support 
• `npm report` will make 
crowdsourcing that easier, but 
it’s a ways out 
• answering questions with the 
`support` label is ❤️ by me
using the npm issue 
tracker: labels 
1. bug, support, feature request 
2. next-patch, next-minor, next-major 
3. documentation, patch-welcome, 
and novice
using the npm issue 
tracker: best practices 
• don’t add your bug to a closed issue 
• …but please do add specific details 
that helped you 
• no such thing as too much 
information, but gists are useful 
• use cases are useful, +1s are 
terrible
PATCHES WELCOME 
• pull requests with tests are 
landed as quickly as 
practicable 
• no patch is too small 
• …but some patches are too big
developing npm 
• `npm test` while developing 
• `npm run test-all` before 
submitting PR 
• update the docs, plz 
• people who add tests are my 
favorite people
thanks for listening / 
thanks for helping / 
thanks for being you
nice people 
matter

open source product management (feat. npm)

  • 1.
    open source productmanagement with npm @othiym23 / Forrest L Norvell npm, Inc.
  • 2.
  • 3.
    npm is manythings • project • company • team • philosophy & ethos • product family
  • 4.
    npm is many softwares • registry • website • CLI
  • 5.
  • 6.
  • 7.
    npm CLI teamduties • meet npm, Inc.’s business objectives • fix bugs • support current npm users • keep npm moving forward
  • 8.
    make npm themost useful tool it can be for the most people
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 15.
    • 356 supporttickets • 222 bugs • 236 feature requests
  • 16.
    traditional product management • own the roadmap • sell the strategic vision • mediate between business owners, developers, & other stakeholders
  • 17.
    say no alot, but be stubborn about what you say yes to
  • 18.
    open-source product management • balance competing demands • consensus-seeking • but sometimes you have to say no
  • 19.
    example: making npmmore extensible
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
    (2. add more commands, like git)
  • 25.
    npm is notan infinitely extensible miracle pegacorn
  • 26.
    turn the problem inside out
  • 27.
    npm as aset of APIs plugged into a CLI
  • 28.
    LET A THOUSAND PACKAGE MANAGERS BLOOM
  • 29.
  • 30.
    • looked ata lot of different requests • came up with a global solution for many local problems • try to keep each goal supporting the others
  • 31.
    npm’s roadmap •scoped packages • multi-stage install / dependency tree realization • npm as API • better Windows support • client-side development support
  • 32.
  • 33.
    the npm release process • new release every Thursday • new releases published to npm@next for about a week of burn-in • `npm@latest` for safe production release, `npm@next` if you want to help test the next release
  • 34.
    supporting npm •the CLI team doesn’t have much time for support • `npm report` will make crowdsourcing that easier, but it’s a ways out • answering questions with the `support` label is ❤️ by me
  • 36.
    using the npmissue tracker: labels 1. bug, support, feature request 2. next-patch, next-minor, next-major 3. documentation, patch-welcome, and novice
  • 37.
    using the npmissue tracker: best practices • don’t add your bug to a closed issue • …but please do add specific details that helped you • no such thing as too much information, but gists are useful • use cases are useful, +1s are terrible
  • 38.
    PATCHES WELCOME •pull requests with tests are landed as quickly as practicable • no patch is too small • …but some patches are too big
  • 39.
    developing npm •`npm test` while developing • `npm run test-all` before submitting PR • update the docs, plz • people who add tests are my favorite people
  • 40.
    thanks for listening/ thanks for helping / thanks for being you
  • 41.