Blue Ocean Strategy

Most organizations compete within existing industry boundaries. They benchmark competitors, optimize costs, improve features and fight for market share. Over time, competition intensifies, differentiation reduces and growth becomes harder to sustain.

In Blue Ocean Strategy, W. Chan Kim and Renée Mauborgne challenge this conventional approach to strategy. Instead of competing in crowded markets, they argue that organizations should focus on creating blue oceans: new and uncontested market spaces where competition becomes irrelevant.

The book refers to existing crowded markets as red oceans, where industry boundaries are accepted and competitors fight over the same demand. Blue oceans, in contrast, are created by unlocking new demand through value innovation.

Although some blue oceans are created well beyond existing industry boundaries, most blue oceans are created from within red oceans by expanding existing industry boundaries.

Another important insight is that the strategic move, and not the company or the industry, is the right unit of analysis for explaining the creation of blue oceans and sustained high performance.

At the center of blue ocean strategy lies the idea of value innovation. Value innovation occurs only when companies align innovation with utility, price, and cost positions. If organizations fail to anchor innovation with value in this way, technology innovators and market pioneers often lay eggs for other companies to hatch.

Analytical Tools and Frameworks

The Strategy Canvas

The strategy canvas is both a diagnostic and an action framework for building a compelling blue ocean strategy. It helps organizations:

  • Understand the factors on which the industry competes
  • Identify where competitors are investing
  • Visualize the current state of competition
  • Discover opportunities for differentiation

A strong blue ocean strategy produces a value curve that stands apart from competitors instead of converging with them.

The Four Actions Framework

To reconstruct buyer value and break the trade-off between differentiation and low cost, the book proposes four questions:

  • Eliminate: Which factors that the industry takes for granted should be eliminated?
  • Reduce: Which factors should be reduced well below the industry’s standard?
  • Raise: Which factors should be raised well above the industry’s standard?
  • Create: Which factors should be created that the industry has never offered?

The framework encourages organizations to challenge long-standing assumptions about how value is delivered.

Formulating Blue Ocean Strategy

1. Reconstruct Market Boundaries

The book outlines six paths for reconstructing market boundaries:

  • Look across alternative industries
  • Look across strategic groups within industries
  • Look across the chain of buyers
  • Look across complementary product and service offerings
  • Look across functional or emotional appeal to buyers
  • Look across time

Blue ocean creators challenge assumptions that competitors take for granted.

2. Focus on the Big Picture, Not the Numbers

Blue ocean strategy emphasizes visualizing strategy instead of getting trapped in spreadsheets and operational details. The book outlines a four-step process for visualizing strategy:

  • Visual Awakening: Compare the current strategy with competitors and recognize the need for change.
  • Visual Exploration: Go into the field to understand customer experience, alternatives, and pain points.
  • Visual Strategy Fair: Present strategic options visually and gather feedback from customers, non-customers, and stakeholders.
  • Visual Communication: Communicate the final strategy clearly across the organization using before-and-after strategy canvases.

The focus shifts from incremental improvements to strategic transformation.

3. Reach Beyond Existing Demand

Most organizations focus only on existing customers. Blue ocean strategy encourages organizations to unlock new demand by understanding noncustomers. The book identifies three tiers:

  • Soon-to-be noncustomers
  • Refusing noncustomers
  • Unexplored noncustomers

Instead of competing for existing demand, blue ocean creators expand the market itself.

4. Get the Strategic Sequence Right

A blue ocean idea succeeds only when the strategic sequence is correct:

  1. Buyer utility
  2. Price
  3. Cost
  4. Adoption

Strong ideas fail when organizations cannot align customer utility, strategic pricing, cost structure, and adoption considerations.

Executing Blue Ocean Strategy

5. Overcome Key Organizational Hurdles

Execution often fails because organizations resist change. The book introduces tipping point leadership, which focuses on overcoming:

  • Cognitive hurdles
  • Resource hurdles
  • Motivational hurdles
  • Political hurdles

Leaders should focus effort on points of disproportionate influence rather than broad transformation programs.

6. Build Execution into Strategy

Execution should not be separated from strategy. The book emphasizes fair process, built on the three E principles:

  • Engagement – Involve people in strategic decisions by asking for their input and allowing them to challenge assumptions.
  • Explanation – Clearly explain why final decisions are made, especially when suggestions are not adopted.
  • Expectation Clarity – Ensure everyone understands the new rules, responsibilities, and performance expectations.

When people feel heard, respected, and treated fairly, commitment to execution improves significantly.

7. Align Value, Profit, and People Propositions

Sustainable blue oceans require alignment across:

  • Value proposition
  • Profit proposition
  • People proposition

Weakness in any one area weakens long-term success.

8. Renew Blue Oceans

Blue oceans eventually attract imitation and begin turning red. The book highlights several imitation barriers that can delay or discourage competitors:

  • Value innovation may not make sense based on conventional industry logic.
  • Blue ocean strategies often conflict with competitors’ existing brand images.
  • Natural monopolies may emerge due to high market scale.
  • Network externalities can make imitation difficult.
  • Organizational politics and cognitive barriers can slow competitive response.

Organizations must therefore:

  • Continuously monitor strategy canvases
  • Keep questioning assumptions
  • Balance exploitation with exploration
  • Renew blue oceans before commoditization sets in

Blue ocean strategy is not a one-time initiative. It is a continuous strategic discipline.

Blue Ocean Strategy reframes competition itself. Instead of competing harder within existing market boundaries, organizations can create new demand through value innovation and strategic reconstruction of markets.

The book’s most powerful insight is that breakthrough growth does not come merely from technology, differentiation, or operational excellence alone. It emerges when organizations align innovation with buyer utility, price, and cost while systematically challenging industry assumptions.

For leaders, the challenge is not simply to outperform competitors in red oceans, but to create blue oceans where competition becomes far less relevant.

Originals

In leadership conversations, we often celebrate creativity and innovation. Yet, in practice, most organizations reward reliability, predictability, and risk avoidance. This tension creates a fundamental challenge: how do we encourage people to challenge the status quo without destabilizing what already works?

In Originals, Adam Grant explores what separates those who simply generate ideas from those who successfully champion them. I have summarised perspectives from each chapter below.

1. Creative Destruction

Grant highlights a paradox: high achievement motivation can actually suppress originality. When the desire to succeed becomes intense, it is often accompanied by a deep fear of failure. Instead of pursuing bold ideas, individuals gravitate toward safer paths that guarantee success.

Many great creators were held back not by lack of talent, but by reluctance to challenge entrenched norms. Originality is an act of creative destruction.Originals achieve this by questioning defaults and balancing risk portfolio.

2. Blind Inventors and One-Eyed Investors

Experience is valuable, but it can also become a constraint. Success in one domain does not automatically translate to success in another. Entrepreneurs who thrive in a familiar field often struggle when they venture into new territories. Domain inexperience, hubris and enthusiasm can lead to blind spots. Original thinking benefits from fresh perspectives, but execution still requires contextual understanding. Leaders must recognize that innovation demands both new viewpoints and grounded expertise.

3. Out on a Limb

Leadership influence depends not only on authority, but on how people perceive and respect one another. We need to tease apart two major dimensions of social hierarchy that are often lumped together: power and status. Power involves exercising control or authority over others while status is being respected and admired. Original ideas are more likely to gain traction when individuals build status rather than rely on power. Status creates psychological safety for dissent, while power can silence it.

4. Fools Rush In

Contrary to popular belief, successful innovators are not reckless risk-takers. Risk seekers often fail because they act impulsively, chasing novelty without preparation. In contrast, more risk-averse entrepreneurs tend to succeed by carefully timing their entry and balancing risk portfolios. The book explores wwo radically different styles of innovation: conceptual and experimental. Conceptual innovators formulate a big idea and set out to execute it. Experimental innovators solve problems through trial and error, learning and evolving as they go along. Both paths can lead to originality. The difference lies not in courage alone, but in how individuals approach uncertainty.

5. Goldilocks and the Trojan Horse

Original ideas often face resistance when they appear too radical or unfamiliar. Successful change agents find ways to present ideas that are neither too extreme nor too conventional. They frame innovation in ways that feel recognizable and acceptable while still introducing meaningful change. Sometimes, originality succeeds not by confronting systems directly, but by working through them like a Trojan horse that enters quietly before transforming from within.

6. Rebel with a Cause

Original thinkers are often seen as rebels, but their motivations differ from simple nonconformity. Originals do not resist norms for the sake of rebellion. Instead, they are driven by a deep commitment to purpose and improvement. Their actions are anchored in values, not just defiance. Leadership plays a crucial role here. When organizations channel rebellious energy toward constructive goals, dissent becomes a source of progress rather than disruption.

