How should I structure my development environment from a high-level?


3

So I guess the follow-on question for this will be to jump into some of the specifics, but I have never worked on a software development team in a professional capacity and am building a web startup.

How do I structure my entire development environment on a bootstrapped/startup budget? What are the things I will need? There will be two coders and 1 designer (all cofounders including myself).

I know I will need a Version Control System, for us to manage the development, but from there what next?

Do I need a development, staging & production server. If so, how do I setup all of those on one server without having to rent/buy 3 different servers? Even better yet, how do I setup that sort of environment on a cheaper cloud offering like the grid hosting solution from www.mediatemple.net . Is that possible/desirable?

Do I have to worry about server monitoring with tools like Nagios from now, and where can I learn about architectures that will scale - because I keep reading about people making the wrong choices early and it being a huge headache when they need to scale. How do I avoid those types of mistakes?

Ideally, I would like to release early & release often - like the guys at www.getdropbox.com do so wonderfully.

Thanks.

[Edit]

Thanks guys for all the great feedback.

Development

asked Oct 10 '09 at 14:38
Blank
Marcamillion
153 points
Top agency to build award-winning mobile apps: Utility NYC

4 Answers


2

Try to host everything on the cloud. Avoid the hassle of doing admin.

You can find some great solutions that are free to start with, and will only cost you (a little) once your project grows.

Some tools:

Google apps for collaboration - email, calendar, docs etc. all for free (and everybody on your team probably uses gmail already anyway). Can't wait to put my hands on wave...

Skype is a great for free voice if you don't all work in the same space.

I highly recommend Pivotal Tracker (pivotaltracker.com) for agile project management, ticketing etc.

We use beanstalk (beanstalkapp.com) for version control (svn) and they're OK.

Hosting:

I'd like to join the other answers here - absolutely use Amazon (EC2, S3 etc.). Don't even think of spending money on buying or even leasing dedicated servers elsewhere.

AppEngine is also an option, but then you're pretty much stuck on their platform.

Regarding staging production etc., you don't need that if you use EC2 (or some other cloud provider). Check this out: http://hivetech.wordpress.com/tag/staging/ Finally, do not spend any time on serious monitoring solutions etc. - until you actually have some traffic... Getting traffic (=customers) in the first place is much more difficult then making sure you can service them later. Take Twitter as an example - if the product is compelling enough, you'd be able to fix your performance failures later.

answered Oct 10 '09 at 17:57
Blank
Elad Kehat
441 points
  • Thanks Elad. This advice is very useful. We already use Google Apps - in some sort of way. I hadn't heard about Pivotal Tracker, but will definitely look at them now. That advice about monitoring is timeless - runs in line with the advice you hear from Paul Graham, etc. 'Just get to product/market fit'. – Marcamillion 9 years ago

0

Just to throw some real-world examples out there from a bootstrapped startup, here's what we use:

  • redmine (http://redmine.org) for issue tracking and wiki, couldn't live without it!
  • git through github (http://github.com/tribily for version control. No hassle having an in-house code repository and super easy management of users and teams. If you pay 20$ you also get private repo's, so worth it!
  • puppet for structured system administration, makes every change transparent and accountable, as well as making scaling very easy.
  • physical servers at www.hetzner.com. Our product stores a lot of historical data in teh database that needs to be instantly accessible at any time, so we need large disks. We use Hetzner because they are cheap, environmentally friendly and they allow us to reserve rackspaces adjacent to the ones we use. You can reserve as many as you want for as long as you want for 10EU/1U/month, totally worth it. We have three physical servers there that just run the production environment, I don't want testing or development environments anywhere near our production environment :)

Hope this helps :)

answered Aug 27 '11 at 17:35
Blank
Walter Heck
131 points

0

It is usually best to delay moving onto the cloud until you have your tech down. Its not necessarily any less complicated. Since you're asking this, you know enough to get by but you probably need a proper CTO who knows this stuff in and out.

You can setup multiple servers on a single machine using virtual machines. If you do end up going cloud, I recommend either Rackspace or if you go to EC2 (pay for the reserved instances as they are over 50% cheaper).

For you, I suggest doing it in house at first, with a cheap <600$ linux box to test out your ideas. That's if you're at least serious enough to buy one of those (you could use someone else's computer but unless they have multiple hard drives, disk contention will ruin their day). If its not worth spending 600$, if you plan it, you could use say EC2 for a few hours and test without spending more than a few hundred.

Google things like Continuous Integration, version control hooks, and TDD (slow but may be worth it for you, it depends).

answered Oct 10 '09 at 14:44
Blank
Van Nguyen
482 points
  • Thanks for this advice. We can't afford a CTO for now, and I have a first degree in Computer Science - it's just that I have never used it. I am a pretty technical guy, so I can figure this stuff out. Which is why I am here trying to put the pieces of this puzzle together :) Have been reading about Continuous Integration, will look up the others. – Marcamillion 9 years ago
  • Not being able to afford one is fine, but it sounds like you're in the right position to learn how to fill the position though! Good luck! – Van Nguyen 9 years ago

0

Try hosting your development code in-house on a cheap server and set-up a low-cost account online. Also, look at frameworks like Zend to get development right from the outset.

answered Oct 10 '09 at 15:09
Blank
Julie King
871 points
  • Thanks Julie. We will be working with Rails from the get-go, I was more looking for structures outside of IDEs. – Marcamillion 9 years ago
  • One of my mentors has cautioned against doing that, hosting in-house on a cheap server. Host where you plan on deploying, EC2 or whatever. My startup is using EC2. My server bills are less than my beer bills. – Paul Cezanne 7 years ago

Your Answer

  • Bold
  • Italic
  • • Bullets
  • 1. Numbers
  • Quote
Not the answer you're looking for? Ask your own question or browse other questions in these topics:

Development