

Ask HN: I have an idea for a startup... now what? - imok20

I've got an idea for a startup which I think many people would find useful.<p>I've gone through the following steps:<p>1) Other people (from different demographics) agree that this idea would be useful - some of them would even use it.
2) I have places to look for funding (tentatively interested parties).
3) I have a sketchy business plan (sketchy is in currently vague). 
4) I have a basic process that the user would go through to use my product, and ballpark figures for costs and required elements for the idea.<p>I want to get this up and going soon, and I'd probably like a partner who could help with this (especially seeing as I'm in college, currently).<p>What's next?
======
chipsy
This is what I do at the moment(for a personal project, but it could easily
adapt to an early-stage startup): Maintain a task list for the
product/business - "action items" that can be taken care of each day. Pull a
grab bag out each day and resolve to complete them. So when you want to work
on the product itself, you come up with technical tasks, research tasks,
maintenance tasks, etc. Or when you want to seek funding, advice, or partners,
you create tasks for those. Create scheduling milestones as well. You want to
keep moving forward, making decisions, while retaining a balance. Having the
schedule helps you to say with confidence, "this is good enough for now," "I
can wait on this until later," or "this is critical and has to be done to hit
my goals."

It's the decision-making that moves the business forward - as you get used to
that, the process of doing the work itself, meeting people, research, etc.
will quickly become background elements of what actually happened that day. If
you can't make a decision yet, then you need to gather more information.
You're either doing one or the other.

An example list of tasks from your starting position would be:

-Research implementation strategies(self-built, outsourced, with co-founder)

-Evaluate early customer needs(example: are you selling a bells-and-whistles "experience," or will no-frills functionality be sufficient to solve customer problems?) and pick a core focus for product development.

-Plan style of external communications - which audiences will be addressed, how to maintain the best relationships over time

-Plan internal organizational structure over some time frame(how big, how quickly, what kind of culture, when do you exit)

-Establish motivations of all potential co-founders vs. self, and identify possible conflict points so they can be addressed early.

~~~
imok20
I'll do that – write out a list based on the business plan and try to navigate
the fastest way through it to launch.

Thanks for that – it gets overwhelming to consider all the project at once.

------
Scott_MacGregor
If you can build a 1st version prototype do so now. If not figure out what you
need to be able to complete a 1st version prototype and take steps towards
achieving that.

------
rlpb
I would sort out the business plan. Will the startup be profitable? What are
the risks? Surely this is the first thing that any potential partners are
going to ask.

------
dzlobin
Where do you go to school? I'm a college student who's looking for a co-
founder as well. Shoot me an email at dzlobinsky [at] gmail.

------
apsurd
1\. Get in line.

2\. Start testing.

i.e. Minimum viable product. Customer feedback. Iterate.

Are you a programmer?

~~~
imok20
I'll parse last first.

I probably should have mentioned that I am a programmer, mostly Python, but
have work experience in Java and am capable with JS/HTML/CSS (and have
knowledge of or am somewhat capable in Scheme and C).

Problematic is the fact that I don't have a grasp on database software or
security and I dislike the idea of using Django, partially because I don't
want to think in Django. I'd almost like to write in Scheme, if Python didn't
(a) come more naturally, having written much more code in it (b) seem to have
more libraries etc... (c) I have formal education in Python, and I still don't
have a solid grasp on where call/cc would be used in a program, which signals
to me that I'm not ready to use Scheme.

I'm also decent with sysadmin tools, by no means an expert, but I can use bash
and I can script a bit.

So yes and no?

I'm all for the agile approach. I'd like to open with a bang, though. I'm
thinking a designer?

2\. I suppose I do just need to step into the game. Now. The advice I hear but
selectively ignore is "just do it."

1\. ?

Thanks!

~~~
awwx
Here's the thing with call/cc: it's a powerful but low-level operator. It can
be used for example to implement throwing and catching exceptions, or
generators like Python's yield. However, once you've implemented generators or
exception handling, then you'd use "throw" and "catch" and "yield" directly
instead of calling call/cc to do those things. So when you say "when would I
use call/cc in a program", it would be for some situation that doesn't already
have an implementation for it, which is probably pretty rare when most of the
things that you'd use call/cc for are already implemented.

If you're interested in web programming with Scheme, I suggest taking a look
at Arc (<http://arclanguage.org/>) which is (I find) a very pleasant language
to program in and useful for basic web apps.

For the first iteration of your application, keep it as simple as you can.
Don't use a complicated framework if you don't need to. Don't store your data
in a database if you can simply store it in files. There's plenty of time
later to say "ah, this piece needs to be faster" and move that bit into a
database or whatever. By then you'll know what you actually need, instead of
vaguely guessing and spending a lot of time to store _all_ your data in a
database in the hope that it will turn out to what you need.

While I suggest taking a look at Arc since it sounds like you'd be interested,
I'm also guessing that Python is _most likely_ going to be your best choice
because it _is_ a lot more mature, it _does_ have a lot more libraries, and
you already know it. But look for a way to do your project simply. Don't go
off and use a complicated framework that has object-relational mapping and
templates and junk if you don't need that stuff now.

I hope this helps... :-)

~~~
imok20
I've checked out Arc before, and it looks pretty neat. Perhaps it could handle
some of the "simpler" part of the application, and I let Python handle some of
the more intense server-side implementation. Would that be unwise – combining
two (similar) languages in one app?

Thanks for the advice! It sounds as though I need to just get a version 1 out
there, ASAP.

A problem with my idea is that it requires some pretty intense sysadmin
knowledge, and my big stumbling block is either learning more about all that,
or bringing in a partner.

Another issue, perhaps you've got suggestions regarding it, is security. How
do I go about handling that? Passwords, information, etc?

Thanks again!

~~~
awwx
Find some simple Python libraries to use, and going all Python is probably
best. Combining Arc and Python would be a fun project but would distract you
from getting version 1 done :-)

System administration is tedious but not very hard to learn. An advantage of
doing it yourself is that when you need to do some minor tweak you can just do
it and not interrupt your flow, instead of emailing some guy who does it the
next day but it isn't quite right so now you've been stuck for two days and
then he's had some important emergency so he can't get back to you right
now... For help with system administrations issues you can ask questions over
at <http://serverfault.com/> if you get stuck on something.

Security is figuring out that you don't want people to be able to do X, Y, and
Z and then making sure that they can't do X, Y, and Z. The simpler your system
is, the easier it is for you to check. Which is another reason to avoid
complicated software that you don't need.

For passwords specifically, for version 1 just do something very simple. Use
OpenID if it won't confuse your users and you won't have to store passwords at
all, or just collect the usual username/password and stick it in a simple file
on your server. Then as you get going you can come back and take another look,
but don't get hung up on it for now.

I'm "aw" on arglanguage.org, by the way.

