You wouldnāt know it, butĀ I had to solve some difficult and interesting problems to get Loose Leaf shipped. You wouldnāt know because I never told anyone. I neverĀ described how I built Loose Leafās list view before UICollectionView, or how hard it was to get the penĀ ink to āstickā to scraps efficiently, or what went into creating the scissors tool. I spent 2 years working without sharing anything, and it took me that long to see the missed opportunity ofĀ coding silently.
Ideas Arenāt Valuable, Sharing ThemĀ Is
Iāve made thisĀ mistake with almost everything Iāve built. I already knew that ideas are worthless, but I still held my feature ideas for Loose LeafĀ Leaf too close. The thought āI canāt tell anyone, theyāll steal my ideaā just evolved over the years into āI canāt show this, itās not readyĀ yet.ā A different excuse forĀ the same behavior. Two summers ago, I even gave a talk at OwlSparkĀ about this very topic-Ā shouldāve listened toĀ myself!
The Cost of Closed
Over these two years, Iāve missed out on a lot.
I missed out on user feedback. I only found out thatĀ Loose Leaf has trouble on boarding new users after Iād launched. If Iād been more open, I wouldāve seen that problem before launch.
I missed out on learning. Loose Leaf was my first OpenGL experience, and to say it was a struggle is an understatement. Just being open and asking about my questions and troubles could have sped up that portion of development, among others.
I missed out onĀ teaching. Loose Leaf does more with UIBezierPath than Iāve heard about in almost any project. Iāve spent an incredible amount of time optimizing drawing and calculating withĀ BĆ©zier paths. Iāve learned a lot that I shouldāve been giving back much sooner.
I missed out on giving. Sure, I shouldnāt give the farm away, but thereās no excuse for not open sourcing pieces of Loose Leafās codebase for the greater good. TheĀ BĆ©zier example above is a prime candidate.
TheĀ Value ofĀ Open
Youāve only really learned something when it changes your behavior, so how has mine changed?
Iām being proactive about user feedback. Iāve started building up a focus group of active users (join here!) andāve justĀ finished up its first survey. Iāve prioritized version 1.1 development on specific user feedback.
Iām asking more questions. Iām on IRC atĀ #iphonedev, #macdev, #cocoa-init, and #OpenGL, and Iāll be posting questions to StackOverflow more often. Iām also attending startup and iOS meetups consistently to meet and ask other developers.
Iām answering more questions ā both on the IRC above and on SO. Iāve setup RSS using fetchrss.com for specific SO keywords to funnel specific questions into feedbin. Iām also active in /r/iOSProgrammingĀ answering questions when I can. Iām also sharing as much as possible on this blog ā everything from how I made the promo, or app preview, or or even recorded the UITouchesĀ for demo videos,Ā and I have many more blog posts in the queue.
Iām giving away as much as I can ā most recently with the code to show allĀ UITouch locationsĀ and sharing what Iāve learned creating an App Preview. IāmĀ working on upgrading those dots to hand shadowsĀ and will open source that when Iāve finished (Iām even livestreaming the shadow dev every Monday).Ā I have a list of moreĀ features in Loose Leaf that Iāll be streaming and cleaning up for open source as well.
Open Inspiration
Some people whoāveĀ really inspired me withĀ their open development: John SaddingtonĀ who is open and encouraging about his work on Desk.pm. Notch, who releasedĀ Minecraft before it even hit alpha. Shaun Inman who consistently blogged about making The Last Rocket.Ā Asher Vollmer whoās live tweeting his development of CloseCastles.