rosscarter.com

Why are Xcode betas under NDA?

14 August 2010 1:20 pm UTC

As developers, we all very quickly became familiar with Apple’s non-disclosure agreements, particularly the Prototype License and Confidentiality Agreement that applies to pre-release Apple software and related documentation and information.

It’s easy to understand the reasoning behind NDAs. No developer wants potential customers to rely on an upcoming product’s having certain features that might be dropped before the product ships. Nor does a developer want new features to leak out in advance and dilute the buzz of the launch event. The developer wants to control public discussion of the new product lest unqualified reporters, who do not know what beta software looks like, give the product an undeservedly bad review. All these things make sense.

Except, I posit, in the case of developer tools.

What’s different about developer tools

Apple’s developer tools differ from its other products in substantial ways. The first and obvious difference is the price. Developer tools are free. Apple doesn’t sell them. There is no revenue stream to jeopardize.

Second, in the modern era, there is no competitor to Apple’s developer tools. Code Warrior is long gone. Can you imagine developing an iPhone app without Xcode? If you develop for Mac OS or iOS, you’re going to use Xcode, period. It isn’t like you are going to read a bad review about Xcode and decide to use something else.

Third, the parties who test pre-release developer tools are exactly the same parties who use the tools. I don’t think I am going out on a limb to say that the only people who use Xcode are developers. And the people who have access to the beta tools are the same developers. Everyone who is going to use the released product has access to the beta. There’s no risk of beta users misinforming customers who have to wait for the final release because nobody has to wait for the final release.

Developer tools are closer in analogy to in-house software. Many of us have developed software for use within a large organization. Do you think it would improve the product if your users were not allowed to discuss it among themselves?

I’ve tried to come up with a scenario in which Apple would be harmed by developers talking about Xcode 4. I can’t think of any. In fact, there is none, because Apple allows us to discuss Xcode 4 on their forum.

Because the forum is open only to developers, one assumes that Apple perceives some harm if the public could read what developers are saying about the new Xcode. I submit that this is nonsense. “Developers confused by Base SDK vs Target SDK!” “Exclusive: method names in documentation index are not aligned!” I don’t think we will ever read such headlines. Non-developers don’t give a tinker’s damn about the design of Xcode.

Why the NDA harms Xcode development

So, my first point is that applying the NDA to beta developer tools is nonsensical. My second point is that it leads to lousy software.

We all know how the bug reporter system works, at least superficially. Duplicates matter. Your chances of getting a bug fixed improve when other developers report the same bug. We routinely urge our peers to file a bug report on something we have already reported. Indeed, Apple engineers recommend the practice. It’s quite routine for someone to tell me about a bug that I have not personally encountered, but it is definitely in my interest to have the bug fixed before it trips me up, so I will file a duplicate bug report.

That’s just the way the system works. Except with Xcode betas! Because we are not allowed to discuss bugs among ourselves, the bug reports are limited to reports from developers who have discovered the bug on their own.

That is to say:

  • Apple’s bug reporting system prioritizes bugs based on number of duplicates.
  • Bugs of significant importance to developers receive lots of duplicates because we discuss them among ourselves.
  • For Xcode betas, the bug reporting system continues to prioritize duplicates but denies developers the ability to increase the duplicates for very important bugs.

Yes, I realize that Apple’s developer forums mitigate this flaw to some extent. But, really, those forums are a mess, aren’t they? As far as I can tell, there is no RSS feed or mailing list where you can keep up to date with what is being discussed. You have to check the site manually. For the Xcode 4 discussion alone, there are eight topics, and you have to check each one separately. When you have navigated beyond the first page of threads, and you click a thread to read it, you can’t get back to the page you were on; you’re taken back to page one and have to page forward to find the place where you left off.

As a developer whose skills will never rise beyond the level of intermediate, I rely on the wisdom of intelligent developers whom I respect. I’m far more likely to understand and agree with those guys than with an unknown poster on the Apple forum. I’d love to know what Gus and Matt and Marcus and Frasier and Daniel think about Xcode 4. I and others would then file bug reports and in the end we would all enjoy a better Xcode.

As things stand now, I have a feeling that Xcode development is beyond our control, and we are going to have to live with it no matter how awful it turns out. It might well be that some aspect of Xcode 4 is despised by the vast majority of us, but we will not know that until the NDA is lifted and then it will be too late.

I’ve posted a few items on the Apple forum. I’d ask you to search for them using my name, so you too can file bug reports, but guess what: that search does not find my posts. There’s a “Who” field in the search bar, but it doesn’t work, AFAICT.

The sorry situation

So all I can do publicly is muse: hmmm, I wonder how Xcode 4 handles Find Selected Text In Project? I wonder how it handles jumping directly to the documentation from source code? I wonder if you can easily jump back and forth between the docs for an object and the delegate methods for that object? I wonder if you can still right-click to fix alignment? I wonder what other features such as user scripts that I use heavily have been left out?

It might turn out that Xcode 4 is the best Xcode yet. If that happens, it won’t be because we all had a good discussion about it beforehand.

Leave a Comment

Comments

  • There are no comments for this article.