SlideShare a Scribd company logo
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
♥

More Related Content

What's hot

What schools should be teaching IT students
What schools should be teaching IT studentsWhat schools should be teaching IT students
What schools should be teaching IT students
Andy Lester
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
instanceofjamie
 
Developing sustainable php projects
Developing sustainable php projectsDeveloping sustainable php projects
Developing sustainable php projects
Michele Orselli
 
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
DevOpsDays Tel Aviv
 
Are you a good scout? - PHPNW15 Unconf
Are you a good scout? - PHPNW15 UnconfAre you a good scout? - PHPNW15 Unconf
Are you a good scout? - PHPNW15 Unconf
phpboyscout
 
Are you a good scout? - PHPNW15 Track 3
Are you a good scout? - PHPNW15 Track 3Are you a good scout? - PHPNW15 Track 3
Are you a good scout? - PHPNW15 Track 3
phpboyscout
 
Are you a good scout? PHPNW Aug 2015
Are you a good scout? PHPNW Aug 2015Are you a good scout? PHPNW Aug 2015
Are you a good scout? PHPNW Aug 2015
phpboyscout
 
Thoughts about Shape Up
Thoughts about Shape UpThoughts about Shape Up
Thoughts about Shape Up
Diego Pacheco
 
DevOps for Engineers
DevOps for EngineersDevOps for Engineers
DevOps for Engineers
Ahmed AbouZaid
 
Bootstrapping Quality
Bootstrapping QualityBootstrapping Quality
Bootstrapping Quality
Michael Roufa
 
How contributing to Open-source made me a better DevOps
How contributing to Open-source made me a better DevOpsHow contributing to Open-source made me a better DevOps
How contributing to Open-source made me a better DevOps
Ahmed AbouZaid
 
NYU ITP Lean LaunchPad Development Planning
NYU ITP Lean LaunchPad Development Planning NYU ITP Lean LaunchPad Development Planning
NYU ITP Lean LaunchPad Development Planning
Jen van der Meer
 
Enterprise Development on a Shoestring Budget
Enterprise Development on a Shoestring BudgetEnterprise Development on a Shoestring Budget
Enterprise Development on a Shoestring Budget
Chris Tankersley
 
Software Craftsmanship @ Ntnu
Software Craftsmanship @ NtnuSoftware Craftsmanship @ Ntnu
Software Craftsmanship @ Ntnu
goeran
 
Agile
AgileAgile
Lean Responsive
Lean ResponsiveLean Responsive
Lean Responsive
Josh Jeffryes
 
Why Vue JS
Why Vue JS Why Vue JS
Why Vue JS
Praveen Puglia
 
DrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & ProfitableDrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & Profitable
Promet Source
 
corporateJavascript
corporateJavascriptcorporateJavascript
corporateJavascript
climboid
 
DevOps, Performance Optimization and the Green Life with Magento
DevOps, Performance Optimization and the Green Life with MagentoDevOps, Performance Optimization and the Green Life with Magento
DevOps, Performance Optimization and the Green Life with Magento
Luis Tineo
 

What's hot (20)

What schools should be teaching IT students
What schools should be teaching IT studentsWhat schools should be teaching IT students
What schools should be teaching IT students
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Developing sustainable php projects
Developing sustainable php projectsDeveloping sustainable php projects
Developing sustainable php projects
 
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
 
Are you a good scout? - PHPNW15 Unconf
Are you a good scout? - PHPNW15 UnconfAre you a good scout? - PHPNW15 Unconf
Are you a good scout? - PHPNW15 Unconf
 
Are you a good scout? - PHPNW15 Track 3
Are you a good scout? - PHPNW15 Track 3Are you a good scout? - PHPNW15 Track 3
Are you a good scout? - PHPNW15 Track 3
 
Are you a good scout? PHPNW Aug 2015
Are you a good scout? PHPNW Aug 2015Are you a good scout? PHPNW Aug 2015
Are you a good scout? PHPNW Aug 2015
 
Thoughts about Shape Up
Thoughts about Shape UpThoughts about Shape Up
Thoughts about Shape Up
 
