SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
npm Loves You
npm Austin 2016 o/
Bringing Open-Source
Practices to Your Day Job
Ben Coe
@BenjaminCoe, github.com/bcoe
open source, a
love story
how I ended up at npm.
1
▪ employee #3 at npm
▪ lead maintainer of yargs
▪ built nyc, the code-coverage tool
▪ manage npm On-Site
About Ben
▪ we all have process horror stories:
▫ this doesn’t mean process is bad!
▪ @ceejbot and I came to a conclusion:
OSS Best Practices
▪ process is important!
▪ process should be automated
▫ from tedium comes frustration.
OSS Best Practices
automate all the
things
in automation we trust
2
▪ we use a variety of testing tools:
▫ mocha, lab, tap
▪ we’re not dogmatic about TDD
▫ we’re dogmatic about writing tests.
▪ everything runs with Travis CI
Unit Testing
▪ eliminates the question, did you write a test
for that?
▪ we use the coverage tool nyc
▪ we use Coveralls
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
▪ this one is controversial!
▪ ultimately, we decided:
▫ use whatever coding style you like, but
automate its enforcement.
▪ I ❤ github.com/feross/standard
Coding Style
▪ the longer you wait to upgrade, the more
annoying it becomes
▪ use npm outdated
▪ 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”
▪ we run several internal npm On-Sites:
▫ private npm packages are a thing.
we’re npm power
users
“engineers are far more tolerable of a
pedantic robot than they are pedantic
people.”
— someone probably.
best practices
grow out of
community
npm’s methods didn’t originate in a vacuum
3
180,000publishers
3,000,000+users
240,612packages
3,395,979,161
downloads
▪ unit-testing is a great example:
▫ developers learned running large OSS
projects, the benefits of unit-testing.
▪ people emulate the projects they respect:
▫ this creates a feedback loop!
how do habits spread?
“What works best is studying the projects of
other maintainers already on this list,
interacting with the developers, learning
from them, and emulating their
methodologies.”
— blog.npmjs.org
▪ great indicator of quality.
▪ grew out of community
badges!
developers converge on the tools that
facilitate these practices
4 Best Practices
Center Around
Great Tools
9/10 Use Travis CI10/10 Use GitHub 3/10 Use Coveralls
top 10 npm packages
▪ a pull request is opened on GitHub
▪ build kicks off on Travis:
▫ installing modules from public and private
registries.
▪ a conversation begins between developers.
the npm workflow
▪ pull-request kept up-to-date by robots:
▫ Coveralls reporting coverage.
▫ Travis CI reporting build status
▪ once merged, module is published to npm
▪ greenkeeper.io notifies other projects o/
the npm workflow
▪ tools work together elegantly.
▪ as many steps are automated as possible:
▫ let humans do what humans are good at.
▪ it feels (a little bit) like you command a robot
army.
what makes this
awesome?
enterprise software, a love story
so, why do you
build Enterprise
software Ben?
5
▪ 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 of repos.
▫ people taking on the role of a lead
maintainer.
▪ developers need tools that empower them.
education is important
▪ good developer tools do more than deliver
an asset to a build server:
▫ there’s a real disconnect between devs
and ops folks here.
what are good
developer tools?
▪ it’s about facilitating communication.
▪ it’s about discovery.
▪ it’s about automation.
▪ it’s about delivering an asset to a build
server.
what do I mean by
this?
Demo Time
InnerSource Tools
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 software and Enterprise software can
learn a lot 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
♥

Contenu connexe

Tendances

Coordination and Productivity Issues in Free Software: The Role of Brooks' Law
Coordination and Productivity Issues in Free Software: The Role of Brooks' LawCoordination and Productivity Issues in Free Software: The Role of Brooks' Law
Coordination and Productivity Issues in Free Software: The Role of Brooks' LawAndrea Capiluppi
 
JavaLand 2022 - Debugging distributed systems
JavaLand 2022 - Debugging distributed systemsJavaLand 2022 - Debugging distributed systems
JavaLand 2022 - Debugging distributed systemsBert Jan Schrijver
 
