April 16, 2009

Mobile Engineering: Why Coders with Old World Discipline Have the Advantage

A month or so ago, someone (I can't remember who) said to me that mobile engineering was hard for web engineers to do because it was so different. I've worked over the nine months on product development for several mobile applications at Apisphere, and more specifically the last couple of months seen coding for handsets up close. I can see why those who are great at coding the front end of websites that will go out to people with beefy computers might have trouble coding for tiny devices with limited memory, harddrives and processors. Even smart phones are no competition for the latest desk or laptop.

Working with engineers on Android, iPhone and Blackberry apps, where GPS data is involved, and each of these phones' quirks are being exposed, I've come to realize there is much more to this than just the difference between webcoding and mobile engineering. I started in tech in the 90's working on boxed software. Huge projects with 60 engineers making things for big machines of the time. Those kinds of projects required enormous specs, Market Research Docs (MRDs) and Product Research Docs (PRDs), etc. When I later switched and started writing algorithms for web apps, building little classification systems, and working closely with engineers on web apps creating the information architectures and meaning on sites, through interfaces and algorithms, I didn't think all that much about the differences between installed boxed software and web development, other than the specs I was writing were far smaller and we iterated a whole lot more on the web development in tighter cycles, and often the usability was built in a bit more from the beginning instead of bolted on at the end.

But now seeing development for mobile and creating mobile apps, I realize engineers who learned to code way back when have a huge advantage over web and large app engineers who've never been forced to economize. Those early coders know what it means to optimize for tiny amounts of ram and hard drive space, to create truly elegant code that is compact, efficient, and doesn't take over a device or machine.

In contrast, I find my Firefox usage often pushes my laptop out of control as javascripts go crazy on tabs in the background. Those pages were written by programmers unschooled in the art of system management, who may believe the system resources are unlimited or worse, dedicated *only* to the running of the browser+their webapp. They don't even seem to know they ought to be considering users and their resources based upon the pinwheel of death I regularly experience. I'm often climbing through FF tabs on pages open for work and play as I go through my day, trying desperately to locate that one tab that's going crazy, pushing FF to 125% according to Top. When I get it shut down, after massive frustration and system hangs, waiting to see if the next tab is it, I realize another tab is out of control. And so on until I get my machine back.

Building mobile apps, there is no way we can put that sort of strain on a smart phone, much less a little tiny phone. At this point after watching 9 months of mobile development, I'm realizing the preferred mobile developer is someone who has hardcore coding experience with languages like Java and C++/C#, who had to optimize for old computers with minimalist ram, hardrives and CPUs. People who code as if their program will be the only one open or up in a browser need not apply.

In fact, I would say that older coders with this sort of discipline will often have a distinct advantage over the young new web-only coders, and will be the ones who help us move mobile forward as a viable industry. Of course, those who embody all of these skills for all environments will have the best chances to work in mobile going forward, as I see mobile delivery of webpages as also key to this industry.

Posted by Mary Hodder at April 16, 2009 08:05 AM | TrackBack

thanks for your sharing. I am looking for a job on web engineering. I get some useful info from your article.

Posted by: eric xun at May 8, 2009 11:45 PM