7. Rethinking Groupthink

Strong cultures can either enable originality or suppress it. The presence of dissent distinguishes a strong culture from a cult. Healthy cultures encourage employees to challenge ideas, question decisions and offer alternative viewpoints. Individuals who drive such cultures as shapers – independent thinkers who are curious, nonconforming and rebellious. They practice non-hierarchical honesty, speaking up regardless of position. Organizations that truly value diversity do not merely tolerate dissent, they actively promote it.

8. Rocking the Boat and Keeping It Steady

Originality requires balancing optimism with caution using two mindsets: strategic optimism and defensive pessimism. Strateegic optimists anticipate the best, staying calm and setting high expectations. Defensive pessimists expect the worst, feeling anxious and imagining all things that can go wrong. Psychologically, we have a go system and stop system. Stop system slows us down and makes us cautious and vigilant. Go system revs us up and makes us excited. When we are not yet committed to a particular action, thinking like a defensive pessimist can be hazardous. But once we have settled on a course of action, when anxieties creep in, it is better to think like a defensive pessimist and confront them directly. Successful originals learn to switch between these mindsets depending on the stage of action.

Originals challenges the romanticized view of innovation as a product of bold personalities alone. Instead, it shows that originality emerges from a combination of mindset, strategy, social dynamics and leadership support. The book’s central message is clear: originality is not about constant risk-taking or rebellious behavior. It is about thoughtfully questioning defaults, managing risks intelligently, encouraging dissent and creating environments where new ideas can survive long enough to succeed.

For leaders, the task is not merely to demand innovation but to build conditions where challenging the status quo is both possible and safe.

Loonshots

I received a recommendation to read Loonshots by Safi Bahcall in the context of transformation leadership, particularly the idea of intellectual stimulation. This book challenges a widely held assumption about group behavior that radical breakthroughs are primarily driven by culture. Instead, it explains how small shifts in structure and incentives can cause teams to suddenly move from embracing bold ideas to rejecting them and what leaders can do to ensure that breakthrough ideas survive inside large organizations.

A loonshot is a high-risk, high-reward idea that challenges existing beliefs. Because of this, loonshots are widely dismissed ideas and their champions are frequently written off as crazy. Ironically, the most important breakthroughs in history began exactly this way as loonshots.

In Loonshots, Safi Bahcall explores why organizations repeatedly fail to nurture such ideas. He does not blame people, culture, or leadership intent. Instead, he focuses on the structures and incentives that shape behavior. The book’s central insight is simple yet powerful: organizations don’t fail at innovation because they lack vision; they fail because they unknowingly cross invisible thresholds that change how people act.

The book introduces two essential modes of operation:

  • Loonshots: Experimental ideas focused on discovering something new. People who excel here operate with an artist mindset.
  • Franchises: Proven products, processes, or businesses focused on execution. Excellence here requires a soldier mindset.

Both are essential. Loonshots create the future. Franchises sustain the present. The problem arises when organizations treat both modes the same way. Execution-oriented rules of predictability, efficiency, accountability are detrimental to early-stage ideas. At the same time, excessive experimentation can destabilize franchises. Great leaders don’t choose between loonshots and franchises. They promote both.

The book outlines four rules leaders can follow to achieve a healthy balance between loonshots and franschises in large organizations.

1. Separate the Phases

  • Separate artists and soldiers.
  • Tailor tools, incentives and metrics to the phase.
  • Watch for blind spots while nurturing both types of loonshots: P-type (product-driven) and S-type (strategy-driven).

2. Create Dynamic Equilibrium

  • Love artists and soldiers equally.
  • Manage the transfer, not the technology. Be a gardener, not a Moses.
  • Appoint and train project champions who can bridge the divide by being aware of false fails and listening to the suck with curiosity.

3. Spread a System Mindset

  • Keep asking why the organization made the choices it did.
  • Keep asking how decision-making processes can be improved.
  • Identify teams operating with outcome mindsets and help them shift toward a systems mindset.

4. Raise the Magic Number

Formula for the critical size of the organization or the magic number above which the balance shift from favoring project work to politics: M = E × S² × F / G, where E = soft equity, S = span of control, F = project-skill fit, G = growth (compensation / promotion). 

