Home
Tags:

Processes Get Automated

Curiosity has led me to stumble through some process automation details.

There are many many common tasks during the software-development lifecycle (sometimes referred to as the SDLC).
Sometimes some of these are optional.
Sometimes some tasks are "gated" by constraints: in-code-thresholds, hardware restrictions, network bandwidth, team understanding limitations, time, money, prioritization complications, etc.
Here's a few loosely-defined tasks grouped into broad categories -

Common Tasks in the SDLC

Coding

  • coding
  • simplifying coding
  • reviewing other's code
  • making decisions about "architecture" patterns to implement, to add, to remove, etc.
  • building, reviewing and integrating services that isolate responsibilities (app-activity-analytics, auth, logging, "containerizing" apps, etc)

Testing

  • requiring tests to be written
  • requiring tests to pass

Workflow Tracking System Integrations

  • Ensuring the work of develop hands aligns well with workflow tracking systems (WTS)
  • Ensuring WTS rules are in place, being developed, evaluated, and used during the SDLC
  • Examples
    • Bugs are reported & tagged appropriately
    • New Features are documented, prioritized, prepared for devs, tested, and released
    • Alerting Mechanisms are in place and utilized for tasks like failed tests, failed deployments, errors
    • These Processes, themselves, are reviewed often - teams change, expertise waxes and wanes, tools & tech get introduced and removed

Deploying App Updates

For "simplicity", lets consider a single http server machine that has access to an in-machine database as well as in-machine front-end assets:

  • maintaining a server that holds code
  • preparing code for releasing:
    • testing
    • "bundling" code for a smaller footprint
    • building & releasing "release notes"
    • deciding when & how code should be released for minimal negative impact on users
  • deploying newly updated code on the server
  • having and managing several "instances" to deploy to
    • development
    • qa &/or staging
    • production
    • canary
    • a/b &/or blue/green deployments