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)
  • 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

Data Roles

image