The first step to winning any battle is to know yourself. The discovery process leverages the delivery of software with better quality, earlier and with lower expense.
One of the major challenges to take this step is the complexity of developing software solutions. It is common to have barriers, which make communication virtually impossible between developers, such as software factories, and their users and customers.