Structured Programming, Object Oriented Design, Functional programming - all of these are the way code can be written.
WaterFall, Agile - is the process by which development can be done. Development is not the only thing when it comes to software development. Programming is one of the mandatory component of the process. The process can have design/testing/refactoring/maintenance.
And both of the above are complementary to each other (i.e. one can do structured programming and be modular and use some of the agile principles).
I don't know as to when it started (and I guess it should not matter).
You might come up with your own style of process, which can work better in your own scenario.
EDIT: In summary, people started with structured programming, used it very well. It had its own limitations & things became object oriented. OO has its own limitations, as some gurus say and they see functional programming as the way to fix it.
It all depends on what suits your scenario & what serves you better.
There is no silver bullet, as experts say.