“Make it so, Number One!”
Just like Picard’s saying, when you finished a product increment or some really awesome feature, you’ll want it in production. Fast. You don’t want to hear anything like “Yeah, man, I’ll manually upload everything in a few days”.
The Deployment Pipeline
Ideally, deployment to staging or production should be a matter of pushing a button. But in real life, it might be just as well clicking a button or running a command. Setting up servers, source control and the simplest deployment process should be your no. 1 priority. Because as you get busy building your dream, deployment will otherwise be harder and harder, prone for human errors and you don’t want deployment to be a pain the ass. You want it to be the moment of truth. The grand opening. The successful premiere.
At your earliest stages, when nobody knows about your product and you could safely put partial or broken things into production (you’ll find out later that this is actually called “staging”), you might as well set up automatic deployment, every minute or so. This way, when your developers finish something, you don’t have to bug them “Hey! How can I see what you’ve done!?”. Just go to the URL where the app is deployed and start clicking! Auto-magically!
Devices! Devices everywhere!
These days, there are no standard resolutions. Standard web browser or platform. So deploying early and deploying fast greatly helps in testing your product on various devices and platforms. And no, you don’t need to go in a supermarket and buy all the tablets on the shelf. Make a list of friends who have various devices and test your app on them. It’s the most responsible thing to do when you’ve just started out. Keep your money for marketing, ads and more important things, don’t waste it on equipment. Just get that deployment procedure up and running a.s.a.p.
You’ll thank yourself
Just like you’ll thank yourself in the morning for not leaving the dirty dishes in the kitchen sink from the evening before, you’ll also thank yourself later that you’ve set up deployment first thing, before things got serious and crowded. I’d really like to hear an example on how setting the deployment later rather than sooner make things smoother, so feel free to contradict me. Come on! I dare you!