Evolving Architectures – Part V – Leaps

Evolving Architectures – Part V – Leaps

When talking about “evolving architectures” a “leap” is one of the worst things that can happen. In the previous installment in this series I defined Kent Beck’s “Leap” design strategy in the context of Software architecture as “Leap – is for when you know where you’re heading and you can afford to stop everything until the new way is in...

Read More

Evolving Architectures – Part IV – Design mechanics

Evolving Architectures – Part IV – Design mechanics

If we want to evolve architectures or change an existing architecture in general, for that matter, it is important to understand design mechanics. I recently attended a seminar with Kent Beck that talked about “responsive design”, where he provided a good definition for 5 strategies or types of design mechanics*: Leap Parallel Simplification Stepping Stone “Just Do...

Read More

Who needs an architect anyway?

Who needs an architect anyway?

Not all projects need architects. There, I’ve said it. Not all projects need architects and I am not talking here just about trivial projects. There are cases (maybe even many cases) where you can get by with what I call “off-the-shelf” architecture – maybe with a few adjustments that any master developer (i.e. seasoned and experienced developer) can handle. For instance a...

Read More

Evolving Architectures – Part III starting out

Evolving Architectures – Part III starting out

Before we talk about the what/how let’s do a quick recap on the why we’re here: Architecture is important to software projects Architecture and agile have some conflicting forces that needs to be reconciled  (e.g. up-front work, hard to change vs. delivering business value quickly and embracing change) design can be emergent but architectures can’t and  must be grown...

Read More

Evolving Architectures – Part II but Design is emergent

This is part II of a series on agile architecture. You can read part I here. In the previous installment I provided a definition for software architecture and raised the apparent friction between the up front design implied by software architecture and the YAGNI approach and deferred requirements prompted by agile development in  the large. This installment take a look at an additional angle of...

Read More

Evolving Architectures – Part I What’s Software Architecture

I’m writing a short series of posts for MS Israel MCS blog (in Hebrew) and I’d thought I’d translate them to English, as it seems to me they are interesting enough. In this series I am going to talk about Evolutionary Architecture or , some of the aspect of dealing with software architecture in agile projects. The topic is interesting since architecture and agile seems to have some...

Read More