Requirements gathering and analysis