You are on page 1of 63

Sustainable Open Source

Software Projects
Stephen R. Walli
Microsoft, Azure Office of the CTO
Johns Hopkins University
@stephenrwalli
‘Open Source’ is unsustainable

10-Nov-21 © Stephen R Walli 2


‘Open Source’ is unsustainable
[I say that with tongue firmly in cheek]

10-Nov-21 © Stephen R Walli 3


But it must be true because everyone is struggling

Non-profits struggle to identify significant projects


Individual developers struggle to support their own projects
End users struggle with insecure projects
Startups struggle with partners/users using projects (not buying products)

10-Nov-21 © Stephen R Walli 4


Software Was
Democratized

10-Nov-21 © Stephen R Walli 5


Software Was
Democratized

Anyone Can Be A Net


Producer And Publisher
Of Software Now
10-Nov-21 © Stephen R Walli 6
2012 Octoverse 4.6M+ repositories
2016 Octoverse 19.4M+ repositories
2018 Octoverse 96M+ repositories

10-Nov-21 © Stephen R Walli 7


2012 Octoverse 4.6M+ repositories
2016 Octoverse 19.4M+ repositories
2018 Octoverse 96M+ repositories
2019 Octoverse 140M+ repositories

10-Nov-21 © Stephen R Walli 8


2012 Octoverse 4.6M+ repositories
2016 Octoverse 19.4M+ repositories
2018 Octoverse 96M+ repositories
2019 Octoverse 140M+ repositories
2020 Octoverse 200M+ repositories

10-Nov-21 © Stephen R Walli 9


“Software isn’t eating the world.”
— Not Marc Andreesen

10-Nov-21 © Stephen R Walli 10


“We are drowning in software – most of it mediocre,
duplicative, and bad.”
— Still Not Marc Andreesen

10-Nov-21 © Stephen R Walli 11


Cooking & Software
Where You Choose to Live

10-Nov-21 © Stephen R Walli 12


We All Know How To Fry An Egg
10-Nov-21 © Stephen R Walli 13
We May Get Good Enough To Cook For Friends

10-Nov-21 © Stephen R Walli 14


We May
Tackle The
Holiday
Meal

10-Nov-21 © Stephen R Walli 15


We May Get
Good At A
Particular
Type of
Cooking

10-Nov-21 © Stephen R Walli 16


Restaurant
10-Nov-21 © Stephen R Walli 17
We go
from this

10-Nov-21 © Stephen R Walli 18


…to this.

10-Nov-21 © Stephen R Walli 19


This has implications
There is likely a team with specialized roles
There is an added layer of communications
There are standards to be met and maintained
There needs to be reliable and repeatable delivery

10-Nov-21 © Stephen R Walli 20


This has implications
There is likely a team with specialized roles
There is an added layer of communications
There are standards to be met and maintained
There needs to be reliable and repeatable delivery

There are customers


There is a business to run
There are regulations that need to be served
There is money to be managed
There are employees to be hired, motivated

10-Nov-21 © Stephen R Walli 21


… so to with software
There is likely a team with specialized roles
There is an added layer of communications
There are standards to be met and maintained
There needs to be reliable and repeatable delivery

There are customers


There is a business to run
There are regulations that need to be served
There is money to be managed
There are employees to be hired, motivated

10-Nov-21 © Stephen R Walli 22


Community and Your Neighborhood

10-Nov-21 © Stephen R Walli 23


In the World of
Atoms: You choose
your neighborhood
for very personal
reasons

10-Nov-21 © Stephen R Walli 24


Three Sorts of Neighbours in Your Community

The people that simply want


to live there ….

The people that report


potholes and trash, etc. ….

The people that organize


the block party, pick up
trash, etc. ….

10-Nov-21 © Stephen R Walli 25


Three Sorts of People in Your Project Community

The people that simply want


to use the software

The people that report bugs,


offer ideas for features, etc.

The people that


contribute code,
documentation, use cases,
etc.

10-Nov-21 © Stephen R Walli 26


Rules of Thumb and Orders of Magnitude

For every 1000 users, …

… a 100 will file a bug, …

… out of which 10 give you


a patch, …

… out of which 1 actually read


your contribution guidelines.
10-Nov-21 © Stephen R Walli 27
Rules of Thumb and Orders of Magnitude

For every 900 FREELOADERS

… a 100 people will file a bug, …

… out of which 10 give you


a patch, …

… out of which 1 actually read


