Ask HN: Help - I've hit a wall.
I need help. I've reached a point where I have several parts of the project that are all interdependent, and it seems nothing can proceed without a huge amount of parallel work.
I'm a single tech founder and I feel like I'm going round in circles trying to get through this wall. I'm thinking of trying some freelancers but even the thought of explaining the dependencies is like a heavy weight in itself.
It all came to a head today, when I just realised I can't even beak down the next step into small prices because of the dependency. It's getting me down and I've run out of ideas to get me through. It feels like I'm wading through mud, and actually the end is in sight, but it's like looking at the summit of Everest from the ground.
Does this make any sense to anyone? Can you help?
33 comments
[ 5.4 ms ] story [ 82.9 ms ] threadJust take a break when you get stuck and do something else.
I am at a similar stage with a current project - where I can see there is still lots to do (some of it cloudy - so not a clear view to the summit) - you just have to keep plugging away and - well the good feeling comes back when you realise you have got through it with a good solid base of code behind you.
Sometimes I can push through (e.g. due to a deadline) by picking at individual tiny features and working my way through the spaghetti until they work. I generally start by adding something visible to the UI and keep at it until it works. This has the advantage that I'm almost guaranteed to make visual, visible progress, which helps with motivation.
But often, the only choice is to take a step back, accept that I'll be making "no progress" for a couple of weeks and go clean up my mess and re-factor the code. :-)
* Even if it takes a day, try telling it to a rubber duck. Take it for a walk if you guys get tired at desk. * Talk it to at least one friend who can try to understand. In my short experience, this helps in realizing how we can or want to proceed. Or even go with the freelancer your thinking to hire, you might succeed. Can't know unless you tried once. * Stubs and skeletons * Sequence matters. If it is only you that has to do parallel work, you have to do it anyway. Even with a freelancer, you should decide how to proceed. So, either ways, even though hard, you need to break it up. Try not to multitask if you do it alone.
And, I think more technical details might fetch you better advice. I could be wrong!
Seth Godin calls this point "The Dip". It's a trough in the lifecycle of a project/plan/development/etc when the high and excitement of starting something has died off and the rewards don't seem worth the remaining effort. I can tell you, though, that if you put in the time, get inspired, and slog through the toughest part of "The Dip", you'll come out the otherside with something great. Most projects don't make it past, so there's great value in doing so.
Here are some links to read more about "The Dip":
http://www.slideshare.net/stevecla/pushing-past-the-dip-how-...
http://sethgodin.typepad.com/the_dip/
http://www.ribbonfarm.com/2007/09/06/seth-godins-dip-and-mul...
I'd like to add one more point, in that the project has reached the stage where I was starting to get people excited about it when it was presented, as opposed to the early reactions where the concept wasn't fully formed, and most people couldn't relate to it. I think I am feeling the pressure of expectations as well. People are now asking me when it will be ready, whereas before there was no such anticipation.
Try to release something, gather feedback and use that loop as a motivation for doing minor, really minor, fixes and improvements. If you can manage that you can pick up new steam and in the same time learn more about what direction you should be taking.
What has happened is that you have lost the overview, cleaning up your code will restore that.
I'm going to give this a go. Thanks.
If your overall vision is too solidified in your head, there may be some minor decisions that were a good idea at the time ("well if we're already doing X, it's easy to also give them Y!"), but now that you're down in the muck they are complicating things far more than you imagined.
Sometimes you can just drop a few things you actually don't need (but have become fixed in your vision though habit), ...and dependencies start collapsing, and the whole thing takes on a new shape.
Also: don't overlook temporary solutions.
You can often fix a dependency with a cheap hack that obviously won't scale in the long run... but it gets you over the hump, and you'll be able to replace it with the real solution down the road.
Sometimes it's good to walk away, as in literally take a walk and utterly ignore all your problems, and sometimes it's good to chip away, as in doing one little easy thing that's within your immediate power, however meaningless it might seem. I find that such small efforts produce a sort of "compound interest" effect, where your gains start to pile up faster than you expect.
Drop me an email at the address in my profile if you'd like me to help you cut a lot off to start with.
One of two things usually happens...a half hour after I start reading a book...the solution will POP into my head...or TWO, I'll wake up the next morning with the solution...works every time...
Breath, go for a run.
Take the time to refractor your code. Cut non-fundamental features, focus on shipping something. What can you achieve in the next week? Focus on that.
Disclaimer: I'm not a programming expert, I've only been coding for 6 months. However, if you want to bounce ideas on marketing your product, feel free to reach out: username@gggmail.com (I do everything from lead gen to paid search marketing for a living - would be happy to help where possible).
My advice: Do you have customers that paid money and are waiting for this particular problem to get solved? If not, then who cares. The world is fine if the problem doesn't get solved tomorrow.
If you are running out of money, go and do some freelancing/consulting. Get back to it in a couple of months, and you'll see it can be solved differently.
Don't try to solve the problem now. Your mind is probably too busy and anxious calculating future predictions of the outcome (and what got it here in the first place). Get back to it when your mind stop these calculations, you need more brain CPU time to solve this.
The way that I've dealt with it so far is I'll grab one of my friends, technical or not (technical would be preferred) and I'll just start dumping. I'll go through all the things I've identified as hurdles and why I'm struggling with them. More often than not my friends don't have to say anything! Just talking to them helps me find something I had missed. They often have nothing to add but just speaking the challenges helped me find solutions. Someone mentioned talking to a rubber ducky in another comment and I suppose this has a similar effect.
Also, as mentioned many times, take a break. Go for a hike or go see a movie. Do something else. Give your brain a break.
You can also try getting out good ole pencil and paper and writing things down. Start a list of the smallest possible thing you can deliver and deliver it.
It's all doable given enough time so give yourself time.
Your project is too big. Get a smaller piece or version working that does something useful for someone.
Don't refactor code.
Just get something small(er) working.
You've put a lot of time into the project so far, so you've learned a lot about the project and its domain.
When you first started your project you didn't know as much as you do now.
So consider using everything you've learned to date, and start over from scratch. Total re-design, total re-write.
If you have trouble explaining the dependencies of your own project to other developers, that's a sign of ... something. If you can't break the project down into pieces for yourself to work on, that's a sign of ... something.
So basically if you are tired of attacking the problem vertically, just leave it and try to attack it horizontally.
Now of course unlike my fizzbuzz problem, your problem can have a lot of more dimensions than two but then it can even become more fun.
Also never forget that you are doing this because you find this the most fun thing to do.
It will work wonders. I promise.
I never knew this would be a hidden benefit when I learned to ride last year.
Check out this discussion for Pud's question "400K users, what now?"
http://news.ycombinator.com/item?id=3850739
You gotta be impressed by his humility and pragmatism, and you gotta be impressed by the wide range of interesting ideas presented.
Try it out!
Not affiliated with Mixergy. Just a happy user and premium member.