Skip to content

bivex/iso13053

Repository files navigation

ISO 13053-2 Six Sigma SDK

A comprehensive Go SDK implementing ISO 13053-2 Six Sigma tools and techniques following Domain-Driven Design principles.

Overview

This SDK provides a complete implementation of the Six Sigma DMAIC (Define, Measure, Analyze, Improve, Control) methodology with all 31 tools and techniques specified in ISO 13053-2:2011.

Architecture

The SDK follows the Ports-and-Adapters (Hexagonal) pattern with strict layer separation:

┌─────────────────────────────────────────────────────────┐
│                    Presentation Layer                    │
│              (CLI, HTTP API, Events)                    │
└─────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────┐
│                   Application Layer                     │
│            (Use Cases, DTOs, App Services)             │
└─────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────┐
│                     Domain Layer                        │
│  (Entities, VOs, Aggregates, Domain Services, Events) │
└─────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────┐
│                Infrastructure Layer                     │
│       (Repositories, Adapters, External Services)       │
└─────────────────────────────────────────────────────────┘

Key Design Principles

  • SOLID Principles: Strict adherence throughout the codebase
  • Clean Architecture: Dependencies point inward toward the domain
  • DDD Patterns: Ubiquitous language, bounded contexts, aggregates
  • Hexagonal Architecture: Ports and adapters for infrastructure isolation
  • CQRS-like Separation: Read and write models where beneficial
  • Observability: Structured logging, metrics, and tracing built-in

Project Structure

iso13053/
├── cmd/                    # Application entry points
├── internal/
│   ├── application/        # Use cases and application services
│   │   ├── dto/
│   │   └── usecase/
│   ├── domain/             # Domain layer (pure business logic)
│   │   ├── entity/
│   │   ├── valueobject/
│   │   ├── aggregate/
│   │   ├── service/
│   │   ├── event/
│   │   ├── port/          # Repository and service interfaces
│   │   └── error/
│   ├── infrastructure/     # External concerns
│   │   ├── persistence/
│   │   ├── adapter/
│   │   ├── config/
│   │   ├── logger/
│   │   └── metrics/
│   └── presentation/      # CLI, HTTP, gRPC interfaces
│       ├── http/
│       └── cli/
├── pkg/                    # Public API
├── docs/
│   ├── adr/               # Architecture Decision Records
│   └── examples/          # Usage examples
├── GLOSSARY.md             # Ubiquitous language
├── README.md
└── go.mod

Features

DMAIC Phases Implementation

  1. Define Phase

    • Project charter creation
    • SIPOC mapping
    • CTQ tree analysis
    • Stakeholder identification
    • ROI and cost accounting
  2. Measure Phase

    • Data collection planning
    • Measurement System Analysis (MSA)
    • Sample size determination
    • Normality testing
    • Descriptive statistics visualization
    • Process capability analysis
  3. Analyze Phase

    • Cause and effect analysis
    • Hypothesis testing
    • Regression and correlation
    • Design of experiments (DOE)
    • Waste analysis
    • Value stream mapping
  4. Improve Phase

    • Solution generation
    • FMEA (Failure Mode and Effects Analysis)
    • Reliability testing
    • Prioritization matrices
  5. Control Phase

    • Control charts
    • Monitoring/control plans
    • Project review
    • Continuous improvement

Quick Start

package main

import (
    "context"
    "log"

    "github.com/your-org/iso13053/pkg/sixsigma"
)

func main() {
    // Create application service
    app := sixsigma.NewApplication()

    // Create a new Six Sigma project
    project, err := app.CreateProject(context.Background(), sixsigma.CreateProjectRequest{
        Name:        "Customer Satisfaction Improvement",
        Problem:     "Customer satisfaction below target of 90%",
        Goal:        "Achieve 95% customer satisfaction",
        CTQs: []sixsigma.CTQ{
            {Name: "Response Time", Target: "24 hours", UOM: "hours"},
            {Name: "Resolution Rate", Target: "95%", UOM: "percent"},
        },
    })
    if err != nil {
        log.Fatal(err)
    }

    // Define phase
    err = app.DefineProject(context.Background(), project.ID)
    if err != nil {
        log.Fatal(err)
    }

    // Measure phase
    err = app.MeasureProcess(context.Background(), project.ID)
    if err != nil {
        log.Fatal(err)
    }

    // Analyze phase
    rootCauses, err := app.AnalyzeProcess(context.Background(), project.ID)
    if err != nil {
        log.Fatal(err)
    }

    log.Printf("Identified %d root causes", len(rootCauses))
}

Installation

go get github.com/your-org/iso13053

Documentation

Development

Prerequisites

  • Go 1.21 or later
  • Make (for build automation)

Running Tests

# Run all tests
make test

# Run tests with coverage
make test-coverage

# Run integration tests
make test-integration

Building

# Build all binaries
make build

# Build specific component
make build-cli

License

[Your License Here]

Contributing

Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

References

  • ISO 13053-2:2011 - Quantitative methods in process improvement — Six Sigma — Part 2: Tools and techniques
  • ISO 13053-1:2011 - DMAIC methodology

About

Go sdk and mcp server

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published