IANASA (I am not a sysadmin), so I don't have a lot of insight into the first question you are asking... How would you 'manage' all of your nodes/machines without Configuration Management tools like puppet. The best I can gather is the answer is either..
1. Manually. You have a list of servers you log into every day, update as needed, check for errors. You may even have monitoring and log aggregation set up, but investigating/fixing problems still requires you to ssh out to nodes
2. Roll your own: You have some collection of scripts (perl, bash, python, etc..) that partially automate the application of simple tasks or reporting information from your nodes. You may even be using something to allow you to have a host list somewhere, and run your commands across multiple machines (stackexchange question)
How do you handle rapid application development/deployment once you have your Config Management tools in place? That depends on how much tooling is in place and your organization's policies and procedures.
Do you have a Continuous Integration/Delivery pipeline in place? Are you only asking about the infrastructure setup via Config Management (puppet) or also the application deployment?
Given the following infrastructure..
Access to a git server/puppet forge
A 'control repo' set up with the appropriate information Puppet master configured with r10k
A collection of Servers/nodes configured with puppet, pointing at your master, and set up to read from an appropriate environment for that app.
To start up a new app, all that you have to do is create a branch in the control repo with the name of the environment that you wish to use, check in your module/manifest configuration.