Trade Offs In System Design