
Ask HN: As a programmer do you have ups and downs and periods of intense doubt? - Madawar
Hi all,<p>Am a developer based in Africa and have developed small applications for the company I work for an airline ground handling company and have also created apps for sale on codecanyon.<p>Am a competent programmer not necessarily a good one but am able to get things done when under pressure, For example I made the codecanyon application at a previous job as an intern when we were required to comply with certain ISO regulations within a month. I did it as I had no way out. It has earned me approximately 250USD per month which in Africa is enough to pay rent but not be self employed.<p>The problem comes when I need to do something that I am 100% responsible for. For example create a SaaS app. The usual process goes like this Have an idea, Get excited, come up with all kinds of cool&#x2F;new features that look marketable&#x2F;useful, sometimes I go to the extent of buying a domain, when it reaches to implementation I get this crippling doubt on whether what am creating will sell&#x2F;will be a profitable SaaS application. I am simple crippled by the fear of  failure and abandon my wonderful idea. As a result I have numerous half baked personal projects. This projects do have their advantages as I discover new ways to do things that are very beneficial to my work projects but for my personal projects and personal life they are a dead end.<p>Do any of you experience this, do you just push it to the back of your mind and push on forward or is it just that am a coward?
======
shireboy
Definitely I have similar fears and a harddrive full of half-finished code, so
you're not alone. Some of it I feel is just natural creative process. Famous
painters like Monet often painted over canvases and didn't finish work - we
know the masterpieces, but the process is dirtier and less organized than we
imagine sometimes.

One thing that comes to mind as an antidote is to market-test your ideas
before writing much/any code. This has the benefit of helping you prove the
idea without wasting time on it, AND get you a group of people waiting for
your thing so that you can be motivated to finish it. If you read some of
these entrepreneurial bloggers (Pat Flynn, Tim Ferris, etc), they talk about
this in detail better than I could. Depending on what the idea is, go to
forums related to the topic and get some credibility by helping people. Then
ask around about your idea or pitch it as "coming soon". (Don't be dishonest
and say it's built when it's not). Set up a quick MailChimp or SurveyMonkey
form, blog, etc. to start a discussion around your product and get an core
group of interested potential customers. Try not to be biased one way or
another - if there's a market and you think it could earn an income with
reasonable effort do it. If not, don't.

Now, why have I done that and _still_ not finished this idea....

------
nthj
What you're experiencing is entirely human, and I would venture all developers
experience this at given points, unless they are just working through a queue
of bugs in a backlog tracker or some such. Now, being a software engineer, I'm
not really interested in working harder or just telling myself to get over it.
I'd rather use software and a process to hack my own behavior to keep pushing
forward. Here is how I've had a little success with this.

For a given product, I have a Trello board that tracks the entire machine I am
trying to create. (A business is a machine that accepts money and/or time as
inputs and outputs a sufficiently interesting amount of more money: the
profit.) I'll have lists like Lead Generation, Conversions, Upsells, and
Churns. Every project I want to work on within the product needs to fit into
one of those lists; it's an easy way to remind myself to not build or work on
things that don't matter.

Within the lists I have cards for initiatives. These are the projects I would
assign to an executive if I had a team of VPs. For example, "Launch ZenDesk
with help articles."

Within the cards I have checklists of specific milestones or tasks. "Sign up
for ZenDesk." "Add CNAME."

When I don't have much energy after a full day's work, I can look at my cards
and find something I do have the energy to take care of. When I'm wide awake
and excited after a good night's sleep, I can add more tasks or initiatives to
the Trello board, but the lists help ensure the initiatives are actually
pushing the business forward.

Finally, I'd look for projects within your product that make sense to open
source. One, that makes the projects easier to use on future projects; two,
you can show them off when trying to get work in the future; and three, it
gives you a really nice sense of satisfaction and a milestone you can point to
along the way of building your product.

------
vessenes
I spent about a year alone building a fairly complex server tool. Some days
were great. Many were hard. I'm 40 now, and have enough experience with myself
and software that I got it done and enjoyed almost all of it. Here some things
that worked for me.

* Kept the initial push of code very simple, and doing something useful from day one. The software needed to always "work" so that I could be adding features, tuning or bug fixing. If it wasn't working, I was UNHAPPY.

* Tried to ship every day

* Which meant I was disciplined about drilling features down into coding efforts of about a day.

