A-Framework-of-Challenges-and-Key-Factors-for-Applying-Agile-Methods-for-the-Development-and-Customisation-of-Software-Products-in-Distributed-Projects