Monday, May 7, 2012

Cuando sube la marea, el barco se eleva

I'll leave my complaints about Xcode and Objective-C aside, because they surely indicate more about my lack of character than any possibility that this archaic and abstruse software problem called Xcode has ANYTHING to do with my needs as an iOS developer.

Instead, I want to talk about software complexity. Man it gets complex. Wow. As it grows, the multiplication of conditions within the program is mind-boggling. So that's why you have Unit Testing. But if you're working for iOS, you consider many things to be "hard to test," and other things might really be. So you test any class with long methods that doesn't directly affect the UI. So your Unit Testing isn't really used for regression, but rather spelunking. When your tests don't run, it's time to fix, but you usually end up fixing the tests to reflect the new reality.

Which leaves you with: user testing. It's the only thing saving you from yourself. It has to be separated and taken seriously, and it has to be done by the developer him or herself primarily. Of course, as Joel points out, there are blind spots, but let's not toss the baby out with the bathwater. The developer is in a great position to test and really should. With the IDE closed and preferably in a different place.

I'm stepping up.

No comments: