
Ask HN: How to start coding my product? - supervillain
I'm currently employed and working as a Ruby on Rails programmer for 3 years now, and I have decided that I want to start coding my product that I have been planning ever since I got interested with web applications, but when it comes to making it happen, I just can't do anything, I can't start working on it, I can't begin coding... I just lost enthusiasm on my own thing. But when my employers ask me to create a web app (website, ecommerce, internal apps, consulting apps), I responded enthusiastically and delivered it right on time (and beyond their expectations).<p>What's wrong with me?, I have everything already set, I bought my domain, I bought a VPS, S3, and has the technical skills to make it happen, but and I just can't find any interest on doing things for my own's sake, it's easier for me when my boss says "hey do this", but when I comes to myself to do something for myself I failed miserably. The last time I visit my VPS is back on September 2010, and I haven't touched it eversince...<p>Can someone give me an advice?
======
flipside
Here's my take from having gone through a similar problem, it may or may not
be relevant to you.

A few years ago I had a great idea for a product and would pitch it to whoever
would listen. I had the domain, had a plan, just had to execute. I'd barely
gotten started when I ran into a wall, instead of working I would just stare
blankly at my computer. I had zero motivation to do any actual work.

And yet, I was still passionate and believed in the idea, which led me to a
similar place as you where I'm wondering "what gives?"

This situation showed me that I had an internal problem, that while I could
function in environments with external motivational factors, if I removed
them, I had nothing. Something inside was holding me back.

It was only through a combination of months of therapy and soul searching that
I was able to find the source of my motivational short-circuit, I had given up
on the first thing I ever truly wanted without even trying to achieve it.
After that epiphany, motivation has been the least of my concerns. Heck, I'm
working on my plans for world domination at this very moment.

So here's my advice, take the time to debug your brain, it won't be easy, but
it beats having that error message pop up for the rest of your life.

~~~
dolinsky
This.

Fear is a multi-faceted and very powerful, yet often times extremely
irrational, emotion that can destroy you even before you get started. A few
people here have brought up Seth Godin's Lizard Brain concept, but what's
missing from it is a deeper dive into fear being a huge blocker to
accomplishing something. "Just ship it", or "ship early and ship often" are
techniques that are of great help but they're farther down the pipeline than
getting started.

Of immediate and initial importance is needing to understand why you are
getting in your own way - what is the cause of the fear that is preventing you
from executing your idea? Is it a fear of failure, of success, of being judged
once you finish, of making mistakes, of having too much responsibility, of
making the wrong decision along the way? It's not a question that you can
answer immediately, and unwrapping fear can sometimes lead you down a path
where the only thing you have feared is more fear (sounds like a very familiar
quote, eh?).

When it's someone elses idea that you're working on and you're not the one in
charge it's much easier to meet and often exceed expectations b/c many of
those fears aren't possible outcomes (to the trully paranoid mind they might
be, but since you can accomplish tasks at work you don't fit the bill for
this).

It's not easy to understand the 'why' of our psychopathologies. Everybody has
their own that they struggle with. Some people create coping mechanisms and
live within the pathologies, and some people overcome their pathologies
through a combination of technique / drugs.

Two books that I found of personal help on first helping me understand the
'why' of my personal struggles and then provided helpful techniques to break
through them are:

"Do It!" by Peter McWilliams <http://www.amazon.com/Lets-Get-Off-Our-
Buts/dp/093158079X> (there's a free version @ mcwilliams.com but the website
seems to be down)

"The Procrastinator's Handbook" by Rita Emmett
[http://www.amazon.com/Procrastinators-Handbook-Mastering-
Art...](http://www.amazon.com/Procrastinators-Handbook-Mastering-Art-
Doing/dp/0802775985)

------
JonnieCache
_> I have everything already set, I bought my domain, I bought a VPS, S3_

This is your problem. By taking these preliminary, preparatory steps, you are
satiating your brain's motivational desire for action without taking any
actual constructive steps. Thus you do not have the will or urge left to write
the code.

Stuff like buying a VPS or setting up S3 is easy and quick, therefore your
reptile brain makes it easy for you to do such things first, as it prefers
instant gratification. This unfortunately depletes the motivational
neurotransmitters that signal you to take action, because as far as your brain
is concerned, action has been taken.

The answer is to do that stuff _last._ Or, in a business setting, get someone
else to be responsible for it.

This is an extension of some ideas from the great Derek Silvers, which he
relates in this TED talk, which you should definitely watch:
[http://www.ted.com/talks/derek_sivers_keep_your_goals_to_you...](http://www.ted.com/talks/derek_sivers_keep_your_goals_to_yourself.html)

~~~
dolinsky
Ian Ayre (and others) have challenged the study that Derek Sivers based his
'keep your goals to yourself' talk on -
[http://freakonomics.blogs.nytimes.com/2010/10/28/are-
public-...](http://freakonomics.blogs.nytimes.com/2010/10/28/are-public-
commitments-counterproductive/)

I think the OPs problem is primarily about fear
[<http://news.ycombinator.com/item?id=2185833>], not instant gratification.
It's necessary when building a website to get a VPS and S3 account (or
equivalent) to host the site/files on. I completely understand what you're
getting at by suggesting that putting easy things ahead of hard things gives a
false sense of accomplishment, and I tend to agree. I just think there's
something different at play here for the OP to focus on.

On a related note, I know that Derek frequents this board often and I've had
the pleasure of learning from some of his insights along the way. I'd love to
hear his reaction to the above article or a link to such a post from the HN
crowd.

~~~
JonnieCache
Very true.

An important idea, not often acknowledged, is the _fear of success_ rather
than the fear of failure. "Oh God, how long before they figure out I'm faking
it?"

See the following article:
[http://thelastpsychiatrist.com/2010/08/the_worst_thing_that_...](http://thelastpsychiatrist.com/2010/08/the_worst_thing_that_can_happe.html)

 _Note: while I am linking this article for its ideas, this is IN NO WAY an
endorsement of the author's somewhat antagonistic and disjointed writing
style. Please persevere with it._

------
patio11
Cut back scope, pick something you can deliver in your typical attention span,
then _sit down and do it_. If you have one little feature that makes lives
better enough to pay, then just a wee bit more work adds the ability to charge
for it. Just a wee bit more work gets you the first cut of a marketing site.
... _repeats ad nauseum_

~~~
warp
What helps me with this approach is to pick a small module, and then start
writing a README for it as if the module already existed.

By pretending that the module is already done you get to use it before it
exists (which is a lot of fun :). In the README, write your instructions in
such a way that they are testable (python doctests make this easy, I assume
you can do something similar with ruby).

When you're done, it is much easier to start on the actual module itself
because you've already figured out how that module interacts with the rest of
the system, and you have a set of tests to verify it.

------
gabrielroth
I suspect the stakes are too high for you with this personal project. You've
been planning it for so long, you imagine it will revolutionize the industry
and make you a billionaire. And sitting down to start coding makes it feel
like, well, just another web app. So any small steps toward your goal feel,
paradoxically, as though they're destroying that goal.

All you can do in that situation is step back and remind yourself that this
project probably won't change the world but might be fun to make. Consciously
work on replacing the grandiose fantasy with a more realistic one: Imagine
yourself ... coding a neat little Rails app in your free time! Staying up late
to fix an annoying bug, and then feeling satisfied when you've fixed it! Not
being a billionaire but being a guy who made a cool little web app!

And then sit down and start coding, even if you're not really in the mood.

------
wccrawford
You're letting the lack of requirements blind you. Depending on who you are,
there's 2 ways to fix it:

1) Write some requirements! Clarify in your mind where the project is heading
both in the short-term and the long-term. Agile-style user stories is one way
to do both of those.

2) Start with the basics. Get the Rails framework set up. Get the DB set up.
Start writing the schema. Etc. Once you've got the basics of every app (mvc,
authentication, ACL, etc) then move on to what makes your app unique. Start
with things that will provide benefit for you or your customers.

------
jamesbressi
Hire me as your boss. We write a contract. The contract stipulates that you
have complete ownership of the idea, I get profit sharing for payment, but if
you don't execute at a reasonable time pre-negotiated then I can throw the
idea out there to have someone else get this project coded--with you still
retaining complete intellectual ownership of the idea but they are added to
the profit sharing pie.

=)

Logically your reaction will be heck no because you can do it yourself and
keep all the money to yourself, but you have just then created a paradox
because this is exactly what makes you execute and seems to be what is
preventing you.

