This is the list of what should be handed over (checked by SaFi side after handed over), and also it is a good agenda for the handover meeting:
- Jira - how is the work managed, how to work with it
- Confluence - how is documentation structured, brief overview
- 3rd parties - what, for what, where it is documented
- Contact persons/channels - for 3rd parties, product, …
- Credentials - where are they, haw are they managed
- Dev level test - what is covered, what not, where to put focus, where to be careful
- Bugs/VAPT findings - which are there for SaFi to pick up
- Planned development for MVP - what we were planning to do till the end of January (NFRs, tests, tech debt…)
- Ownership handover
tech leadership (who shall be the person from SaFi’s side if it is already clear)
consult their idea of ownership in the team (if nothing is missing)
cancelation of our meetings and let SaFi create their own invites
- For developers (workshop, and maybe they already know):
code structure
microservices - important microservices and connections for the squad
3rd parties of squad - how they work, pitfalls,
tooling - linters, how to run it locally, how to run tests…
business logic - short intro to business logic and what is the business scope of the squad and what not
Jira
Board: https://safibank.atlassian.net/jira/software/c/projects/SM/boards/34?quickFilter=64 - select without DK
filter to remove frontend items owned by DKatalis:
This board is serving both Common squad items, and also for items that need to be addressed as a common effort by all squads (thus “common” items). Usually, Common squad is involved in some way in these items, but not necessarily implementing them fully:
Item | Explanation |
---|---|
All items with labels | Owned by DKatalis, Common squad has no involvement whatsoever (historically, we had no FE expertise) |
SAF-1279 - External - not Common Squad Backlog | Cross-cutting concerns, implementation done outside of Common squad, but final implementation will be owned by Common squad. This is because we wanted to leverage specific expertise from other groups. |
SM-6622 - Data wipe [DEV] Done | Epic covering the work needed for the data wipe (done), driven by Architecture (Juraj Macháč (Unlicensed)), with Common squad contributions. Work is completed for this one. |
All items tagged with | Non-functional requirements, to be implemented by all squads (where applicable). Common squad is involved with enablement work. |
Confluence
Solution Blueprint: Commons
Common Domain: Domain: Commons
3rd parties
Infobip - primary provider for SMS/email/Viber services Infobip
Macrokiosk - secondary provider for SMS/email services Macrokiosk
Ably - used for sending push notifications, managed by FE team
for monitoring, devs can access ably.com (zhenghong.li (Unlicensed) already has access to SaFi account)
Contacts
Ion Mudreac- Business Owner
Zbyněk Melichar (Unlicensed)- Technical contact for Meiro
for technical contact with the 3rd-party providers Infobip and Macrokiosk, zhenghong.li (Unlicensed) is already handling that part
Bogdan Popa (Unlicensed) - Technical Lead
Credentials
Credentials are stored in CICD Vault and injected for each service (replace brave
with stage
in each link for finding the STAGE env correspondent:
infobip-emai-gateway: https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/apps/infobip-email-gateway/values.yaml
infobip-sms-gateway: https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/apps/infobip-sms-gateway/values.yaml
infobip-viber-gateway: https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/apps/infobip-viber-gateway/values.yaml
macrokiosk-email-gateway: https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/apps/macrokiosk-email-gateway/values.yaml
macrokiosk-sms-gateway: https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/apps/macrokiosk-sms-gateway/values.yaml
output-delivery-status-manager: https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/apps/output-delivery-status-manager/values.yaml
output-manager: https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/apps/output-manager/values.yaml
pdf-generator: https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/apps/pdf-generator/values.yaml
push-notifications-gateway: https://github.com/SafiBank/SaFiMono/blob/main/devops/argocd/environments/brave/apps/push-notifications-gateway/values.yaml
Dev level test
Historically, because the majority of our services were gateways to 3rd-party providers and had simple logic, we mostly relied on manual testing. That is currently being remedied, and the team is on an ongoing effort to improve automated testing and code coverage - covered in the following epic: SAF-1270 - Improve automated testing Backlog
infobip-email-gateway
infobip-sms-gateway
infobip-viber-gateway
macrokiosk-email-gateway:
macrokiosk-sms-gateway:
output-delivery-status-manager:
output-manager:
pdf-generator:
push-notifications-gateway:
Bugs/VAPT findings
No VAPT findings that concern the Common squad. All technical bugs are being tracked in the backlog.
Planned development for MVP
All business-related MVP work for Common squad is completed.
Remaining epics - only covering technical issues:
SAF-1269 - Tech Debt - MVP Backlog
technical debt that the team identified and deemed valuable for the MVP timeframe
30% complete, 16/23 SP remaining
SAF-1267 - Common (Developer Productivity) Backlog
captures incoming technical requests from other squads
80% complete, 21/105 SP remaining
SAF-1270 - Improve automated testing Backlog
writing automated tests, improving confidence in our code and increasing test coverage
18% complete, 37/45 SP remaining
Besides this well-understood effort, additional work (currently in analysis) will be required for the following NFRs:
SAF-1273 - [NFR] Idempotency in services Backlog
the Common squad will own the
idempotency-lib
and will provide guidance for users
SAF-501 - Create GlobalExceptionHandler in common/utils that will be used by all services Backlog
the Common squad will design and implement the GlobalExceptionHandler, to be used by all services
SAF-85 - [NFR] Data privacy - endpoint exposure - Common squad Backlog
SAF-87 - [NFR] Input sanitization - Common squad Backlog
SAF-1272 - [NFR] Data privacy - logging Backlog
Ownership Handover
Handover is already in progress and the identified topics are tracked in this Jira item: SM-7018 - Create/update tech documentation + organize workshops for Common domain Done . The plan is to have documentation pages for each of the services and libraries owned by the Common squad, along with extras on the more important/complex topics.
The main point of contact from SaFi is zhenghong.li (Unlicensed), he will be taking over all technical topics. We’ve already discussed and identified technical gaps, which will be addressed by workshops within the team:
For Developers
Code structure:
documented all services, libraries and plugins owned by Commons squad: Commons Technical Documentation
zhenghong.li (Unlicensed) is already very familiar with the team’s codebase, having contributed consistently until now
User 3077b is currently onboarding, already gained some familiarity with a few of the services by writing automated tests
the workshop topics that were identified are Kafka and GitHub Actions, both were covered:
idempotency-lib is still work-in-progress, not submitted yet
the plan is to have it submitted and documented by end-of-week, along with a PoC on how to use it
- GitHub Actions workshop was covered
- Kafka workshop was covered
- idempotency lib is submitted in GitHub: https://github.com/SafiBank/SaFiMono/tree/main/common/idempotency-lib
- idempotency lib has a PoC done, as an example of how to use it: https://github.com/SafiBank/SaFiMono/pull/8227
- idempotency lib has documentation available in Confluence: Library: idempotency-lib
Microservices:
already documented, SaFi developers are familiar with architecture and code
Third-parties:
Already documented, zhenghong.li (Unlicensed) is familiar with both Infobip and Macrokiosk, while Ably is handled by FE team
Tooling:
SaFi devs are familiar with the build and test processes, and the gaps we identified were covered in the workshops
Business Logic:
squad scope overview: Commons MVP Scope - Notifications (Outbound Communication)
technical details are covered in each microservice’s documentation
Attachments:
image-20221123-054247.png (image/png)
image-20221123-070411.png (image/png)
image-20221123-070602.png (image/png)
image-20221123-070632.png (image/png)
image-20221123-070809.png (image/png)
image-20221123-070831.png (image/png)
image-20221123-070912.png (image/png)
image-20221123-070949.png (image/png)
image-20221123-071002.png (image/png)
image-20221123-071029.png (image/png)
image-20221123-071043.png (image/png)
image-20221123-071102.png (image/png)
image-20221123-071122.png (image/png)