Replies: 9 comments 20 replies
-
Happy to have this discussion here, but I think this is probably:
|
Beta Was this translation helpful? Give feedback.
-
I don't have any other better place for it right now. I added it in the context of this discussion, in order to help the IOG audience (that has access to Confluence); In order to not affect the history, I will remove it after we will have a decision on this discussion. |
Beta Was this translation helpful? Give feedback.
-
I am looking for agreement at least from:
Optional: |
Beta Was this translation helpful? Give feedback.
-
@dorin100 I think better visibility is great, but I do have some questions. I'll mostly be wearing my "ledger team hat", just so that I can make it concrete, but of course I love that this is a team effort!
|
Beta Was this translation helpful? Give feedback.
-
I think for this to be in the handbook, we need to make this super generic. That's difficult because each tribe is going to have a different model. Ignoring what I just said for the moment, I'm going to analyze this from the perspective of Cardano Node, I think this would be something like Squad leads coming together to align on missing gaps. For example, the following questions would need to be answered:
If this can be made generic enough to apply to all Cardano tribes within IOG, I'd be fine having it in the handbook, but otherwise it probably makes more sense to be more local to the tribe. |
Beta Was this translation helpful? Give feedback.
-
@coot what do you think about this? Is it something we can apply for the upcoming P2P functionality? |
Beta Was this translation helpful? Give feedback.
-
My 2c: an overarching guideline in the CEH could be very helpful. I'm not sure, though, whether you are suggesting that we set up a decision table for each package (which means Plutus has its own table for each feature in each release, same with ledger etc.), or a decision table per node release candidate (which is what your example is). In the former case, would it be better to let each squad decide the process for themselves, and document it as part of their release process? I'd imagine the ideal process could vary from package to package (e.g., I wouldn't imagine using the same process for Plutus Core and Plutus Tools - some Plutus Tools packages are far less mission critical compared to the node itself). In the latter case, this should belong to the node release process rather than the CEH. This would be my preference because it's nice and simple - as soon as everything is checked in the table, we are ready to tag the rc as the official release! |
Beta Was this translation helpful? Give feedback.
-
Discussion linked to #16 |
Beta Was this translation helpful? Give feedback.
-
My 2 cts:
|
Beta Was this translation helpful? Give feedback.
-
Context
With the latest hard forks (Alonzo and Babbage), the Cardano blockchain became a "mission critical system" with many businesses operating on top of it (stake pools, dApps, exchanges, etc). In this context, the Cardano Node releases we are doing have a direct impact on the value of these businesses and also in the Cardano adoption.
Working on such a critical system, our release decision is extremely sensitive and we need to make sure that we (i) don't affect the existing users & businesses and that (ii) we are increasing the flow of value.
In order to decrease the friction during the Quality Control phase (on the Validation & Verification operations) but also in order to speed up the releases, it would be useful to have a "evidence-based decision process" for developing, testing, and releasing new functionalities.
During the Lisbon meetup, together with Jordan, Vitor, Carlos, and others we defined and adopted a user-facing-functionality template to be used between the Cardano System Test and CLI/API teams. It includes a generic Definition of Done (with all the steps that need to happen during the SDLC) but also the Acceptance Criteria - this way the team (dev, product, system test, project, delivery) is all the time in sync and the probability of delivering good quality functionalities is increased (the whole teams works together and shares the responsibility of the deliverables).
On the Cardano System Test team, we are tracking Quality Control activities in a single place in order to increase clarity and visibility on the required actions versus the remaining ones. Here is an example for tracking the quality control & release activities for a feature delivered together with the Plutus Core squad.
Problem
Now, in the context of other teams developing user-facing functionalities (like UTXO-HD, P2P, new Tracing System, etc), I feel it would be useful to have a similar process defined and used for all user-facing functionalities at Cardano (Core) level.
To start this discussion, my proposal is to create a checklist with all the activities & owners/responsible for (i) Quality Control and (ii) Release decisions.
Proposal
The checklist could be a generic Definition of Done
and the Quality Control activities could be tracked through a decision table like the below one:
LE:
Beta Was this translation helpful? Give feedback.
All reactions