That was all in hypothetical fun of course but I think would work in practice.
Sometimes people don't need to find or "hire" co-founders, rather a "boss".
But to overcome your biggest challenge, which is yourself, @JonnieCache and
others here definitely know what they are talking about.

------
SeanNieuwoudt
I think all entrepreneurs and engineers go through this kind of phase at some
point in their life.

The best solution I've found is get yourself a partner, someone that can keep
you accountable and motivated.

Remember not to take your code too personally, most of it will inevitably need
to be rewritten again anyways - it does not have to be perfect in the
beginning.

If there are certain aspects of the project that are frightening to you and
stopping you from starting (UI, DB design etc), then bite the bullet and
outsource those parts... makes things much easier.

If you have the funds available, consider outsourcing the entire project -
this will leave you with time to get the business end sorted.

Best of luck!

Sean

------
vanekl
Your subconscious is telling you that it thinks there is a problem and you
shouldn't spend time working on a project that it feels is going to fail if
you continue down your current path. Spend a few days listening to what your
subconscious is trying to tell you, and refute in writing all the negative
things it's telling you. If you can refute everything convincingly, then your
mental motivational block will resolve itself. Don't be afraid to free-
associate until you get to the root of the problem. Don't worry about spending
too much time overcoming this roadblock, because 1) your subconscious is
telling you there is a real problem, and 2) many times it's right. Brainstorm
solutions until you get your solution. I've sometimes spent many days mulling
over problems until I come up with a solution, but once I do my motivation
comes right back and I can't wait to get back to the project. Everybody
occasionally runs into these mental blocks; it's nothing to be concerned with
if you decide to systemically attack it by letting your subconscious feed you
solutions until you find one that works. Just don't write it off to "lack of
motivation"; there's something your subconscious is trying to tell you.
Address it and your motivation will come back.

------
Jsarokin
Fear of failure? If you never finish the project, you can always think / say
what it could be. If you actually make it, then you have a chance to fail.

I'd say write 1 of the many features your trying to work on. It could be
because you're overwhelmed with the whole project.

Also, it seems like you have a "sheep" mentality rather than a "wolf"
mentality (when your employers asked you to make an app but wont make one for
yourself). If you can recognize it, you can most likely change it.

------
chrisgo
Accountability - find a buddy (or anybody) that is remotely interested in what
you are doing. Your boss (and even other people you interact with) probably
asked you when it's going to be done and you are eager to "please". You may be
one of those people that feel that if nobody else cares about your project,
why should you. So find a person to work with on this project ... maybe a
future client or user with the problem you are trying to solve.

------
raffles
I have been in a similar position as, like you, I find it easier to do stuff
when someone else is expecting me to do it. In the absence of a co-founder,
one of my strategies has been to create that sense of expectation by
outsourcing parts of the work which then requires work from me to provide the
outsourced person with what they need to do their bit.

On one recent project, I got going by knocking out a rough plan in Pivotal
Tracker and then doing some pair programming on some portions of the code with
someone I hired on oDesk. Having booked someone for a couple of hours a day
for a week or two meant that I got started, and by using them only for small
portions of the functionality meant that it didn't cost too much and I was
motivated to get the other bits done myself that were dependencies for the
next bit of functionality I was going to be working on with my pair
programmer.

------
terhechte
Just revise your thoughts. You're not doing it 'for yourself' but you're doing
it for a future audience, for future customers. The reason why you work so
well for your boss is probably because you like to impress him. But it's
difficult to impress yourself. When you think about your product, think about
what positive reaction you'll get from your future customers.

Also, this mode of seeing things will help you to deliver a better software
experience to your end-users as you will always remind yourself that going for
quick and dirty solutions (during development) might work if you use it, but
not if others use it.

Also, in order to gain additional enthusiasm, you should find a good friend
with whom you can talk about your project, and brag from time to time. Then
you feel obliged to continue working on it because you don't want him to
believe that you've failed on it.

------
dlevine
I've found that this sometimes happens because I have serious second thoughts
about some aspect of the project (maybe I don't know how it could ever make
money, or it seems like it would be difficult to acquire users).

The most effective thing seems to be getting someone else involved. That way,
you are committing not to yourself, but to another person as well. If that
person is a coder, then you don't have to do all the programming work
yourself. If not, maybe they can help you to get around some of the
shortcomings in your own skillset.

