How should I continue with my open source web app idea?
August 5, 2007 9:42 PM   Subscribe

I've have this idea for an open source web application project. Currently, there isn't much more than sketches, light research and ideas resulting from my own experiences of using similiar products. I would like to do something real out of this but the scope of the project is far too big for me alone. What should I do next?

I've been thinking about involving more people just to get things started. But how do I find passionate coders, designers, security nerds, tech writers, testers, etc? Are there any special sites you would recommend? I don't want to find people who can implement an idea I have, rather, I want to gather a bunch of talented people who togeher figure out the scope and goal of the project and do something fun and useful. I have this vision of eventually turning the project into a startup so that the people involved can get paid (atleast the core team) for their work, but that's far into the future.

My background is in cs/it, so I've a good understanding of software/web development. I'm, however, not really a developer but more of an /interaction design/usability type of person who's curious about most aspects of software development.
posted by Foci for Analysis to Computers & Internet (15 answers total) 9 users marked this as a favorite
 
If you find passionate investors, you can then find normal coders, designers, testers, etc. (There are no "passionate testers", I don't think.)
posted by mendel at 9:55 PM on August 5, 2007


Best answer: If you find passionate investors, you can then find normal coders, designers, testers, etc. (There are no "passionate testers", I don't think.)

This is certainly incorrect. I am a passionate tester (by trade), and I happen to be looking for an extracurricular project. Email is in the profile, Foci for Analysis.
posted by saraswati at 10:13 PM on August 5, 2007


Best answer: You need to get developers/designers/testers excited about your project so that they will want to participate in creating it. You don't really have to have a fully developed idea, but you need enough that will convey the concept and make those people understand that it will be interesting (or fun/profitable/whatever).

Personally, I'd proceed by setting up a project on SourceForge or similar and advertising it on freshmeat.net. If you have a blog, talk about it there.

As for face-to-face interaction, maybe students from a nearby college would be interested in helping out if it will give them good experience or resume material. You might also try attending meetings of any local user group (like a Java Users Group) or professional society (like Society for Technical Communication) that is relevant to your site. These groups usually have a time set aside for networking at their monthly meetings, and you could take your sketches and try to drum up interest in your idea.
posted by tomwheeler at 10:16 PM on August 5, 2007


That just isn't how open-source projects come together. If you have a great idea, then start hacking on it and blogging about it. If you're not a good programmer, then it won't be good code, but if your idea really solves a common need in a new or superior way, then better programmers will hear about it and rally around.

Alternatively, write up a business plan and try to get it in front of potential investors. Or, find a partner with entrepreneurial experience, who can work on fund-raising while you pull a prototype together.
posted by nicwolff at 10:34 PM on August 5, 2007


(That was a response to the original question, not to tomwheeler's post.)
posted by nicwolff at 10:35 PM on August 5, 2007


What you need to do is talk to one or perhaps two people depending on the scope of the project. You'll need to talk to a application programmer, preferably with some .Net or Java experience (i.e., large application development experience) as well as a DBA or general database architect. Those people will tell you what you really need to get started.

Also, I got to tell you, if you don't feel comfortable talking about the project here in an open forum for fear that someone else will "steal" it... well, it doesn't sound like a good candidate for an open-source project. Because those things are, by nature, open.
posted by Civil_Disobedient at 4:56 AM on August 6, 2007


Best answer: Start writing it. No, really. Go start coding. Upload the notes, the sketches, whatever. Put it up on Google Code, Rubyforge or something similar. Haunt the IRC chat rooms and mailing lists for the tools you are using and post news everytime you put out a new release. Be sure not to post in places that won't care, and don't post too much. Talk about it with friends. Even friends that have no idea what a compiler is.

The nerds will come to you but you've got to work your ass off first. No one, absolutely no one, who is any fucking good will come near your project if its nothing more than a few airy ideas. Excepting, of course, those close friends that you've already had long discussions with. But if you had friends with a clue, you wouldn't need to ask this question.

I understand. I, too, have a group of friends who don't share my peccadilloes. And it can be a strength. It teaches you to hone your description of what you are doing down to its simplest core. It teaches you how to tell yourself what you are doing. Clarity of thought is essential.

Most of your friends won't understand it. Some will love it for terrible reasons. The rest will think its dumb. If you have a couple of shitty "friends" you only hang around with for historical reasons (like I do) you will invariably have the conversation swiped from you 20 seconds into your 30 second pitch because.. well.. because they are fucking assholes. Almost all of the opinions you hear will be worthless, even from friends with half a clue or more.

Cling to the positive responses. You and I know they mean nothing in relation to the project, but they mean everything in relation to you. It means they think you have good ideas in the areas they understand, and believe in you enough to have good ideas in the areas they don't. Having that can ride you along when you're coming back from another day at some shitty job to code for 6 hours before crashing, or, at least, wishing you could as you pace your hallway thinking about what needs to be done.

You don't have to code everyday, if its just a side project, but you've got to do it damn near. If you aren't blowing off your friends to work on it at least once a month or more, you aren't working hard enough on it. If this is really to be a start up, you need to be blowing them off all the time. It sucks. Get used to it. You've got a world to change. (Note: I have experience with side projects and have second-hand experience with startups)

But don't overwork. Insight comes from your brain hashing together your work and your knowledge and your experiences from elsewhere. That mashup club that you heard about? Go check it out. Read some philosophy. Read some comic books. Read something you sort of know about but not really.

Read a shit ton about programming. programming.reddit and Planet Intertwingly are good places to start. The first for what all the cool kids are talking about and the latter for intelligent debate, and odd viewpoints all mixed together. (Er, I should mention I was recently added on to the blog roll there, but I'm was a huge fan of it way, way before that. In other words, I'm not a self-promoting jerk, just a regular old jerk.)

Write good code. Go back over older code and rewrite it. Then come back later and rewrite it again. Make it better. But don't stop coding because you can't "get it right". If its ugly or sucks or doesn't pass the tests, put in some placeholder code with a FIXME comment above it. This can be a good place for others to help fill in the gaps but never, ever leave something like that if all you have is the hope that someone will fix it. Ask them, or do it yourself later.

Test. Test a lot. Write tools or use already established tools to make it easier for you. I suggest the latter, though I've had to adapt other's work to test my "big project". If your project is different enough or big enough, there's a chance you'll be adapting the work of others, too. Testing is what will remind you that you put all of those shitty FIXME comments in your code.

If you stop coding for a couple of days, get pissed at yourself and code angry. Code real fucking angry.

You might break a keyboard, but it'll be worth it. This is one you have to experience to believe. There is little like coding through your frustration, aggravation and even constipation and finally, finally getting it right.

Anger and love and frustration and elation and sadness and comfort, each of these you will feel when you are coding. Some you'll feel more than others. All of them will, at some point, make you want to stop. Don't.

Remember: coding isn't just putting characters in a text editor, but all those hours you spent thinking don't count until you punch the fucking keys. Time isn't your enemy as much as your will to continue on is. And time is a big fucking enemy in a startup.

Go. Go fucking hard. That's how you get people to come in. Oh, and you'll probably fail. But it'll be a good failure. It'll be the kind of failure that you can turn into a victory later.

People say failure "builds character" or "helps you grow". That's pretty much just a bullshit short way of saying this:

You don't know how you'll fuck up until you do. The next time you're about to fuck up, you might see how to not fuck up. You might see a new opportunity because of the way things fucked up, or the state your fuck up left you. Also, some other people with experience and/or money might see your fuck up and realize that a) you've actually got some chops or b) you could have some chops with some help. They will help you. Maybe.

Fail hard. Fail with motherfucking gusto. Succeeding, like flying, is falling to the floor and missing.

Good luck.
posted by jmhodges at 5:55 AM on August 6, 2007 [12 favorites]


Hit me up if you're using, are thinking about using, or have any interest in .NET, Ocaml, C++, or DB2 in any part of your app.
posted by devilsbrigade at 6:21 AM on August 6, 2007


Response by poster: @b1tr0t: You have a point. Actually, I don't have a problem with being project lead and I have a good idea about the goal and scope of the project, but in my experience, other people's feedback can be incredibly useful and I want to be open for new ideas.

@saraswati: That's really awesome. I've have to think things through, but don't be surprised if a email pops up in you inbox in a couple of days. There are a couple of things I want to get right from the start and QA is one of them.

@tomwheeler: While I'm a tad skeptic about setting up a SF.net project so early in the process, a blog would be a easy, cheap and manageable way of drumming up interest.

@nicwolff: The thing is, I don't want to start hacking on something only to have it completely rewritten a couple of months/years later because it's unstable, insecure, etc. I want the project to be as professional as possible from the start and having a thought through vision and design. Maybe it's a bit unrealistic, but that's my plan.

@Civil_Disobedient: I agree with you that coding/db are pretty fundamental for software dev. I don't know how common it is for open source projects, but I was thinking about have a very user centered project that would postpone coding/db in favor of requirements gathering, design, etc. My background is in HCI which makes this setup more natural for me. Oh, I know I'm a bit vague on the details, but it's not because I fear theft, but because I'm still not sure about the project and, kinda cowardly, don't want to make a bunch of promises I cannot keep. The product itself isn't really unique - the scope, execution and mix of open source/business thinking is.

@jmhodges: You have no idea how great it makes me feel to read your comment. Someone that fucking understands! It's very encouraging and makes me think that I'm not so crazy after all.
You, like others here, emphasis coding, which really isn't one of my strengths. Sure, I've written some java/php/js/python, but mostly out of curiosity. Do you think there's any possibility of delegating the actual coding to others and focus on planning/designing/doing usability work/ myself? Or am I being very naive about this? I know that it's very common for open source projects to be founded by people who do the actual coding, but I would like to think that there's an alternative way.
posted by Foci for Analysis at 7:09 AM on August 6, 2007


Nope, you're going to have to learn how to program but, good god, you'll learn well. Sorry. It's frustrating as fuck when you've got That Idea but just can't figure out all the little things that stand in your way.

Go ahead and try it, though. Look into some tools and give it a go. I suggest using Ruby on Rails if you're doing the usual database-backend, web-frontend. You get testing for almost free with it as well as a ton of other easy-time makers. If nothing else, you can build a prototype in it and a prototype can get you a long, long way. Also, its the Hot Thing at the moment, and #rubyonrails on irc.freenode.net is almost always jumping.

You could always invest in some programmers, if you want to spend money. Working with Rails along with #caboose on Freenode are good places to find programmers for hire. Beware the dreaded contractor code. It will be unmaintainable and unusable within 4 weeks of the their contract being up.
posted by jmhodges at 7:16 AM on August 6, 2007 [1 favorite]


If you don't want to code: no guarantee this will work, but you could try writing up a good requirements document, some kind of "business" plan, and then maybe showing up at a local user group meeting or posting to a discussion somewhere... just a thought. You'll have to be sure that both you and the lead programmer have exquisite communication skills, though, and you'll need the idea to be inspiring.

I've thought about doing something like this too, although I'm a trained code monkey (sort of); I'd rather leave the coding to others and focus on defining requirements and overall architecture... if such a thing is possible.

Good luck! I am curious about the nature of the project.
posted by amtho at 9:36 AM on August 6, 2007


One thing to be careful about if you're going to go the open-source route: make sure you (and everyone else) is clear on who's the boss. If you're the leader, be the leader. If you'd prefer a more group-oriented leadership system, make that clear too.

I've seen lots of projects end up in disaster because nobody wanted to take charge, or equally because everybody wanted to (c.f. Gentoo atm). Take the reigns and don't be afraid to be the boss.

I'm not overburdened with free time atm, but if you want to bounce ideas off someone, email in profile.
posted by Skorgu at 10:20 AM on August 6, 2007


The thing is, I don't want to start hacking on something only to have it completely rewritten a couple of months/years later because it's unstable, insecure, etc. I want the project to be as professional as possible from the start and having a thought through vision and design. Maybe it's a bit unrealistic, but that's my plan.

Sorry, but it's completely unrealistic. Get something working now, and if it turns out to be worth investing time in then either you or better programmers will make it elegant, scalable, and secure later. Even usability is a bolt-on - and I've been a usability expert for 15 years.

One piece of architectural advice if you go ahead with this: let Amazon Web Services do the heavy lifting for you. This gets you secure, reliable, and scalable storage, processing, and message queueing for pennies and saves you a huge amount of initial expense and development effort.
posted by nicwolff at 11:24 AM on August 6, 2007


Best answer: I dunno. Jmhodges' advice was inspiring in a I'm gonna go back to school and get that diploma! kind of way, but I wouldn't advise it.

Are you interested in learning how to program, or are you interested in getting your project off the ground? Because, frankly, the world is already full of good coders, and you aren't among them. But what they need is a project to pour their energies into and a leader to inspire them.

If you want to learn some coding along the way, great! Go for it! But your project might not see the light of day for years if you have to wait for your skills to catch up. And hell, that's not what open-source is good at, anyway! You think Linus knows everything there is to know about file systems, or SCSI device drivers or whatever? No, there's already someone else out there who knows that stuff. Let them code it!

Not to mention, there are going to be so many ideas and opportunities you're going to naturally overlook simply because you don't know all the capabilities of whatever language/system you end up using. Talk to someone who understands this stuff better if for no other reason than to get an idea of what's capable of being accomplished before going down the (very, very long) road of learning a specific framework like Ruby on Rails or whatever your application flavor of the moment is.
posted by Civil_Disobedient at 4:13 PM on August 6, 2007


Hi Foci for Analysis,

My boyfriend has a similar problem. He wrote this down just to get things out on paper (or screen) for himself and for his parents. You might or might not be interested.

First of All
I would like to thank you for your support and concern. I am writing this because I
feel guilty about keeping you in the dark, and not sharing my plans with you, and I
feel like we can help each other better if we are all enlightened about where we stand.


What You Can Do to Help
1. Read and understand this document and ask me if there is any part that is vague or
unclear.
2. Read What You Can Do to Help – Part 2, after you understand what I’m saying
here.


What I Want To Do

It’s not easy to explain because it is not a well-established career path, not like what
we had before: a doctor, an architect, a lawyer, even a businessman.

I want to work in a small technology startup.
1. small meaning only a few people
2. technology meaning anything that has to do with the internet
3. startup meaning an entrepreneurial venture
4. work meaning anything, as long as the 3 conditions are present I am willing to do
anything. And that is probably how things work in companies like this because they
are so small. (Of course within the limits of my skills/talents).

I guess the closest example would be Google. Google was started by two guys, first as
a school project, and then it got more attention and they got more people to invest in
them, and they became Google.

I am not aiming to be the next Google, but there are appealing things about how
Google did what it did. And there are other companies that are in the same mold:
1. started small
2. started by people passionate about what they do
3. started by idealists (part of Google’s mission/vision is “Don’t Be Evil”)

In particular I admire the technology companies. The more famous examples are HP
(started in a garage by Bill Hewlett and Dave Packard), Apple (started in a garage
again by Steve Jobs and Steve Wozniak), Yahoo (by a couple of Stanford students
working out of apartments and trailers), Flickr.


Why I Want To Do What I Want to Do

I want to see if I can, before it’s too late to see if I can do it.
I want to do something I really love.
I love being around people who are interested in the same things as I am.
I want to try working in a small group after working in such a big group as IBM.
I want work to not feel like work.
I want to feel challenged, and I want to feel like I can make a significant contribution
to the world.

How Can I Do This Thing That I Want To Do

I am trying to figure that out by looking at how those other people and companies I
admire got to where they are. Obviously there are several paths, in general:

1. Start out in a great school and in a great environment
A lot of these companies began in the Stanford area, and were started by
Stanford students (ex. Google, Yahoo)
2. Just do it, and have an entrepreneurial spirit
Like Jobs who never finished college
3. Start it out as a side project while working for someone else

Specifically, I think they:
1. Have an idea
2. Make a prototype
3. Get support based on the idea/prototype (meet potential coworkers, investors,
customers)
4. Make the final product

The key part I think is #3, getting support. And by virtue of being in Silicon
Valley/California/Palo Alto, etc. a lot of these companies got support because of the
community they were in. Which is why I feel it is important to be here in the US.
The community of potential people you can work in present an opportunity that can’t
be gained anywhere else. This is why a lot of these great companies start here.

If I were only a US citizen, I would go up to San Francisco and offer to work for free
for any of these small companies (not Google, Apple, or Yahoo since they have
already become so big and corporate) but some that are still starting up. None of them
will probably be familiar to you, but so was Yahoo, Apple or Google before they
made it big.

It has taken me a long time to realize that focusing on the limitations of my situation
does not help, and I am try to maximize the remaining time I have here to find
opportunities to get to what I want.

At this point, I think the only legitimate way to get in, since I am not a citizen, is to
study here. Preferrably somewhere in that Silicon Valley area so I can get some
contacts.

Another approach is to work from the Philippines and network with these people
remotely. Some people are able to do it that way, since most of the work is online,
and everyone communicates actively through online means too. This means you can
put your product online, talk through chat, email, Skype, etc.

What This Means For Questions or Other Things That Have Come Up in the
Last Few Months

1. I don’t want to move to the US and do the same work I was doing before (an IT
employee working in the IT department of some big corporation)
2. I don’t want to be a graphic designer (working in the marketing department
drawing ads)
3. I don’t want to just be a webdesigner/programmer (working freelance doing
homepages for people, or working for Google and doing a small piece of a very big
project)

*HOWEVER, a lot of the things done in those jobs, will probably come up working
for a startup. You will have to do some IT corporate stuff in the sense that you will
probably be doing your own tech support, fixing your own computers, and managing
a project in a similar way that you manage IT projects for a big corporation. You will
also have to do some graphic design for your own product (design a logo, or get
someone to design a logo for you, design how your product looks, etc.). You will also
need to do some web designing and programming, just not for a specific client, but for
a lot of customers who will go to your website to use it.

What You Can Do To Help – Part 2

Please Don’t Worry
It is probably very uncomfortable to see someone in a situation where they don’t have
a typically defined ‘job’ that is 9 to 5 in an office. And it is probably hard to measure
whether they are being successful because there is no corporate ladder, promotion or
salary increase. And unlike other entrepreneur setups, there is no tangible product like
GoNuts Donuts to tell your friends to buy. In fact, the target audience is probably not
anyone we know in common, but that’s how it started out for a lot of these companies
that we know about now, like Google, or Yahoo or Apple or Firefox, etc.

What I need now, is patience, and hopefully, this explanation will help ease concerns.

Do You Know Anybody Who Can Help
I would love to have a mentor or a guide that has done something similar, and I am
trying to meet people this way.

But, I feel like I have to have something to show them too, which is why, I think I
should focus on doing these projects. So I can show them and ask for feedback. Right
now I haven’t built anything yet, because I’ve been busy with other things.

As soon as I clear my plate (hopefully in the next few weeks), I am going to be
working on online projects.

I’ve already bought a few books to teach myself how to program and it should be easy
to pick up because I’ve done it before in college and as a hobby.

It should also help a lot of I can go to a school where I can meet people like me and
we end up collaborating on projects. Which is why I should work on finding a school
with the remaining time I have here. Otherwise, I think I can work on the projects
from Manila, and come here to meet mentors and other people as needed.

I know this is a very risky and unsure path, and how many people can build a Google?
But, as I said in the WHY part. I am doing this so that I have no regrets later on, I feel
like I can still financially afford to do it with some of the money I’ve saved up, and I
will augment it with sources of income as needed by taking on projects or working
again, even at corporate if needed.

I do believe that positive thinking helps a lot, and I hope you don’t feed my paranoia
and worries by being even more worried yourselves.

posted by sikkin at 1:54 AM on April 4, 2008 [1 favorite]


« Older Has anyone ever heard of this show or guy?   |   Affordable movers: Minnesota to Wisconsin? Newer »
This thread is closed to new comments.