Wide Awake Developers
  • Evolving Away From Entities
    Posted on April 28, 2018 in architecture, microservices

    Hat tip to Stuart Halloway… once again a 10 minute conversation with Stu grew into a combination of code and writing that helped me clarify my thoughts. I've been working on new content for my Monolith to Microservices workshop. As the name implies, we start with a monolith. Everyone gets their own fully operational production environment, running a fork of the code for Lobsters. It's a link sharing site with a small but active group of users.

    Continue Reading »
  • Data is the New Oil
    Posted on March 2, 2018 in history, macroeconomics, technological revolution

    The other day I tweeted that "Data is the New Oil." A lot of people retweeted, but a quite a few asked what I meant by that. I'll amplify a bit to explain the analogy. This ended up being a lot to unpack from a quick tweet! For quite a few years now, I've used Twitter as a way to scratch the itch of personal expression. A quick sound bite there, highly compressed and idiosyncratic was just enough to relieve the mental pressure.

    Continue Reading »
  • Coherence Penalty for Humans
    Posted on January 9, 2018 in organization

    This is a brief aside from my ongoing series about avoiding entity services. An interesting dinner conversation led to thoughts that I needed to write down. Amdahl's Law In 1967, Gene Amdahl presented a case against multiprocessing computers. He argued that the maximum speed increase for a task would be limited because only a portion of the task could be split up and parallelized. This portion, the "parallel fraction,"

    Continue Reading »
  • Services By Lifecycle
    Posted on January 5, 2018 in architecture, microservices, business-process

    This post took a lot longer to pull together than I expected. Not because it was hard to write, but because it was too easy to write too much. Like a pre-bonsai tree, it would grow out of control and get pruned back over and over. In the meantime, I delivered a workshop and spent some lovely holiday time with my family. But it’s a new year now, and January is devoid of holidays so it’s high time I got back to business.

    Continue Reading »
  • The Entity Service Antipattern
    Posted on December 5, 2017 in architecture, microservices

    In my last post I talked about the need to keep things separated once they've been decoupled. Let's look at one of the ways this breaks down: entity services. If a pattern is a solution to a problem in a context, what is an antipattern? An antipattern is a commonly-rediscovered solution to a problem in a context, that inadvertently creates a resulting context we like less than the original context.

    Continue Reading »
  • Keep 'Em Separated
    Posted on November 27, 2017 in architecture, microservices

    Software doesn't have any natural boundaries. There are no rivers, mountains, or deserts to separate different pieces of software. If two services interact, then they have a sort of "attractive force" that makes them grow towards each other. The interface between them becomes more specific. Semantic coupling sneaks in. At a certain point, they might as well be one module running in one process. If you're building microservices, you need to make sure they don't grow together into an impenetrable bramble.

    Continue Reading »
  • Root Cause Analysis as Storytelling
    Posted on November 8, 2017

    Humans are great storytellers and even better story-listeners. We love to hear stories so much that when there aren't any available, we make them up on our own. From an early age, children grasp the idea of narrative. Even if they don't understand the forms of storytelling so much, you can hear a four-year-old weave a linked list of events from her day. We look for stories behind everything.

    Continue Reading »
  • Release It Second Edition in Beta
    Posted on August 24, 2017

    I’m excited to announce the beta of Release It! Second edition. It’s been ten years since the first edition was released. Many of the lessons in that book hold strong. Some are even more relevant today than in 2007. But a few things have changed. For one thing, capacity management is much less of an issue today. The rise of the cloud means that developers are more exposed to networks than ever.

    Continue Reading »
  • Spectrum of Change
    Posted on June 23, 2017

    I've come to believe that every system implicitly defines a spectrum of changes, ordered by their likelihood. As designers and developers, we make decisions about what to embody as architecture, code, and data based on known requirements and our experience and intuition. We pick some kinds of changes and say they are so likely that we should represent the current choice as data in the system. For instance, who are the users?

    Continue Reading »
  • Queuing for QA
    Posted on May 1, 2017 in qa

    Queues are the enemy of high-velocity flow. When we see them in our software, we know they will be a performance limiter. We should look at them in our processes the same way. I've seen meeting rooms full of development managers with a chart of the year, trying to allocate which week each dev project will enter the QA environment. Any project that gets done too early just has to wait its turn in QA.

    Continue Reading »
back to top

Page 1 of 24

Older »



Powered by Hugo, based on the Er theme.
Copyright (c) 2002 - 2018 Michael T. Nygard