Understanding the Discovery Phase in software development: Part 1