Ipphones

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Thursday, 27 March 2008

On Managing iPhone & Mac Developers in the Enterprise

Posted on 20:56 by Unknown
Apple seems to be positioning the iPhone as a competitor to the Blackberry, Treo, and other so-called smartphones commonly found in the Enterprise, and this fact has stirred up a lot of interest in the iPhone and the iPhone SDK. As a result, people with a lot of Cocoa programming experience suddenly find themselves marketable beyond the realm of the Mac. 

For companies who want to get something solid up and running on the iPhone quickly, there's really no better choice than to hire a couple of people with solid Cocoa development experience. They will hit the ground running, whereas other developers with no exposure to Xcode or Cocoa are going to have a solid learning curve facing them. People will tell you that Cocoa is easy to learn - and it is - but, like anything, it takes people a while to really wrap their heads around it fully. 

But here's the rub: Mac developers, by and large, are a different breed than the developers you're probably used to working with in your large corporate environment. The majority of them are self-employed, part-owners of a small software company, or work in small, fairly autonomous groups within a larger organization. They are used to working in an environment that is the polar opposite of what most corporations and other large organizations foster. They are not accustomed to (and many actively avoid) bureaucracy and committee-based decision making, and they are accustomed to a lot of freedom in choosing how and when they work as long as they meet deadlines and deliver a quality product.

One of the first things you need to understand about Cocoa development (and it seems almost certain that this will apply to Cocoa Touch just as much), is that the entire language and the development tools are setup to afford maximum productivity to individuals or small groups, not to facilitate large groups of developers, analysts, architects, and other pseudo-developers.  Cocoa groks the ideas found in The Mythical Man Month and rarely do you find Cocoa projects using more than a handful of developers. Do you know how many developers wrote iMovie '08? One… and he wrote it while on vacation.  There are, in fact, many examples of great software on the Mac developed in Cocoa by just one developer, and a great many more that were developed by small teams. 

So, the first rule for your iPhone team: less is more. You'll do much better getting a couple of really good, experienced Cocoa developers than a dozen coders of mixed experience levels and background. If you can't find any, invest in a good people and send them to the Big Nerd Ranch to get trained up, put them in front of a nice powerful Mac, and let them at it.

Second rule: don't ride herd on them. Get people in whom you have a high level of confidence, and then let them do their job. This is probably good advice for all employees and all development teams, but I've worked inside large organizations enough to know it's not standard practice. Resist your impulse to micromanage. It's a bad idea in general, but it could be devastating to your iPhone development team, especially if you followed the advice of my first rule and hired good, experienced Cocoa developers.

Third rule: insulate your team from corporate silliness to the fullest extent of your power. Nothing will make these people leave your employ faster than making them sit in unproductive, boring meetings that don't directly further the project. The kind of person you want, wants to be sitting in front of a Mac furiously coding away. Anything you make them do that's not that, is counterproductive and damaging to your project.

Fourth rule: forget your existing processes, project plans, and other schemes for world domination. They don't work to begin with, but they are blatantly fatal to this kind of software development. Too much process with kill your iPhone development projects faster than anything; every existing packaged process scheme is a case of the cure being worse than the disease.  The iPhone tools and design patterns are not built to accommodate the kind of oppressive over-processing mechanisms that are all the vogue in enterprise software development these days. You'd probably get more done if you abandoned it for all your software development, but in this case, it's mandatory. If you use these tools, you will fail. If your corporate policies say you have to use them, get an exception, or else outsource your development to someone who's not fettered by silly corporate rules. If you try to force CMM, RUP, SCRUM, Six Sigma or any other form of expensive snake oil that your management thinks is the silver bullet onto your iPhone development team, you will smother it until it dies a painful death.

That's about it. I'm not a management expert, but I know Mac developers, and I know enterprise IT, and I foresee trouble brewing if those in the latter insist on trying to force those in the former into a mold they are not intended for.
Email ThisBlogThis!Share to XShare to Facebook
Posted in Cocoa, Cocoa Touch, Enterprise, iPHone, iPhone SDK | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Strong Encryption for Cocoa / Cocoa Touch
    Please do not use this code! Instead, check out Jim Dovey's Common Crypto code from AQToolkit . AES is a strong encryption standard tha...
  • Texture Coordinate Arrays or Things Nobody Tells You
    For some reason, a lot of OpenGL stuff just isn't well documented. Yes, I read the Red Book chapter on texturing. It didn't have a s...
  • Dynamically adding class objects
    Okay, folks, the first draft of the book is done, and I have some breathing room until the chapters start coming back from the tech reviewer...
  • Web Services Fun
    Before we work more with libxml, let's talk about web services. Web services are a good practical application of XML and, it would seem ...
  • An OpenGL Project Template for Xcode
    I'm not a fan of the OpenGL ES Application project template that ships with the iPhone SDK. It's a pain in the ass to go in and dele...
  • Handling Double Taps
    Alright, since the NDA is down, let's celebrate by posting some information, shall we? One question that I see posted a lot by new iPhon...
  • Twittering iPhone Developer List
    Tim Haines, the developer of the excellent BurnBall game, has started a list of iPhone developers who use Twitter. The last time I checked,...
  • More on OpenGL and Normals
    In an earlier post I talked about surface normals in OpenGL. In writing the Wavefront OBJ loading class, I've learned far more about no...
  • OpenGL ES From the Ground Up, Part 1 Addendum: Alphabet Soup
    One problem with blog postings is that they are self-edited. For my postings here, I have no external technical review and no copy editing d...
  • Writing
    I'm pretty swamped with writing work at the moment. The book project is going pretty well, and I'm fortunate to have a very experien...

