Personal Insights
On the significance of a shared vision in software engineering
The most important insights I took away: a shared understanding is essential for people to work together in larger groups. This common vision is very powerful, but also fragile. For example, money, religions, states, corporations. These exist “only” in the human imagination. Not true? Then try to explain it to a dog. But the same is true for humans: some people share their understanding of them, others do not.
The relation to software development is obvious: when planning a new software or further developing an existing software, a vision of what should be developed has to be developed and the development team with different roles has to work together to make the vision become reality.
When planning a new software system, the first thing to do is to get different perspectives together and develop a common vision. One way to do this is to use Design Thinking to bring together Desirability (customer perspective), Viability (business perspective) and Feasibility (technology perspective).
In my department we document this common understanding in a Vision&Scope document. By means of this document, the common understanding is recorded. This makes it more stable – a shared vision is fragile. Additionally, it makes the shared vision shareable. Typically, in the planning phase only a few people are involved, for the implementation the vision has to be shared with all participants.