I'm a self-taught developer that currently has more than enough experience to hold up against my colleagues waving their degrees. Still, I feel that I'm lacking some important skills to advance into being a senior-level professional in a leading role, specifically in the engineering, planning and designing aspects of software.
I've touched the surface of UML, ERM/ERD, have experienced projects managed using waterfall and Scrum. I feel there is something missing, as every time I start on a new project, I don't know where to begin. Should I start diagramming and how? Should I start writing a document describing the project on a technical level first, or should I dive head first into writing the initial tests and code, or pseudo-code?
I would like to know what, in my case, would be the best way forward, to learn how I can tackle this problem in the future and get better at leading and starting a project. There is not much I don't know about my technical tools and languages, but when it gets abstract I'm in trouble.