

Ask HN: How far is it from prototype to beta release? - dcao

I got a prototype ready to approve the feasibility of my new idea for building up a classified search engine with multi-layered server farms including one centralized authentication server and a series of distributed content search&#x2F;indexing servers. It was done in about a year using the spare time after work.<p>Later I quit my job and started to build a full-blown production version from the demoware with the basic functionalities working on Windows environment using multiple instances of Tomcat, MySQL servers and two Apache instances which supports virtual name and virtual IP hosts. It took me a year of full-time to beef-up the distributed network with solid protocols, which handles exceptions and security using SSL, cookies and encryption mechanisum and then deploy it on a dedicated Linux server environment in a hosting site with multiple static IPs and firewall.<p>I&#x27;m wondering based on your experience, how much time it may take from a prototype to a beta release of your product, a live MVP (Minimum Viable Product) website? Compared with the POC (Proof of Concept), the beta production release is way harder to come up with. You have to cover all the potential security holes, especially in a peer-to-peer server environment. And when do you think it&#x27;s ready to release to the public, including registering the company, domain name, and applying for the IP protection?<p>Usually building a quick-N-dirty web application is like a piece of cake for a full-stack web and Java developer. Even if you don&#x27;t know every detail of the tricks, it&#x27;s fairly easy to find out from StackOverflow or some nice blogs. However, oftentimes, we quickly find some information, apply it and forget it without even understanding why it&#x27;s working. Later on, we have to re-visit the complete scope of the knowledge from the basic level and then re-do it in order to ensure the quality of the feature.<p>How many iterations to go in order to reach the beta? To my understanding, it may take 6 man-months to deliver a prototype, quickly show to the investors, get funded, then takes another 6 month of a team of 3 to 5 to build the beta version with numerous of bugs and launch to the public. This year may easily burn out 1 million from the Angel investors. Then a Series A funding comes if lucky enough to build a GA (General Available) release, this may take another year of the team.<p>Can you share some your stories?
======
tarr11
It sounds like you are building something quite complicated. Why wouldn't you
just release the "quick-n-dirty" version and see if it works, before investing
all that time scaling it out?

~~~
dcao
Good question. This is the point why I'd like to discuss with you guys. Let me
explain, for example, Linux hosting and deployment is a must to have before I
can relesae, right? You may say, it barely takes two weeks' time. I thought so
too. However, it took me 2 months. Why am I so slow? See the following tasks
I've completed, almost none of them can be eliminated:

    
    
        - Find the right hosting service after learn how to analyze the Linux memroy usage, VPS (Virtual Private Service) simply cannot serve the needs for a multi-server environment
        - Choose Linux flavor, CentOS vs Debian, choose OpenJDK vs Oracle JDK
        - Download, install and configure applications, servers and modules
        - Set up multiple static IPs with vitual server instances and link to Tomcat from the Apache through mod_jk
        - Purchase  and generate SSL certificates and deploy them for each Tomcat instances
        - Grant proper privileges for different instances of Tomcat and MySQL servers.
        - Build auto-scripts for database initialization and entire Linux server environment set up with the applications deployed and configured
        - Set up the firewall with appropriate security privileges with or without LinuxSE
        - Document every step to repeat the tasks
    

Since I'm a Java developer with some Unix knowledge, not quite familiar with
Linux, I need to figure out every command to run through all the processes.
After every thing is done, I found GoDaddy VPS cannot support two Tomcat
instances. I have to find another cheap hosting site, chat with some of them
to find out which one is ok and run the deployment again and again to make
sure everything is ok. Actually before I deploy it on GoDaddy VPS, I need to
run it through CentOS on my local Vitual Box which took another one week to
figure out how to set up static IP on it, which is different from the physical
Linux server, along with the CentOS environment.

I did take the performance into design consideration to scale it out by
learning various of Java synchronized/concurrent Collections in the new
version, but I didn't take too far away, simply use the LRU cache so far, and
not invested time into Tomcat and MySQL performance tuning yet, only make sure
the JDBC level is scalable.

That's why I'm asking how long it may take for any real world beta production
site from their prototype. I'll really appreciate your comment and advice.
Thanks.

