Cloud-Based Software Development: Pros and Cons