There are almost a dozen different development methodologies. Some are closely related to the other. I only want to highlight two, which I believe sets the main path for others:
… and actually there is a third, which I will not write about but one needs to be mentioned as it is often confused with the Agile method: Cowboy coding.
Cowboy coding is a software development without a defined or structured method: team members do whatever they feel is right.
My theory about software development and developers: All developers started of with the waterfall model as it is taught in schools and follows rigid rules. It all starts with the Functional Specification and doesn’t start the next step (Design) before the first step is fully completed. This is where it starts and goes all wrong.
There are different Agile methods (ie: scrum, XP, kanban, etc) and they are often mashed up. Agile development is more liberal hence harder to master. One should always be careful not to end up with Cowboy coding when trying the Agile software development.
For more information I recommend reading Wikipedia and watching videos on YouTube.