Of the ten students in my most recent mobile software development course, two work directly in software development. The remaining eight are either marketers or have executive responsibilities in their company. This mix of skills and responsibilities, a little different from the norm for a hands-on course like this, generated an interesting combination of points of views and expectations.
It is not possible to deeply study the iPhone/iPad, Android and BlackBerry platforms in only five days. In order to get the most value out of the class, we worked out a nice flow that started with discussing the foundations of these mobile platforms and their similarities, followed by an examination of their differences. We also wrote a BlackBerry application, and reviewed the code for an iPhone and an Android application.
The transition from coding on one platform to coding on another platform was not smooth. The programmers in the class told me they had expected to work on simple 'Hello World"-type examples, and they were surprised that I brought a whole end-to-end application they would need to code from scratch. They said this was arduous at times, but also rewarding because they worked on something that contained real-world solutions they can apply to their own applications.
Mobile software development is challenging
It was interesting to observe fellow technologists realize the magnitude of the challenge in developing products that target more than one mobile platform. For example, how difficult it is to find expert leaders and programmers that can be effective on iPhone, Android, Nokia, BlackBerry and Windows mobile. Or how difficult it is, even for teams with a clear vision of the systems’ goals, to create satisfying designs for each platform.
The situation is similar in the tools arena. Only a few viable cross-platform development tools exist today, while many problem domains require a level of access to device capabilities, performance and other features only achievable by native applications written with the platform’s development tools.
It takes a committed team
The active participation of company leaders was another interesting highlight of the course. I’m happy they signed up. I think it is important for them to know how their products will work, and what it takes to build them. This is a responsibility they share with their colleagues from the software development department.
A great experience this class. Wouldn’t you agree?