6 ways my failed app made me a better developer
Here is how I failed. I shipped an iOS app after 2 months of solo hard work. Long lonely nights were filled with coding and debugging.
Webmeter is an iOS app that pings website uptime via iOS widgets. Webmeter runs on your phone and works in internal networks. The idea came to me when my home raspberry pi devices did not boot up after a blackout.
I thought it was a great idea and expected many installs. It wasn’t. On release day, it didn’t even get 10 downloads ( as a free app ).
But I kept adding new features to it.
After a month - WebMeter was still a failed app. Even so, I continue to work on it.
Because I had fun. I enjoyed learning, exploring, and trying out new ideas. WebMeter became my app playground and wasn’t a fail project. In fact, up to today, I have gained benefits and learnings.
Benefits of working on a side project:
- Increased coding skills
- Improved non-technical skills
- Connect with others
- Increase job hunting chances
- Free up time with automation
- Stress relief
Increased code skills.
My iOS skills are limited even though I have 8 years of industry experience. I was coding on the same app during this time ( didn’t look for another job ).
Working on one app has a big drawback. For most big e-commerce apps, the adoption of new iOS technologies is slow. And most of the time it never happens.
Thus, I lacked exposure to cool iOS technologies like WidgetKit, Cloudkit, and WatchKit.
With Webmeter, I had the freedom to shape its capabilities. I was not limited by resource planning or user stories. I decided from the start to use iOS technologies where it makes sense. Since there were a lot of unfamiliar technologies, I get to learn about them.
And learning was fun. I learned a lot about WidgetKit, Clockit, and Coredata over these past months.
Improved non-technical skills.
As a team of one, my resources were limited ( time ). I found myself juggling between different hats.
As a product owner, I had to ruthlessly prioritize what feature goes into the app. Building every feature to the app would take months to ship an MVP.
As a marketeer, I had to find the best marketing strategy. I decided to market my app by showing my work progress in public. Sharing my work in public feels very honest and a fun way to connect with others.
Wearing a designer hat was hard. I was fortunate enough to be in a slack group that gave me a lot of feedback and pointers.
The key learning was the usage of white space and Apple Human Interface guidelines. However, understanding my limits is good. Next time - I am hiring someone.
Connect with others
I needed help as my code base grew. Adding new technologies came with new challenges.
I decided to reach out to a community for help. I've never been active in any online community before. So it was scary to put me out.
Fortunately, I found two supportive groups, iOS developers slack channel and reddit forums. Both communities are very helpful. I received technical advice and design feedback. Rome of them offered to beta test my app.
Now I pay it forward contributing to both groups with my technical knowledge.
Increase job hunting chances
I didn’t start Webmeter to build my portfolio. However, I imagine this could benefit my job hunting chances.
Having a side project under your belt can improve your interview chances. Especially if your interviewer is a user of your app.
Even if your side project is not successful, you could still score points on your experience. Interviewers are always looking out for future colleagues that could contribute more to the team.
Disclaimer - I haven’t look for a new job yet, so this point is untested. Your interview chances may not reflect the contents of this section.
Free up time with automation
I have started to automate time-consuming tasks like:
- Uploading app to the AppStore and Testflight
- Screenshot creations
- Downloading bitcode dsym files
I have even applied my newly found automation skills to parts of my day job too. I have automated filling my timesheet and git branch creation from JIRA.
Automation frees up a lot of my time. Which in turn allows me to focus on more interesting work.
My office hours are filled with restrictions. My time is restricted because of meetings and discussions. Whenever I sit to code, I am faced with slow compilation time ( ~20 minutes on a clean build ). On top of that, I have to follow git-flow workflow.
Even so, I love my day job. But as an engineer, I want to enjoy coding without slow compilation or processes.
This is why coding on a side project is so liberating. As a new app, compilation times are super short. I am free to use any framework and support the latest iOS versions.
And best of all - I don’t have to worry about deadlines.
The ultimate freedom: I can ditch the side project at any time and move to another interesting app idea.
I am blessed to have failed in my app. Without it, I would not realize how much I have improved since then.
Do you have a failed project too? What did you learn about it? Did I miss out on anything? If so, I would love to would be glad to add it. Just tweet it to me and I will add it to the article!
Want to respond? Reply, like, reply or bookmark on Twitter :)