Before the iPhone the most developer friendly smart device was the N770 from Nokia. A Linux based open source hacker friendly platform. They shipped early and grew their features transparently with the community. Hence very agile. This attracted developers that used this platform for progressive prototypes. Then came the iPhone, with a simplified SDK, where the influx of “fart-apps” brought the development community to collective orgasm. The result was massive profit for Apple and I can only imagine that Nokia was thinking “why? our platform is more developer friendly”.
The result has been quick pushes from Nokia to simplify their SDK. 4 years later I’m developing a new application this time for the N900. To get to a place where I can build external libraries and compile them for the phone I’ve had to setup and explore 3 different SDK’s from Nokia. Each one attempting to fix the problems of the previous and to somehow give a more homogenous feel for developers. The early SDK (scratchbox) required a lot of work in a terminal, compiling and copying files around. The next, only now getting close to beta (MADDE) attempts to attract the party-application developers by evolving the structure of the SDK from the IDE itself. Yet it fails to give one a way to build 3rd party libs for the phone, hence beta. And all this time they are developing a 3rd SDK and new OS (Meego to replace current Maemo).
Think about how the iPhone SDK release schedule compares, and how the features of the iPhone were developed. There was little to no transparency but when it was released it was actually useful for typical developers. And this is my point, there are times when agility doesn’t pay.