46
@nayafia for 18F Let’s Make Software Great Again: Sustaining Our Digital Infrastructure

Let's Make Software Great Again (18F Talk)

Embed Size (px)

Citation preview

@nayafia for 18F

Let’s Make Software Great Again:Sustaining Our Digital Infrastructure

@nayafia for 18F

Infrastructure:

@nayafia for 18F

@nayafia for 18F

@nayafia for 18F

@nayafia for 18F

@nayafia for 18F

Funded by gov’t and private partnerships

Trump, Clinton and Sanders agree: “We need to support this!”

No dedicated funding or support

“No, they like it when we don’t pay them.”

@nayafia for 18F

Digital infrastructure: (n.) layers of the Internet that everybody uses to

build software

@nayafia for 18F

Tools: Grunt, RSpecLibraries: devise, mustache

Frameworks: RailsPackaging: bundler, gems

Languages: Ruby, JavaScriptDatabases: Postgres

Servers: unicorn, Nginx

@nayafia for 18F

Digital infrastructure is built and maintained by citizens, not

government

@nayafia for 18F

(This is a good thing!)

@nayafia for 18F

Anybody can release a new project

@nayafia for 18F

Anybody can use it, whether a 12 y/o coder or a billion dollar company

@nayafia for 18F

Open infrastructure prioritizes speed and innovation

@nayafia for 18F

...but it still needs love. <3

@nayafia for 18F

“I do not have the time or energy to invest in open source any more…” (@ryanbigg)

“Just relying on people’s good will isn’t going to work…” (@andrewgodwin)

“Stop hoping that volunteers will...maintain the...tools that your work depends on” (@rubytogether)

“I was proud of how my projects could do so much with so little. Now, I see there are always costs.” (Audrey Eschright)

“It doesn’t need to be this way.” (@shazow)

@nayafia for 18F

“I thought open source was a volunteer effort. What's changed?”

@nayafia for 18F

Open source has been around for 30+ years

1981-1998: Closed source was the norm

1998-2008: Startups start using LAMP stack

2008-2013: Open source workflows standardize (Git, GitHub, Stack Overflow)

2013-today: Open source is the norm

@nayafia for 18F

Today, every startup uses open source technology.

Big companies want to use open source.

@nayafia for 18F

This puts enormous demand on our existing infrastructure.

@nayafia for 18F

Just to clarify…

@nayafia for 18F

We are talking about:

Community open source tools used by millions to build THEIR projects, touched by billions

Examples: D3, jQuery, Ruby, Django, Rails, Python, Haskell

We are not talking about:

“My fun open source project that I made this weekend”: projects that do not carry many dependencies or require significant upkeep, even if popular (ex. ssh-chat)

“Open sourced”: projects built inside a company that are then made open source (ex. Swift)

“Open core”: open source core product with paid add-ons (ex. MySQL)

“Open source businesses”: Businesses built on open source communities (ex. Nodesource) or who make open source products (ex. Docker)

“Inner source”: companies adopting open source philosophy for internal workflow (ex. PayPal)

@nayafia for 18F

How infrastructure gets supported

@nayafia for 18F

Consulting & ServicesCharge for implementation, support contracts, etc

Ex. Hoodie, PyPy, OpenSSL

PROS● Sustainable, recurring business model that aligns with customer needs

CONS● You build a small consulting business instead of working on code● Can be at odds with making software simple to use● Project needs to have people willing to pay

@nayafia for 18F

DonationsGet people to donate

Ex. Twisted, Git

PROS● Few strings attached

CONS● Usually not much money unless you have dedicated fundraising● Need an entity to donate to (ex. SFC). Much harder for individuals or international ppl● Sometimes not clear who should accept money, how it gets distributed

@nayafia for 18F

CrowdfundingRun a single (Kickstarter) or recurring (Patreon, Salt, Gratipay) crowdfunding campaign

Ex. rvm, Django

PROS● Few strings attached● Easier for individuals to manage

CONS● Lots of work involved to market campaign● Usually has to be tied to a concrete outcome● Not that much money (~$50K for one time, <$1K monthly for recurring)● Harder for companies to donate

@nayafia for 18F

BountiesPost a “bounty”, or reward, for completing a task. Has become popular for security bugs.

Ex. Bountysource, GitHub Bug Bounty Program

PROS● Leverages community● Pays for specific work to get done (unlike donations)

CONS● Can create perverse incentives (low quality PRs, distracting priorities)● Not that much money● Doesn’t provide recurring revenue

@nayafia for 18F

Company SponsorshipsCompany sponsors a maintainer to work on project

Ex. Ruby/Heroku, jQuery/Mozilla,Node.js/Joyent, Python packaging/HP

PROS● Taps into those with most resources● Can be great alignment with company needs● Gives maintainers steady income

CONS● Getting companies to agree to this arrangement :>● Person not contributing to company’s bottom line, which makes them expendable● Governance issues, company having undue influence over project● Can affect project dynamics + balance to sponsor a maintainer

@nayafia for 18F

FoundationsCreate a foundation to support the project

Ex. Ruby Together, jQuery Foundation, Django Foundation, Node.js Foundation

PROS● Neutrality. Foundation protects the code and helps steward community● Influence distributed across multiple donors● Can legitimize project, companies feel more comfortable giving

CONS● Only works for big projects● Very difficult to set up (many do 501c6 instead of 501c3)● IRS doesn’t like open source, restrictions on what you can do● Requires serious community effort and diverse skills. (Still need to fundraise!)

@nayafia for 18F

Is anybody thinking about this besides me?

@nayafia for 18F

Linux Core Infrastructure InitiativeMozilla Open Source Support

NUMFocusEU grants

Stripe Open-Source Retreat

@nayafia for 18F

But efforts are still fragmented.

@nayafia for 18F

What is needed, IMO

@nayafia for 18F

Cultural awareness

@nayafia for 18F

We all use and benefit from infrastructure, but are unaware of lack of support

@nayafia for 18F

Current perception is they don’t need help

@nayafia for 18F

Community knowledge is hard to access

@nayafia for 18F

Digital infrastructure is changing rapidly

@nayafia for 18F

Inclusion of non-coding skills and support

@nayafia for 18F

Open source attracts people who love to code

@nayafia for 18F

Other functions get overlooked or ignored

@nayafia for 18F

Yet we hear over and over that these things matter

Bitcoin “Why has Bitcoin failed? It has failed because the community has failed.”

Linux “We had really big fights back in 2002 or so...there was no technical solution. The solution ended up being better..management.”

Node.js “If we...don’t create a structure around it we open ourselves up to informal influence that could be wide in scope.”

@nayafia for 18F

This is not a crisis, but an opportunity

@nayafia for 18F

Better infrastructure =

Tools become more accessibleMore people build amazing things we

can’t even dream ofMore inclusion of talent -> better hiringCompanies can build, thrive and scale

fasterhax0rs don’t take down our companies

@nayafia for 18F

We had no idea in 1996 what people would do with the Internet.

@nayafia for 18F

SOFTWARE