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?