I think as programmers you should read and understand this:
http://martinfowler.com/ieeeSoftware/explicit.pdf
From the expert in OOAD and related stuff - Martin Fowler.