Leaders can raise this threshold by acting on key levers:

  • Reduce the return on politics by making lobbying for promotions and compensation difficult.
  • Use soft equity, non-financial rewards that carry disproportionate impact.
  • Increase project–skill fit by actively scanning the org for mismatches.
  • Fix the middle by paying attention to middle-management layers, where politics often overpower innovation.
  • Fine-tune spans of control: widen spans in loonshot groups to encourage looser controls, experimentation, and peer-to-peer problem-solving.
  • Bring a gun to the knife fight. Use specialists who understand these subtle dynamics.

Loonshots reframes innovation as a systems problem, not a people problem. Breakthrough ideas don’t fail because they are wrong; they fail because organizations unintentionally make them impossible to survive. For a loonshot nursery to flourish, three conditions must be present: Phase separation, Dynamic equilibrium and Critical mass.

The leadership challenge is not to demand more creativity, but to design conditions where fragile ideas can take root without disrupting what already works. When leaders get this balance right, they don’t just innovate, they build organizations capable of doing so again and again.

The Anatomy Of Peace

In my earlier blog on Leadership and Self-Deception, I explored how self-betrayal leads us “into the box,” distorting how we see ourselves and others. That book helped explain why well-intentioned leaders sometimes create resistance, mistrust, and disengagement—often without realizing it.

The Anatomy of Peace, also by the Arbinger Institute, picks up exactly where that conversation left off. If Leadership and Self-Deception explains how we get trapped, The Anatomy of Peace goes further to explain why conflict persists within teams, organizations and relationships. And what it truly takes to resolve it.

The book argues that conflict is not primarily about behavior, communication, or systems. Instead, it begins with something more fundamental: the condition of the human heart.

The Heart of Peace

The starting point of The Anatomy of Peace is simple yet confronting.

  • When my heart is at peace, I see others as people.
  • When my heart is at war, I see others as objects.

This distinction matters because our effectiveness as leaders is shaped less by what we do and more by how we see. A heart at peace allows openness, accountability, and honest engagement. A heart at war, even when hidden behind logic or professionalism, quietly fuels conflict.

Collusion: How Conflict Sustains Itself

When hearts are at war, conflict does not merely exist: it feeds on itself.

The book introduces the idea of collusion, illustrated through the Collusion Diagram. In collusion:

  • I act from a heart at war.
  • My actions provoke resistance or defensiveness in others.
  • I use their response to justify my original stance.
  • Both sides feel validated and more entrenched.

What feels like self-defense becomes mutual reinforcement. Each person’s behavior becomes proof that the other is the problem. Conflict persists not because issues are unsolvable, but because hearts remain at war.

From Peace to War

The book makes an important clarification: peace is the natural starting point. We do not begin in conflict. We move into it.

That movement happens when we resist acting in line with what we sense we should do for another. As justification begins, the heart shifts from peace to war and we enter familiar patterns the book refers to as “boxes.”

The Boxes We Enter

Each box is characterized by four elements: how I see myself, how I see others, how I see the world, and how I feel. There are four typical boxes we enter: Better-Than Box, I-Deserve Box, Need-to-Be-Seen-As Box and Worse-Than Box.

Though these boxes look different, they all share one outcome: others stop being seen as people.

From War to Peace

Moving from war back to peace is not about winning arguments or changing others. It is about recovering clarity.

The book describes this recovery as a process:

  • First, I notice that my heart is at war.
  • Next, I acknowledge my role in sustaining the conflict.
  • Then, I let go of the need to justify myself.
  • Finally, I begin to see others as people again.

Peace does not require agreement. It requires honesty. When justification fades, clarity returns and with it, the ability to act constructively.

Spreading Peace

Peace is not passive, and it is not private. A leader’s mindset shapes culture.

The book shows that influence flows from how we are with others, not just what we do. When leaders operate from peace, accountability becomes cleaner, conversations become more direct, and resistance reduces naturally.

Conclusion: What This Book Teaches Us

The Anatomy of Peace reinforces a powerful leadership truth: conflict cannot be resolved at the level at which it is sustained. As long as we focus only on behavior, communication, or process, we miss the real source.

The book challenges leaders to look inward before looking outward to examine how they see others, especially when things are hard. Peace begins when we stop justifying ourselves and start seeing people as people again.

For leaders, that shift changes everything.