DevOps for Engineers
DevOps for EngineersDevOps for Engineers
DevOps for Engineers
 
Bootstrapping Quality
Bootstrapping QualityBootstrapping Quality
Bootstrapping Quality
 
How contributing to Open-source made me a better DevOps
How contributing to Open-source made me a better DevOpsHow contributing to Open-source made me a better DevOps
How contributing to Open-source made me a better DevOps
 
NYU ITP Lean LaunchPad Development Planning
NYU ITP Lean LaunchPad Development Planning NYU ITP Lean LaunchPad Development Planning
NYU ITP Lean LaunchPad Development Planning
 
Enterprise Development on a Shoestring Budget
Enterprise Development on a Shoestring BudgetEnterprise Development on a Shoestring Budget
Enterprise Development on a Shoestring Budget
 
Software Craftsmanship @ Ntnu
Software Craftsmanship @ NtnuSoftware Craftsmanship @ Ntnu
Software Craftsmanship @ Ntnu
 
Agile
AgileAgile
Agile
 
Lean Responsive
Lean ResponsiveLean Responsive
Lean Responsive
 
Why Vue JS
Why Vue JS Why Vue JS
Why Vue JS
 
DrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & ProfitableDrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & Profitable
 
corporateJavascript
corporateJavascriptcorporateJavascript
corporateJavascript
 
DevOps, Performance Optimization and the Green Life with Magento
DevOps, Performance Optimization and the Green Life with MagentoDevOps, Performance Optimization and the Green Life with Magento
DevOps, Performance Optimization and the Green Life with Magento
 

Similar to Bringing Open-Source Practices to Your Day Job

It Takes Two - A Case Study in Pair Programming
It Takes Two - A Case Study in Pair ProgrammingIt Takes Two - A Case Study in Pair Programming
It Takes Two - A Case Study in Pair Programming
Andy Melichar
 
WhoIsKenDeLong
WhoIsKenDeLongWhoIsKenDeLong
WhoIsKenDeLong
Ken DeLong
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)
Mike Harris
 
Introducing Agile Methodologies
Introducing Agile MethodologiesIntroducing Agile Methodologies
Introducing Agile Methodologies
Stfalcon Meetups
 
InnerSource - Using open source best practices to help your company
InnerSource - Using open source best practices to help your companyInnerSource - Using open source best practices to help your company
InnerSource - Using open source best practices to help your company
Eric Caron
 
How to get started with Site Reliability Engineering
How to get started with Site Reliability EngineeringHow to get started with Site Reliability Engineering
How to get started with Site Reliability Engineering
Andrew Kirkpatrick
 
Code refactoring
Code refactoringCode refactoring
Code refactoring
Long Nguyen
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
Synerzip
 
Synerzip Agile Software Development
Synerzip Agile Software DevelopmentSynerzip Agile Software Development
Synerzip Agile Software Development
Synerzip
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San Francisco
Christian Heilmann
 
Introducing Pair Programming
Introducing Pair ProgrammingIntroducing Pair Programming
Introducing Pair Programming
Steven Smith
 
Software Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeSoftware Craftsmanship - It's an Imperative
Software Craftsmanship - It's an Imperative
Fadi Stephan
 
Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.
Kris Buytaert
 
Kickass Agile Development - Agile & Beyond Conference
Kickass Agile Development - Agile & Beyond ConferenceKickass Agile Development - Agile & Beyond Conference
Kickass Agile Development - Agile & Beyond Conference
Dan Chuparkoff
 
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
AgileNetwork
 
Евгений Андрушко "Big & Enterpise data: чему они нас научили"
Евгений Андрушко "Big & Enterpise data: чему они нас научили"Евгений Андрушко "Big & Enterpise data: чему они нас научили"
Евгений Андрушко "Big & Enterpise data: чему они нас научили"
SCRUMguides
 
WordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPressWordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPress
mtoppa
 
Software craftsmanship
Software craftsmanshipSoftware craftsmanship
Software craftsmanship
ColdFusionConference
 
10 mistakes when you move to topic-based authoring
10 mistakes when you move to topic-based authoring10 mistakes when you move to topic-based authoring
10 mistakes when you move to topic-based authoring
Sharon Burton
 
Continuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul StackContinuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul Stack
JAXLondon_Conference
 

Similar to Bringing Open-Source Practices to Your Day Job (20)

It Takes Two - A Case Study in Pair Programming
It Takes Two - A Case Study in Pair ProgrammingIt Takes Two - A Case Study in Pair Programming
It Takes Two - A Case Study in Pair Programming
 
WhoIsKenDeLong
WhoIsKenDeLongWhoIsKenDeLong
WhoIsKenDeLong
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)
 
Introducing Agile Methodologies
Introducing Agile MethodologiesIntroducing Agile Methodologies
Introducing Agile Methodologies
 
InnerSource - Using open source best practices to help your company
InnerSource - Using open source best practices to help your companyInnerSource - Using open source best practices to help your company
InnerSource - Using open source best practices to help your company
 
How to get started with Site Reliability Engineering
How to get started with Site Reliability EngineeringHow to get started with Site Reliability Engineering
How to get started with Site Reliability Engineering
 
Code refactoring
Code refactoringCode refactoring
Code refactoring
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
Synerzip Agile Software Development
Synerzip Agile Software DevelopmentSynerzip Agile Software Development
Synerzip Agile Software Development
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San Francisco
 
Introducing Pair Programming
Introducing Pair ProgrammingIntroducing Pair Programming
Introducing Pair Programming
 
Software Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeSoftware Craftsmanship - It's an Imperative
Software Craftsmanship - It's an Imperative
 
Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.
 
Kickass Agile Development - Agile & Beyond Conference
Kickass Agile Development - Agile & Beyond ConferenceKickass Agile Development - Agile & Beyond Conference
Kickass Agile Development - Agile & Beyond Conference
 
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
 
Евгений Андрушко "Big & Enterpise data: чему они нас научили"
Евгений Андрушко "Big & Enterpise data: чему они нас научили"Евгений Андрушко "Big & Enterpise data: чему они нас научили"
Евгений Андрушко "Big & Enterpise data: чему они нас научили"
 
WordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPressWordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPress
 
Software craftsmanship
Software craftsmanshipSoftware craftsmanship
Software craftsmanship
 
10 mistakes when you move to topic-based authoring
10 mistakes when you move to topic-based authoring10 mistakes when you move to topic-based authoring
10 mistakes when you move to topic-based authoring
 
Continuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul StackContinuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul Stack
 

Recently uploaded

National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 

Recently uploaded (20)

National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 

Bringing Open-Source Practices to Your Day Job

  • 2. js.la 2016 o/ Bringing Open-Source Practices to Your Day Job Ben Coe @BenjaminCoe, github.com/bcoe
  • 3. ▪ employee #3 at npm ▪ lead maintainer of yargs ▪ built nyc, the code-coverage tool ▪ manage npm Enterprise About Ben
  • 4. ▪ process driven by necessity: ▫ Lots of churn. ▫ Many contributors. OSS Best Practices
  • 5. ▪ what do good practices have in common? OSS Best Practices
  • 6. automate all the things in automation we trust 2
  • 7. ▪ Don’t be dogmatic BDD, TDD, etc. ▫ … but be dogmatic about writing tests ▪ Automate it! Unit Testing
  • 8. ▪ “did you write 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 longer you 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
  • 15. “engineers are far more tolerable of a pedantic robot than they are pedantic people.” — someone probably.
  • 16. best practices grow out of community 3
  • 17. ▪ people emulate the projects they respect. how do habits spread?
  • 18. 4 Best Practices Center Around Great Tools
  • 19. 9/10 Use Travis CI10/10 Use GitHub 5/10 Use Coveralls top 10 npm packages
  • 20. so, why do you 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 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.”
  • 24. ▪ InnerSource is about: ▫ developers taking ownership. ▫ people taking on the role of a lead maintainer. ▪ developers using their favorite tools. education is important
  • 27. 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.
  • 28. why this is awesome ▪ OSS and Enterprise can learn from each other. ▪ we can make a developer’s life more awesome.
  • 29. thanks any questions? about anything? Ben Coe @BenjaminCoe, github.com/bcoe