Traditionally, the main stages of the software development process are planning, where the subject idea is explored, and potential bottlenecks are identified, analysis that aims to define the system requirements. These stages of the software product development lifecycle are followed by the design phase, where clickable prototypes are created and tested on end-users to get immediate feedback. As soon as the design phase is completed, the development stage takes place. Here developers build digital product functionality. These features are further tested by quality assurance engineers. When everything is okay, the written code and all data are deployed to production and a web product goes live. After that, the customer can count on after-launch maintenance and support of an outsource software development agency.