Containerization: CI/CD Pipelines for 12-Factor Applications

In my last posts, I covered how the 12-Factor methodology shapes modern applications, and how Spring Boot helps translate those principles into production-ready microservices. Once the application foundation is in place, the next step is to automate build, test, and quality checks — ensuring every change is consistent, reliable, and deployment-ready.

This post focuses on CI/CD as the enabler of discipline and quality, while containerization and orchestration will be covered in the next post.

1. Automate the Build

  • Use Maven to manage dependencies and standardize builds.
  • Leverage Jenkins to automate compilation, packaging, and artifact generation.
  • Ensure the build process is repeatable and deterministic, so the same code produces the same artifact across environments.
  • Package applications into JAR / WAR files as the unit of deployment.

Automated builds with Jenkins create a foundation where every commit can be compiled, packaged, and verified without manual steps.

2. Embed Quality Gates

Quality gates enforce standards and catch issues early:

  • SonarQube: code smells, duplication, and standards enforcement.
  • CAST: architecture compliance and technical debt tracking.
  • Checkmarx: security vulnerability scanning to shift security left.
  • Unit & Integration Tests: automated tests with coverage thresholds prevent regressions.

Integrating these tools into Jenkins pipelines ensures the CI/CD process is not just a delivery mechanism but a quality enforcer.

3. Align Environments

CI/CD ensures consistent execution across dev, staging, and production:

  • Automates environment setup and configuration.
  • Injects secrets securely, avoiding hardcoding.
  • Externalizes environment-specific values, aligning with 12-Factor principles like config separation and parity across environments.

4. Extend Beyond Functional Requirements

CI/CD is also the right place to embed non-functional requirements (NFRs):

  • Logging streamed to Splunk for centralized analysis.
  • Monitoring with Datadog for observability and alerting.
  • Messaging pipelines integrated with Kafka for scalability and decoupling.

Automation here ensures applications are production-ready, not just feature-complete.

5. Prepare for Containerization

Once builds pass all gates, the artifacts are fully production-ready. These artifacts — whether JARs or WARs — serve as the foundation for the next stage: packaging into Docker containers. Containers make applications portable, immutable, and easily deployable, bridging CI/CD with orchestration in Kubernetes, the focus of the next post.

Automation is not just about speed; it’s about consistency, discipline, and trust. A robust CI/CD pipeline, implemented in Jenkins, enforces 12-Factor practices, embeds NFRs, and accelerates feedback loops while reducing human error.

With build, test, and quality gates in place, teams are ready to containerize applications with Docker and orchestrate them with Kubernetes, moving one step closer to cloud-native microservices.

Containerization: Building 12-Factor Microservices with Spring Boot

In my last post, I explored how the 12-Factor App principles serve as a blueprint for building cloud-ready applications. In this post, I shift focus to a practical enabler of those principles: Spring Boot.

Spring Boot has become the go-to framework for building microservices-based applications that are cloud-native and production-ready. Why? Because it brings together the power of the Spring ecosystem with a level of developer productivity that directly aligns with 12-Factor principles.

Spring Boot is built on top of the Spring framework, which itself provides several foundational advantages:

  • Dependency Injection: Spring’s core feature, simplifying the management of components and making applications loosely coupled and testable.
  • Spring MVC: A module that streamlines the creation of web applications and REST APIs, which are fundamental in microservices architectures.

Spring Boot takes these strengths further by accelerating application development and production readiness:

  • Rapid development: Through Spring Initializr, starter projects, auto-configuration, and developer tools, teams can bootstrap applications quickly.
  • Production-ready by design: Spring Boot accelerates key non-functional requirements (NFRs):
    • Logging and error handling baked in.
    • Profiles and configuration properties to separate environments cleanly.
    • Actuator for health checks and monitoring.
    • Embedded servers for simplified deployment.

This combination allows teams not only to build apps quickly but also to meet the robustness, scalability, and observability expectations of modern cloud environments.

