If you have ever worked in software product development you have probably asked yourself (or been asked by software engineers) the following questions: