What should be considered when designing an application?