Brainstorm: Components of the Free Software Development Lifecycle (wiki post)

The topic below is a wiki post that anyone can edit, by clicking the ‘edit’ button on the toolbar.

What constitutes the FSDL?

Objective of the wiki post below is to find ways to break down the FSDL into manageable chunks for which Challenges and Patterns can be defined. It is a brainstorm and need not be well-structured. Cleaning up, filtering and shifting can come later.

The idea is to find an intuitive breakdown structure that can be used to structure the Social Coding website. In a later stage we might be able to create a comprehensive documentation framework for the FSDL that can be easily crowdsourced and extended.

Some inspirations highlighting similar breakdowns into a pattern language:

Free Software Development Lifecycle (FSDL)

Lifecycle activities / processes / (sub)domains

Just list anything with relation to software development, even though they may be less applicable directly to FOSS, or have less applicable names (e.g. ‘business modeling’ or ‘stakeholders’). Finding appropriate terminology is for a future exercise :laughing:

  • Ideation
  • Business modeling
    • Stakeholder management
    • Domain modeling
    • Requirements gathering / elicitation
  • Product management
    • User experience
    • Roadmapping
    • Licensing
  • Project management
    • Funding / grant writing
    • Task management / Issue tracking
  • Architecture design
    • Architecture notebook
    • Techstack / software selection
  • Implementation / coding
    • Development tools
  • Revision control
    • Patches / Pull requests
    • Code review
  • Quality assurance
    • Coding standards
    • Documentation standards
    • Testing
  • Packaging
    • Supply-chain packaging
  • Ecosystem
    • Strategic alliance
  • Community management
    • Formation
    • Onboarding
    • Governance
    • Contributing
    • Growth
  • Sysops
    • Deployment / Installation
    • CI / CD
    • Administration
  • Advocacy / PR
    • Project website
  • Personal work methods
  • End of Life
    • Archiving
    • Forking

The ‘deliverables’ axis

It becomes increasingly clear that besides the Lifecycle itself, there is another axis for which to track challenges and collect best-practices. This axis relates to the perspective of the FOSS project deliverables. In terms of Social Coding Principles they relate more to the GEM Practices.

Lacking a proper name for this axis yet, a list of these aspects:

  • Diversity
  • Accessibility
  • Software Transparency

Discussion

  • There are likely different ways to slice the FSDL, different perspectives to take. The Rational Unified Process for instance focuses on different processes and when they apply wrt the lifecycle of the project, as seen in the following diagram:

  • Good article comparing different models: SDLC Methodologies with Pros & Cons | Software Development Lifecycle

    • Maybe these SLDC’s (at least commonly used ones) should be listed in the Pracititioners Guide under “Challenge: Finding the right process”.
  • A “Diversity Guide for Small Organizations” is discussed (French & English) & drafted

    • There is a lot of overlap to Social Coding Movement. If the guide cannot be direct part of FSDL (see: The ‘deliverables’ axis above), then maybe this project wants to be under the co-shared community umbrella (see draft doc on what that entails).