Software testing presentation
Software testing presentationSoftware testing presentation
Software testing presentationNikolas Vourlakis
 
Cf objective2014 testing-testingeverywhere
Cf objective2014   testing-testingeverywhereCf objective2014   testing-testingeverywhere
Cf objective2014 testing-testingeverywhereColdFusionConference
 
what's blocking our way
what's blocking our waywhat's blocking our way
what's blocking our waytanvir afzal
 
JavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps worldJavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps worldBert Jan Schrijver
 
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...Bert Jan Schrijver
 
Understand the system
Understand the systemUnderstand the system
Understand the systemDiego Pacheco
 
Devops in with the old, in with the new
Devops   in with the old, in with the newDevops   in with the old, in with the new
Devops in with the old, in with the newJan Collijs
 
TDD & Effective Software Development
TDD & Effective Software DevelopmentTDD & Effective Software Development
TDD & Effective Software Developmentsamserpoosh
 
From No Git to 3000 GitHub Users and How to Keep Them Happy - GitHub Universe...
From No Git to 3000 GitHub Users and How to Keep Them Happy - GitHub Universe...From No Git to 3000 GitHub Users and How to Keep Them Happy - GitHub Universe...
From No Git to 3000 GitHub Users and How to Keep Them Happy - GitHub Universe...Dan Cundiff
 
How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?Vivek Parihar
 
Enterprise Development on a Shoestring Budget
Enterprise Development on a Shoestring BudgetEnterprise Development on a Shoestring Budget
Enterprise Development on a Shoestring BudgetChris Tankersley
 
PostgreSQL Conference: West 08
PostgreSQL Conference: West 08PostgreSQL Conference: West 08
PostgreSQL Conference: West 08Joshua Drake
 
DevOps - Automating Legacy
DevOps - Automating LegacyDevOps - Automating Legacy
DevOps - Automating LegacyDavid Tank
 

Tendances (20)

Coordination and Productivity Issues in Free Software: The Role of Brooks' Law
Coordination and Productivity Issues in Free Software: The Role of Brooks' LawCoordination and Productivity Issues in Free Software: The Role of Brooks' Law
Coordination and Productivity Issues in Free Software: The Role of Brooks' Law
 
JavaLand 2022 - Debugging distributed systems
JavaLand 2022 - Debugging distributed systemsJavaLand 2022 - Debugging distributed systems
JavaLand 2022 - Debugging distributed systems
 
Software testing presentation
Software testing presentationSoftware testing presentation
Software testing presentation
 
Cf objective2014 testing-testingeverywhere
Cf objective2014   testing-testingeverywhereCf objective2014   testing-testingeverywhere
Cf objective2014 testing-testingeverywhere
 
what's blocking our way
what's blocking our waywhat's blocking our way
what's blocking our way
 
JavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps worldJavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps world
 
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Debugging distributed systems
Debugging distributed systemsDebugging distributed systems
Debugging distributed systems
 
Understand the system
Understand the systemUnderstand the system
Understand the system
 
Unit testing for project managers
Unit testing for project managersUnit testing for project managers
Unit testing for project managers
 
Devops in with the old, in with the new
Devops   in with the old, in with the newDevops   in with the old, in with the new
Devops in with the old, in with the new
 
TDD & Effective Software Development
TDD & Effective Software DevelopmentTDD & Effective Software Development
TDD & Effective Software Development
 
From No Git to 3000 GitHub Users and How to Keep Them Happy - GitHub Universe...
From No Git to 3000 GitHub Users and How to Keep Them Happy - GitHub Universe...From No Git to 3000 GitHub Users and How to Keep Them Happy - GitHub Universe...
From No Git to 3000 GitHub Users and How to Keep Them Happy - GitHub Universe...
 
Debugging distributed systems
Debugging distributed systemsDebugging distributed systems
Debugging distributed systems
 
How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?
 
Experience Report
Experience ReportExperience Report
Experience Report
 
Enterprise Development on a Shoestring Budget
Enterprise Development on a Shoestring BudgetEnterprise Development on a Shoestring Budget
Enterprise Development on a Shoestring Budget
 
