Microservices are the latest architectural style promising to resolve all issues we had we previous architectural styles. And just like other styles it has its own challenges. The challenge discussed in this blog is how to realise coupling between microservices while keeping the services as autonomous as possible. Four options will be described and a clear winner will be selected in the conclusion.
At Xebia we regularly have discussions regarding Agile Architecture? What is it? What does it take? How should you organise this? Is it technical or organisational? And much more questions… which I won’t be answering today. What I will do today is kick off a blog series covering subjects that are often part of these heated debates. In general what we strive for with Agile Architecture is an architecture that enables the organisation to keep moving fast and without IT be a limiting factor for realising changes. As you read this series you’ll start noticing one theme coming back over and over again: Autonomy. Sometimes we’ll be focussing on the architecture of systems, sometimes on the architecture of the organisation or teams, but autonomy is the overarching theme. And if you’re familiar with Conways Law it should be no surprise that there is a strong correlation between team and system structure. Having a structure of teams that is completely different from your system landscape causes friction. We are convinced that striving for optimal team and system autonomy will lead to an organisation which is able to quickly adapt and respond to changes.
The first subject is replication of data, this is more a systems (landscape) issue and less of an organisational issue and definitely not the only one, more posts will follow.
Last wednesday the first meetup of the Continuous Delivery Think Tank was held at Xebia offices in Hilversum. The goal of the Think Tank is to gather people that want to implement continuous delivery in their organisation, to help each other using the collective brainpower of the group. In this first session we explored what the first steps should be when you want to successfully introduce continuous delivery into your organisation. The level of experience varied widely across the participants (from doing 1000s of deployments per day to just starting to explore the possibilities), so there was something to learn and share for everybody. This lead to lively discussion and by using the 6 Thinking Hats method we ensured that the question was approached from different viewpoints. The conclusion was that trust and cooperation are key and although this can start small, it does have to spread across the organisation to be really successful.
Last Thursday the first Software Architecture Pressure Cooker meetup was held. The goal of these meetups is to exchange experiences on software architecture. This is done by working on a real life case using the following format:
- A specific challenging scenario is introduced in general terms
- An organization is invited to present a real life case that matches the scenario introduced, they act as product owner during the evening.
- In a couple of rounds the group brainstorms, breaks up in sub groups and works on solutions.
- All solutions are presented to the product owner
- Some heated discussions take place between the various subgroups where each group tries to convince the other groups.
The scenario for this first meetup was "3-2-1 Bang!". Characteristics of this scenario are:
That was the question on my mind while walking out of an hour and a half meeting which was attended by 6 people. The problem wasn't that complicated, we went into the meeting with 3 alternative solutions: so why did it take so long to pick one? It kept nagging me a bit and then I recalled the "Simple Architectures for Complex Enterprises" book by Roger Sessions. By applying his approach I was able to determine if we made the right choice and I'll describe the results below.
A while ago I realized that the C in COTS stands for Customize, so in reality it is Customize Off The Shelf (and not Commercial Off The Shelf). The premise of COTS products is that it reduces system development costs and long term operational maintenance costs. Sounds like music to management and procurement departments. Reality can be different. Realizing that the C stands for Customize highlights one of the pitfalls most people are aware of: the amount of customization needed to make a COTS product fit in an organization can be huge. But there are more pitfalls and in this blog I'll highlight a few.
At the start of your career your backpack with is filled with lots of theory and as your career progresses more and more experience get's thrown in, perfect. At some point you won't be learning new things if you keep doing the same role. That's why people take up different roles and grow in a team. However, the goal of the team's you're in often remains similar: develop system X that realizes user stories Y and Z. Many people do lots of roles, but all on the 'producing' side of the IT. I personally experienced the value of jumping to (one of) the other side(s) for a period of time. After returning to my original role I became much more effective.
This is the tenth post in a series of blog posts discussing Lean Architecture principles. Each post discusses one principle. Applying these principles results in an architecture (process) that is better connected to the business, better able to deal with change and more cohesive. The tenth principle we discuss is called "Architecture emerging from Projects". Read more
This is the seventh post in a series of blog posts discussing Lean Architecture principles. Each post discusses one principle. Applying these principles results in an architecture (process) that is better connected to the business, better able to deal with change and more cohesive. The seventh principle we discuss is called "Architecture Initiated by Business Goals". Read more
This is the forth post in a series of blog posts discussing Lean Architecture principles. Each post discusses one principle. Applying these principles results in an architecture (process) that is better connected to the business, better able to deal with change and more cohesive. The forth principle is call "All hands on deck early on" (initially coined by James O. Coplien). The essence of this principle is that all stakeholders of a project are involved at the start of the project.