k8snetworkplumbingwg / multus-cni

A CNI meta-plugin for multi-homed pods in Kubernetes
Apache License 2.0
2.34k stars 582 forks source link

[AprilFool]Proposal of multus development process transformation to hyper agile software development process #1056

Closed s1061123 closed 1 year ago

s1061123 commented 1 year ago

WARNING!

Before read the following proposal, you need to

Appreciated to your understanding, in advance.

Background

Over the years, multus project continues the development with several evolution into Kubernetes networking, keeping the its quality. Now is the good timing to leap beyond the current agile software development. I propose the transformation of multus development process beyond the current agile development.

Proposal

This transformation consists from following concepts:

These are mandatory required for the transformation and none must be omitted.

Daily Software Release with Scalable Version Semantics

As noted above, multus main branch is very stable. Once build is failed, then immediate fix is commited to master branch. We do not keep the build broken more than 1 days 1. This means it is possible to release stable software release to every day. This is pretty agile and it must follow CI/CD pipeline concepts in Cloud Native. So we could release new multus every day as a stable, new version multus release. In this case, for ease of version number maintenance, let's provide new scalable version semantics as follows:

x.y.z

x: incremented in a year
y: incremented in a month
z: incremented in a day (if CI build is failed, it may be incremented)

This daily software release and scalable version semantics makes users estimate multus release cycle easily. For example, for new version, 5.0 will be released next year from 4.0 release and 5.0.1 will be released the next day from 5.0.0 release day.

Provide Strict Version Compativility

To make the multus release robust and make multus release consistent among the version, above version should be implemented in all components of multus, including:

These components must check each multus version and verify its consistency and must exit immediately if both version is not same.

Provide Strict Maintenance Version Policy with Upgrade Path

We also need to concern how many version should be actively maintained and how we provide upgrade path for each release. To optimize the effort and maximize its agility, we shoud maintain the last two versions (multus version released today and multus version released yesterday). Software upgrade path follows: it allows only upgrade from the last version. So '5.0' to '6.0', user need to upgrade 365 times (or 366 times). This may seem to be difficult to users to get used to, however, it is not actually difficult because it can be automated powered by several AI supported platform2: Chat GPT, Bard (need reference) and so on. Hence the user don''t have to concern.

Conclusion

This proposal introduces new multus development process to fit into (upcoming, maybe) new agile software development, featured by AI. I believe this brand-new cutting-edge super-duper agile software development process must provide users to mind-blowing experience (whatever good or bad).

s1061123 commented 1 year ago

This issue is of couse closed with 'not planned'. See you next year's April fools day ;)