All posts in Enterprise Architecture

What is Domain-Driven Design?

Over the last decade or two, the philosophy of Domain-Driven Design, or DDD for short, has developed as an undercurrent in the object community. The premise of DDD is two-fold:

  • For most software projects, the primary focus should be on the domain and domain logic
  • Complex domain designs should be based on a model.
Domain-driven design is not a technology or a methodology. It is a way of thinking and a set of priorities, aimed at accelerating software projects that have to deal with complicated domains.

To accomplish that goal, teams need an extensive set of design practices, techniques and principles. Refining and applying these techniques will be the subject of discussion for this site, generally starting from the language of patterns laid out in Domain-Driven Design, by Eric Evans.

Read more

Does this sound familiar?

You have probably been to a presentation or a sales pitch where you have heard things like:

We bring Cloud based solutions into your development environment with an Agile methodology that ensures Lean delivery on-time and on-budget.

Next time you hear something like this, try asking if he or she can describe two parts of the Agile Manifesto? Chances are that he or she cannot.

Why is that so? The reason is that Agile and Lean is the new super hot buzz word, the silver bullet to solve everything, the war to end all wars. The problem is not that that most people do not do Agile properly but merely use it as a selling point. The problem is that very few managers can tell the difference. Can you?

It is actually quite simple

Agile is basically about communication, trust and accountability. Thats it!

Read more

Why you need a simple technical setup

You need a simple technical setup because you need to have full control over your production line. An overly complex technical setup means that you cannot support your business with the functionality they need, when they need it. This again leads to loss of revenue.

The less cogs and wheels we have in the machine, the less can go wrong. Have you ever been in a situation where you couldn’t go-live due to technical issues that you couldn’t solve? If so, then you know why a simple technical setup is a good thing.

How did it get “un-simple”?

Complex Setup
Complex Setup

Over the years our IT ecosystems have gotten more and more complex. We used to work on a single machine, using only two or three programming languages. The system landscape today is a lot more complex. Clustered servers, different sorts of server types for different tasks, a mix of data interchange formats, integration middleware, several different programming languages and a mix of different operating systems, just to name a few.

Read more

What exactly is Cloud Computing?

Cloud Computing is, just like SOA (Service Oriented Architecture), a very overloaded word.
For some it is just that their servers are hosted outside the company walls by a local provider, Azure, Amazon, etc. For others it is also building their applications around Cloud service providers such as Azure (Service Bus, SQL, Caching, Hadoop, …), Amazon (RDS, EMR, Dynamo, ElastiCache, …) or Google App Engine.

Cloud Characteristics

Here are some of the common characteristics that surround cloud based computing:

  • Self-Service
  • Elastic Scalability (if your application is designed for it)
  • Common Networks
  • Shared Infrastructure
  • Metered Consumption

Read more

SOA goals and realities

SOA has been long been the holy grail of Increased Business Agility and Cost Reduction which should be achieved through Increased Usability, Improved Maintainability and Redundancy Reduction.

Curious about how SOA and Microservices relate to each other? Read more on our blog.

Common SOA Realities

You have spent a considerable amount of money on technical infrastructure (e.g. Enterprise Service Bus)  trying to become more aligned to your business, but you have most likely arrived at the following realities:

  • Systems are more fragile
  • Development and Maintenance costs are higher
  • Your services are not being reused
  • You thought SOA would solve your integration problems, but they’ve gotten worse
  • No one want to build or maintain services
  • System performance is worse

Read more