Essa dificuldade é normal nos nossos primeiros projetos. Mas a boa notícia é que não tem muito segredo: organização e prática.
Fazer um trabalho do zero exige uma habilidade que vai além de fazer códigos. Tem mais a ver com organização, planejamento, prática.
Algumas coisas funcionam para mim. Geralmente divido em etapas:
1 - brain dump (aqui as ideias e necessidades são coletadas sem limitações, e com zero especificação técnica).
2 - documento em texto simples o fluxo e detalhes de cada feature (gosto de colocar cada feature em um markdown; nada de detalhes técnicos, tem que funcionar de forma que alguém que nunca programou consiga entender).
3 - faço os diagramas que julgo necessários (curto UML e C4, mas você pode fazer do seu jeito, até desenhar com lápis e papel).
4 - defino a stack necessária (linguagem, framework, db, etc).
5 - criação do design (aqui terceirizo, ou quando é algo básico, pego referências no dribble)
6 - hora do código.
Quando você documenta as necessidades antes de ir pro código, o desenvolvimento se torna fluído. Você não tem dificuldade de executar as tasks que o seu chefe passa provavelmente porque ele ja fez boa parte desse processo pra você.