There are too many shiny objects and it is killing me

Update (19/2)

I am extremely thankful for all the valuable comments on Hacker News. I want you to know I will take your insights and apply them to my work. I feel like I need to do something with all the advice you have given me, so your comments will be the focus of my therapy-project:

https://github.com/YetAnotherGreatRepo/YAGM


I’m a self-taught developer and I have always been proud of all the stuff I have learned along the way. The list probably looks familiar to most of you.

  • Perl
  • PHP
  • ASP (Classic)
  • Ruby on Rails
  • Python
  • ASP.NET MVC
  • AngularJS
  • Node.js
  • Xamarin
  • Go
  • Etc.

I make money freelancing for local businesses and accepting jobs on Elance. I will say I make decent money doing that, but it has never been the end-goal. I feel like I’m Mario and I’m simply picking up coins, cleaning tubes and kicking around turtles. Nothing satisfying.

Until recently I was productive. I still spent a good chunk of my time learning new programming languages and techniques by reading tutorials, watching Pluralsight- and Lynda videos, cloning repos and reading books.

I could afford spending that time, because I have no life beyond my computer and so I had a few extra hours to splash around.

Here is probably something you can relate to. I have tons and tons of ideas for mobile apps, web applications and the next angry animal game. It is those same ideas that are currently sending me into a deep dark place. I wouldn’t even call it depression, because I have battled depression and this is a totally different beast.

Let me walk you through a typical week for me.

It starts out in the weekend (I have no clue why I still call it weekend, because there are weeks I don’t even dress myself, let alone keep track of what day it is). It’s normal for me to be all pumped and hyped because I came up with yet another YCombinator-will-totally-fund-me-app — or an improvement on an existing multi-billion app that I will overshadow with my awesomeness (preferably before the summer so I can use the money to buy myself some fun and sunshine).

I go into this weird mental cycle that ends with me getting so excited that I get teary-eyed and give myself goosebumps.

So first things first, I need a domain name right? Thus I visit expireddomains.net, filter on my keyword, sort by size and pick the first cool-looking name I can find.

When I finally get the name, I ponder my options and wonder if instead I can make a quick buck selling the domain name for hundreds of dollars, before I regain my focus on the “project”.

The rest of the day is then used renting a VPS server, installing Linux (for the cool-factor) and going through the mandatory list of essential stuff I need, like version managers, package managers, vim bundles, custom prompts, terminal colors, and so forth. Somewhere along the way I get sidetracked and I dump the Linux installation and install Windows Server.

Time well spent.

It’s weird, because I am reasonably down to earth, but when it comes to ideas I am like a bird who is attracted to shiny new objects.

After writing that last sentence I Googled the name of those birds, found out they are called Magpies and apparently they found out that these birds have no interest in shiny objects at all.

Normally I would not stop there and I would study Rossini’s opera on the subject called “La gazza ladra”, or “The Thieving Magpie,” which is an exciting tale about a magpie who takes several silver items, but in a tragic chain of events, a maidservant gets executed for the crime.

But not this time, because I am trying really hard to focus and to put my thought on paper so I can get some help dealing with this escalating problem that I have.

Right, I have the server installed (and I probably registered Google Apps and created several email-addresses for later use) and I’m finally starting work on my project.

Or so I hope.

Nope, not happening.

Because I now believe I should first figure out the requirements of my app. I’m a sucker for best practices. So obviously I want to TDD the shit out of this project. And therefore I need some user stories.

But wait, what makes a good user story? No, what makes a good requirement? Lets Wikipedia that first! On second thought, I should just order “Software Requirements (3rd Edition) (Developer Best Practices)” from Amazon and become a requirement-ninja.

At this point frustration is setting in. While I wait for the book to arrive I Google what cool bleeding-edge frameworks are available for my ultra-sexy app. I mean, AngularJS is fine, but been there, done that. I think I want to build this thing in React.js.

I don’t know React.js, but that should not be a problem. I do what I normally do and create a new folder on my Bookmarks Bar and spend about 3 hours bookmarking every tutorial I can find on the subject. I will probably never read any of them, but just bookmarking them makes me feel good. Or less sad.