your contribution guidelines.
10-Nov-21 © Stephen R Walli 28
Rules of Thumb and Orders of Magnitude
These users still identify as members of your tribe

For every 900 FREELOADERS

… a 100 people will file a bug, …

… out of which 10 give you


a patch, …

… out of which 1 actually read


your contribution guidelines.
10-Nov-21 © Stephen R Walli 29
Freeloaders means you’re doing it right!
They are still members of your tribe.
10-Nov-21 © Stephen R Walli 30
How does an open source project work?
What is the purpose of an open source non-profit?
What is our strategic purpose for sharing outbound

Who owns the software?


What is the software engineering culture?
Is the project community healthy?
What investment is required to manage risk?
10-Nov-21 © Stephen R Walli 31
Questions for open source project production
How does an open source project work?
What is the purpose of an open source non-profit?
What is our strategic purpose for sharing outbound?
Questions for open source project consumption
Who owns the software?
What is the software engineering culture?
Is the project community healthy?
What investment must we make to manage risk?
10-Nov-21 © Stephen R Walli 32
Three On Ramps For Project Growth
Products
Training

Users

Developers
Books Consulting
Committers
+
Working
Code
Distributions

Contractors
10-Nov-21 © Stephen R Walli 33
Three On Ramps for Project Growth

How do you encourage people to use your project?


(How do you make it easy to install/configure/use the software?)

How do you encourage developers selfishly to experiment?


(How do you make it easy to build/test/experiment?)

How do you encourage developers to share their work?


(How do you make it easy to contribute?)

10-Nov-21 © Stephen R Walli 34


Ask not what your community
can do for you
10-Nov-21 © Stephen R Walli 35
The Evolution of an Open Source Project

Services
Products

Project Ecosystem
Maintainer(s)
Contributors
Community Books
Training

10-Nov-21 © Stephen R Walli 36


The Evolution of an Open Source Project

Services
Products

Project Ecosystem
Maintainer(s)
Contributors
Community Books
Training

The project creators are sharing outbound under an OSI license with NO expectation of a return.
IF the project creators build a community, then they can capture innovation back to the project.

10-Nov-21 © Stephen R Walli 37


The Evolution of an Open Source Project
Corporate
Contributors
Services
Products

Project Ecosystem
Maintainers
Contributors
Community Books
Training

Personal
Customers
Liability

10-Nov-21 © Stephen R Walli 38


The Evolution … stops
Corporate
Contributors
Services
Products

Project Ecosystem
Maintainers
Contributors
Community Books
Training

Personal
Customers
Liability

10-Nov-21 © Stephen R Walli 39


A Non-Profit Enable The Next Evolution
Corporate
Contributors
Services
Products

Project Ecosystem
Maintainers
Contributors
Community Books
Training

IP Neutrality,
Customers
Liability Management
Business Management,
Marketing, Events

http://www.ifosslr.org/ifosslr/article/view/64
10-Nov-21 © Stephen R Walli 40
Henrik Ingo’s Number Crunch (2010)

http://openlife.cc/blogs/2010/november/how-grow-your-open-source-project-10x-and-revenues-5x
10-Nov-21 © Stephen R Walli 41
The Evolution of a [Modern] Corporate-Owned Open Source Project

Partner/Customer
Contributors
Services
Products

Project Ecosystem
Engineering/
Engineering/
Partner?/ Community Books
Partner?/
Customer?/
Customer?/ Training
Maintainers
Contributors

Setting Customer and Partner Expectations in Community is Critical

10-Nov-21 © Stephen R Walli 42


The Modern Reality of a Corporate Open Source Project
Engineering
Partner/Customer
Contributors
Services
Products

Project
Engineering/
Partner?/
Engineering/
Community
? Ecosystem

Partner?/ Books
Customer?/
Customer?/ Training
Maintainers
Contributors

Setting Customer and Partner Expectations in Community is Critical

10-Nov-21 © Stephen R Walli 43


The Modern Reality of Corporate Open Source Collaboration

Partners/Competitors
Contributors
Services
Products

Project
Engineering/
Partner?/
Engineering/
Community
? Ecosystem

Partner?/ Books
Customer?/
Customer?/ Training
Competitors?/
Competitors?/
Maintainers
Contributors

Setting Collaborator Expectations in Community is Critical

10-Nov-21 © Stephen R Walli 44


Three Types of Software Companies Build

• Core Value Proposition: The solution for the customer for money
• Complement Value Add: Additional components of the solution that
makes the solution to the customer more complete
• Context: Tooling and process that you build for yourself to aid
developing customer solutions

