Monthly Archives: April 2013

WWDC: The First Time

Since tickets to WWDC sold out in less than two minutes last Thursday, a flurry of angry tweets and blog entries has flooded the Cocoa community. Overwhelmingly, the voices of long-time Mac developers are saying that changes to WWDC are badly needed. Many hold the opinion that Apple is ignoring a problem, and some have even called for Apple to simply end the conference and find a different way to engage developers. While Apple’s platforms have gotten wildly popular, the makeup of their flagship conference has remained largely unchanged.

One voice that has been noticeably absent from these discussions is that of the first-timer. The popular commentaries are from veteran Mac and iOS 1 developers. These developers have lost a perspective that makes building Mac and iOS software wonderful: the magic of getting started.

On Thursday, I was fortunate enough to secure my first WWDC ticket. It’s been a dream of mine to attend for the past few years. I’ve previously watched the excitement and energy as other developers bought tickets, booked travel, and then actually attended in San Francisco, but always from the window of Twitter. This is the first year I’m in a position to attend the conference, even though I’ve been building apps since the SDK was released.

How I Got Started

I bought my iPhone 3G the day they came out. I was unsuccessful waiting in line early that morning, so I had to patiently wait for my phone to be shipped to my local AT&T store. Hours after receiving it, I knew I wanted to start building software for what was obviously a huge leap forward in mobile technology. I was working for a rugged handheld computer manufacturer whose devices ran Windows Mobile and CE,2 and even at that point it was obvious Microsoft was in serious trouble. The iPhone was unlike anything else.

At that point, I’d been a Mac user for just over three years, and had dabbled in Objective-C and AppKit. Becoming familiar with the iOS APIs and a screen full of brackets were my biggest hurdles; I was already comfortable with C and C++, so the basics were already in place. By day, I was building embedded RFID reader software on Linux, and by night I was building my first iPhone app.

I did a lot of things right. I found an idea, executed on it quickly, and was first to market. I created a Twitter account for my products, started marketing the app just as it was about to launch. I created some good buzz and had a group of people excited to see my app on the store. I launched with a $4.99 productivity app, and made a few hundred dollars the first day. My 1.0 was awful. I never shipped a 1.1; I jumped immediately to a rewrite and versioned it 2.0. I required iOS 3.0, and took advantage of Core Data. The app grew to a few thousand users, and I couldn’t have been more excited.

Growing Excitement

Since that first app, I’ve build three other apps, given talks at my local meetup, worked as a moonlighting contractor, and am now building iOS and Mac software full time. I shared a screenshot last Thursday that contained two goals I’ve been tracking since I first started my iOS hobbies.

Making the jump from hobby to real job has been an absolute delight. In addition to being a dream job, it’s also finally afforded me the chance to attend WWDC. I’ve feverishly watched Twitter and ADN for news, written scripts to monitor the Developer Portal for news, and sat perched at my computer Thursday morning in hopes of snagging a ticket.

Beyond attending the conference, talking to Apple engineers, listening to the keynote and hearing about what’s coming in iOS and OS X, I’m eager for the chance to meet some of the people I’ve gotten to know over the years through Twitter. I’m excited to hang out with people I’ve admired and let them know what their work has meant to me. I’m psyched to be spending a week in San Francisco, one of the technological hubs of our country. I’m proud to be representing a great company with an amazing product.

I’m disheartened that some of the people I admire have forgotten how exciting this conference is, especially when looking from the outside. I’m frustrated some people think it should end, before so many have had a chance to enjoy it. I’m disenchanted by the arrogance that because it’s different now, it’s not as good. 3

Losing Sight

My guess is that these dissatisfied developers have simply grown bored with WWDC. They attend annually because it’s what they’ve done since Apple was recruiting people and paying their way. I would wager they don’t gain much from the talks and attend labs to chat with people they’ve met over the years who are now insiders. It’s not as magical as it used to be to them. They still enjoy attending, but it’s different now. Annoyed that it’s so difficult to get a ticket, it seems like a good time to voice a demand for the conference to change.