PostgreSQL Conference: West 08
PostgreSQL Conference: West 08PostgreSQL Conference: West 08
PostgreSQL Conference: West 08
 
DevOps - Automating Legacy
DevOps - Automating LegacyDevOps - Automating Legacy
DevOps - Automating Legacy
 

En vedette

Stop Worrying & Love the SQL - A Case Study
Stop Worrying & Love the SQL - A Case StudyStop Worrying & Love the SQL - A Case Study
Stop Worrying & Love the SQL - A Case StudyAll Things Open
 
OpenStack: Everything You Need to Know To Get Started
OpenStack: Everything You Need to Know To Get StartedOpenStack: Everything You Need to Know To Get Started
OpenStack: Everything You Need to Know To Get StartedAll Things Open
 
Using Bootstrap to Create a Common UI Across Products
Using Bootstrap to Create a Common UI Across ProductsUsing Bootstrap to Create a Common UI Across Products
Using Bootstrap to Create a Common UI Across ProductsAll Things Open
 
Javascript - The Stack and Beyond
Javascript - The Stack and BeyondJavascript - The Stack and Beyond
Javascript - The Stack and BeyondAll Things Open
 
Software Development as a Civic Service
Software Development as a Civic ServiceSoftware Development as a Civic Service
Software Development as a Civic ServiceAll Things Open
 
Sails.js: Rags to...Open Source
Sails.js: Rags to...Open SourceSails.js: Rags to...Open Source
Sails.js: Rags to...Open SourceAll Things Open
 
Great Artists (Designers) Steal
Great Artists (Designers) StealGreat Artists (Designers) Steal
Great Artists (Designers) StealAll Things Open
 
Streaming Way to Webscale: How We Scale Bitly via Streaming
Streaming Way to Webscale: How We Scale Bitly via StreamingStreaming Way to Webscale: How We Scale Bitly via Streaming
Streaming Way to Webscale: How We Scale Bitly via StreamingAll Things Open
 
Open Source in Healthcare
Open Source in HealthcareOpen Source in Healthcare
Open Source in HealthcareAll Things Open
 
Ansible - 1,000,000 Downloads and Counting
Ansible - 1,000,000 Downloads and CountingAnsible - 1,000,000 Downloads and Counting
Ansible - 1,000,000 Downloads and CountingAll Things Open
 
The Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowThe Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowAll Things Open
 
The Second Digital Revolution is Here. Are You Ready for Hyperconnectivity?
The Second Digital Revolution is Here. Are You Ready for Hyperconnectivity?The Second Digital Revolution is Here. Are You Ready for Hyperconnectivity?
The Second Digital Revolution is Here. Are You Ready for Hyperconnectivity?All Things Open
 
Saving the World with Open Source and Science
Saving the World with Open Source and ScienceSaving the World with Open Source and Science
Saving the World with Open Source and ScienceAll Things Open
 
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
I Know It Was MEAN, But I Cut the Cord to LAMP AnywayI Know It Was MEAN, But I Cut the Cord to LAMP Anyway
I Know It Was MEAN, But I Cut the Cord to LAMP AnywayAll Things Open
 
Architecture of the Upcoming OrangeFS v3 Distributed Parallel File System
Architecture of the Upcoming OrangeFS v3 Distributed Parallel File SystemArchitecture of the Upcoming OrangeFS v3 Distributed Parallel File System
Architecture of the Upcoming OrangeFS v3 Distributed Parallel File SystemAll Things Open
 
Case Study: Ansible and NASA
Case Study: Ansible and NASACase Study: Ansible and NASA
Case Study: Ansible and NASAAll Things Open
 

En vedette (20)

Stop Worrying & Love the SQL - A Case Study
Stop Worrying & Love the SQL - A Case StudyStop Worrying & Love the SQL - A Case Study
Stop Worrying & Love the SQL - A Case Study
 
OpenStack: Everything You Need to Know To Get Started
OpenStack: Everything You Need to Know To Get StartedOpenStack: Everything You Need to Know To Get Started
OpenStack: Everything You Need to Know To Get Started
 
Women in Open Source
Women in Open SourceWomen in Open Source
Women in Open Source
 
