CREATING SUPERIOR PATIENT SYSTEMS: A OVERVIEW TO SOFTWARE DEVELOPMENT