develpreneur podcast

The Swiss Army Knife Anti-Pattern – All Things To All People

Much like the make people happy obstacle, we have the Swiss Army Knife Anti-Pattern.  This mistake is another example of over-architecting a solution.  Think of it as throwing everything into a design instead of thinking through what is needed.  However, this approach is not gold-plating and bells and whistles.  Instead, it adds things “just in case” they are required. The Swiss Army Knife Anti-Pattern Defined We often have pointed out patterns that break down and simplify a problem.  The Swiss Army Knife Anti-Pattern is almost the opposite of that.  Instead of breaking a problem into smaller parts, there are fewer, more complex components.  That leads to complicated usage and often confusing results.  Even worse, this anti-pattern creates side effects and... Read more

develpreneur podcast

Make Everyone Happy – A Paradoxical Anti-Pattern

One of the most amusing anti-patterns is the one known as “make everyone happy.”  The funny thing is that it never does.  Instead, it points us to an old bit of wisdom that you end up pleasing no one when you try to please everyone.  Put more simply; you cannot have more than one master.  If this seems familiar, we have discussed it under the name “design by committee” in prior posts. Make Everyone Happy Defined You have heard that two heads are better than one.  Unfortunately, that does not translate to more is always better than less.  In particular, design and related decisions suffer greatly from too many voices.  There is nothing wrong with seeking feedback and input.  However,... Read more

develpreneur podcast

Architecture By Implication – An Assumption Anti-Pattern

The series switches gears to look at anti-patterns.  We start with the mother of all anti-patterns, architecture by implication.  Any time we have a pattern that includes assumptions, success is a challenge.  Looking ahead, the next several episodes will explore familiar anti-pattern names.  We will find that many coding anti-patterns can also be applied to architecture.  Likewise, these are ways to approach enterprise solutions. Architecture By Implication Defined This anti-pattern is wrong in the implication part of it.  Any architecture that involves implications and undocumented features is an anti-pattern.  The core challenge is that pieces of our architecture are commonly known.  That familiarity breeds a sense of “we all know this.”  However, it is a dangerous assumption to make. Our... Read more

develpreneur podcast

The Space-Based Pattern , AKA A Cloud Architecture

We wrap up our patterns focus with the space-based pattern.  This is also known as cloud architecture.  We will see how this approach allows us to break out the solution into components suited for scaling.  We solve the problem of scalability in architecture instead of tools. The Space-Based Pattern Defined We have often seen layers in our architecture discussions.  Similarly, this pattern breaks out each layer into many workers.  Therefore, it is described as a collection of grids.  First, we have processing units that do the bulk of the work.  We then have a virtual middleware composed of messaging, data, processing grids, and a deployment manager. Applying The Pattern We see in the above list of components that each step... Read more

develpreneur podcast

The Microservices Architecture Pattern – Small, Reusable Solutions

We come to one of the best patterns for breaking a big problem down into bite-sized pieces.  The microservices architecture pattern is a perfect fit.  The objective is to farm out work to one or more services that are small and well-defined.  This pattern is one that has grown in popularity and is often seen in Cloud solutions. The Microservices Architecture Pattern Defined The architecture is another one that has three primary components.  There are client requests, an interface layer, and service components.  Likewise, the microservices architecture is another distributed pattern that allows the solution to grow as needed. In general, requests are directed to services via the interface layer.  That layer also can bundle or roll up responses so... Read more

develpreneur podcast

The Microkernel Pattern – Core System and Plugins

The focus of this episode on software architecture patterns is the microkernel pattern.  It is a common way to build on core technology without the need for future design.  Once the plugin interface is defined, the sky is the limit for enhancements and upgrades.  You do all of this without impacting that core. The Microkernel Pattern Defined This approach starts with a core piece of functionality.  Next, other components are added to it.  We see this pattern utilized in many cloud products and commercial software.  The core can be protected, and then plugins farmed out.  Also, customers can purchase the core and then plugins a la carte.  In a technical sense, the core provides shared functionality across the system.  The... Read more