1 of 63

Open Roadmaps for Open Communities

Oleg Nenashev,

@oleg_nenashev

1

FOSS Backstage

Mar 2023

2 of 63

> whoami

2

Oleg Nenashev

“I am a beaver who builds and maintains the communities”

3 of 63

> whoami --community

3

Future Russia -

Switzerland

#RussiansAgainstWar

#StandWithUkraine

4 of 63

Agenda

  • What is the roadmap?
  • Guiding principles
  • How do public roadmaps help open source?
  • Our story in Jenkins
  • How to do it better?

4

Slides:

NOTE: The first version of the talk was done together with Mark Waite for cdCon 2021. Credits to CloudBees for sponsoring time for the roadmap work in Jenkins

5 of 63

It is NOT a success story

… but you might have one

5

6 of 63

What is roadmap?

6

7 of 63

What is roadmap?

7

A technology roadmap is a flexible planning technique to support strategic and long-range planning, by matching short-term and long-term goals with specific technology solutions

Keywords:

  • flexible planning
  • support strategic and long-range planning
  • matching short-term and long-term goals

8 of 63

Roadmaps take different forms

8

9 of 63

// Visual & Slides - CDF SIG Interoperability

9

10 of 63

// Dashboards

10

11 of 63

//Just Text

11

github.com/tektoncd/pipeline/blob/main/roadmap.md

NOTE: Actual Roadmap is on GitHub Projects

12 of 63

// DYI Roadmap

12

RELEASED PREVIEW CURRENT NEAR-TERM FUTURE

13 of 63

Why roadmap?

Our story in Jenkins

13

14 of 63

Who is Mr. Jenkins?

  • Automation server/framework
  • Open-source
  • More than 1900 plugins
  • Big community
  • 4,000+ contributors per year
  • A part of the Continuous Delivery Foundation (CDF)

14

15 of 63

15

15

16 of 63

Jenkins’ recipe of success

  • Extensible
  • General-purpose
  • Community

16

17 of 63

Jenkins community

  • Open governance
  • Jenkins is contributor-driven
  • Open to any individual and company
  • Maintainers have full freedom

17

18 of 63

Growth challenges

  • Isolated sub-communities
  • Lack of transparency
  • Perceived lack of focus
  • Perceived and, sometimes, real vendor lock-in
  • Hard to get multiple contributors behind big initiatives
  • Hard to join initiatives

18

19 of 63

Jenkins community consolidation

  • 2011 - Open Governance, Governance Meetings
  • 2015 - Teams, Jenkins Officers, sub-projects
  • 2016 - First Contributor Summit
  • 2017 - Jenkins Enhancement Proposals
  • 2018 - Special interest groups (SIGs)
  • 2019 - Governance Board elections, CDF Membership
  • 2020 - Graduation at CDF

19

20 of 63

2020 Time to become more public about our plans?

20

21 of 63

Public Roadmap!

jenkins.io/project/roadmap

21

22 of 63

Jenkins Roadmap. Our Timeline

  • Feb, 2020 - Contributor Summit @ FOSDEM
    • Initial discussions
  • Mar, 2020 - Jenkins Enhancement Proposal (JEP-14)
  • Apr, 2020 - Initial preview
  • Apr - Jun 2020 - Roadmap reviews
    • Mailing list discussions
    • SIG meetings and planning
  • Jul, 2020 - Public announcement

22

23 of 63

Our guiding principles

  • Community-driven
  • Open and transparent process
  • Open data
  • No commitment on dates
  • No commitment on delivery at all

23

24 of 63

Public Roadmap

jenkins.io/project/roadmap

Published on July 15, 2020

Revised periodically

Target audience:

  • Jenkins users
  • Contributors
  • Adopters and vendors

24

RELEASED PREVIEW CURRENT NEAR-TERM FUTURE

25 of 63

Roadmap Contents

Key initiatives in all areas

  • Features
  • Distributions and packaging
  • Documentation
  • Developer tools
  • Infrastructure and services
  • Community, Governance

Grouping by use-cases

Initiative Horizons

25

RELEASED PREVIEW CURRENT NEAR-TERM FUTURE

26 of 63

Let’s zoom in!

jenkins.io/project/roadmap

26

27 of 63

Example: User Experience and User Interface

UI/UX Revamp: Look & Feel, Themes, Accessibility

User documentation and guidelines

27

28 of 63

… and Cloud Platforms

Kubernetes, Kubernetes, Kubernetes, …

Pluggable Storage

Jenkinsfile Runner – Portable Pipeline engine

Support for more Pipeline engines, esp. Tekton

28

29 of 63

Roadmap is NOT

