There are five major stakeholder areas :
- End-users
- Business
- Customers
- Domain experts
- Developers
Both Agile and Lean tell us to break the traditional approach of contacting the stakeholders at a specific moment of the project development, and instead keep a permanent contact with them throughout the project development.
The End-Users
End users are an anchor to the project, they are why the software is being built, and it must be what they expect it to be.
Agile focus a lot on quickly getting feedback from the end-users and Lean focuses a lot on only allocating resources on what is needed, cutting all waste. So, if we can get a prototype of a feature to be built quickly and let the users try it so we get feedback that helps us build exactly what is needed, we are applying both Agile and Lean.
The end-user mental model of the system is how the end-user imagines the system, what he really needs the system to do, and that is what we need to capture and reflect in the architecture and behavior of the application.
Its important to keep in mind, though, that the structure is more stable than the behavior, which builds on the structure. So its important to get the structure correctly from the start, so we can quickly adjust behavior without needing to change the structure.
I’ve been talking of end-users as an homogeneous type of user. However, that is often not the case. Different types of user have a different mental model of the system, have different needs , different views of the system. It’s imperative that we gain insight into those different views and reflect them in the system as well.
We must know as much as possible about what the system needs to do, and the different mental models of the users, in order to create a stable structure, on top of which we can build behavior.