Oh …

If I am going to build this in React.js (which I totally should do) then I’ll spend less time in Visual Studio and more time in Sublime Text.

Before I can start, I should first verify that my Sublime color scheme is up to par. I’m still using Solarized, so I feel very dated. I should also add this new programming font I have been using lately. It makes my code look totally pretty. Also, lets Google for trending Sublime packages that I “need”.

Alright, it is only Wednesday so still very much on track. Speaking off tracking… should I use a Time Tracking app? I don’t know. Should I? Lets download and try out a few!

On second thought, I should totally build my own Time Tracker application first. I will use React.js.

And it goes on and on and on …

I am so hung up on design patterns, best practices, bleeding-edge tools, trends and frameworks and all that other noise that I am not getting any real work done. And it is killing me.

What can I do? I have already talked my doctor into giving me ADD drugs so I can force myself to focus, but nothing works and it is becoming hell on earth.

Advertisements

36 thoughts on “There are too many shiny objects and it is killing me

  1. You sound like me. Getting a hobby (Fencing) and exercising has helped my focus and work ethic….though they have decreased my free time for projects. No idea what the magic answer is. But good luck to all of us with this magpie syndrome.

    Like

  2. I have battled the same sort of problems – both with software and hardware. The only advice that springs to mind is to break stuff down. When your to-do list says ‘do this awesome thing’, it can get too easy to follow all sorts of different paths. Instead, decide to stick with what you know, and build a dummy app with a super-basic UI. Then add functionality X. Then add Y. It helps to really write out what you’ll need to do in little steps before you start. Sure, you’ll end up re-doing stuff as goals shift but at least it’s a start!
    Hope this helps 🙂

    Like

  3. You are one third of a good team. Partner up with a Product Manager and a UX Designer, delegate non-dev stuff to them, and you’re on your way.

    Like

  4. It’s easy: don’t fuck up. Just sit down, take the tech you are most familiar with and start hacking. Everything else is bullshit imo. With this approach you will have a (somehow) working prototype in a few hours – and that’s what’s going to keep you motivated.
    At least that’s what I’m doing and it works quite well.

    Like

  5. I am similar to you in some ways. I often get lost and the only think that helps me is to quit the caffeine (if you haven’t already), and make a list of the things you have to do in order to see your project through.

    I refer to my list and try not to spend too much time on each step unless it predetermines the quality and structure of the project. It’s ok for things to take time. It’s ok for this part of the project to suck, but you’ll be so glad if you keep pushing through and finish.

    I hope this helps.

    Like

  6. At some point you’ll need to give up on Knowing Everything. Projects and accomplishments speak more to potential employers than your incredible breadth of never applied knowledge does.

    It sounds like you could use an A/B strategy.

    On A days, work on your project without adding anything “new”.
    On B days, study new things.

    A days can be spent creating new features or re-factoring old features. You’re able to re-factor by learning new techniques on your B days.

    Like

  7. I know this – not quite at that scale but I certainly do. I’m not going to tell you the obvious of how you are afraid to actually start because then you could fail bla bla – because I’m sure you know all this.
    Instead I will say: try doing the exact opposite, just like I did: I recently started a project that I wasn’t actually that excited about. I’m basically copying something that already exists so I know where I am going. I pushed out a prototype as quick as possible – something that actually works even though it has little functionality yet. Now I am carving out the details of it.
    So the good thing here is that I don’t have to come up with quite as many thingsand can go trough the process of actually creating something. I also don’t get caught up on making design decisions because as I said – this is not “the project” of my life. But it is so cool that there is something out there now that I made – even though it is pretty bad at this point. But now I have something to work on and I do.

    I think going through this process with something not quite as “relevant” to you helps you not get to anxious about it when you’re doing it a second time, maybe with something cooler.

    I hope this makes any sense or maybe even helps you.

    Like

  8. I can totally relate. So many ideas. So many tools…
    Do you have a programming buddy who you can talk things through with? I wonder if a little bit of accountability (artificial or otherwise) can help with focus…
    Good luck.

    Like

  9. You should probably stop doing freelance work and find a position at some company to work one of their shiny new projects. Also, when you know you really really need to build somethibg, it becomes really easy to focus.

    Like

  10. Your problem appears to be that you dive straight into the parts that don’t matter, while ignoring those that do.

    Domain names? Deployment? Package managers? TDD? The only thing that gets close to the right thing is “user stories”, but instead of going out and talking to people, you appear to think you can solve this problem by reading more books about what other people have done. Hint: if all you do is what other people have done, you will never do anything original.

    Ideas are a dime a dozen, execution is the only thing that matters. Your problem isn’t ADD, it’s that instead of sitting down and doing the real creative thinking and analysis work, you substitute it with easily accomplished tasks you feel are necessary, but have absolutely nothing to do with getting your project off the ground.

    TLDR: Get over yourself.

    Liked by 1 person

  11. I can relate to this.

    I have learned no real solution yet, but there are two insights which help me:

    1) Sitting in front of a computer screen makes me focus on details. Sitting away from the computer, with pen and paper, makes me think expansively. If I do the expansive thinking on paper first, and then sit in front of the computer, I’m much more focussed. If I jump straight to computer screen, I’ll also end up googling for why Magpies are named that.

    2) I am now a proud, but slightly tired and stressed, father of a 7month old. Starting a family has quite an impact on how you do your pet projects. I have lots of time to think and plan, and very little time to do anything….even to write down my thoughts. Consequently nowadays I spend a lot of time mulling over how to solve a problem, and an equal amount of time mulling over how to implement that in the least amount of effort. I think this will be a good thing in the long run, as over the years I’ve learned more and more about all the ways simple designs can break under stress, and my designs have become more and more (over?) engineered and take longer and longer to code.

    Liked by 1 person

  12. OMG. While I have no idea what the hell the IT-verbage is you are banging on about, the process for me is EXACTLY the same. Ha! And what’s worse, is that everything else (you know, the actual things that you get paid for) become sooo mundane and boring when bright new shiny idea arrives! But remember, magpies are an Australian bird – an INCREDIBLY aggressive bird that will swoop on you and try and pick your eyes out. Not kidding. Ask any Australian if they had to wear a magpie hat when they walked to school in spring.
    Must go, have awesome new idea for groovy kids hats for the Australian market.

    Like

  13. Been there. Your story is almost too familiar, including the tool chain path you’ve taken.

    You’ve realized the illusory nature of all software, apps, ideas, money and everything else, and you can’t take these seriously anymore because they are all just the same. You don’t have a destination, so you get lost in the details, along the path.

    ADD is not the problem. ADD is never the problem. Attention can only exist, when something real, worth giving attention to, exists. Modern psychiatry is largely a let-down. It is woefully inadequate in its understanding of the human thought process, as it approaches it from the point of view of chemistry. It believes there is a optimal norm in the functioning of the human mind, and it attempts to correct the so-called “anomalies” in order to return you there. ADD drugs will, at best, douse out your thinking.

    You now have an opportunity to breakthrough. You need to understand who you are in order to find something real.

    Like

  14. I think you ought to take a vacation, or at least a week away from your computer. Go camping and let yourself be with your thoughts for a week. Fish, stargaze, whatever. Maybe look for a job with people, you have the skills, and if you’re dead set on being an entrepreneur, well, if you meet people you have a much better chance of meeting potential startup partners that can help ground you and direct you. It may take a little while. But you will be happier and you get to meet awesome people along the way. Pick up hobbies, and read for fun. Do stuff for you. Could be an hour or two a week just doing something that forces you to step back and vent.

    Like

  15. Your situation will significantly improve if you set your goals and then use a tool like Beeminder (https://www.beeminder.com/) to stick to them. If you don’t reach your goals you get punished. Try it, I’m pretty sure it will help you. You might think it won’t, but if you do something for a couple of days successfully you will feel much better and regain trust in yourself.

    Like

  16. I can totally relate to that behavior. I found confronting my git log to my Redmine tickets was quite a good way to get things done instead of fooling around.
    Good luck!

    Like

  17. You probably know already, that this is called procrastination and it can have many different causes. Your case is similar to mine, which is the problem of perfectionist. I don’t want to simply write my app. It has to be great in every aspect and I have to use Continues Delivery, so I set up private gitlab, jenkins and what not. It has to be tested well, so I am starting to read, how to properly test those Angular apps… After that I spent couple of hours reading tutorials and posts on Hacker News…
    There are couple things, that help me overcome the issue:
    1. Having external pressure to finish something. I tell someone, that I will do this part of the project in two days and this person has to check me.
    Why it helps? Well, development is iterative process and I can’t get everything right the first time. I can tell my inner perfectionist, that I am doing the first imperfect draft, so I can show it someone. It is not perfect, because of time pressure – not because I suck 🙂 After I show it, I am spending one more day polishing it before I commit to the next part. This way, I know, what real problems, I will face instead of reading tutorials, that will be mostly useless.
    2. Forget best practices. You can setup Jenkins, Continues Integration, Continues Delivery, Continues Whatever, but only when you NEED it. Be agile! Not with Kanban, time tracking and what not, but with thinking. Every half an hour stop and ask: “What is the next smallest part of the project, that I can do to push it forward?” and do it. Every two hours stop and ask yourself: “Is there something, that annoys me?” and deal with it. For example your tests take more than half a minute? Split them, so that you can do only relevant tests and now setup Travis, Jenkins or whatever to run whole suite after push. Start using best practices ONLY when you need them, not because they are cool.
    I would make an exception for TDD 🙂 It is sometimes really hard to add the tests after something works, so this actually could save time. The problem is, that you will try to write the best code the first time and this is really big disadvantage of TDD. Sometimes, it might be better to do prototype without TDD and when it works, throw it out and rewrite from scratch, using TDD.
    3. Have your tools out of computer. Computer is really distracting. There is always some news, some tutorial, something to read, that looks productive, but isn’t. When you plan something, it is tempting to Google something and start following links and two hours later having 200 new bookmarks and know nothing new. Watching screen also drains energy from you, even if its video game or Facebook. Stay out of it as much as you can. Plan everything with pen and paper. Write down, what you need to search and search only for that. Use analog egg timer for pomodoro, instead of shiny iPhone/Android/WP app. These are only distractions.
    4. Rest actively. I had a period of physical inactivity and I found myself much easier to distract. I just couldn’t focus on work, so I read tutorials and news, because “hey! that is better than nothing!”. Wrong! That is worse than staying out of computer. If you can’t focus, go for a walk instead of reading tutorials. If you are tired, go to sleep.
    5. Make distractions less reachable. Distractions can be addictive! If you are tired and opening new browser tab, it can be tempting to just type “ne” and hit enter for “news.ycombinator”, so before work, I put “127.0.0.1 news.ycombinator.com” in my /etc/hosts, when I am working. It takes me additional ten seconds to unblock it, if I really want to, but during this ten seconds, I usually realise, that I probably have better things to do.

    Uff, that is a really long reply, but I had very similar problem. Coding is just a little bit less pleasant, that reading about best practices, but in long term is much more rewarding 🙂 It might be the case, that you have completely different cause of procrastination. For example, you fear, that your next big project will be a failure or that your friends will not like it. There are different technics for that. Take failure for granted! 9 out of 10 projects fail, but you learn by doing and the tenth one might make you a millionaire 😀

    Like

  18. Move to north Idaho. Buy a pickup. Drink some beer. Admire the sunsets. If you still have passion about any of your projects after a year then ping me… else, just find some meaningful, well paid work and adjust to middle age. It happens. Skip the script drugs; ain’t nothin’ there but you, start to finish. Get used to it. You’re not that bad.

    Liked by 1 person

  19. Start with the simplest thing which proves if your idea has value and use the tool set your most productive with to start off with. Then try the idea out yourself or soft release the it for testing.

    Once you’ve proved the idea works and its useful, then pick the best tool set to continue with which will provide the best fit for your idea. But generally it doesn’t really matter about tools or frameworks, you can do good and bad things in good tools and bad.

    Also of you just want to prove other might like the idea, create a coming soon page with and signup form for more information and buy some google adds. Then gauge the response but hits and signups.

    Like

  20. I suffer from this. My best solutions are
    – Listen to music you know well whilst you work (except when writing text) – it helps occupy the bits of your brain that would distract you, I find
    – Follow “Getting Things Done” and get every idea down on paper and therefore out of your head so that you can focus on what you’re doing.

    Like

  21. ADD drugs can force you to focus, but wont help you having a deeper understanding of your problem; is there a deeper layer? I don´t know in your case, but I believe it worths a try to dive deeper. And for that psychiatric drugs can not help you so much. Why don´t you look for a Psychoanalist or a Gestalt psychologist ? a good one ( look for recommendations if you wanna try that path, don´t go with the first one you see ). I have problems to focus too, but having problems to focus is not the entire problem in my case, that just increases the difficulty to do it. I found out that knowing myself better does help to improve my emotional infrastructure so it doesn’t get in your way.

    You seem to have a lot of potential, you should tackle your problem from multiple perspectives, and disciplines instead of only taking ADD drugs.

    Sport is also something that has been very helpful to me.

    Good luck!

    Like

  22. TLDR: try discipline, it’s the worst but probably necessary and it sure does get things done.

    I am having trouble believing how similar your experience sounds to how I would describe my own! Here is what seems to be working for me at the moment: Tedious development of rigorous discipline, but with an attempt at balance.
    About a year ago, I discovered(probably after reading hn articles) that I had probably been relying too much on “feeling motivated” to get things done. I never felt motivated long enough to finish a non-trivial task. I realized, one depressed day, that I was probably never going to accomplish any of my goals unless I started trying to follow some rules. Rules like: make a list of everything you can think of that needs to get done and work on it for 30 min(even if you literally have to stop your self from doing something else every minute no joke). I started using timers, pomodoro style. If I tried to make myself work too much at a stretch on one thing, I would break my rules and procrastinate but I found I could manage the timing and order to make it not as bad. So long as I was getting better or holding steady, I could at least pat myself on the back a bit. And now(about a year later) I have a modicum or two of discipline. I am not where I would like to be but I feel like I am slowly getting there. Sort of tediously crawling there. I also plan for fun things though and I allow myself breaks to be creative so that I can record my new ideas when they come without having to act on them right away(brainstorms are perhaps my happiest times); I will always have time for implementing them later now that I can make myself get something done. For what it’s worth, my understanding of the truly finite nature of my day and of my life really helped me realize that I NEEDED to push myself in this way to change. I hope this helps!

    Like

  23. Possible low tech solution — read “Refuse to Choose!: A Revolutionary Program for Doing Everything That You Love” “(Use all of your interests passions, and hobbies to create the life and career of your dreams)” , by Barbara Sher, Rodale, 2006. It helped me sort out a lot of things similar to what you described in your post.

    Like

  24. Hi, you have ADD. Get some drugs, you will be happier. They will take some adjustment, but once you adjust, you will feel like a superhero, in the sense that you will focus on one thing and finish it, then move on to the next thing. Unless you’ve felt this you cannot fathom how normal people do this, nor can you truly understand why you do the things you do.

    ADD is like a superpower. But if Superman could only ever use his super strength, he would destroy his house, his family, his work. Use your ability to hyperfocus wisely, and your incredible mental energy wisely, but you cannot manage that easily without drugs. You are addicted to ‘novel’, or as you put it shiny objects to stimulate your decision-making.

    Read this article, you will recognize yourself:
    http://www.nytimes.com/2014/11/02/opinion/sunday/a-natural-fix-for-adhd.html?_r=0

    Like

  25. Maybe you’re trying to fight yourself instead of make use of yourself? Maybe this is not an accomplishment you’re looking for and you really want some totally other way to feel whole? I personally at some point found that fighting my “bad” sides is much more less effective than raise “good” things. Whatever that means..
    Good luck, anyways.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s