As an architect/developer/software professional I strive to produce the best product I can create within my environment. In particular, I see myself as having two customers to please: the person who will use the product and the one that will maintain it.
The person that will use the product day-in and day-out (should) cares about:
- The product meets her/his expectations
- Usability (is it easy to use?)
- Has little (or no) flaws/errors during operation
- It is delivered to them within the expected time
- Are involved with feature priorization & negotation
As for the person that will maintain the product (should) cares about:
- Complexity (is the code doing too much in one place?)
- Is testable (are there unit tests to verify change?)
- Has documentation (comments, unit tests, etc.)
- Is easy to deploy (once it compiles, how do I get it to the user?)
- Is flexible (is adding/changing a feature a nightmare to do?)
Who do you believe are your customers?