Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How to start coding my product?
43 points by supervillain on Feb 6, 2011 | hide | past | favorite | 30 comments
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).

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...

Can someone give me an advice?

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.


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...

If you've been working for other people for a long time, it takes some serious adjusting to work for yourself.

I also have trouble getting motivated to start on a large project by myself, since it seems insurmountable in the beginning. It helped me to break it down into small steps that can be accomplished in a few hours, so I felt like I was making progress.

>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...

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-...

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.

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_...

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.

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

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.

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.

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.

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.

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!


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.

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.

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.

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.

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.

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.

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

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!

"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.

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.

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!

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.

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!

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".

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

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

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 :)

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

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact