Methodology of Software Development