Wednesday, 9 February 2011

Pull and Push Requirements Revisited

Architecting is bringing together two entities: what we have and what we need.

What we have can be improved and modified in a number of ways both simultaneous and mutually exclusive. You can imagine a tree of paths starting from one node. The node is what we have. The branches are what can be done about or with it.

The same situation is with the other pole – what we need. If it’s a node, then the branches coming out of this node are the possible objectives which if achieved can deliver what we need.

The architect work is to build the branches and link the branches from the different sides. Building architecture for complex systems is a hard work, often not achievable in the original idea. I find it important to identify five directions of thoughts: what we have, what we need, what can be done, ingredients of what we need, and the grey area of linking.