Categories

  • 3D Models
  • Ad Hoc Distribution
  • ADC
  • Address Book
  • Amazon
  • Anaglyphs
  • App Store
  • Apple
  • Apple DTS
  • Apple Store
  • Application Store
  • articles
  • Award
  • Background Processing
  • Barcodes
  • Beta
  • Blog
  • Blogger
  • Blogging
  • Blogs
  • Blogspot
  • Book project
  • Bug Reporting
  • Captain Obvious
  • Categories
  • Censorship
  • CFFoundation
  • CGAffineTransform
  • Clang Static Analyzer
  • Cocoa
  • Cocoa Touch
  • Code Reuse
  • Code Signing
  • Computer
  • conferences
  • Controller Classes
  • Core Animation
  • Daring Fireball
  • Database
  • Debugging
  • Defect
  • Delegates
  • Design Awards
  • Developer Certifications
  • Discussion Forums
  • Edit Mode
  • employment opportunities
  • Encryption
  • Enterprise
  • Errata
  • free code
  • Free software
  • Full Screen
  • Game Programming
  • Gestures
  • Getting Started
  • goof
  • Google Code
  • Google Maps
  • Gotcha
  • Help
  • HIG
  • HTTP PUT
  • Idiots
  • Idle Timer
  • Images
  • Instruments
  • Interface Builder
  • iPHone
  • iPhone Applications
  • iPhone Dev Center
  • iPhone Developers
  • iPhone OS 3.0
  • iPhone SDK
  • iPhone SDK PNG
  • iPhone Simulator
  • iPhoneSDK
  • iPod
  • Job Opportunities.
  • k
  • Key Value Observing
  • Keynote
  • KVO
  • Landscape Mode
  • Learn Cocoa
  • Learn Cocoa on the Mac
  • libxml
  • Licensing
  • Mac Developers
  • Mac OS X
  • Macworld Expo
  • Microsoft
  • NDA
  • NeHe
  • New Category
  • New Release
  • NSFileHandle
  • NSMutableArray
  • NSMutableURLRequest
  • NSXML
  • Object-Oriented Design
  • Objective-C
  • Open Source
  • OpenGL ES
  • Optimizations
  • Other blogs
  • Paired Arrays
  • Parsing
  • Particle Engine
  • Party
  • PeopleSoft
  • Performance
  • Persistence
  • Pink Screen of Death
  • Piracy
  • Pixar
  • Podcasts
  • Press Release WTF
  • Press Releases WTF
  • private APIs Google
  • Project Template
  • Properties
  • Random Numbers
  • Rant
  • Rejected
  • Resources
  • Responder Chain
  • REST
  • Reverse Engineering
  • Rumors
  • Runtime
  • Sample Code
  • Screencast
  • screenshot
  • Scroll Views
  • snippet
  • Snow Leopard.
  • SOAP
  • Sockets
  • Source
  • Splash Screen
  • SQLite
  • SQLitePersistentObjects
  • Steve Jobs
  • Steve-Note
  • Strings
  • Stupidity
  • Subversion
  • Table Views
  • Taps
  • Template
  • Tip
  • Tips
  • Tririga
  • tutorials
  • Twitter
  • UIAlertView
  • UIColor
  • UIImage
  • UIPickerView
  • UIScrollView
  • UITextField
  • UIView
  • UIWebView
  • Update
  • Utilities
  • UUID
  • Vacation
  • Version Control
  • Web Services
  • Writing
  • WTF
  • WWDC
  • Xcode
  • XML

Blog Archive

  • ►  2009 (141)
    • ►  May (14)
    • ►  April (30)
    • ►  March (48)
    • ►  February (26)
    • ►  January (23)
  • ▼  2008 (163)
    • ►  December (46)
    • ►  November (25)
    • ►  October (44)
    • ►  September (2)
    • ►  August (5)
    • ►  July (2)
    • ►  June (9)
    • ►  May (2)
    • ►  April (11)
    • ▼  March (17)
      • On Managing iPhone & Mac Developers in the Enterprise
      • Beta 2 is out!
      • Getting Started on the iPhone: A Primer for Non-Ma...
      • Network Communications with NSFileHandle
      • Problems Reading and Writing Files on the iPhone?
      • Brain Surgery?
      • The iPhone and the Enterprise
      • Still Playing
      • A Splash of Cold Water
      • Daring Fireball on "One App at a Time"
      • An iPhone App
      • Developer Certs and iPhone OS 2.0
      • Good Googly Moogly! 100,000 downloads
      • On Censorship and the iPhone Application Store
      • I Love Mac Developers
      • Rogue Amoeba
      • And We're Off...
Powered by Blogger.

About Me

Unknown
View my complete profile