Building a 12-Factor App with Spring Boot
Spring Boot provides out-of-the-box support to implement each of the 12-Factor principles in practice. A few highlights:

  • Codebase: Use Git for a single codebase per service, keeping our Spring Boot app modular and clean.
  • Dependencies: Declared explicitly in pom.xml using Spring Boot starters.
  • Config: Externalized with application.properties or application.yml, augmented with profiles for environment-specific values.
  • Backing services: Treat databases, message brokers, and caches as attached resources. For example, integrate Kafka for event streaming and inject it via configuration rather than hardcoding.
  • Processes: Applications run as stateless processes, packaged into lightweight containers with Docker, and deployed onto Kubernetes for orchestration, scaling, and resilience.
  • Logs: Streamed to standard output and shipped to tools like Splunk for centralized analysis and alerting.
  • Admin/management: Exposed via Spring Boot Actuator endpoints, and extended with observability platforms like Datadog to monitor performance, reliability, and resilience.

By mapping Spring Boot’s features directly to the 12-Factor methodology, we move beyond theory into tangible implementation.

Spring Boot doesn’t just speed up development—it embeds cloud-native best practices into the foundation of our applications. When combined with CI/CD, Docker, Kubernetes, Kafka, Splunk, and Datadog, it becomes a powerful accelerator for building scalable, portable, and resilient microservices.

Containerization: Practical Steps for CI/CD, Containers and Kubernetes

In my last post, I revisited the 12-Factor App Principles – a blueprint for building applications that are portable, resilient, and scalable. This post takes the next step: how do we actually build containerized apps that bring those principles to life? I have been exploring this journey for a while: starting with a Spring Boot application, applying 12-Factor discipline, and then setting up pipelines, containers, and orchestration. Here are the four high-level steps for moving from principles to practice.

1. Build the application with 12-factor principles

An app needs to be designed for the cloud from day one:

  • A clean codebase tracked in version control.
  • Explicitly declared dependencies (no hidden assumptions).
  • Config externalized into the environment—not baked into code.
  • Stateless processes that can scale horizontally.
  • Logs treated as event streams, not files.

This ensures the foundation is right before we even think about containers.

2. Automate build & quality gates via CI/CD

A reliable build pipeline is the backbone of cloud-ready apps. This is where we codify consistency and quality:

  • Use Maven or Gradle to manage dependencies and standardize builds.
  • Leverage Jenkins to automate compilation, packaging, and artifact generation.
  • Code quality checks via SonarQube (for code smells, duplication), CAST (for architecture, technical debt, and maintainability), and Checkmarx (for security vulnerabilities).
  • Test coverage integrated into the pipeline to catch regressions early.
  • Environment setup so dev, staging, and prod remain aligned.

This is also the right stage to embed non-functional requirements – such as security, performance, and maintainability – into the software delivery lifecycle.

3. Containerize the Application

Once the pipeline is humming, the next step is to containerize:

  • Write a Dockerfile that packages our app into a lean, immutable image.
  • Follow best practices: use minimal base images, avoid hardcoding secrets, and leverage multi-stage builds.
  • Validate disposability: fast startup, graceful shutdown, and statelessness.

The container becomes the unit of deployment, fully aligned with the principles we started with.

4. Orchestrate & Deploy

Finally, deploy the containerized app in an orchestrated environment:

  • Deploy to Kubernetes for enterprise-grade orchestration – scaling, self-healing, and rolling updates.
  • Manage configuration using ConfigMaps (non-sensitive configs like DB hostnames, log levels) and Secrets (sensitive values like passwords, tokens, certificates). This approach ensures container images remain immutable, while environment-specific values are injected securely at runtime.
  • Validate resilience: scale pods up and down, perform rolling upgrades, and monitor logs as event streams.

This step is where our app truly becomes cloud-native: portable across environments, scalable under load, and manageable at enterprise scale.

The 12-Factor methodology comes to life when combined with automation, containerization, and orchestration. By following these four steps, teams move from abstract principles to concrete, cloud-ready deployments.

Containerization: 12-Factor App Principles

One of my blog readers reminded me recently that it has been a while since he saw a tech piece from me. In parallel, I have been immersed in containerization work and it gave me the nudge to reflect on how we design and build modern, cloud-ready applications. This post marks the beginning of a blog series where I will walk through the journey of building a versatile application: from principles to deployment.

We will start with the foundations – The 12-Factor App Principles. From there, we will move into a hands-on Spring Boot app (Java is still home turf for me), then look at containerizing it with Docker, and finally deploying on Kubernetes. I believe that writing software today is no longer just about what the app does, but how it runs anywhere—with consistency, reliability, and scalability.

Why 12-Factor Still Matters

