you said that server-side dev is the only option IRIS provides,

I meant IRIS, or Caché, or Ensemble - when developers really store and even edit code on the server. 

Now that I've saved that file and it's on the server, to continue making changes I should open up the server-side file and continue editing from there?  Or I can continue working on the local and it will overwrite the server side?

you can continue editing it locally sending it to the server for compilation/testing every time.

I think I'm seeing your point about commits then.  I edit it locally, it's sent to the server, the server sends it to the repo, and locally I should pull down the repo before continuing any changes. Is that the idea?

The idea with starting from a local folder with files, which is connected with source control. So any changes to the files are automatically being tracked by the source control you use (git, svn, mercurial, whatever). You use the server only to compile/test things - no connection to source control needed on a server-side.

This is how things happen in almost any programming stack.

Reading the documentation, I'm also confused if local development is even desirable?  In my case I have IRIS community running docker and I have Cache 2018 running on my local machine (can't get IRIS locally as it's a work computer and locked down).  In this case I probably just want to develop all my code on the server?

It's up to you, of course. Developing the code "sitting inside" the server it's sort of the option only IRIS provides.

If you think what's going on when you develop "on the server" is when you change the class you change it in some global on the server and when you compile it you send the global to the compiler. And when you good you try "not-to-forget" to export code into a file and commit/push to the repository.

I prefer to edit files from the first step and send it to the server for compilation/testing and then commit/push the file - I'll never forget it cause VSCode helps me to manage it nicely with changes and things like that.

And it's not a big deal where do I send it to compile/test - whether it is local IRIS in docker or host or any remote development server.