* I kept a notes.txt file, and wrote down any ideas and thoughts; features would get drilled down into component steps, and I would work through them one by one.

* I resisted all urges to 'rewrite the whole codebase', this would have kept me from having working code for weeks, an absolute no go.

Overall, I'm happy with what I (and later a friend) built. It took discipline,
but the discipline is just there so that I could do mostly the fun stuff --
build something new that people thought couldn't be built.

The worst two weeks for me were a terrible bug-hunting expedition that ended
with filing a compiler bug. I was tetchy and annoyed the entire time. For me
at least, I like having working code that does something useful. :)

~~~
pmiller2
> The worst two weeks for me were a terrible bug-hunting expedition that ended
> with filing a compiler bug.

That actually sounds like incredible fun to me. :) And you likely did end up
with useful code after the experience, just not in the project you intended to
work on. ;)

~~~
vessenes
haha. Or just a reminder not to use go tip.

It was satisfying to fix, very satisfying. But probably not the two week build
up.

------
informatimago
One fundamental feature of programming (development, software engineering,
whatever the name), is that you have to face the unknown.

If you already knew what problems lie ahead and their solution, you would
already have programmed it, and then what use would it be to rewrite the
program? Just re-use the previously written code!

So by definition, what you will develop, will be a program solving a problem
with unknown dimensions and solution. You start by writing the code for the
known parts, but while doing that, you have to live with the fear of the
unknown that lies beyond the next procedure.

Performing specifications and analysis phases is a way to deal with this fear
of the unknown, by drawing a coarse map. But often it's not possible to
precise the map much better than labelling "Here be dragons" ahead (or worse,
to hide the dragons with reassuring words, like Module X, or Component Y).

So be courrageous, plow ahead, and you'll be lucky, when you'll get close,
you'll see that what you thought to be dragons was just a hill, and you'll
find a solution to climb or circumvent it.

What you need to learn however, is how to deal with the complexity that
emerges from discovering problems and solutions as you go: then you have to
step back a little, and find simplifying abstractions, to refactor the work
done so far, to get a simplier solution englobing all the problems seen so
far, (and hopefully that will be found in the future).

~~~
travmatt
In "Code Complete", the Steve McConnell describes that as the wicked problem
of software development.

------
doktrin
All the time. I feel like crippling anxiety, insecurity, mental anguish and
deep self loathing is par for the course in this career. When it gets to the
point where I literally hate myself for being alive, I start to consider
dropping everything attached to a circuitboard and cleaning floors for a
living instead. This happens about 2-3 times a week.

~~~
kafkaesq
It takes a lot of _cojones_ to acknowledge those feelings (even to oneself),
let alone share them with others.

So (despite the triteness of the slogan), thanks for doing that.

------
danso
You're not a coward, you're facing the doubt that everyone else does. However,
it is unhealthy to think that the SaaS you dreamed up will be successful, when
so many others have failed...that realization that you've had, that there are
advantages to undertaking projects that fail...that's worth holding on
too...as while you may not frequently succeed at first, you can still keep
learning the skills from building the failures that will be needed for a
success.

Also worth realizing that the success of a project is not based purely on hard
work and skill. A great amount of luck is involved.

------
pfarnsworth
You pretty much nailed it on the head. Fear of Failure. Why exactly are you
afraid of failing? Who are you worried about being embarrassed to? This is
what you really need to work out, because who cares if you "fail", at least
you tried, and the beauty with programming projects is that you learned along
the way.

You need to stop worrying about it being a success, and instead concentrate on
making as good a product as you can, for your own education and pride. Imagine
you are going to submit this along with your next job application instead. You
want to showcase your programming abilities, not in your abilities as an
entrepreneur. Change the focus of WHY you are starting this project, maybe
even assume that it won't be used at all except to show any potential
employers what you can do.

------
daveguy
> This projects do have their advantages as I discover new ways to do things
> that are very beneficial to my work projects but for my personal projects
> and personal life they are a dead end.

Absolutely I experience this and I expect most programmers have a few half
baked or in-progress projects laying around.

You are focusing on the wrong aspect (the half done part) and not on the very
beneficial part - learning for future projects. Keep those half done projects
organized and in version control so that you can come back to them later.
Better yet, license them all as BSD and put them in a public repo. Then if you
need them for work 1) they can't be exclusively co-opted by a company even if
they are used there (after all you built them on your own time) and 2) others
can learn and contribute.

