Ask HN: What is the first thing you do before starting a new project?

41 points by smashing_mag ↗ HN
Starting from a blank sheet of paper is difficult. We all have our habits and we all have our small rituals before we start working on a new project. What is it for you? Is it turning on the music? Sharpening a pencil? Cleaning the desk?

45 comments

[ 5.8 ms ] story [ 114 ms ] thread
Usually buy a new Moleskine or Muji notebook.
I have one Muji notebook per project. Everything for that project goes in it. It is a great relief to get all ideas and concepts out of my mind and into the book.
Creating a folder :D
Before I hit the paper I brainstorm with someone who might use the project.

Then I spend some time sketching out the main user "actions" on paper, do a quick database table layout on paper (connecting pieces of information), then I sketch UI concepts in my notebook.

Of course, as a designer at heart, I open photoshop and blast as soon as I have some pen/paper wireframes ready.

I sit down at my computer (and start). Seriously, anything more and you'll start making excuses, look for competitors, or figure out some way to justify not doing it.

Just start.

    mkdir new_project && cd new_project
    git init .
Add the project to gitolite.conf

  git remote add origin git@FQDN.com:new_project.git
  git push origin master
  git config branch.master.remote origin
  git config branch.master.merge refs/heads/master
Without need for the configs:

  git push -u origin master
I create the project in my head then transfer it to the computer....its weird...but true
I think about what I am going to make, then if one week later that idea or project came to mind again. I start sketching a basic implementation of it.
I figure out what exactly I am doing, and more importantly why exactly I am doing it. It's easy to sit down and thing "I want to change the world, I want to beat Facebook of Google at their game, I want to develop an awesome game or a tool that everyone needs." Ideas are a dime a dozen. It's the hows and whys of an idea that really define the scope, complexity, and execution of your project.
I answer the question "Am I passionate enough about this to put at least 3 months in it knowing that it is more likely to fail than succeed?"
BustAName.com

Not that this is really the most important, it just helps me wrap my head around it if I can start calling it something.

knowem.com is pretty great too.
express <appname>
Speaking as somebody who generally plays a lead BD role vs. programming (but I'm assuming this question is a level higher than programming, with project being a startup).

1) Ask why people would use it (problem)

2) Figure out who would buy it (exact names, contacts)

3) Rough Wireframes, 5 slide pitch deck

4) That's all I need to meet with customers and get orders. I won't move forward until orders are secured and signed.

Are you saying that you won't move forward with any development - not even a prototype - until you have paying customers? And what does it mean to have a "secured and signed" order? Does it mean that they're about to cut you a first check as an advance on purchasing / subscribing to the product?

Have you always practiced this, or did it take some realization?

Thanks, - V

The furthest I will generally go is black and white mockups in Balsamiq. If the backend is a little more complex, we may begin planning schemas and algorithms, but rarely much further than this.

By secured and signed, I do mean a signed order for a license, to be delivered at a future date, generally with a discount or longer term to compensate for my clients risk. The delivery date, scope, seats, license term and cheque cutting dates are always pre-defined. Quite often, I'll extend a discount for a downpayment so that the company has some instant cashflow.

I didn't practice this in my first startup, but have since. It's not easy, but always worthwhile in the end, and helps accelerate through that awkward early growth stage, and means while development is going on, I can pitch us with a legitimate client backing.

To clarify: I am almost exclusively in B2B software.

As a side note, 1,2 and 4 are the sort of thnig I believe Steve Blank is taking about when he says "There is no truth inside the office".
I turn on my Boards of Canada Pandora station and do a bunch of research. Jot some ideas down. Think about who would use it.
Try to figure out if it already exists or if there are open source softwares I can use to get there faster.
I usually forget it for a few days. I have a lot of ideas that seem really great when I first think of them, but after a few days thinking about something else I realize that the original idea was stupid and think of something else! If I have an idea that still seems worthwhile after a week, then I know I might be on to something.
An old friend of mine always says that before starting a new project, he has to get really bored. That is, he has to make sure he spends a period of time doing nothing interesting. That way, when he starts the project he has nothing else on his mind distracting him.

I can't say I've ever done this myself, but actually, now that I think about it, maybe I should. I tend to keep too many balls in the air to focus well on one thing.

