Open Source: Working in a Glass Walled Factory

43
Working in a Glass Walled Factory Managing an internally-sponsored, open source project Stephen M. James • @tweetllama • DevWorkshop 2015

Transcript of Open Source: Working in a Glass Walled Factory

Page 1: Open Source: Working in a Glass Walled Factory

Working in a Glass Walled Factory

Managing an internally-sponsored, open source project

Stephen M. James • @tweetllama • DevWorkshop 2015

Page 2: Open Source: Working in a Glass Walled Factory

Survey of audience

Page 3: Open Source: Working in a Glass Walled Factory

Why? open-sourcing an internal project

Page 4: Open Source: Working in a Glass Walled Factory

Prestige & reputation of being forward thinking and contributing to the community

Prospects may already be familiar with part of your codebase

Page 5: Open Source: Working in a Glass Walled Factory

Increased usage cases and coverage rare bugs found more quickly

To further your own job prospects

publicly proven track record

Page 6: Open Source: Working in a Glass Walled Factory

Experimentation mindset and "outside" release cycle

that is, not within the company release cycle

Democratization of the code even if just internal open-source–no ivory towers.

Page 7: Open Source: Working in a Glass Walled Factory

Value-add for partners and third-parties seamless look and feel

Page 8: Open Source: Working in a Glass Walled Factory

And my favorite, the off-chance that some non-profit organization is using the code to

raise awareness of social injustice or defend the orphan, window, or alien.

Page 9: Open Source: Working in a Glass Walled Factory

Introduction

Page 10: Open Source: Working in a Glass Walled Factory

A UI library of jQuery plugins

Page 11: Open Source: Working in a Glass Walled Factory

My

Page 12: Open Source: Working in a Glass Walled Factory

Know your audience

Page 13: Open Source: Working in a Glass Walled Factory
Page 14: Open Source: Working in a Glass Walled Factory
Page 15: Open Source: Working in a Glass Walled Factory

What is the business goal of your project?

Page 16: Open Source: Working in a Glass Walled Factory

Open source = drive thru?

Page 17: Open Source: Working in a Glass Walled Factory

Our default was not recommended.

WAT!

Page 18: Open Source: Working in a Glass Walled Factory

Change all your declarative markup?

Easy isn’t always best for internal clients.

Optional dependencies?

Page 19: Open Source: Working in a Glass Walled Factory

Is this a side project?

Or an essential part of your company or department?

Page 20: Open Source: Working in a Glass Walled Factory

Are you architecting in a “white lab coat experience?”

Page 21: Open Source: Working in a Glass Walled Factory

Creation is an intrinsic motivator.

Maintenance usually requires extrinsic motivation.

If only code documented itself

clearly and released itself.

Page 22: Open Source: Working in a Glass Walled Factory

Chores

Page 23: Open Source: Working in a Glass Walled Factory

Facilitation Who’s going to be responsible

for this project?

Page 24: Open Source: Working in a Glass Walled Factory
Page 25: Open Source: Working in a Glass Walled Factory

Am I really following semver?

Page 26: Open Source: Working in a Glass Walled Factory

Semver is implicit communication MAJOR version when you make incompatible API changes,

MINOR version when you add functionality in a backwards-compatible manner, and

PATCH version when you make backwards-compatible bug fixes.

Page 27: Open Source: Working in a Glass Walled Factory

When to break things

Page 28: Open Source: Working in a Glass Walled Factory

@oskay

Page 29: Open Source: Working in a Glass Walled Factory
Page 30: Open Source: Working in a Glass Walled Factory

I built my house on a pre-fabricated foundation called Bootstrap, how do I move it off

lessen dependency dependency

Page 31: Open Source: Working in a Glass Walled Factory
Page 32: Open Source: Working in a Glass Walled Factory

Pull request your own code

or at the very least diff it

Page 33: Open Source: Working in a Glass Walled Factory
Page 34: Open Source: Working in a Glass Walled Factory

Make the “right” way, the easy way

structure and branching example

Page 35: Open Source: Working in a Glass Walled Factory
Page 36: Open Source: Working in a Glass Walled Factory

Write tests, and hook up to continuous integration

free licenses for travis, saucelabs, etc.

Page 37: Open Source: Working in a Glass Walled Factory

Be humble. Be open to being wrong.

Easy on the guilt there buddy,

this is software.

Page 38: Open Source: Working in a Glass Walled Factory

Project health + personal health

issue resolution, dependencies, complexity, monitoring for open source

Page 39: Open Source: Working in a Glass Walled Factory

IsItMaintained.com

Page 40: Open Source: Working in a Glass Walled Factory

Bithound.io

Page 41: Open Source: Working in a Glass Walled Factory

Be nice

“I don’t have to time !nd the previous issue” instead of berating

Page 42: Open Source: Working in a Glass Walled Factory

The project has arrived... Now how do I sunset it?

Communicate the path forward to the community

Page 43: Open Source: Working in a Glass Walled Factory

Stephen M. James • @tweetllama

Let’s create a culture of learning, experimentation, and fail fast. Thanks for listenin’! Deck eventually available at slideshare.net/interactivellama/