If you are definitely not coming back to them be sure to tag them as
abandonware so people aren't expecting bug fixes.

------
jventura
I have a similar experience.. The thing is that although many of us can work
on one or other part of a complete product, it is pretty hard to focus on
everything at the same time and build an entire product alone!

For me, I have identified my problem not as fear of failure but perfectionism.
So I start questioning all little things and things move very slow. I am
currently building a SaaS app, and I've built others before but none made me
any money so far. But lately I've been tuning my strategy to make things work
faster, and have been seeing some success on it. Some of my main points are:

* start with something very simple that has the minimum functionality, like drawing a chart if the app is to draw charts, etc.

* since I'm working full time on this, decide to implement a feature per day (until you have enough features for now).

* THIS ONE IS REALLY IMPORTANT: never leave an inconsistent and non-working application between two commits. Make sure that the version on your repo is always fully working even if it lacks features (it may not be between two commits, I hope you get the idea..).

* ANOTHER IMPORTANT ONE: when you have a stable app, do a release to your server, even if you have it mounted on a personal url. It will give you the feeling of being moving forward..

* When you have something usable enough for other users, invite them to use it. Non-technical people feel flatered if you invite them personally to test your application. \- Use a repo such as github (or gitlab for private projects). Commiting the code to those repositories will give you the feeling of moving forward every day. And if your local copy does not work anymore, you can always reset to the latest working commit..

I've been working on this project for much more time than I ever wanted (5+
years) and the points above have been what I learned from it.

------
malux85
Keep going.

If you build something and it fails, the experience you gain will be valuable
- and a failed project is more valuable than an abandoned project - so even if
you fail, you'll be in a better position you are in now! :D

Self doubt is normal - it's part of the creative process. But use it to be
critical of your own work, but in a constructive way.

If the work seems daunting, remember the words of Dori on finding Nemo - Just
keep swimming. How do you eat an elephant? One bite at a time!

------
andrewfromx
You just need a team. Stop trying to do a SaaS app all by yourself. Work with
at least 1 other person, even better with 2 other people. The team will keep
the idea going if it's a good idea. By yourself, the odds are not in your
favor.

------
maratd
> As a result I have numerous half baked personal projects.

Every decent developer has dozens of half-baked personal projects. Some get
finished, some don't. All eventually get abandoned.

They are never a waste.

If you go through your codebase, you will find that you re-use code and
techniques that you learned on your next project. This is how we learn.

~~~
freestockoption
I second this! I have never done a project that I fully regretted or gone to a
job wishing I had stayed at a previous job. While I have gone to a job that I
hated almost immediately, I still didn't see returning to the previous job as
a viable option.

Every new venture I take, I feel I couldn't have done without the accumulation
of all my past experiences (both professional and nonprofessional).

Where you are is also a function of where you've been, which can be hard as
the human mind sometimes likes to dwell on regret.

------
selmat
From my previous experiences one man show is very difficult. Especially if you
dream big and have high goals (e.g. monetization, startup idea etc.).

I am now trying to involve at least one person to all my side projects. Even
for small projects. There is great problem solving attitude - Divide-and-
conquer.

If you can split problem to smaller parts , you can involve some other
passionate friends who can participate and help you.

~~~
AndreyErmakov
>> From my previous experiences one man show is very difficult. Especially if
you dream big and have high goals (e.g. monetization, startup idea etc.).

It's been my experience as well. Pretty sad to recognize the limits to what
you can accomplish alone. Sad but necessary.

~~~
daveinspace
True, but I think it force us to focus and put limits in time and features.

A solution can be to outsource : hire contractors to make all that is not your
core project (ex design, content...).

Yes, as a dev you can do everything, but not with limited ressources (your
time and money are precious!)

~~~
AndreyErmakov
Sometimes you can't outsource. If it's a small personal project and you can't
pay anyone to work for you. It it doesn't smell like a hot startup, nobody's
going to be attracted by equity either.

~~~
selmat
Sure. You are absolutely right. If its personal project for fun or learning
and there is no one (except of) you waiting for results then outsourcing has
no sense.

I was talking mainly about projects with commercial intentions.

------
jacquesm
Yes, it's perfectly normal. If you can, find a programming buddy. That will
help you across these humps far more quickly than you can do on your own, in
fact you may no longer even notice them.

Fear of failure is best dealt with by successful delivery.

A story from the dark ages (pre-internet).

I'd landed a contract to pioneer the automated digitization of passport
photographs and the printing of those photographs on credit cards.
Unfortunately, this project was _way_ above my skills at the time and every
day I regretted taking the job. But, day-by-day my knowledge grew and at some
point I started to see a way out. In the end it took almost two years from
start to working prototype scanner / printer but my self-doubt was dealt with
on the day the customer took delivery of the first machine. As long as you are
making progress (even if it is slow) you'll get there, if you give up then
that's the end of the line.

So don't give up, just keep plugging away at it. And if you can, find that
buddy. It's more fun that way anyway.

------
waychukucha
Am not a programmer but I think I am in that phase myself. Especially also
being an African, I tend to think the adoption of technology in our markets is
quite slow & the effort needed to implement a tech based product takes more
time & a lot of marketing to just kick off. I have created a company that
wants to digitize all forms of analog data & do offline archival. But then the
doubts has kicked in. Will I crack the market? Most importantly, how will I
crack it. It eats me up even more knowing that I have no competition
whatsoever. Its now my full time job & I feel stuck. I think of pivoting but
that will be just another project left undone so I have to keep pushing on.

------
rahelzer
Of course. Because we spend most of our time fixing our own bugs, no other
profession confronts someone with their limitations and shortcoming as much as
computer programming does.

But a cheesy pop-culture reference rings true here:

Q. "Can a man be brave when he is afraid?" A. "That is the only time a m an
can be brave." -Game of Thrones.

------
cableshaft
I've got all sorts of ideas with various levels of work done on them in the
dustbin. Sometimes you get an idea that you think will make money, but you're
not really that passionate about it, and find that it takes a lot of effort to
get back into it. That could be a sign that it's not worth pursuing and let it
die. But if you do keep coming back to the idea, even with some time in
between, it's probably worth sticking it out until the end. At any given time
I've got about 15 ideas that I have varying amount of energy for, and 10 that
I started briefly but never went back to, but usually only one main project
per medium (not everything I do is programming) that I keep going back to over
and over again.

Those are the ones you really need to make sure get out there. Then finish
those and see what's next you want to go back to. It's taken me over 8 years
to finish a novel, for example, but I already know what the second novel I
finish is likely to be, because I keep coming back to it and putting a little
work into it here and there.

Sometimes those ideas you got super excited about for a week and abandoned
will be incorporated into future ideas too, and they'll all meld together into
some super idea. I've got something like that percolating that I noticed is
basically combining three of my past ideas into something simultaneously
simpler and more powerful.

But I'm not doing it for a business, just for fun. If I did it for business,
I'd have to focus a lot more, and have a lot less fun, I imagine.

------
Muted
I experience the exact same thing. I get an idea for a side project, get
really excited about it, think about all the great things it could do, work on
it like crazy for a weekend, and then never touch it again. I got to a point
where I got really frustrated with myself that I can't finish anything. So
this past Saturday I picked a really small simple project I had and said to
myself "No matter what, I'm doing a ShowHN before I go to bed." So (after some
hesitation) I did [0]. It really helped knowing that the HN community doesn't
tear down ideas or projects. And while this was not a big, badass, super cool
project like some others, it does feel good to have finally put a project out
there.

Based on this I would say, define a small simple project that you can finish
before losing motivation or succumbing to fear of failure, and then just get
it out there. You will receive valuable feedback and learn a lot. You have
little to fear as the HN community seems to shine at not making you feel
embarrassed about what you've made. At least this is the impression I got from
watching previous ShowHNs.

[0]
[https://news.ycombinator.com/item?id=11930331](https://news.ycombinator.com/item?id=11930331)

~~~
msdos
_the HN community seems to shine at not making you feel embarrassed about what
you 've made._

Not in my experience. Several Show HN type of things I posted were highly
criticized with harsh words. I'm not posting anything on HN ever again.

------
squidlogic
Sometimes that fear can be a good thing. It means you are trying to do things
just outside of your comfort zone, which can help you grow. If you are always
100% confident that you can do something, then that means you may be at a
plateau in your personal growth. Run towards the fear.

Some specific advice that might be useful...

Bring in other people to your projects. It helps vet the idea, gives you
someone to lean on if you're having an off day, and it is a huge intangible
'good' to know that you're in it with someone else. I'm reminded of a GK
Chesterton quote, "It may be conceded to the mathematicians that four is twice
two. But two is not twice one; two is two thousand times one."

Second, bite off as small a chunk as you can at a time. Not just in terms of
features, but break your work down into one or two hour tasks. Sometimes this
is not possible, but more often that not it is. Write all of these small tasks
down. As you finish one, cross it off. At the end of an 8 hr day of work, even
if you have no user-facing features to show for it, you will have a sense of
accomplishment over these 4-8 tasks that you were able to finish. This can
help act as a positive motivator to push forward.

Good luck!

------
pmiller2
I have periods of ups and downs and intense doubts _as a person_.

------
phugoid
If you can push yourself hard enough to get the idea built, you will face
another bout of crippling self-doubt when you decide whether to show it to
anyone. And then a MUCH bigger wall of doubt when you begin to market the idea
and realize that good ideas don't sell themselves.

My advice is to choose smaller projects, even if they're not as commercially
promising, just to build up your strength and ability to finish the job.

------
scarecrowbob
I feel like that often, both as a musician and as a programmer. I've got
enough skills that it's not hard to get folks to want me on their teams (and
they pay, too, which is nice).

The problem is that when I launch something wholly on my own I often back
off.... there are usually good reasons:

it's not gonna be as profitable as I thought,

there are actually problems with my idea I couldn't have seen until I got into
the project,

it's just not as good as the alternative of working on other folk's porjects.

My solution to this (because it happens maybe 4 times a year that I drop some
project I was working on) is to identify some small goal, even if that goal is
"learning how to install postfix" or "getting my banjo chops to the point
where I can roll chords along to someone else's songs".

Even better is when these small goals are in themselves something I can return
to later (like a save point in some dumb video game).

Like, I just made a marketing site to try and pick up some event music work.
If I don't push on it hard and it doesn't generate a bunch of leads, then it
can at least still just sit there and when I come back to it in a couple of
months and try and make a push on the idea, then I already have that part of
the marketing collateral done.

And, with this project, I've progressed in my skills at setting up the server
and specifically configuring mail programs, I've learned a little bit about
adwords and analytics, and I have something to show my musician buddies.

Projects don't have to be all or nothing-- if you can learn from them or jest
get some small tangible thing out of them, that's okay and often quite
valuable.

------
ChicagoDave
There are a lot of factors in being a developer relating to stress, income,
talent, vision, responsibility, maturity, and emotional intelligence.

I think most of us go through cycles of high productivity inter-mixed with
moderate productivity, and some small moments of being useless. The best
developers are the ones that seem to be slightly higher than moderately
productive all the time. Those people are rare in my mind. Then there are a
handful of rockstars that can code at a high level all the time. I've only met
a couple people like that in 31 years.

As for crippling doubt, well, I think those are signals to listen to, but
learn to review your ideas pragmatically. I'm on my second start-up and this
second concept is no sure thing. I've had doubts many times, but I also see
the merits in building it. So I persevere. It's not at all easy. You have to
forget about the future and focus on the here and now. Focus on the things you
_can_ do, not the things that you have no control over.

But yes, we all have unfinished projects that were stopped because of doubts.

------
deepnet
Failure can be very valuable experience.

You might fail at making money / market share but gaining the experience of
how and why you failed is very valuable information.

Failure is great business knowledge it makes you wiser and dealing with it
makes you stronger.

If you don't fail a few times you might make an avoidable error on the next
app, which could have succeeded.

Just don't take it personally, learn from it and grow as an entrepreneur -
sometimes the time is just not right.

Maybe you'll pivot and only discover a winning formula by failing at your
initial idea.

By taking something forward you will encounter others on a similar journey,
your professional network is a very valuable asset.

Fail fast; fail often. Only then will you be truly ready to win when the right
idea and right moment coincide.

------
hbt
Read the book "the new business road test". It oulines a checklist of things
prior to considering a business. You can apply a lot of it to new software
project (e.g conducting marketing research for similar projects).

When it comes to software development and adding features, adapt an investor
mindset. Ask yourself what is the return on investment (ROI) of implementing
that feature? What are the risks? How can you hedge your bets? etc.

I remember reading a book "software by the numbers" which I think covered
that.
[https://books.google.ca/books?id=tW14FDkNYv4C&dq=software+by...](https://books.google.ca/books?id=tW14FDkNYv4C&dq=software+by+the+numbers&source=gbs_navlinks_s)

The last thing you should do though is "push blindly" and not "overthink".
Analysis prior to acting is a good thing and the anxiety you feel is because
you're uncertain about your the future. You cannot predict the future because
you don't have any research.

It doesn't mean you should wait for certainty. Nothing is deterministic. But
you should always operate on your best guess; after having done your homework
to investigate all known unknowns and minimize risks.

------
AndreyErmakov
Yes, I've had similar periods of doubt when considering ideas for my personal
projects, though never to the extent you've been experiencing.

In general, doubt is a healthy thing. It allows you to weight the decision and
the consequences before blindly jumping in and possibly making a terminal
error. Without doubt as a balancing mechanism, humans would be acting on a
rush and we would be living in anarchy and chaos.

That said, however, there is a limit as to what you should allow your doubts
to do. Speaking of your personal projects, it is normal to have an idea,
initially consider it great, get excited about it, then in a few days
sometimes weeks/months to cool down with regard to it. This is in principle
the necessary process. You need to let your ideas prove themselves before you
act on them.

But then when you're convinced this is a solid idea, which has a potential for
market acceptance and the real need it can satisfy, then it's time to put your
doubts in the back drawer and decide whether you go with it or not. The idea
may be great but too big for you alone to handle it, in which case you start
to look for outside help. If it's small enough and you can pull it off alone,
then do it. In the past I had ideas I began to work on to realize later their
scope was beyond my abilities to complete them so I stopped them unfinished. I
choose not to think about them as failures, but as painful but valuable
lessons which taught me things I otherwise would never have learned. Then in
the future I would not make those kinds of errors in judgement again.

Fear of failure is also a cultural thing. Certain cultures are very much
averse to risk taking and failing where the society looks down on those who
tried something unconventional and did not succeed. I don't know if it applies
to your situation, only you can tell, but at least you should be aware that
this may potentially be affecting your perception of reality.

No one starts a software project with an official warranty letter from some
authority stating that it will work. You simply recognize its potential, you
believe in it and that should be enough to keep you going. That's how the mind
of an entrepreneur works.

------
ageektrapped
This is normal. I'm feeling it right now with what I want to do.

In my heart and mind, I _know_ I can do it, but then the doubts and fears rush
in. I totally understand the feeling you're going through.

I just finished _Art & Fear_ by David Bayles and Ted Orland which is a
fantastic book about creating stuff. Nearly all the advice applies to software
developers.

Don't give up.

Success isn't binary either.

Release your project (Some success!). Make some sales (More success!). Market
your project to get more sales (Success!).

You probably won't get fuck you money on the first day, but with enough
marketing, maybe you'll be able to quit your job within the first year.

------
ScaryRacoon
Failure is an opportunity to learn. If you don't fail once in a while, you're
not pushing yourself. Failure is a normal part of life, to expect perfection
in software development is insanity.

------
segmondy
You don't have doubt, you are just not motivated. Not doing your real work has
consequences such as losing your job and ending up homeless. The cost of not
doing your personal project as you perceive it is not that high. This is true
for most people that are employed, I'm in the same boat. The struggle is to
find out how to have a high level of motivation and to replenish it when it
runs low.

------
iamben
As many others have said here, I have this not just as a 'programmer', but as
person - I think most people do. Sometimes it's crippling, sometimes not.

For the most part, you have to ask 'what am I worried about'? Usually it boils
down to an issue with your own ego - the idea of failing or looking stupid,
usually in front of your peers. If you can get over that, everything becomes a
lot easier.

------
jasonkolb
This isn't unique to you, or to developers. What you're describing is part of
the human experience. There's even a name for it, "Dark night of the soul".
Everyone experiences it, in every walk of life.

[1]
[https://www.eckharttolle.com/newsletter/october-2011](https://www.eckharttolle.com/newsletter/october-2011)

------
wilsonfiifi
I think you should read/watch the following 2 resources if you can:

    
    
        'Start Small, Stay Small A Developer’s Guide to Launching a Startup' [0]
        'Creating and selling a digital product' [1]
    
    

Your product on codecanyon appears to be doing quite well and has good
reviews/sales [2] so you should probably market it more (if you're not doing
so already). Also, building an ecosystem of free/paid plugins around it might
be something you could explore. Finally, you could look into offering hosted
instances for less technical savy users.

Good luck and keep up the good work!

    
    
        [0] https://www.amazon.com/Start-Small-Stay-Developers-Launching/dp/0615373968
    
        [1] https://www.pluralsight.com/courses/creating-selling-digital-product
        
        [2] http://codecanyon.net/item/stock-awesome-inventory-system-and-stock-control/11210315?s_rank=2

------
wslh
The root problem with the SaaS project example is that you should be aware
that, in general, many people are involved in projects like this. If you want
to push it alone it is obvious that the number of tasks will be much bigger
than when you are an employee. This kind of projects require a different
approach and if possible one or more collaborators.

------
LTheobald
As everyone else has said - the doubt is normal. My advice would be to try and
strip the product into parts more & tackle them one by one.

Creating a total product end to end in one go, that's scary. Creating a user
model, easy. Creating an authentication level on that model, easy. And so on.
Take it one step at a time.

------
sriram_malhar
"The trouble with the world is that the stupid are cocksure and the
intelligent are full of doubt." \- Bertrand Russell

Read about the Dunning Kruger effect and relax.

[http://highexistence.com/dunning-kruger-
effect/](http://highexistence.com/dunning-kruger-effect/)

------
Jemmeh
Accept that frustration, fear, and doubt are just part of the job. Those
feelings don't mean you're a bad software dev or a coward, they're just the
natural reaction to consistently facing the unknown. Sometimes you have to
slog through it, even if it feels bad, and actually finish. You will not
finish perfect. There are always bugs. But get something put out there
anyways.

You are always going to be learning with this kind of job. And sometimes that
makes you look back at your old code and say, "Oh boy, this sucks." It's
because you're improving. If you weren't, you wouldn't be able to look back
and see your mistakes.

------
tmaly
I ran into the same situation many times. Come up with an idea, buy a domain,
do some coding, drop the idea.

You really have to stick it out and work through the idea. The best way to
approach it is to do customer development first. Steve Blank was probably the
first to bring this idea to the forefront.

Find out if people actually have a problem for which you are building the
solution. The book Running Lean has some scripts you can mirror to do this. It
will save you lots of time and actually get you pointed to an idea that has
some merrit.

Derek Sivers from CDBaby had a great approach to this where he contrasted
pushing onto people verse pulling an idea from people where there is already
demand.

------
bovermyer
The thing you're describing is not unique to developers.

What I do is just forget about the potential consequences of failure (OR
success) and just make the thing. If it works and takes off, great. If not, oh
well, at least I spent time doing something I love.

------
daveinspace
I think your fear is good ! It forces you to test the business, not the
techno.

Have you checked the leanstartup and customer dev methods ?

The goal is to quick test and fail your assumptions.

Because you need true users to continue your project.

Fake it before you make it ! ;)

------
akshay127
Do not doubt yourself. Practice emotional hygiene:
[https://www.youtube.com/watch?v=rni41c9iq54](https://www.youtube.com/watch?v=rni41c9iq54)

------
viach
Never surrender. I could write more here, about my startups which are less
than successfull and I keep trying, other optimistic bullshit. This is all
crap, just never surrender.

------
seibelj
For me, lots of failure, some moderate success, hang in there. You always
learn from anything you do

------
mbrodersen
Not at all. It is all part of the creative process. You WILL fail most of the
time. That's OK! Accept it, pick yourself up and move forward. Most famous
entrepreneurs failed many times before they succeeded.

------
tluyben2
Yes and it is normal. It is very hard sometimes and you need to push through
that. I abandoned lot of projects in the past because of this: now I push on
and usually things work put actually as long as you persist.

------
angry-hacker
Yes. I have big a downswing right now, if anyone wants to talk with me let me
know.

------
botw
where does 'Am' come from? 'Am' does not save much than I'm

------
rsspbrry
Getting excited, coming up with features, buying domains, feeling doubt,
questioning my sanity... I consider these all normal stages of product
development.

Try thinking of them as road signs. They indicate you are getting closer to
your destination. If any of these road signs are amiss, _then_ start worrying
(and check your pulse to make sure you're still alive).

------
henryminden
I'd argue what you are experiencing is not fear of failure but fear of
success. Steven Pressfield wrote a fantastic book that addresses the problem
you describe called "The War of Art". I highly recommend it to read, it will
show you at least what you are feeling is very human and can be overcome.

~~~
paines
Thank you !