It’s incredibly frustrating to want a ticket to WWDC and not be able to get one. I’ve been in that seat for the past three years. If WWDC isn’t what it used to be for you, simply opt out and let another hopeful developer have a turn. Try and be sensitive to the fact that WWDC is bigger than a small group of rebels building software for the Macintosh now. It’s capturing the imaginations of people slogging away at a 9-to-5 and encouraging them to keep hustling on their ideas. In June, they’ll be reading tweets tagged at Moscone West, nearby coffee shops or bars, and thinking about how great it would be to be there too.

  1. Veteran in iOS is four or five years, which hardly constitutes a veteran. I technically fall in that group
  2. The company was primarily building handhelds, but I was in a small group building rugged RFID readers on Linux
  3. As if the introduction of thousands of new faces in the community has diluted it

Being Too Cautious

Last night I made a shocking discovery as I caught up on my ADN feed:

@thaddeus
thaddeus *shudder* I think I might agree with something RMS wrote. I need to re-read it in the morning to be sure.

After re-reading his comments this morning, I was right. I have found a case where I agree with Stallman.

It is certainly possible to be “too cautious”. In the US, that’s
standard practice. How else can one describe what they did today,
paralyzing an entire large metropolitan area to search one
neighborhood for a fugitive? In the US, just say the word “terrorist”
and lots of people start being way too cautious, and the TSA eats it
up.

Richard Stallman response to Boston Police efforts

Timeless Technology

Last night, I listened to President Obama address the nation following the capture of the second Boston Marathon bombing suspect. His remarks were heard following a press conference by the Massachusetts State Police.

I listened to both of these segments on AM radio in my Jeep, because all of the local FM stations continued to appease the needs of Bieber fans and commercials.

I tuned into the first station that wasn’t broadcasting a baseball game; it was obvious when I found a station reporting news, so I stopped on that spot on the dial. 1

After both press conferences concluded, the national rebroadcast was paused for station identification. “This is 84 WHAS, Louisville.” Louisville? As the crow flies, Free Map Tools says I’m 385 miles away from WHAS.

The rate our world is evolving is unmistakable, but it’s humbling to see a technology invented at the turn of the last century continue to perform so exceptionally over large distances.

  1. Sadly, my radio doesn’t have a dial. It’s digital, and the lack of adjustment is very apparent, especially on AM.

Bottom of the Ninth

[Rube Benton, Cincinnati NL (baseball)]  (LOC)

“Whoever is pitching the bottom of the 9th better have some idea what they’re doing.” – Scott Willsey on ADN

Every position is absolutely critical to the baseball team. Infielders are directly responsible for preventing runners on base from making it home. Outfielders must recover hits that make it past the infield and quickly get the ball back in. A catcher is the final barrier between a runner and his victorious descent on the plate. Even though these positions are all critical, it is the pitcher who shoulders the game. A good pitcher controls more than where the ball is delivered to the batter. Good pitchers control the rhythm and emotion of the game.

Because of this responsibility, no other position on the team is so quickly replaced. The shortstop or center fielder are rarely pulled mid-inning, but pitchers who find themselves struggling are quickly swapped for somebody in the bullpen. When this happens, the reliever must carry his usual game-directing responsibilities, as well as the challenge of correcting the mess he’s inherited.

Some pitchers are able to throw a complete game occasionally. It isn’t by chance they’re able to do this: they’ve practiced and have refined their skills to the highest level. Other pitchers excel at saving games, and possess the mental strength to focus on the immediate task of retiring batters and keeping runners on base. The approach of each is different, especially depending on the stage of the game; pitching in the first inning is very different than trying to stop the bleeding after the stretch.

Now imagine that instead of pitching a baseball game, you’re leading the development of a software project. Everybody on the team is critical to getting the project shipped. A sleepy tester in left field could be disastrous for the project, especially late in the game when it’s difficult to recover. Having an all-star designer on third base won’t matter if your clumsy marketer on second can’t turn a double play. You have to be part of a great team, and that team has a technical core.

If you’re in charge of delivering the software, you’re on the mound. It doesn’t matter if you were the starter or got called up as the reliever late in the game. The project is on your shoulders; you set the rhythm for the project1 and steer the course for how it comes together. To win, you have to prepare, know the game and your opponent, and be able to focus on the immediate task of shipping software.

  1. Regardless of how hard your PM tries to make you to go faster