Dealing with complexity Small flexible interfaces Less emphasis on features, more on quality Testing Ask questions about lower layers Make consumers demand quality and reliability Make software consistent