I am designing a software for a friend but his ideas about my software are not in line with what i have put into the development of the software. My question is how does perception and reality come into software design?