Introduced in 2011 by Heroku, the 12-Factor methodology offers a pragmatic blueprint for building SaaS applications that are portable and resilient. For those of us who grew up in the world of monoliths and app servers, this feels like the architectural decluttering we always needed but did not know how to articulate.

Let’s briefly explore each of the 12 principles as a set of operating philosophies that guide how we write, organize, and deploy our code in a modern landscape.

  1. Codebase – One codebase per app that serves many deploys from configurations.
  2. Dependencies – Explicitly declare and isolate dependencies.
  3. Config – Store config in the environment and not the code.
  4. Backing Services – Treat backing services as attached resources.
  5. Build, Release, Run – Strictly differentiate build, release and run stages.
  6. Processes – Execute app as one or more stateless processes.
  7. Port Binding – Expose services through port binding.
  8. Concurrency – Scale out by running more instances. This principle will come alive when we get to Kubernetes.
  9. Disposability – Fast startup and graceful shutdown to maximise robustness.
  10. Dev / Prod Parity – Keep development, staging and production as similar as possible.
  11. Logs – Treat logs as event streams.
  12. Admin Processes – Run admin / management processes as one-off tasks independently.

The 12-Factor methodology lays the foundation for building applications that are portable, resilient, and scalable. In the next post, we will bring these principles to life with a Spring Boot project designed with the cloud in mind.

Leadership and Self-Deception

Leadership and Self-Deception by the Arbinger Institute is a thought-provoking book that reveals how we often deceive ourselves without realizing it, justifying our actions while blaming others. This mindset, the book argues, hinders our ability to lead effectively and build meaningful relationships. At the heart of the book lies a powerful metaphor: being “in the box” versus “out of the box”— a reflection of how we view and treat the people around us. The book offers practical insights into how we fall into this mental trap and, more importantly, how we can free ourselves from it

Self-Deception and the “Box”

  • Self-deception is the problem of not knowing and resisting the possibility that one has a problem.
  • No matter what we are doing on the outside, people respond primarily to how we are feeling about them on the inside. And how we are feeling about them depends on whether we are in or out of the box concerning them.
  • Out of the box: I see myself and others more or less as we are – as People
  • In the box: I see myself and others in a systematically distorted way – others as mere Objects.

How we get in the box

  1. An act contrary to what I feel I should do for another is called an act of “self-betrayal”.
  2. When I betray myself, I begin to see the world in a way that justifies my self-betrayal.
  3. When I see the world in self-justifying way, my view of reality becomes distorted.
  4. So, when I betray myself, I enter the box.
  5. Over time, certain boxes become characteristic of me, and I carry them with me.
  6. By being in the box, I provoke others to be in the box.
  7. In the box, we invite mutual mistreatment and obtain mutual justification. We collude in giving each other reason to stay in the box.

We can get out of the box by knowing the material and living it.

Knowing the material:

  • Self-betrayal leads to self-deception and “the box”.
  • When we are in the box, our “what-focus” shifts from achieving results to justifying ourselves.
  • Similarly, our ‘who-focus’ shifts to ourselves instead of the people we are meant to serve.
  • When we are in the box, the following efforts will not work:
    • Trying to change others.
    • Doing our best to “cope” with others.
    • Leaving.
    • Communicating.
    • Implementing new skills or techniques.
    • Changing our behavior.
  • Ultimately, our ability to influence and succeed as leaders depends on whether we operate from inside or outside the box. We can get out of the box as we cease resisting other people.

Living the material:

  • Don’t try to be perfect. Do try to be better.
  • Don’t look for others’ boxes. Do look for our own.
  • Don’t accuse others of being in the box. Do try to stay out of the box ourselves.
  • Don’t give up on ourself when we discover we have been in the box. Do keep trying.
  • Don’t deny that we have been in the box when we have been. Do apologise, then just keep marching forward, trying to be more helpful to others in the future.
  • Don’t focus on what others are doing wrong. Do focus on what we can do right to help.
  • Don’t worry whether others are helping us. Do worry whether we are helping others.

Leadership and Self-Deception reminds us that effective leadership starts with how we see others—and ourselves. When we act against what we know is right, we betray ourselves and enter the box, distorting reality to justify our actions. This mindset not only limits our influence but also impacts those around us. Getting out of the box isn’t about fixing others; it’s about choosing to be helpful, honest, and aware. As leaders, the real shift begins when we stop justifying and start seeing people as people.