Short post on software design