What are the User, Business, and System Goals?

The most effective way I've found to elicit requirements, is to simply ask: What are the user goals? What are the business goals? What are the system...

Scenario Types and Their Usage

I use scenarios all the time for anything from designing a user experience to evaluating architecture. Scenario is an overloaded term though. There's lots...

Shifts of Power

When Ward Cunningham was on our patterns & practices team at Microsoft, he would talk about "shifts of power."  What’s interesting is how requirements...

Quality Attribute List

When thinking about quality, I tend to draw from the following quality attributes: Availability Buildability Conceptual Integrity Evolvability Extensibility...

Agile Architecture Method

The Agile Architecture Method is a way to bake quality into the life cycle. It's also an iterative and incremental approach for architecture and design. In its simplest form, it's a way to help you identify potential hot spots against your prioritized scenarios. The hot spots are key engineering decision. The main hot spots are cross-cutting concerns, such as data access, exception management, logging ... etc. and quality attributes, such as security, performance, reliability ... etc.