there you go:
1) developer creates brand new app QVF
2) Admin imports it / publishes to Hub
3) Developer makes changes to his app - as i understand they cannot make changes to published apps. They have to use desktop client to make changes to published apps.
4) Developer need to upload changed app to Hub.
- Developer creates app on server.
- Admin publishes it to a stream. So the newly created app disappears from "My Work" folder of the developer.
- Developer duplicates the app from the stream (right click--> duplicate) and makes some changes in it.
- Admin publishes it again (replacing it with the existing one).
- Now the app stays in My Work folder of the developer always.
This is the general dev cycle of Qlik Sense. It is normal there is a developer and QMC admin because it is intended to be a governed environment. But if you want, you can assign admin role to the developers as well. So the developers can publish their own apps. I believe this cycle is much easier than yours.