The second element of the SAFe Continuous Delivery Pipeline (CDP) is Continuous Integration (CI).
This is where top priority features for a program increment get decomposed into stories. I recommend the use of Use Case for feature decomposition (into stories), design, and testing.
Use Case Driven Design, Build, Test: decomposing a feature into pint-sized stories using Use Case comes naturally: it has an Actor and a Use Case (a need). Example: As a family man with a young family, I would need a people-mover van, so that the whole family can go to short trips on weekends. It has an Actor with a specific persona, the ‘what’ of his need is described, and the ‘why’ of his need is also described.
Use Case is orthogonal to its implementation… the ‘what’ — the Use Case (story) — does not dictate ‘how’ it is built and achieved. The ‘how’ is left to technologists.
Three things to remember for CI:
1) Design, Build, and Test (DBT) a story within a sprint / iteration. An iteration is time-boxed (2 weeks). A well-refined story — meeting the DOR — is paramount.
2) Use Cases are test cases! Use these for the DOD.
3) Flow is very important. Anything that inhibits flow of value must be removed. Having a definition of ready (DOR) and definition of done (DOD) on all stories will definitely create a better flow of value … team’s velocity improves. Use Cases can certainly help with both DOR and DOD. Additionally, a good DOR for a story is when it exhibits the famous acronym, INVEST:
The third CDP element is Continuous Deployment (CD). Code is deployed in the production environment… in a continuous and very frequent fashion… some companies deploy everyday to production… but the value is not necessarily available to the general public… limited only to a very few to allow further testing… this time, testing in production environment.
SAFe promotes the idea of Release on Demand… meaning, release the value to the users when it is demanded to be so. By the time this ‘release on demand’ happens, because of CD, the system has already been thoroughly tested in the production environment… using various Use Cases.