/
CPS Ways of Working (WoW)
CPS Ways of Working (WoW)
See the following:
CPS Team Way-of-Working
A Story/user story is a software system requirement expressed in a few short sentences, using non-technical language. A User Story should express needs from the user's perspective. This can be conveyed in a syntax way like the below illustration
- Jira Stories/Tasks are groomed by the team in weekly meetings or on demand as required
User Story Syntax Expression
As a <user> =
who
I want to <be able to
do
ABC> = what
So that <XYZ can be
done
> = why
- The label 'Groomed' will be added when the team agrees there is enough information in the ticket, the scope is clear and acceptance criteria are defined
- Grooming is not compulsory for Jira (sub)tasks (not affecting source code)
- Select the appropriate release/Fix Version the feature is intended for.
- Add user stories to relevant epic
- Backlog should be in priority order.
- Check bugs first, unless specially agreed they always have the highest priority
- Check the next available user story is 'Groomed' and there are no blocking dependencies
- if it not groomed but seems to be next in line, call a quick meeting with PTL and available team members to groom it as soon as is practical
- Check with PTL if story can be taken as there could always be last minute updates or changes that might prioritize a different task
- Inform team about you intention to take user story
- Assign user story to yourself
- Set user story to In progress! (even if starting with some study first)
- If required (typically agreed during grooming) create a Implementation Proposal page here: Implementation Proposals
- You might find a proposal is needed anyway and help you code and share intention for code solution with team and or address specific issues that are discovered during implementation phase
- Implementation Proposals are also good for knowledge sharing with the team and a quick meeting about it might be required depending on the nature of the user story
- Implementation Proposals can also serve as permanent developer documentation and might require further addition e.g. for CPS Exceptions and REST APIs HTTP Response Codes
- Sub task(s) can be created to track the work (especially for larger user stories) and/or delegate but this is optional
- Commit early and frequently
- It is always good to give the team a heads up and share early!
- Ensure the relevant team developers are added as reviewer typically the work-item owner and at least 2 others, see more details on review process below
- Use the CPS Slack channel to inform the team that a commit is ready for review or re-review once comments have bene implemented
- The WiP (Work in Progress) flag in Gerrit can be used to indicate that review is not ready for review with a fine toothcomb yet but it can also simply be stated in the commit message
- All java code commits should be accompanied with test ware covering the new or modified code (unless agreed by team to handle it in a separate commit in special circumstances)
- Review promptly, none of us like context switching but we cant have developer sitting and waiting for reviews either, try to balance this!
- Use Code Review Checklist : CPS Code Review Check List
- Please review completely ie. it shouldn't be necessary to add more comments on unchanged code after committer as applied your previous comments.
- Please close any resolve commits using 'Done' option. It is up to the commenter to re-open if they don't agree with your solution.
- Depending on the user story a demo might be required before it can be closed
- Demos should be recorded and added to CPS User Story Demos
Code, Merge requirements and Jira updates are further detailed in next few sections
Code Review Process
- Submitters should be pro-active getting their work reviewed
- Work-Item Owner (WIO) definitely should review related commits
- Submitter should always self-review before submitting to gerrit.onap (use IntelliJ history view or Nodix commit)
- Aspects to review
- Functional/AC -> WIO
- Technical/quality. Anyone should be able to
- Not all coders need to get involved in all reviews, this could be counter productive
- Ideally about 4 reviewers in total
- Scenario A
- Submitter
- Work Item owner
- + 2 additional reviewers
- Scenario B
- Submitter = Work Item Owner
- Other Senior developer
- + 2 additional reviewers
- Scenario A
- Ideally about 4 reviewers in total
- Others can view of course , maybe alert blocking issues. But preferably focus on more relevant commit reviews
- See also Committer Best Practices
Code Requirements
- Copyright included in each file. Apache 2 for coding files.
- The Copyright line for contributing organization inserted or updated reflecting the contribution year.
- A LICENSE.txt file placed at the root of the repo to provide umbrella coverage.
- Unit testing coverage > 90% using Persistence Layer Testing and Groovy & Spock
- We will follow ONAP Recommended Software Development Best Practices: Developer Best Practices
Help-process
- Preferred the agreed point if Contact as per Plan
- WIO can be found in CPS R11 Release Planning
- Agree in Stand-up who can help
JIRA Status Updates
Move To | When |
---|---|
In-progress | The moment you start working on it (incl. analysis) |
Submitted | The story/task is ready to be reviewed. |
Delivered | The review is merged, merge & CICD jobs are successful. |
Closed | Documentations are updated. Complete demo to team. |
POM Versioning
- Major: Update for major changes
- Minor: Update for backwards-incompatible changes
- Patch: Update for new functionality, APIs, & REST endpoints
Steps to follow when bumping version:
- Update all pom files
- set to x.y.z-SNAPSHOT by running mvn versions:set -DnewVersion=<snapshot version>
- Update major, minor, patch, as needed, in version.properties
- Add section in release-notes.rst for next release
- Update commit message (if applicable)
, multiple selections available,
Related content
Work in a Sprint
Work in a Sprint
More like this
CPS Definition of Done (and FSA)
CPS Definition of Done (and FSA)
More like this
Epic, Story, Task and Bugs
Epic, Story, Task and Bugs
More like this
Jira How to?
Jira How to?
More like this
Project Proposal Process Overview
Project Proposal Process Overview
More like this
CPS Ways of Working
CPS Ways of Working
More like this