A network of sites, tools, and technology to bring ideas into reality.
The Digital Tumbleweed
Thoughts and ramblings of an enthusiast
Scratching An Itch
A couple friends an I were talking a few weeks ago about building applications. There are a handful of reasons for creating websites or web apps. The topic of discussion that day was about applications that do something you need and not just about the ideas, but about finishing those projects.
To say that creating applications to scratch your own itch is fun is an understatement. Usually you are heavily invested in the idea and so you have a lot of drive to start it out. I love the idea stage of ideas. I have a lot of them and have a whiteboard in my apartment covered with ideas and mini-architectures around those ideas. Yet, most of them don’t seem to happen.
I know that I am pretty well motivated to create stuff that I’ve bought into, so what are the reasons that these projects seem to stay stagnant in the idea phase.
Exhaustion. The first killer is exhaustion. The reason this ruins the drive to do more is that when I get home from work where I’m trying to solve other problems all day, I’m not necessarily focused on pushing through mine. Doing more work on top of the work I’ve already done doesn’t sound like loads of fun to me.
Ideas are fun. Plain and simple, work is hard. Running around thinking “I can make it fly and produce magic ponies too!” is great. But, when I’m the one that has to produce the result of the idea phase, it becomes a major stumbling point to getting something done.
Broad ideas are broad. Without defining a limited scope to what you ought to be doing, your focus and ADD will take you in 90 different directions. Rather than getting something done, you’ll be focused on starting a number of different things and leaving others to hang out in a partially working state.
Lacking skillset. When you are lacking a certain something to get the project finished, you will find it very frustrating to not be able to just hammer on the rest of your idea.
So what do you do?
Focus. Harness that N.A.D.D. and get something created. The original idea doesn’t need to be your “pony, dragon, rocketship” release. It’s your proof of concept (POC). You need to see that your idea _can_ work. You being the brainchild behind it, make it work and then add onto it.
Give yourself a deadline. When I want to really get one of those projects on my whiteboard done, I give it a deadline for a POC. This means that if the idea isn’t done by that date that my interest either isn’t there, or that the problem is far more complex than I originally thought. If the idea is too complex, I’ll know early on and will have to rethink my approach. Otherwise, I should be able to push through. And, generally by applying a date to it I know that my interest level is there. It’s just a matter of doing it.
Have people to push you through the “hard times”, as my friend called them. The hard times are when it’s not easy going, when you need to sit and actually think about the solution and the best way to implement it. Often times when the hard problems hit there is no obvious solution. This makes it quite a bit more complicated and if you can have someone around to get you through those points, you’ll be more likely to succeed. The point here is that you have someone or a group of someones to hold you accountable for moving the project forward to completion. Believe me- this doesn’t always work, but when it does it is a good way to keep yourself on track. Also, it will allow you to get feedback about what you are doing. To steal an idea from the agile methodology, “Release early and often”. Meaning, put your project out there sooner rather than later and make smaller incremental changes. There are _many_ benefits to this practice, but those are better left for another post at some point.
Lastly, if you don’t have a skillset, you are fine. Just keep in mind that you might not be able to get some part of the project working for a bit. Either read up on it and learn it or outsource it. Phone a friend, check in the freelancing sites, etc. I know that personally I am _horrible_ with design. If you want squares with black and white, I’m your guy. The point here is knowing your limitations, and finding a way to push through them. This tends to be my biggest competitor to actually producing a full project for public consumption.
Now, if I were in your shoes I’d be thinking, “What do you know? You’ve got a list of untouched projects.”
Although that is true, this is what I’m using to start doing to tackle that list of projects. I’m curious to know how some of you hunker down and get your stuff done. I know that some people use Backpack and/or Basecamp. I know others use events like Hackday to get their ideas done.
I’ve tried those and they didn’t work well enough for me. The Hackday approach is what has worked best for me but there are tools that are other tools helping me out here.
The first tool helping me is Git. This version management tool allows for some very nice things. If you haven’t taken a look at Git yet, do so. You’ll be glad you did. Another tool, based on Git, is Github. While Git itself is great, having a central repository is very nice for having your source be always available. I’ve been putting all of my projects up there and while the decentralized model of DVCS is still alive and well I know that I will always have access to the source so long as the internet exists. Lastly, telling people about the projects is the key to me getting the work out there. I have people to push me through those hard times and friends that can help me to complete the design work that I seem to be exceptional with.
Back to that conversation I was having with my friend; one thing I realized in that conversation is that usually when you have smaller projects or ideas they do not require a team of people architecting a larger solution and in fact that collaboration can hinder your progress. They require a few hours of attention to just focus and hammer down on. When I started doing that, a few of my projects started to take shape. You just have to dive in and see where you come out. You don’t need the communication overhead produced from more people on the project.
Ultimately, I don’t know that this approach is going to work in my attempt to get some projects done, but so far so good. I’ve thrown a bunch on Github and am going to be displaying them here as well. I’ll be looking forward to some feedback. The licensing for now on most of my stuff is AGPL, but that could change shortly. The reasons for this are all the topic of another blog post about licensing.






