DevOps Simplicity Checker
Infrastructure should be SIMPLE by default. This skill detects overengineering.
Simplicity Checklist
Check Pass Fail
File count ≤8 .tf files
15 files in nested directories
Module usage None or registry only Custom modules for <5 resources
Directory depth Flat or 1 level 3+ levels of nesting
Ansible playbooks Single playbook Multiple playbooks + custom roles
Ansible roles Galaxy roles only Custom roles for standard tasks
Variables Inline defaults Complex variable hierarchies
Complexity Score Calculation
Files: 1 point per .tf file over 5 Modules: 3 points per custom module Directories: 2 points per level over 1 Ansible roles: 3 points per custom role
Score 0-5: Simple (GOOD) Score 6-10: Moderate (REVIEW) Score 11+: Overengineered (SIMPLIFY)
Detection Commands
Count .tf files
find . -name "*.tf" | wc -l
Find custom modules (not registry)
grep -r "source\s*=" *.tf | grep -v "registry.terraform.io" | grep -v "github.com" | wc -l
Directory depth
find . -name "*.tf" -printf '%h\n' | sort -u | awk -F'/' '{print NF-1}' | sort -rn | head -1
Custom Ansible roles (not Galaxy)
ls roles/ 2>/dev/null | wc -l
Variable files
find . -name "*.tfvars" -o -name "variables.tf" | wc -l
Questions to Ask
-
Could this be done with fewer files?
-
Is this custom module solving a problem registry modules can't?
-
Would a flat structure work just as well?
-
Does this Ansible role exist in Galaxy already?
-
Are these variable hierarchies necessary or premature abstraction?
Red Flags
Pattern Problem Fix
modules/ with single resource Over-abstraction Inline the resource
environments/{dev,staging,prod}/
Duplication Use workspaces or tfvars
roles/common/ for apt packages Reinventing wheel Use Galaxy role
Nested .tf imports Hard to follow Flatten structure
10 variable files Configuration sprawl Consolidate
Scoring Report Format
SIMPLICITY SCORE: X/10
File Count: X files (+Y penalty) Custom Modules: X modules (+Y penalty) Directory Depth: X levels (+Y penalty) Custom Roles: X roles (+Y penalty)
Total Penalty: X points Verdict: SIMPLE | MODERATE | OVERENGINEERED
Recommendations:
- Consider flattening directory structure
- Replace custom module X with registry module
- Use Galaxy role for standard task