Google Sign-In Required

Use your company Google account to access the BetterFleet private content.

Back to private home

BetterFleet Support Private
Skip to content
BetterFleet Dev Wiki
0007 - Generalised principle for automation
Initializing search
    bf-dev
    • Home
    • Product Capabilities
    • Process
    • Current Work
    • System Design
    • Software Reference
    • Operations
    bf-dev
    • Home
      • Overview
      • Manage
      • Overview
      • Product Engineering Workflow
      • Product Engineering Delivery
      • Product Engineering Workflow in Linear
        • GitLab Feature Flags
        • In-App Docs Authoring
        • Release Notes
      • Templates
      • Publishing
      • Workflow Companions
      • Overview
      • Active Artifacts
      • Backlog Artifacts
      • Archived Artifacts
      • Overview
      • Microgrid
      • OSCP
        • Challenge
        • Specification
        • Spec
        • Architecture
        • Overview
        • Script Runtime Model
        • Compose Profiles and Modes
        • Repo Topology
        • CI and Release Integration
        • Overview
        • Internal Application Diagrams
          • Overview
          • Web Model
          • Core Model
        • Service Interaction Flows
        • Data and State
          • Index
          • bf-manage-web
          • bf-manage-core
          • bf-manage-connect
          • bf-manage-sitepwrmon
          • bf-manage-incidents
          • bf-telematics
          • bf-depot-sim
          • bf-manage-roaming
          • bf-support-microsite
          • bf-digital-twin
          • bf-schedule-creator
        • Overview
        • Internal Application Diagrams
        • Migration and Flags
        • Simulation Request Lifecycle
          • Index
          • bf-bnl-ui
          • bf-bnl-settings
          • bf-bnl-schedule-analysis-compute
          • bf-route-modelling
          • bf-schedule-creator
          • bf-digital-twin
        • Overview
        • Secrets and Env Strategy
        • Vendors and Local Dependencies
        • ADRs
        • Service Matrix
        • Cloud Dependencies
        • Ports and URLs
      • Onboarding
      • Daily Operations Runbook
        • Overview
        • Staging Hotfix Release
        • Production Hotfix Release
        • Terraform Plan Dry Runs
      • Troubleshooting
      • Testing Guide
    • Date
    • Status
    • Context
    • Decision
    • Consequences

    0007 - Generalised principle for automation¶

    Date¶

    2022-11-18

    Status¶

    Accepted

    Context¶

    At many point during the development lifecycle, decisions need to be made on when to automate behaviours or to perform them manually. This occurs often in software systems where behaviour is automated through scripting. This introduces a couple of risks and benefits. Introducing automated behaviour increases the speed with which actions can be taken, but decreases the control that can be imparted on those actions.

    Automation occasionally opens new avenues of risk of overwriting/destroying/changing something that is system-breaking or irreversible. For example, the automation of database deployment needs to be very careful not to overwrite existing data during a migration or to remove crucial parts of the database through unchecked/unmonitored automation of deployments.

    Automation also involves expending effort up-front in order to reap benefits over the long term. Care must be taken prior to automating to ensure that it is in-fact worth the up-front effort instead of just manually performing an action once, or a small number of times.

    Decision¶

    To automate elements of a software system that are safe to automate and for which there will be significant time efficiencies gained in automating them.

    Consequences¶

    What becomes easier or more difficult to do and any risks introduced by the change that will need to be mitigated.

    • The structure of whatever it is you are automating is documented implictly through the automation scripts produced.
    • Large time saving measure in the long-term
    • Initial time cost involved in creating automation scripts
    • Consistent deployment of infrastructure/code made easier and more reproducible
    • Risks introduced of removing/replacing something that is desired
    Made with Material for MkDocs