I have been programming for about 10 years. I am good at the technology I work with. I have developed libraries that are used by other programmers in my work place. I can do rather complicated trouble shootings and many of my coworkers ask me to help them with their technical problems. I can implement programming tasks that have clear inputs and outputs reasonably fast and with reasonable quality. However I am very bad at understanding software requirements when I want to lead a project. I frequently miss important requirements, I am not good at interviewing the stakeholders, and organizing the requirements. And I am generally confused when I want to start a mid sized project and I don’t know from where I should start, how to plan the project and prioritize the objectives.
What can I do to get better? Are there any resources that can help me?