Developers, I encourage you to develop something personal.
It is not easy to find time to develop a personal project when you work as a full-time employee. At your job, you have goals to achieve and features that have to see the light of day. Obviously, this dictates what needs to be done, and what shouldn’t be done. This leaves you no time to develop things you want to develop. In my opinion, it is a shame. Developing things you want is fun, you get to be creative, discover new technologies and it is super satisfying to get something fully running on your own.
Find something you think people will like, that someone will find cool or that can make a tedious activity in your life easier, and create it.
Here, I will share with you a small project I worked on, and provide several tips on how to complete a personal project of your own.
Our Wedding App
Tali and I got married two weeks ago. It was awesome. A culmination after 6 months of preparations. We prepared a lot and wanted to have the best day of our lives. In addition to the usual things like having a nice venue and a good DJ, we wanted to do something more. This is when we thought that it would be nice if we had an app for our wedding. A great opportunity to develop something of my own!
We didn’t have a lot of time for development. Yet, we wanted an app that would make the wedding more fun and engage the guests.
The venue where we got married has a huge LCD screen so we thought it would be nice to use it. The idea was simple, to display on the big screen a grid of pictures that people take during the wedding.
The app is served as a browser web app with two simple screens. One screen that shows the photos (as shown above), and a second screen to take photos. Each time someone takes a photo it is immediately uploaded to our servers and replaces the oldest picture on the screen. To show the grid of pictures, we just had to put the browser on full-screen mode and cast it to the screen.
In order to take a picture, all you have to do is to enter our URL into your phone’s browser, and you are presented with a camera-like screen with two simple buttons — Take a photo and switch between the front and back cameras. Pretty simple.
We had everything we needed; easily take a picture and instantly see it broadcasted on the big screen.
Completing a personal project is not easy to do. Here are a few tips that helped me out.
After Tali, my wife, and I had thought of the idea, we were not sure whether we should implement it or not. There wasn’t a lot of time before the wedding and many things still had to be done. Then I told my friend Chita about the idea. Chita is a cool dude with a “let’s make it happen” attitude, the right guy to talk to in that situation (Thanks for the help!). Less than an hour later we already started to develop. It was so much fun. I was in charge of the camera screen and Chita on the pictures grid. It was a great experience to work on a personal project together with a friend. Together we were more motivated to accomplish the project and helped each other when we got stuck. So, if you want to start working on something and don’t find the time for it, maybe you should find a partner for it.
Achieve Small victories
Develop something you will be able to finish in a reasonable timeframe. Otherwise, you might not finish it at all. It is not smart to plan something you can’t achieve. Even if you are very motivated at the beginning of the process you should aspire to achieve small victories. Each victory will increase your motivation and improve your chance of completing your project. Releasing something in small batches will also achieve a very important goal — to understand if what you develop really brings you value (Check out the chapter about small batches at “The lean startup” by Eric Ries).
Keep It Simple
Every time we had to choose between a more complicated feature and a simpler one we chose the simple option. For example, we chose to develop a web app because it is much faster to develop in comparison to a native application (which may provide a better user experience). Another example is the simplicity of the camera screen — Only two buttons, and no photo editing screen. Complicated features tend to diverge, and they are often more time-consuming than initially anticipated. So try to plan your project as lean as possible, so you can actually finish it.
A few days before the wedding we went to test the app at the venue. Then we understood that it might have unexpected effects on the wedding. We were afraid that the guests would be too focused on the app and not on the actual party, that people won’t understand how to use it, and that their pictures won’t be of good quality. So, after all, we choose not to use it. It’s disappointing, but the smart thing to do. We simply didn’t want to try this new app for the first time at our wedding, which is stressful enough as it is.
Even after we chose not to use the app, I am very happy we developed it. It was great to initiate the idea, design it, and implement it. Completing a personal project is a great feeling and taught me a lot. To sum up, choose something you are excited about, find a friend to work with, plan something simple with achievable goals and go for it!