Making Ourselves Vulnerable

People only remember the pithy quip, not the subsequent retraction.

In the latest of the Dash saga, developer Kapeli announced that it was open sourcing its iOS app. This was initially met with applause--but then horror--as people started pouring over its source code:

And then the subsequent responses:

The code pointed out by Patrick Balestra is definitely cringe-worthy: there are some fairly obvious ways that this could be better handled that don't involve a 50 line if-statement. I don't think there is any dispute over that. But here's a dirty secret: we all write code that we are ashamed of, is inelegant, or is outright awful. If any developer claims otherwise, run away, quickly, because they probably lack the self-awareness to realize it.

Despite my own opinions of how last month's drama played out, I respect Kapeli for making himself vulnerable and open to ridicule. Because he had reached a dead end with the App Store he decided that there was someone out there that would be able to get value out of his hard work and release it despite its warts. That takes an incredible amount of courage to do, as evidenced by the caustic reactions to the code.

Though I do not think that Patrick's intentions were necessarily mean spirited, words matter. The way in which we point out flaws matters. Maybe his reaction left too much room for misinterpretation, as well, as evidenced by this subsequent tweet:

And then to bring it to conclusion, Kapeli's graciousness in accepting the apology:

What is sad to me, however, is that the apology didn't get as much socialization as the initial tweet. I guess it never does. People only remember the pithy quip, not the subsequent retraction.

But I wonder if the antidote, at least in this situation, should be more openness. More sharing of code. Making ourselves vulnerable more commonplace. And in that spirit, I am open sourcing some code that I had intended to be open, but had not because of my own insecurities. Announcing: CameraPicker, a camera picking control that looks strikingly similar to the picker that can be found in Apple's iMessage app on iOS 10.

I really liked how Apple streamlined the process of getting an image in as few taps as possible. It really is a great experience that I feel should be more pervasive across iOS. This was my first serious attempt at making something in Swift, so I hope that by releasing it I'll get some feedback on structure, naming, and all those things that go into making great Swift code.

Posted on Nov 15
Written by Wayne Hartman