just about features!

Roadmap is used by the community

29

30 of 63

+ All Community Initiatives

  • Contributor onboarding and outreach programs
  • Developer tools and services
  • Open Governance
  • Community Events
  • Outreach Programs

30

31 of 63

Jenkins: It is a great time to contribute!

31

32 of 63

  • Internal Project infrastructure

32

33 of 63

33

34 of 63

Stories where Our Roadmap helped

  • Contributor Onboarding Flow
  • Quality & Static analysis efforts
  • Dark theme
  • Tekton Client Plugin
  • Jenkins Operator for Kubernetes
  • Read only configuration as code
  • New Windows installer

34

35 of 63

… and where it did not

  • Attracting company contributors
  • Advocacy and Outreach efforts
  • Community marketing
  • The roadmap itself
  • … anything else in longer term

35

36 of 63

We failed in Jenkins

36

37 of 63

37

NOW:

Jenkins

Roadmap is stale and outdated

38 of 63

38

39 of 63

Challenges we experienced

  1. Bus factor
  2. Inconsistencies
  3. Stalled progress
  4. Roadmap bloat
  5. Off-roadmap initiatives

39

40 of 63

Bus factor

It is not enough to have one champion of the roadmap

“It’s me, hi, I’m the problem, it’s me”.gif

40

41 of 63

Challenge:

Roadmap Inconsistencies

Solution(s)

  • Regular roadmap reviews
  • Regular status reviews at SIG meetings

41

42 of 63

Roadmap-as-Code

may have been a mistake

42

43 of 63

Challenge:

Stalled progress

Solution(s)

  • More publicity
  • SIGs leading initiatives
  • Outreach programs to facilitate roadmap
  • Ask for help
  • Removing things is okay

43

44 of 63

Challenge:

Roadmap Bloat

Solution(s)

  • Categories
  • Filters
  • Policy on number of items per category

44

45 of 63

Challenge:

Roadmap Bloat

Solution(s)

  • Categories
  • Filters
  • Policy on number of items per category

45

46 of 63

Challenge:

Off-roadmap initiatives

Solution(s)

  • Embrace initiatives
  • Include to the roadmap when possible
  • Invite initiatives to join SIGs and sub-projects

46

47 of 63

What could have we done better

in 2023?

47

48 of 63

What could one do in 2023?

  • Bring the roadmap right into the issue tracker
    • E.g.: GitHub Projects (see later)
    • Or Jira…
  • Make issues the roadmap content
  • Avoid duplication
  • WYSIWIG roadmap management
  • K.I.S.S.

48

49 of 63

49

The Octocat in a Room

50 of 63

50

51 of 63

GitHub Projects

51

Projects

Beta

1.0

GitHub Projects 2.0+

52 of 63

Default solution for GitHub ecosystem

  • Solves many issues by direct integration with GitHub
  • Good UX for small projects
  • Publicly visible w/o GitHub auth
  • GitHub Automation Capabilities

52

Projects

53 of 63

Example: CDF Roadmap

53

54 of 63

Limitations of GitHub Projects

  • Bad UX beyond 5 columns
  • No Mobile mode
  • Gets cluttered by labels & Co
  • GitHub QL does not support complex expressions

54

GitHub Projects 2.0+

55 of 63

Limitations of GitHub Projects

  • Tied to a single organization, no support for multiple orgs
  • No support for migrating repositories between orgs
  • “Roadmap View” is tied to dates and not advised for open source
  • [Even more lock-in]?

55

GitHub Projects 2.0+

56 of 63

NEW: GitHub “Roadmap View”

56

Dates or Iterations,

but still time “commitments”

57 of 63

Summary

57

58 of 63

What we learned

  • Roadmaps coordinate effort
  • Roadmaps share vision
  • Roadmaps != schedules

58

59 of 63

Takeaways

  • Your community needs a public roadmap
  • Be conscious and explicit about what you commit to
  • Keep it simple
  • Ensure sustainability of your community… and the roadmap

59

60 of 63

Open Source

It’s a great time to contribute ;)

60

61 of 63

61

Contacts:

E-mail: o.v.nenashev@gmail.com

GitHub: oleg-nenashev

Twitter: @oleg_nenashev

QUESTIONS?

62 of 63

Credits

  • All Jenkins contributors
  • Mark Waite, CloudBees
    • For the original version we did together at cdCon 2021
  • OpenMoji project
    • https://openmoji.org/
  • Online comics, all of them

62

63 of 63

> whoami

63

  • Manager, CloudBees
  • Jenkins Core maintainer
  • Jenkins Documentation Officer
  • Git plugin maintainer