Using Bootstrap to Create a Common UI Across Products
Using Bootstrap to Create a Common UI Across ProductsUsing Bootstrap to Create a Common UI Across Products
Using Bootstrap to Create a Common UI Across Products
 
Javascript - The Stack and Beyond
Javascript - The Stack and BeyondJavascript - The Stack and Beyond
Javascript - The Stack and Beyond
 
Software Development as a Civic Service
Software Development as a Civic ServiceSoftware Development as a Civic Service
Software Development as a Civic Service
 
Sails.js: Rags to...Open Source
Sails.js: Rags to...Open SourceSails.js: Rags to...Open Source
Sails.js: Rags to...Open Source
 
Great Artists (Designers) Steal
Great Artists (Designers) StealGreat Artists (Designers) Steal
Great Artists (Designers) Steal
 
Streaming Way to Webscale: How We Scale Bitly via Streaming
Streaming Way to Webscale: How We Scale Bitly via StreamingStreaming Way to Webscale: How We Scale Bitly via Streaming
Streaming Way to Webscale: How We Scale Bitly via Streaming
 
Open Source in Healthcare
Open Source in HealthcareOpen Source in Healthcare
Open Source in Healthcare
 
Ansible - 1,000,000 Downloads and Counting
Ansible - 1,000,000 Downloads and CountingAnsible - 1,000,000 Downloads and Counting
Ansible - 1,000,000 Downloads and Counting
 
The Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowThe Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To Know
 
The Second Digital Revolution is Here. Are You Ready for Hyperconnectivity?
The Second Digital Revolution is Here. Are You Ready for Hyperconnectivity?The Second Digital Revolution is Here. Are You Ready for Hyperconnectivity?
The Second Digital Revolution is Here. Are You Ready for Hyperconnectivity?
 
Saving the World with Open Source and Science
Saving the World with Open Source and ScienceSaving the World with Open Source and Science
Saving the World with Open Source and Science
 
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
I Know It Was MEAN, But I Cut the Cord to LAMP AnywayI Know It Was MEAN, But I Cut the Cord to LAMP Anyway
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
 
Architecture of the Upcoming OrangeFS v3 Distributed Parallel File System
Architecture of the Upcoming OrangeFS v3 Distributed Parallel File SystemArchitecture of the Upcoming OrangeFS v3 Distributed Parallel File System
Architecture of the Upcoming OrangeFS v3 Distributed Parallel File System
 
Case Study: Ansible and NASA
Case Study: Ansible and NASACase Study: Ansible and NASA
Case Study: Ansible and NASA
 
Pax Data
Pax DataPax Data
Pax Data
 
Introduction to oVirt
Introduction to oVirtIntroduction to oVirt
Introduction to oVirt
 
Battle of the Stacks
Battle of the StacksBattle of the Stacks
Battle of the Stacks
 

Similaire à Bringing Open-Source Practices to Your Day Job

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
 
AppSec Pipelines and Event based Security
AppSec Pipelines and Event based SecurityAppSec Pipelines and Event based Security
AppSec Pipelines and Event based SecurityMatt Tesauro
 
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 StackJAXLondon_Conference
 
Putting Devs On-Call: How to Empower Your Team
Putting Devs On-Call: How to Empower Your TeamPutting Devs On-Call: How to Empower Your Team
Putting Devs On-Call: How to Empower Your TeamVictorOps
 
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 ProgrammingAndy Melichar
 
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 MagentoLuis Tineo
 
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
 
WDI 2021 - Pierwszy duży projekt w Pythonie i Selenium - Katarzyna Javaheri-S...
WDI 2021 - Pierwszy duży projekt w Pythonie i Selenium - Katarzyna Javaheri-S...WDI 2021 - Pierwszy duży projekt w Pythonie i Selenium - Katarzyna Javaheri-S...
WDI 2021 - Pierwszy duży projekt w Pythonie i Selenium - Katarzyna Javaheri-S...Katarzyna Javaheri-Szpak
 
Velocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsVelocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsRodrigo Campos
 
