Skip to content

Epic: Code Quality - Embrace "Absolutely Pure & Simple" Design Philosophy #22

@kingdonb

Description

@kingdonb

Vision: No Unnecessary Baggage

"We can't call it deis (or hephy) if the design isn't absolutely pure & simple with no unnecessary baggage!"

This epic tracks our commitment to the Deis/Hephy heritage of radical simplicity.

Current State Analysis

  • DRY Achievement: Eliminated 600 lines of duplicate code (75% reduction)
  • Unified Architecture: Single shared script for all build logic
  • Clean Separation: Ko/Kaniko backends with clear responsibility boundaries

Purity Assessment Areas

1. Configuration Simplicity

  • Current: build-config.yaml handles multiple backends
  • Question: Is this the simplest possible interface?
  • Action: Audit for unnecessary complexity

2. Build Script Elegance

  • Current: hack/build_images.sh (130 lines)
  • Question: Can we eliminate more complexity?
  • Action: Review for unnecessary abstractions

3. Workflow Clarity

  • Current: prepare → build → manifest → summary
  • Question: Is each stage absolutely necessary?
  • Action: Validate each stage adds essential value

4. Backend Selection Logic

  • Current: Ko for Go apps, Kaniko for Docker
  • Question: Can we simplify the decision matrix?
  • Action: Test if Ko could handle all use cases

Deis Heritage Principles

  1. Zero Configuration: "git push" should just work
  2. Minimal Dependencies: Only essential components
  3. Clear Mental Model: Obvious how it works
  4. No Magic: Transparent operations

Success Criteria

  • Zero unnecessary configuration options
  • Clear single responsibility for each component
  • Documentation explains "why" not just "what"
  • Any developer can understand the full system in 15 minutes

Next Sprint Actions

  1. Configuration audit: Remove unused options
  2. Script simplification: Extract common patterns
  3. Documentation clarity: Focus on essential concepts
  4. User experience validation: Test with fresh eyes

Priority: High - Core to project identity

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions