Every programmer or rather every application developer, let it be a simple web app or a GUI, needs to design his application not sitting in a developers’ chair but from the end users’ chair. If he starts developing it from his very own PoV as a developer, things get geeky as well as too technical that the usability of the app is going to suck big time when put into real use. This is because, unless he does his work from the end users’ PoV he is not going to understand how his app should interact with the end user as well as his app is not going to give back something which the end user wishes when using his app.
I have heard this point being stressed a lot of times, especially by people who have guided me till now in various projects. You don’t assume yourself to be intelligent, neither the end user to be stupid, but you have to assume yourself to
be intelligent very similar to your intended end user. Why am I writing this all of a sudden is, I and my colleague were developing a simple user log mechanism and we had to start thinking about how the end user, how is going to be very much a non-technical person, can interact with and use our interface. This helped us find some small small things which we had overlooked, but would have otherwise messed up our entire application itself. We had to think of ways to make it easy for the user to give us data, which is also easier for us to process and give him the service he wants.
Thus, all of a sudden I realized the importance of sitting in the end users’ chair if I want to develop products with good end user usability.