10-Nov-21 © Stephen R Walli 45


Building a project community in context spaces:
• Validates the approach to a problem
• Demonstrates expertise that can be used in recruitment
• Improves the quality of recruitment candidates
• Demonstrates committed values to collaboration amongst developers
that further recruitment goals
• Captures innovation from outside sources

10-Nov-21 © Stephen R Walli 46


Building a project community in complement
value-add spaces:
• Creates stickiness/inertia for the core value.
• Creates experts, advocates, and evangelists around the technology
• Hardens the complements with new configurations and contributions
• Captures direct value to the complements (indirectly to the core)
• Is possibly disruptive to competitors

10-Nov-21 © Stephen R Walli 47


But –
publishing your core value proposition under an
open source license:
• Makes potential partners into competitors
• Allows savvy IT consumers to avoid becoming customers
• Creates confusion for the sales and marketing team

10-Nov-21 © Stephen R Walli 48


Projects are not Products

10-Nov-21 © Stephen R Walli 49


Projects are interesting buckets of technology
developed collaboratively by like-minded engineers

10-Nov-21 © Stephen R Walli 50


Projects are interesting buckets of technology
developed collaboratively by like-minded engineers

Products solve customer problems and money is


exchanged for perceived value

10-Nov-21 © Stephen R Walli 51


Projects have communities
Communities have time and no money

10-Nov-21 © Stephen R Walli 52


Projects have communities
Communities have time and no money

Products have customers


Customers have money and no time

10-Nov-21 © Stephen R Walli 53


Semesters of Code
Open Source Software Engineering

10-Nov-21 © Stephen R Walli 54


Computer Science vs. Software Engineering
10-Nov-21 © Stephen R Walli 55
1 → 10 → 100 → 1000 → … → 1000000

10-Nov-21 © Stephen R Walli 56


1 → 10 → 100 → 1000 → … → 1000000
Software Engineering is delivering software at scale
Scaling for users, developers, complexity

10-Nov-21 © Stephen R Walli 57


Goals
● Use OSI-licensed projects as real-world training grounds (at scale) for
software engineering skills for undergraduates.
● Improve research outcomes for research moving into product pipelines.
● Improve graduate skills as open source projects move into product
pipelines.
● Create graduate hiring networks by involving undergraduates in project
communities.

58
Intersession January 2021
● Working with JH OSPO & the Institute of Applied Open Source
● Intersession is the first 3 weeks of January
● 75-minute classes over 10 days (12.5 hours)
● 27 students spanning all four years of Comp Sci, EE, Math
● Intermediate programming C/C++ pre-requisite (JHU-EN.601.220)
● Lab environment was a simple Ubuntu container on Docker assuming
Windows and Mac laptops as student machines
● Simple Pass/Fail (1 credit instead of the normal 3 credits)
● Assessed on attendance and the "lab report"
● https://github.com/jhu-ospo-courses/JHU-EN.601.210

59
AMA:
Michelle Noorali &
Kelsey Hightower

60
Semesters of Code I
EN.601.270 Open Source Software Engineering (Semesters of Code I) (E, 3 credits)
The course will provide students a development experience focused on learning software engineering
skills to deliver software at scale to a broad community of users associated with open source licensed
projects. The class work will introduce students to ideas behind open source software with structured
modules on recognizing and building healthy project structure, intellectual property basics,
community & project governance, social and ethical concerns, and software economics.
The practical side of the course will engage and mentor students directly in OSI-licensed project
communities to provide hands-on learning experiences of practices covered in the classroom
modules, and team building experience working in the project.
Prerequisites: EN.601.220 Intermediate Programming & EN.601.226 Data Structures (see appendix)
Time: TuTh 10:30-11:45a ET
Limit: 35, CS majors only

61
Semesters of Code Practicum

Practical Project Work (Getting students involved in projects)


● Bootstrapping student skills (avoiding the schedule trap – GSoC learning)
● Matching students and projects
● Vetting and scoping project work
● Training and mentoring the mentors
● 6 OSI-licensed projects participating: Semester.ly, OpenCRAVAT, PASS, Lutece,
PowerShell, Yo WASM (32 student projects, 15 mentors)

62
Futures

Semesters of Code II/III


● Semester long projects, central clearing for matching students & projects
● Stronger engagement with the projects for students building skills
● Eventually expand projects to work term sized projects

The Business of Open Source


● Continuing Education Course for practitioners
● Topics: Projects vs Products, Non-profits, Community dynamics, open
source program offices

63

You might also like