Friday 9 August 2024

Software Development Lifecycle, Environments and DevOps Metrics


Agile Software Development Lifecycle can be visualised as in the following infogram:


image source: LinkedIn (Brij kishore Pandey)



Why do we need multiple environments?


Developers and testers might not like to work on the same environment as they may use and modify the same data and it may impact the developer's troubleshooting ability or the tester's test result reliability. This is why devops may setup multiples of the same infrastructure stack and call them by different names (environments).


QA vs QC vs Testing


Before we list environments, we need to clarify that these terms are not the same:
  • Quality Assurance - ensures that processes and procedures are in place to achieve quality
  • Quality Control - ensures product quality
  • Testing - validates the product against specifications
    • functional
    • non-functional
    • acceptance testing
This is why QA environment might not be the same as Testing environment.



DevOps Environments


Continuous Testing is performed in at least two environment families:
  • Lower environments - any architecture which is not a direct copy of production; environments with different purposes, which don't necessarily need to replicate the Prod system.
    • Dev/Local development
    • Sandbox environments
    • CI environments
    • Test environments
    • QA environments
    • Nonfunctional testing envs 
  • Production replica environments:
    • Pre-Production / Staging -  test deployment into a Prod replica without Prod data; live environments with non-production data and beta testing
    • NPPD (Non-Production environment with Production Data) is a prod replica with prod data.
    • Customer UAT (User Acceptance Testing) /training environment

Production environment - for end users.





image source: LinkedIn (Brij kishore Pandey)




No comments: