Team Responsibilites

Introduction

Running a Salesforce Org requires a team effort, and will likely require team members to take on different responsibilities to be successful. How the team takes on and distributes these responsibilities may differ but is important that there is coverage allowing coverage to support staff vacations and transitions.

Collaborative

Business Admin Liaison
  • Responsibilities
    • Provides support for business staff wishing to make minor changes to the system on their own with development support assistance
    • May evolve to allowing more advanced business staff to make changes in a dev environment, and reviews and guides changes and handles promotion of changes forward.
Integration Liaison
  • Responsibilities
    • Reviews external connections to the Salesforce environment ( all API integrations )
      • Incoming and Outgoing
      • Work with Software Architect to maintain with Technology Roadmap
    • Ensures approach for integrations adhere to best practices
      • Define best practices and maintain on GitBook as part of guidance.
    • Works with Salesforce Software Architect Direction resources to ensure alignment
    • Develops frequency/volume quotas and works with SREs to monitor them
    • Determines if fan out approach (Custom APEX) or Enterprise WSDL would be most appropriate
    • Determines methods for monitoring health of APIs and proper error conditions
    • Works with Integration team
    • Understands how system outages are expected to impact the Salesforce system and how to properly handle scheduled external system downtime

Forward Looking

Business Change Review
  • Responsibilities
    • Reviews requested changes requested by business staff or partners
    • Works with Salesforce Software Architect Direction resources to ensure alignment
    • Determines high level strategy for approach to implementation and impact to systems
    • Works with Business and Technical teams for clarity
  • Resources
Salesforce Change Management
  • Responsibilities
    • Prepares for 3x annual Salesforce releases
    • Reviews all published documentation from Salesforce regarding releases
    • Audits environment to highlight areas of possible Impact
    • Runs point on all tickets that need to be created with Salesforce in support of releases
      • Works with PMO to describe impact to systems and helps to define resources needed to resolve
    • Builds Process for handling releases
      • 5 Weeks ahead of release - Review Finalized Release Notes
      • 4 Weeks ahead of release - Stand up Preview Sandbox, Full regression is run with preview
      • 4-2 Weeks ahead of release - bug fixes / changes related to release are implemented and tested
      • 1 Week ahead of release - all changes finalized and released into production in advance of release (if possible)
      • Release weekend - Monitor system throughout release
Software Architectural Direction
  • Responsibilities
    • Reviews proposed changes to the systems prior to implementation to ensure alignment
    • Runs software architectural review sessions prior to sprint work beginning
    • Develops technology roadmaps
      • Understands strategic initiatives
      • Reviews Salesforce technology roadmaps and:
        • Identifies alignment of salesforce technology to initiatives
        • Identifies customized features that are becoming platform features
      • Reviews all 3rd party components/modules used in the system
        • Develops life cycle for turning on/sunsetting these items
    • Works with Enterprise Architecture Team
    • Works with team to develop guidelines for Unlocked Package Strategy, reviews boundaries for each unlocked package proposed, and regularly audits unlocked packages to ensure they only contain what is expected.
  • Resources

Supportive

Site Reliability Engineering
  • Responsibilities
    • Metrics Collection, Publishing and Rate Limiting
      • Responsible for managing storage and costs involved in running this service line.
      • Determines data to be collected, defining granularity and frequency, determines how data can be summarized
      • Continually:
        • 1) start very high-level
        • 2) get in the wild
        • 3) monitor
        • 4) review with team and adjust accordingly.
        • Continually adapting and optimizing granularity and frequency.
      • Builds logging budgets (storage) and ensures applications operate within budget limits
        • Reviews all budgets to understand overall cost
      • Determine normal operating constraints for metrics, develop alerting and means of publishing and notification of proper staff when out of range.
      • Monitor systems for outages, interruptions and service degradation
      • Monitors systems against governor limits and Salesforce enforced thresholds (API Limits etc)
        • Warns when system is close to exceeding expected boundaries
        • Maintains quotas for limits, gets insight if quotas are breached and discusses with appropriate team members
    • Works with Salesforce Team and Business to develop run-books for system issues
    • Builds and maintains APM stack or other logging/monitoring platforms and tools

DevOps Engineering

  • Responsibilities
    • Source code repository and pipeline Management
      • Add new repos and pipelines for unlocked packages as needed
        • (After approval from Software Architecture)
      • Manage code reviewer sign-off assignment
      • Asset management (develop & document policy/strategy)
      • Secrets management (develop & document policy/strategy)
      • Branch management (develop & document policy/strategy)
      • Manage permissions / policies / extensions
    • Administer code promotion from Scratch Org to DevInt > Test > UAT > Prod Sandboxes
      • Participate in change management process
      • Unlocked package versioning
    • Participates in release management meetings
    • Monitors the DevOps toolset feature releases, communicates changes to team.
    • Develops team onboarding materials for DevOps

Inward Looking

Data Engineering
Front End Engineering / Lightning Web Component
  • Responsibilities
    • Reviews approaches taken for front end development and ensures quality and standards are met in respect to LWC and Javascript development
    • Build, maintain, evangelize and publish software architecture standards for front end engineering
    • Ensures unit tests (Jest) are integrated into build pipelines [Details]
    • Ensures JSLint/JSHint and other tools are integrated into build pipelines and are accessible to development team - define and leverage tools to maintain minimum quality standards and document on GitBook
Access Control Management - Roles, Profiles and Object Permissions
  • Responsibilities
    • Ensures proper access to data and security

Quality Output

Code Quality Management
  • Responsibilities
    • Maintain automated checks for pull requests
      • Ensure Unit Tests Pass and Code Coverage % Requirements (currently 75%)
      • Static Code Analysis Rule-set Management
        • Adherence to Naming Conventions / Styles
        • Adherence to Architectural Conventions
        • Adherence to Unlocked Package Guidance
        • Security Checks
          • Work with Security Team to Review and ensure alignment with organizational
    • Build, Maintain, Evangelize and Publish Software Architecture Standards for the organization
    • Manually review pull requests for adherence to Software Architecture Standards
Automated UI Test Development
  • Responsibilities
    • All custom functionality in system needs to be covered by automated UI testing
    • Ensure automated UI tests are developed alongside functionality during a sprint
Test Data Management
  • Responsibilities
    • Ensure proper data coverage for all functionality and breaks up appropriately to align to Unlocked Packages
      • Data coverage needs to address use cases as needed to prove user story succeeds (positive/negative testing etc)
    • Ensure data alignment with automated UI tests and Unit Tests.
    • Deliver data within the context of a sprint to support feature development/modification.
    • Responsible for overall quality of test data in Sandboxes and Scratch Orgs
    • Automate the generation of test data where possible
Security Testing
  • Responsibilities
    • Monitors code and configuration from a security perspective
    • Employs, configures, and runs reports with toolsets for monitoring security on platform
    • Works with security team to ensure adherence to security standards
    • Looks for OWASP top 10 and other security issues
    • Works with developers to develop remediation plans
    • Maintains a risk register