I wasn't implying a formal paper work people need to follow. I just wanted to establish a consensus on the discussions of which features to keep/drop should be driven by data.
On Fri, Sep 29, 2023 at 8:05 PM Matt Sicker <m...@musigma.org> wrote: > I think it could be valuable for us to establish some form of an RFC > process for proposing and developing major new features. I also want to > avoid being too process-heavy here as that would also disincentivize > contributions. I agree that we should try to be more data-driven to > determine what features and products should have the most attention. > > I do like the idea of having “sample” plugins which are not distributed as > binaries, though, which can be used in documentation for examples of how to > integrate your own systems. With the flexibility of the plugin system here, > we can defer the implementation of more obscure integrations to the end > user. > > I will note that we do already have some level of filtering to what we > include. I’ve proposed numerous features in the past that I didn’t pursue > due to reasons raised by others or lack of interest. > > > On Sep 29, 2023, at 2:59 AM, Volkan Yazıcı <vol...@yazi.ci> wrote: > > > > I want to challenge the current way of PMC determining the product > feature > > set and work towards a more sustainable alternative. > > > > Logging Services team... > > > > - delivers mission-critical products that are deployed at the core of > > the world-wide infrastructure (actually, in Mars too) > > - is short on development resources compared to its wide range of > > offerings > > - deals with substantial amount of legacy > > - suffers from knowledge silo > > > > Any IT team in this state would be really conservative on accepting new > > features and try hard to get rid of the bloat. They would react to this > > challenge by first discovering the user base, pinpointing the core > values, > > and then lazer-focusing the limited development resources on to the > crucial > > deliverables. Though we do something totally different, one can even say > > the opposite. Below I share excerpts from recent mailing list posts. > > > > *"I had added [X] ... to show how to write plugins and for some > > consulting-related use cases"* – PMC member explaining how feature X was > > released > > > > *"... stuff seems like it could be useful"* – PMC member asking to keep > > feature X > > > > *"my employer used [X] ... for anyone implementing ... this would be very > > relevant. By archiving this we are basically telling users that they > > cannot use it any more since it will no longer be supported. For that > > reason I am not in favor of [retiring]"* – PMC member asking to keep > > feature X > > > > *"We [the employer] ... use [X]"* – PMC member asking to keep feature X > > > > *"User base [is] ... very low to non-existent."* – PMC member asking to > > keep product X > > > > *"[PMC member] has steadfastly [reacted] ... and until he positively says > > he will no longer maintain it I am not willing to override that"* – PMC > > member asking to keep product X because another (one and only) PMC member > > reacted on product retirement inquiry > > > > *"Our employers are ... paying customers."* – a PMC member explaining why > > we should keep feature X used by an organization employing another PMC > > member > > > > > > I see a pattern in the way we decide to maintain a feature/product: > > > > - It is not data-driven. It is disconnected from its user base. No > usage > > statistics, etc. is shared or used. > > - We serve individuals' and employers' agendas. > > - We underestimate the cost of adding/keeping a feature. > > > > I think this diet is "unhealthy" because: > > > > - It adds up to the bloat. It is yet another component developers need > > to maintain its dependencies, documentation, website, integration with > the > > build system, etc. This bizarrely slows down the development > experience. > > (Ever wondered how much `log4j-osgi` takes during `./mvnw verify`?) > > - It adds up to the attack surface. > > - Features that are supposed to be optional get shipped to users > without > > their consent. (Consider the percentage of the Log4Shell victims that > used > > the JNDI functionality at all.) > > - Scarce development resources get wasted on chores due to the > > excessive landscape. > > - It gives users the wrong impression that the feature/product is > > maintained, though under the hood it is just kept there because a > > privileged group wants so. > > > > I want to refine this approach with your help. To start the discussion, I > > propose the following strategy instead: > > > > *"We only accept a feature with data-driven justification."* – Have a > brand > > new idea? Grab yourself a GitHub/GitLab repository that belongs to either > > you or your employer, knock yourself out without any ASF/PMC burdens, and > > amaze your users. Once the user attraction gets enough gravity, let's > > discuss blessing it as a part of the official Logging Services offering. > > Official support channels are always open to assist the developers of > such > > external efforts. > > > > *"We only keep a feature with data-driven justification."* – Do you > think a > > feature needs to be retired? Bring it up for discussion. PMC should > > evaluate the request based on numbers and this process should be > > independent of the individuals'/employers' agendas. If PMC decides to > > retire a feature/product *and* there are people who volunteer to continue > > the development on a successor fork outside of ASF, PMC should do their > due > > diligence to point existing users to this fork without any endorsement. > > > > > > I look forward to hearing your thoughts. > >