Shipping Side Projects
June 2014 I started shipping my side projects. Since then my life have changed dramatically.
My twitter followers count for the last three years.
This graph also describes my general well-being, job offers and motivation.
I’m no senior VP of design at Google, I’m just a nerd who likes making things. With this barely existing credibility at hand, I thought I’d share my process of how I build, design and ship my side projects. I struggled with that last part for a long time.
I’ll try to keep it brief, and if you like it, tell me and I’ll elaborate!
The idea machine
Shower often. Most people find that they creatively peak when they are most relaxed. You probably have found yourself lying in bed, trying to fall asleep, when suddenly you get struck by a fantastic idea. Elon Musk also stated during his Reddit AMA that he probably solves most his problems in the shower and I can fully second that. So in times of creative drought, take lots of naps and shower often and you should be taking over the world in no time.
The left side of the brain is in charge of fear and skepticism. Try to figure out where and when you feel most relaxed and safe. Where can you allow your left brain half switch to a lower gear, allowing creativity to flow.
Got the idea? Good!
Write it down! Otherwise we might loose track of it. It doesn’t have to be anything elaborate, just a few miss-spelled words will do. Gather your ideas on a safe medium that’s very accessible. Like an iCloud note-taking with application with mobile/desktop/web support or a perhaps a just a README.md in a private git repository.
Time to test the hypothesis. Is our project possible? Are all the frameworks in place? Does the api:s allow us to do what we wish? Can we really use the thing to do that stuff in that way? Would the App Store accept our app? We don’t want to put in a lot of work into something only to realize it’s not possible.
We probably won’t even have to write any code. If we divide our idea into functional goals we only have to narrow down another application that accomplishes each goal. On the other hand, it’s always nice to get our hands a little dirty so we’re not too afraid to get building once we are ready.
Da real MVP*
Focus on problem. The Why. Define it and narrow it down to it’s core. What would the most simple solution to this problem look like? What components would it require? Repeat this question and iterate backwards until you have a component without prerequisites. You then not only have your MVP defined, you also defined the chain of bricks needed to build it.
Remember to remove as much features as you possibly can. You can add them post-release.
Problem: Go to Mars.
What do we need?
- A rocket. What do we need to make a rocket? - Engines - Materials - Factories - A cockpit - Fuel - Elon Musk
You get the concept! We now know have an idea of where to begin and what steps are on the road ahead.
*MVP – Minimum Viable Product
Do not start with the logo (unless the logo is the project), and don’t you dare go looking for domains. Seriously. You are fooling yourself. This is an expensive time sink, as once you start, it will haunt you for the rest of the project. Once the MVP is finished we can get into this name-space. At this point we’ve probably gotten a great name for our project in the shower.
Alright, we have our your MVP. Let’s consider for whom we solving a problem. What are they like? Are they power users or Internet rookies? Do we know someone we can use as a guinea pig? Our design should revolve around the lifestyle of our users, but with our personal touch.
I love tools. You’ll of course build fastest in the tools you’ve already mastered. If I’m building a web app I’ll probably be using jade, stylus + jeet, autoprefixr to keep my flow going. If I need a server I most likely use Meteor since it’s mind-blowingly fast and easy to build in.
For hosting I generally use GitHub Pages for client side apps and Heroku for apps that require a server component, because of their free tiers. I don’t want the hassle of keeping my own server running and always being a little scared of overwhelming traffic.
I mostly work from coffee shops and bars to minimize my ability to procrastinate. That also has the benefits of access to coffee, food (and alcohol for those bugs)!
Also remember to add Twitter/Facebook-buttons, mailing list form and analytics software so you know what’s going on! We want to talk to our users, ask them what they thought and get their feedback so we can iterate on it!
Remember that working on something is a catalyst for new ideas. This is both wonderful and dangerous. You will be tempted to switch to the new shiny and brilliant idea as soon as you hit a hurdle with the current one. This a common fall-pit, and I’ve fallen down in it countless times. You think you will return to it, but you most likely won’t. Logic dictates that this is a never ending recursion.
I’ve always built stuff. But I haven’t always shipped stuff. (Remember graph above.) Shipping is most important step. I can’t stress it enough. It’s logical, but often overlooked. If I’d pick one thing that has made me grow more than anything as a developer/designer it’s shipping and getting feedback. This exposes you, makes you go the extra mile.
Finishing is hard. You don’t have a boss to report to, no one expects anything from you. We need to create expectations. Tell someone about it, announce that in one weeks time you will ship project x and make sure someone hold you to your word.
The magic touch
What is going to make it memorable? How can we make our user nudge the next person her? We want a lovable product. Go the extra mile. Add some personality! Maybe you can use bounce.js to make things pop? Make something fly with snabbt.js? Perhaps you can spice things up with some icons from Font Awesome, find a killer splash image from Unsplash or just iterate over the design one last time.
Thanks for reading! Let me know if you want me to elaborate on something!
Spread the love
For every tweet I promise to do a cheerful little little hop.
Do you love design, software and philosophy?