Intro to Roles - raisercostin/software-wiki GitHub Wiki
-
Project Manager - decides Methodology, Roles, Team, Procedures, Budgets, Milestones
-
Domain Expert (Business Expert)
- function: WHAT problem, define problems
- tools:
- requirements
-
Product Owner (Business Analyst) - can listen, interview, understand both domain experts and developers
- function: WHAT solution, define what constitute a solution
- tools:
- requirements - what, a possible contradictory list of requests/requirements, defines what characteristics a solution should have
- specification - how, high level | Domain Functionality |
| Software Functionality |
-
a Business Analyst(is a termen from old methodologies) analyse requirements and propose a non technical solution (for the intended business/domain functions) as specification (UI, UX, functionality) - functional concerns
-
Architect - additionally addresses the NON-Functional concerns:
- concerns
- scalability
- security
- flexibility
- release lifecycle
- module separation/microservices
- integration constraints
- infrastructure constraints
- tools - open tools, procedures, template documents, no vendor lock-in, C4 model: context, container, components, class
- describe context(personas,external systems/containers), containers(communication channels: ports, api, protocols), components(responsibilities)
- principles: encapsulation, low coupling
- concepts: architecture(context+containers), high level design(components), low level design(classes+code)
- concerns
-
Developer -
- function: HOW, constructs solution
Methodology & Procedures
Agile
The team is responsible for self improvement. Team invents/amend/cancel procedures that works best.
PR
- trunkbaseddevelopment
- at minimum one commit&merge per day (at the end of work) -> latency for open branch under 1-2 days
- independent branches to be merged
- What worked
- small changes are easier to be reviewd/accepted/commented
- non blocking, merge with comments (is expected that the committer will address the comments)
- otherwise first fix the comments and then will merge
- Problems
- is hard to get the coding context just looking at a merge request
- What we discarded
- gerrit - to heavy
- commits of seniors directly in trunk
- break of open closed principle (that can protect you even without tests)
Pair
- basic form of feedback