Outpost24 webinar: Turning DevOps and security into DevSecOps
Outpost24 webinar: Turning DevOps and security into DevSecOpsOutpost24 webinar: Turning DevOps and security into DevSecOps
Outpost24 webinar: Turning DevOps and security into DevSecOpsOutpost24
 
Rails Operations - Lessons Learned
Rails Operations -  Lessons LearnedRails Operations -  Lessons Learned
Rails Operations - Lessons LearnedJosh Nichols
 
DevOps in the Real World
DevOps in the Real WorldDevOps in the Real World
DevOps in the Real WorldMax Yermakhanov
 
Building an Open Source AppSec Pipeline
Building an Open Source AppSec PipelineBuilding an Open Source AppSec Pipeline
Building an Open Source AppSec PipelineMatt Tesauro
 
What a DevOps specialist has to know about static code analysis
What a DevOps specialist has to know about static code analysisWhat a DevOps specialist has to know about static code analysis
What a DevOps specialist has to know about static code analysisAndrey Karpov
 
AATC - Gamifying DevOps with Lego and Chocolate Game
AATC - Gamifying DevOps with Lego and Chocolate GameAATC - Gamifying DevOps with Lego and Chocolate Game
AATC - Gamifying DevOps with Lego and Chocolate GameDana Pylayeva
 
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveOSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveNETWAYS
 
DevOps - It's About How We Work
DevOps - It's About How We WorkDevOps - It's About How We Work
DevOps - It's About How We WorkRandy Shoup
 

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

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...
 
AppSec Pipelines and Event based Security
AppSec Pipelines and Event based SecurityAppSec Pipelines and Event based Security
AppSec Pipelines and Event based Security
 
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
 
Putting Devs On-Call: How to Empower Your Team
Putting Devs On-Call: How to Empower Your TeamPutting Devs On-Call: How to Empower Your Team
Putting Devs On-Call: How to Empower Your Team
 
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
 
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
 
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.
 
WDI 2021 - Pierwszy duży projekt w Pythonie i Selenium - Katarzyna Javaheri-S...
WDI 2021 - Pierwszy duży projekt w Pythonie i Selenium - Katarzyna Javaheri-S...WDI 2021 - Pierwszy duży projekt w Pythonie i Selenium - Katarzyna Javaheri-S...
WDI 2021 - Pierwszy duży projekt w Pythonie i Selenium - Katarzyna Javaheri-S...
 
Devops for drupal
Devops for  drupalDevops for  drupal
Devops for drupal
 
DevOps Game at SGZA
DevOps Game at SGZADevOps Game at SGZA
DevOps Game at SGZA
 
Velocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsVelocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOps
 
Why agile?
Why agile?Why agile?
Why agile?
 
Outpost24 webinar: Turning DevOps and security into DevSecOps
Outpost24 webinar: Turning DevOps and security into DevSecOpsOutpost24 webinar: Turning DevOps and security into DevSecOps
Outpost24 webinar: Turning DevOps and security into DevSecOps
 
Rails Operations - Lessons Learned
Rails Operations -  Lessons LearnedRails Operations -  Lessons Learned
Rails Operations - Lessons Learned
 
DevOps in the Real World
DevOps in the Real WorldDevOps in the Real World
DevOps in the Real World
 
Building an Open Source AppSec Pipeline
Building an Open Source AppSec PipelineBuilding an Open Source AppSec Pipeline
Building an Open Source AppSec Pipeline
 
What a DevOps specialist has to know about static code analysis
What a DevOps specialist has to know about static code analysisWhat a DevOps specialist has to know about static code analysis
What a DevOps specialist has to know about static code analysis
 
AATC - Gamifying DevOps with Lego and Chocolate Game
AATC - Gamifying DevOps with Lego and Chocolate GameAATC - Gamifying DevOps with Lego and Chocolate Game
AATC - Gamifying DevOps with Lego and Chocolate Game
 
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveOSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
 
DevOps - It's About How We Work
DevOps - It's About How We WorkDevOps - It's About How We Work
DevOps - It's About How We Work
 

Dernier

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 

Dernier (20)

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 

