An interesting article on the role of the business analyst in creating a common vision caught my eye this morning. The article focused on creating a common vision but it made me think about maintaining and developing that common vision over time, particularly of the complex logic in a system. Procedural code does not lend itself to business user understanding and I am not convinced there is that much a business analyst can do to help. If, however, the complex logic is externalized as a decision and that decision is managed declaratively (using business rules, say) then the business analyst (and the business user) have a viable point of communication with the programmers. Whether the non-technical users maintain the rules directly or collaborate with programmers to make the changes they need, the separation of business logic from “plumbing” code and the use of a declarative, higher-level syntax mean they will be much more likely to maintain a common vision of the system’s behavior. As I have said before, we could call this application development 2.0.