title: How do I build something when I know I'll get it wrong?
body: <p><strong>Background</strong></p>
  
  <p>I have a personal project that I've been trying to build for around 5 years. In essence it's an online game - a web application. It's not a "money maker", just something that I really want to build, so finding the funding to hire a skilled team is very unlikely.</p>
  
  <p>I've built two fully-functional prototypes over the years, both successful from a concept/user testing perspective, but both spectacular failures from an architectural perspective; the code was a mess, couldn't be maintained or further developed, and had to be thrown out.</p>
  
  <p>It took a good couple of years to acquire the skills required to build the client - which is rich/stateful and pretty complex. I aligned my career and studies towards this side of the development divide. I'm finally at a point where I can build a decently architected, sophisticated client that can grow and doesn't need to be thrown out 6 months down the line. There's a ton of work to do on that front, but at least I know I can do it, and do it reasonably well. The back-end is another story.</p>
  
  <p>So far I've rebuilt the back-end at least 11 times with various combinations of PHP, SQL, Ruby, CouchDB, MongoDB, FriendlyORM, NodeJS etc etc. I don't usually get very far before I discover some huge flaw with my approach and start over: RPC to REST, relational to document driven. I'm well aware that premature optimization is the root of all evil, but the application is very dependent on fast moving, highly dynamic data. RESTful API design, scaling, sharding, caching, auth, replication - I don't have much experience with any of this, and I can't expect to be remotely decent any time soon. These things requires years of study and experience.</p>
  
  <p>It makes more sense to find an expert in this field, but without funding I feel that I need to successfully deploy another prototype in order to attract the right person. So, I shall just have to build it as best I can.</p>
  
  <p><strong>The Question</strong></p>
  
  <p>Assuming that however I build it, the back-end architecture is going to be wrong and will need to be rebuilt, what's the best way to proceed with building "just enough" to continue development of the client application? Even if it's nasty, is there a way to "throw together" a JSON web service? Ruby with Sinatra and MongoDB? Django? Is there some out-o-the-box webservice builder? There's no need for a full-stack web framework as there is no presentation layer - just data. Any advice would be greatly appreciated.</p>