Bringing Open-Source Practices to Your Day Job

  • 2. npm Austin 2016 o/ Bringing Open-Source Practices to Your Day Job Ben Coe @BenjaminCoe, github.com/bcoe
  • 3. open source, a love story how I ended up at npm. 1
  • 4. ▪ employee #3 at npm ▪ lead maintainer of yargs ▪ built nyc, the code-coverage tool ▪ manage npm On-Site About Ben
  • 5. ▪ we all have process horror stories: ▫ this doesn’t mean process is bad! ▪ @ceejbot and I came to a conclusion: OSS Best Practices
  • 6. ▪ process is important! ▪ process should be automated ▫ from tedium comes frustration. OSS Best Practices
  • 7. automate all the things in automation we trust 2
  • 8. ▪ we use a variety of testing tools: ▫ mocha, lab, tap ▪ we’re not dogmatic about TDD ▫ we’re dogmatic about writing tests. ▪ everything runs with Travis CI Unit Testing
  • 9. ▪ eliminates the question, did you write a test for that? ▪ we use the coverage tool nyc ▪ we use Coveralls Test Coverage
  • 10. 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
  • 11. ▪ this one is controversial! ▪ ultimately, we decided: ▫ use whatever coding style you like, but automate its enforcement. ▪ I ❤ github.com/feross/standard Coding Style
  • 12. ▪ the longer you wait to upgrade, the more annoying it becomes ▪ use npm outdated ▪ greenkeeper.io rocks keep dependencies up-to-date
  • 13. 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
  • 14. ▪ npm publish --tag=alpha ▪ npm version patch -m “awesome new feature” ▪ we run several internal npm On-Sites: ▫ private npm packages are a thing. we’re npm power users
  • 15. “engineers are far more tolerable of a pedantic robot than they are pedantic people.” — someone probably.
  • 16. best practices grow out of community npm’s methods didn’t originate in a vacuum 3
  • 19. ▪ unit-testing is a great example: ▫ developers learned running large OSS projects, the benefits of unit-testing. ▪ people emulate the projects they respect: ▫ this creates a feedback loop! how do habits spread?
  • 20. “What works best is studying the projects of other maintainers already on this list, interacting with the developers, learning from them, and emulating their methodologies.” — blog.npmjs.org
  • 21. ▪ great indicator of quality. ▪ grew out of community badges!
  • 22. developers converge on the tools that facilitate these practices 4 Best Practices Center Around Great Tools
  • 23. 9/10 Use Travis CI10/10 Use GitHub 3/10 Use Coveralls top 10 npm packages
  • 24. ▪ a pull request is opened on GitHub ▪ build kicks off on Travis: ▫ installing modules from public and private registries. ▪ a conversation begins between developers. the npm workflow
  • 25. ▪ pull-request kept up-to-date by robots: ▫ Coveralls reporting coverage. ▫ Travis CI reporting build status ▪ once merged, module is published to npm ▪ greenkeeper.io notifies other projects o/ the npm workflow
  • 26. ▪ tools work together elegantly. ▪ as many steps are automated as possible: ▫ let humans do what humans are good at. ▪ it feels (a little bit) like you command a robot army. what makes this awesome?
  • 27. enterprise software, a love story so, why do you build Enterprise software Ben? 5
  • 28. ▪ restrictions on infrastructure. ▪ practices lag behind. ▪ process can be overwhelming. developing enterprise software is hard
  • 29. 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
  • 30. “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.”
  • 31. ▪ InnerSource is about: ▫ developers taking ownership of repos. ▫ people taking on the role of a lead maintainer. ▪ developers need tools that empower them. education is important
  • 32. ▪ good developer tools do more than deliver an asset to a build server: ▫ there’s a real disconnect between devs and ops folks here. what are good developer tools?
  • 33. ▪ it’s about facilitating communication. ▪ it’s about discovery. ▪ it’s about automation. ▪ it’s about delivering an asset to a build server. what do I mean by this?
  • 36. 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
  • 37. why this is awesome ▪ OSS software and Enterprise software can learn a lot from each other. ▪ we can make a developer’s life more awesome.
  • 38. thanks any questions? about anything? Ben Coe @BenjaminCoe, github.com/bcoe