I talk. I talk to everyone I know. I ask very non-technical people how they'd approach the technical challenges (if this project has a technical aspect). I ask very technical people how they'd approach the creative/artistic challenges (same comment). I buy a sketchbook and fill it with doodles and diagrams and notes and random, scatterbrained ideas. And I never look at it again. I'll read up on material related to the subject. I'll read up on material unrelated to the subject, and figure out how it could apply (the works of Joyce are great for this). I'll meditate (with or without aids). Sometimes — and I'm not joking about this — I'll pick some completely arbitrary activity and assign it ritualistic significance, with pertinence to the project I'm about to begin. (Once, prior to recording a song, I showered myself with a carton of orange juice while hopping to and fro on alternating legs, ululating wildly — it was significant, by assignment.)

Why all the nonsense? In some sense, it helps clear my mind of other projects. It helps me build up energy and excitement in anticipation of this new project.

It reminds me that I'm still alive, and that there are many things I could be doing in my life. While I may be a conduit or wellspring from which projects spring forth, there's no reason I have to be, except for the amount of love I feel for the work that I do.

I assume from the downvoting that this isn't a very popular approach.
I am under the impression that the purpose of voting is to reward interesting contributions to the discussion, whether or not you agree with what has been stated.

EDIT: To respond to the issue of the arguable merits of my post — I made my post because the majority of comments here are describing preparatory activities performed on one's computer. I wanted to give some of my non-computer related warmups, since they can also apply to projects that aren't necessarily software-oriented.

Whatever others may say, I like you. I actually do as you do, regarding the notebooks. I have a dozen moleskines of all kinds, and my select fleet of "Idea Pens and Pencils" specific to the task. I rarely ever read what I write- the act of putting it safely in its place cement the threads together into an increasingly intricate web of the whole. While your OJ story is out there, I'd happily work with someone like you. Cheers-
They say that you're an expert in something when you can clearly explain it to others. The "throwaway notebook" strategy is, in my opinion, a great way to quickly and safely test (and refine) how much of an expert you are about the idea for your new project, at any level of granularity you care to attack it.
All very true (although I have a "scary" memory from my paternal grandmother that lets me remember just about anything I can slot into a framework/taxonomy/whatever).

But I always find myself going back tot he notebooks once or twice to refresh myself on one detail, look up a particular incantation, whatever. It's nice to have them in reserve for that.

This is a tough one... I take a blank template that I have already prepared and make the project, filling it with the most incredible designs I have ever done. In a couple of days I look at it again and I usually change it completely... so the second version is actually the first one I show to anybody. And then it just happens!
Depends on what kind of project it is, what state of mind I'm in, etc. But basically I just sit down at the computer, and start. If I'm writing java, I fire up Eclipse, and write a main method, that just does

  System.out.println("done");
run that, and then start adding stuff. If it's a web project, and I'm using Grails, I do something like:

  [prhodes@voyager]$ grails create-app foobar
then fire up Eclipse, import the project and go from there.

Sometimes I'll break out a sketch pad, a box of colored pencils, and do some doodling / designing / brainstorming, but it just depends on what it is.

After all that, I fire up XMMS, and get some tunes going... Motley Crue, Queensryche, Metallica, Megadeth, Testament, Slayer, Danzig, whatever... just some good coding music.

Edit: Oh, wait, forgot a step... maybe the most important step. Putting on a pot of coffee to brew! :-)

Don't know about others, but I don't generally have a specific moment that marks the start of a new project.

Projects typically grow from an idea that forms over time. It starts with spotting a need or an annoyance, then thinking if a product could solve it, then looking at competition, then considering how to position and market it, then how to make money of it, and lastly - a crucial moment - if it is worth an effort.

You know how they say that "ideas are dime a dozen"? I find that it is simply not true. Ideas that is well thought through are rare and they are worth a lot.

--

tl;dr - the first thing is to develop and validate the idea.

Finish your current project.
nope, i don't do that... maybe i will someday
Find if it is already been done. If you find it - contact the developer and figure out how you can help. If you don't find it, keep looking and start asking if other people have heard of it. If you still don't find it, take a couple days off and then start looking again.

Only after you've searched 3 times and couldn't find it - start your new project.

The internet would be a better place if people were 50% as excited to contribute to an existing project as they are starting a new one.

I do this too, although I've never reached out to the developer to help because it usually is already a company. But it's a good idea, I will reach out in the future. Thanks!
I follow the standard "git init ." route, except I follow it with a very long and delicious nap.