Some examples of application development principles are: Applications should be integrated using standard interoperability methods and protocols. Applications should be designed with Security in mind. Applications should be accessible via Application Programming Interfaces. Applications should be flexible in that changes can easily be made. Applications should be scalable, i.e. not be negatively impacted by changes in user numbers, transaction volume or data quantity. Applications should not dictate the channels or media used to operate with clients or third parties. Applications should support Data Warehousing, i.e. provide correct data and correct granularity of data for analysis. Applications should be able to expose its inner state, i.e. report abnormalities within itself or within its environment so that operators can take appropriate action.