Modern software engineering methodologies for mobile and cloud environments