Some people just don't work well alone (I'm one of them). It's not that I
can't do all of the work myself (I can), but just that I don't enjoy it. I've
learned to accept that, and then to get around it by bringing others into my
projects at an early phase.

------
givan
Is the lizzard brain that is fighting back, is trying to protect you from
failure see this <http://vimeo.com/5895898>

------
LeonW
hmm, is the app you are planning something that will solve some of your own
problems? Or is it something that your boss's client would appreciate. I am
guessing that it might be the latter in your case and that's why you have
trouble motivating yourself, because your boss isn't there. If you would find
something that solves one of your own problems and made your own life a lot
easier, then finding the motivation to do it is far easier!

------
bfung
"What's wrong with me?..."

How to beat procrastination: <http://news.ycombinator.com/item?id=2185174>

Perhaps you feel that your idea doesn't help someone else, even if it is
interesting to yourself (hence it's easy to do work for others). Convince
yourself either the idea/product would help people (ask if people are
interested?) or do it for fun/hell of it. Otherwise, cut your losses.

------
khanm
You may just be a creative who may lack the skills which are needed in
combination to get you moving forward such as "Leadership" & "Organization".
Thus looking into partners or mentors who have those two will only help you
along.

I have found this video helpful as it explains further: The project plateau
<http://vimeo.com/13399691>

hope this helps.

------
Swannie
I know that situation well. I figured out it's because I strongly prefer
working in a team. Solo-founder is never going to work 100% for me. I do work
individually great, but if there isn't at least one smart person to bounce
ideas off, and who reflect back some real enthusiasm, I'm burned out after a
few days.

If anyone figures out how to trick yourself then I'm all ears!

------
pnathan
Sketch out the app. Do a SDUF (small design up front).

What do you need to do, and in what order?

What is the minimum viable product? What does that need to do, and in what
order?

Now, what's the first thing that needs to happen for the MVP, and what is the
smallest piece in it that can be done in an afternoon of coding and uploading
to your VPS?

0: Do it.

1: Now, what's the next task in the chain towards MVP?

2: Do it. If the MVP isn't done, GOTO 1.

------
mapster
Ask yourself, if 3 years and I haven't made my app will I be disappointed? If
yes, then set 30 mins a night to work on your singular project. Write a
general plan of attack, then flesh out the 1st 20 objectives. If it helps,
pretend your boss asked you to complete this project. good luck!

------
beej71
Try cutting scope until you get down to a thing you feel like you can do right
then. This might be more like "gutting scope".

You'll end up with a tiny unusable thing, but it's something you can add to.
Some people have an easier time "improving" than "starting".

------
aderaynal
Have you looked for a co-founder ? Having someone else to work with or rely on
is a great source of motivation...

------
jparicka
Sit down, roll up your sleeves and get to it. 2500 commits later and you may
get somewhere with this...

------
kiriappeee
You bought this you got that you have the technical skills.. but do you have a
plan? do you have a design on paper or whiteboard which you can implement?

Here's something I did to get past my own wall two months ago. I told myself
to shut up, set aside some time each day (after I started working it was a lot
easier. The only time I had was after work hours till 10 30 in the night) and
then follow these steps.

1) make sure you are fresh, preferably having had shower 2) phones,
distractable media all shut off and put away. block everything except your
resources on the net if you have to 3) put down what you are going to do
either on a small A4 size like whiteboard, or an A4 drawing paper (blank white
is best to focus) When putting down the stuff do it this way a) write down the
features you want to implement in your current development cycle b) draw up
the screen designs if you need to c) think through the logic and put down
what's needed.

Get to Work!

Methodologies are there for a reason. They do actually work. Btw, before
starting. Make sure you have a clean overall view of the project as well. Not
just the 'pitch'. Put down your main use cases and the features for each use
case there (two levels max you can elaborate during the main cycles).

What's wrong with you is not lack of motivation. It's a lack of focus. I've
dealt with it when learning languages too. I'd spend hours reading the
material and come away with nothing. You need to know what you will achieve
and that within a practical time frame. If you are having a really bad case of
not being able to focus, I suggest a maximum time frame of two days. I
currently work on a functionality a week/fortnight basis.

Good luck :)

~~~
adnam
Good grief, did you just advise someone you've never met to take a shower?

