zaterdag 21 februari 2009

Difference between software architecture and design

I found a nice answer to this recurring question at http://www.sei.cmu.edu/architecture/essays.html#difference

There's an amusing resemblance between how Enterprise Architecture is seen at the RDW and the phrase "The [software] architecture establishes constraints on downstream activities, and those activities must produce artifacts [...] that are compliant with the architecture, but architecture does not define an implementation."

Maybe there's not that big a difference between Software Architecture and Enterprise Architecture after all? (On SA versus EA you could also look at this one.)

woensdag 11 februari 2009

RDW update



I've neglected this blog since I started my work at the RDW. This doesn't mean there nothing was learned, on the contrary! I'm getting such a lot of experiences that I couldn't possibly mention them all. I'm learning about architecture but also a lot of collateral stuff. But for now I'll just mention some points about architecture.

In Q1 I took lectures at the RuG on software architecture, but at the RDW it's all about "enterprise" architecture. This is the domain of fuzzy talks, large scale models, handwaving and the like, but when you are in the domain a bit longer it becomes clearer. I now feel I can cut away the clouds and move more towards the essence. It's all about structuring, reducing complexity and enabling change in the long term. And all that on the scale of the entire enterprise instead of a single system. In this regard I can really recommend the DYA book "Building an enterprise architecture practice" (or "Stap voor stap op weg naar een professionele enterprise architectuur" in Dutch). I read it when I started here, and recognized a lot of situations here. In fact the first meeting at the RDW seemed a literal replay of a fictional case in the book. I will reread it when I´m finished.

On the part of software architecture, the RDW isn´t as far yet as their work on enterprise architecture. Put in one sentence I see software architecture as capturing the essential requirements (use cases AND non-functional requirements) from the different stakeholders and then making the fundamental design decisions how to reach those. Of course RDW works on these things but not everything is explicit and every project or even person has his own way of working and documenting on these issues.