Software Development Explained