A development dependency (for purposes of this page) is when a development effort requires requirements/work/support from more than one team. As FOLIO continues to grow, it is important that we have a common understanding for how to handle such dependencies. The key to successful handling of dependencies - Communicate as early and often as possible.
Dependency scenarios
Changing workflow (Example: )
Shared apps/workflow (Example: )
Shared backlog (Example: )
Require development from another team (Example: )
Developing in a module that is owned by another team (Example: )
Developing in a module where multiple teams contribute code (Example: )
New development team (Example: )
Integration (Example: )
Best Practices for handling dependencies successfully
Still vetting/refining requirement.
No change to current process for validating requirements AND so assume (if applicable) that requirements have been reviewed and refined with respective SIG(s)
The module owner team gives a high level introduction of the module/suite of modules for the developers who is to start working in these existing modules
High level overview of the change
Provide a link to the Jira feature/user story/bug that documents the requirement(s) and user expectation(s)
Technical design
Recommended timing for this action: as soon as you have an understanding of the requirement and ideally before release scope definition deadline.
Outcome
Technical design and approach alignment
Development efforts per team including timing for when dependencies will be ready
Testing approach (including QA test coverage)
PR reviews alignment
Definition of done alignment
Document agreements and implementation/testing plan
Ideas for communicating across multiple teams (please add your thoughts)
Slack channel for more complex dependency management, or the SIG slack channels
Wiki page that is the source of truth and includes a decision log (when applicable)
Questions - please post your questions in this column
Is there a dependency? What if I'm not sure?
When multiple teams/POs work within a broad area, how do I know which team/PO to approach? (E.g. I need to do some work in Holdings related to Receiving in Acquisitions. I know who the MM POs are, but which PO and which team specifically?)
What if it's a general area where no POs or teams exist, but which impacts multiple teams? (E.g. security)
What if my team is developing something that may be of use or interest to other teams and want to make those teams aware of this new functionality?
How do I prioritize the work with another team against the work set for my team?