Organizations today are constantly looking for a silver bullet to cure all of their technology woes so they can deliver their products to market faster and cheaper than ever before. Typically, this treasure hunt takes the form of a single technology and is described in the broadest terms possible: cloud computing, continuous delivery, microservices, virtualization, and on and on.

As we all come to find out, expecting any one of these technology strategies or tools to solve all of our delivery problems will only be met with disappointment. Yet, we still persist, hunting for that one thing that will change the game for us. This phenomenon is repeated so frequently across every industry that Gartner created a Hype Cycle to plot where the year's most popular technologies sit on a curve. Spoiler Alert: if you're exploring wearables, 3D printing, IoT, or Big Data, you have a long road ahead of you.

The main reason organizations are continually frustrated with single-solution technologies and their ineffectiveness in "fixing" everything can be summed up in a single word: myopia. Organizations have an expectation that a shiny new technology will do more for them than it was designed for - potentially leading down a path of poor design decisions in the future as they try to fit a square peg into a round hole. New technologies released today are geared towards solving a specific problem and should be treated as a tool alongside several others in a belt - similar to how craftsman have multiple tools to effectively handle any job.

As the technology landscape continues to evolve, new tools and strategies are widening to solve targeted and specific problems instead of a one-size-fits-all solution. Organizations are accustomed to adopting a single solution - like SQL Server - and modifying their processes to work within the confines of that particular technology. However, scale requirements have shifted and we can no longer meet the market's demands with a single server that requires ever increasing resources to be added to it. We've hit the limit, and must find another way. This is why tools like MongoDB, Redis, and ElasticSearch were built, to solve the monolithic server issue and allow for a more horizontally scalable architecture. However, these are not fix-all solutions and treating them as such will only lead to disappointment and unmet expectations.

Instead of focusing on a single-solution, organizations should consider a framework/platform to guide them through improving their entire technology stack end-to-end. This framework spans across multiple areas of the organization: from how custom software is built (continuous delivery), to how functionality is exposed to the enterprise (services / micro services), and everything is packaged up and hosted for consumption (containerization). This approach is much bigger than Dev or Ops or even DevOps - it's a new focus around EnterpriseOps.


Focusing on EnterpriseOps will help widen the scope of what the organization focuses on and doesn't require fully committing to a single technology. Instead, a framework can be used to meet specific organizational or delivery goals through the adoption (or not) of several different technologies designed to work within a larger architecture. This approach allows the enterprise to use the right tool for the job, instead of relying on the same tired old hammer to complete complex projects.

When attempting to improve your organization's software development and delivery processes, it is important to keep a holistic view of the plan-build-test-deploy-run cycle. At the end of the day, there is no single technology that can singlehandedly help you meet the ever increasing demands of your customers. Rather, a more complete focus on how the enterprise operates will help your organization realize long term benefits.

My RSS Workflow

In my early years as a programmer, I spent more time consuming RSS feeds than actually doing real work and practicing my craft. This lead to a period where I wasn't growing as much as I wanted to or knew I was capable of. Over time, I realized how much time I was wasting reading - instead of doing - and decided I needed a change.

Since then, I've evolved an RSS workflow that helps me consume great content without drowning in the vast ocean of information generated by the world every day.

  1. Browse headlines for all of my RSS feeds through Feedly. Typically, this is done on my iPhone while I wait in line at Chipotle, the grocery store, or the bank.
  2. Long-press feeds that pique my interest to send to Instapaper. I don't read the article at this time, I just save it for later.
  3. Repeat for a given period of time. Usually one week.
  4. Find a quiet place and consume all of the articles saved over the past several days. I try to do this every Saturday.

I've found this to be a much more approachable way to consume RSS. Do I occasionally miss items? Yes. But, not nearly as many as I would by ignoring RSS in the first place.

On any given week, I consume 20-30 great articles in batch mode. I feel like I stay well read in the goings on in my industry and various other areas I'm interested in. Best of all, this technique stays out of my way and allows me to get the work done that matters.

The Evolution of Software Architecture

I came across this great overview of each software architecture trend since the 1990's. I remember fondly (and sometimes not) dealing with systems in each of these areas - each having their own array of benefits and challenges.

Evolution of Software Architecture

If you can’t feed a team with two pizzas, it’s too large. That limits a task force to five to seven people, depending on their appetites — Jeff Bezos

Source - @benorama