Archives: March 2011

HTML 5 and “That Familiar Sinking Feeling”

It appears to me that HTML 5 is reaching the proverbial “critical mass” on the Internet Hype Machine. Everybody and their brother is touting HTML 5 as the solution to every ailment, and every vendor is proclaiming “HTML 5 support”. Before I go any further in this post, please understand the following – I am a HUGE supporter of HTML 5. As a mobile application developer, I have been a backer of HTML 5 ratification from the time Palm implemented HTML 5 proposed standards as the foundation for WebOS development. HTML 5 offers a world of promise for addressing many mobile (and desktop) web development woes, including the fundamental need to work offline (i.e. – NO INTERNET CONNECTIVITY) using a single standard for programming. However, the push to “jump on the HTML 5 bandwagon” immediately and start migrating native mobile applications to the web causes me to have an old (and far too familiar) “sinking feeling”.

If you read my introductory paragraph closely, you may have noticed my careful choice of the phrases “proposed standards” and “world of promise” when talking about HTML 5. There is a reason for that – HTML 5 is not yet an official standard. In fact, the W3C (the official sanctioning body for HTML specifications) has recently mentioned that final ratification may still be years away. I totally understand and accept that fact. I also understand, however, the potential implications that presents for today and until the time that a final specification is ratified.

My web development as a professional consultant actually goes back to the days when HTML 2 was a proposed standard (ah yes… when a company’s web site was largely static and, well, rather plain or ugly by today’s standards). As HTML evolved, from proposed specification through the ratification process, the following events have ALWAYS occurred:

  • Company A that supports using HTML (read – “browser maker” or “web development tools maker”) implements their “interpretation” of the proposed HTML standard in product.
  • Company B that supports using HTML decides Company A’s interpretation isn’t quite right and implements their own variation of the proposed standard.
  • Companies C, D, E, etc all do the same.

Back in the days of HTML 2 and HTML 3, we were fortunate in how limited the number of “companies” referenced above were. Even then, however, the differing interpretations often created such development havoc that building one application for the web was more time- and resource-consuming than building separate native applications. Anyone reading this remember HTML 3 or 3.2 and the “Internet Explorer/Netscape Navigator Browser Wars”? I sure do. The varying approaches that Microsoft and Netscape took towards “implementing” HTML specifications soured many businesses from moving to the web. In fact (and totally in my opinion), I believe that the fallout from the “Browser Wars” actually set back web adoption by a few years. Unfortunately, HTML 5 is setting up to walk down this same path again.

The “HTML landscape” of 2011 is far more complex than it was a decade-plus ago. The number of “companies” (those providing fundamental support for HTML through browsers and development platforms) dwarfs the numbers of the late 1990’s. Furthermore, their stakes in the HTML market are far greater and extend far further than they did 10 years ago, with the desktop and mobile web reaching a vastly larger audience. During this “Wild West” period of HTML 5 implementation, when there is no final specification and plenty of room for “interpretation”, these companies have the ability to lead developers down a single path that could, in turn, restrict wider use. While there is no guarantee that this will happen, history speaks otherwise. This risk, in turn, is one that potentially result in a repeat of the development nightmares of the past. Even as we speak, current browsers and their “HTML 5 support” are beginning to cause developers to spend extra development time and effort to ensure that what works for “Browser A” also works for “Browser B” (and “Browser C", D,E and F”). Speaking strictly from a risk management perspective, the longer the time it takes for formal ratification, the greater the risks become.

While I eagerly await the day when HTML 5 is formally ratified and HTML 5-supported platforms come into greater alignment, I have a hard time staking my (or a company’s) development investment on the standard. While the HTML 5 “companies” continue to bombard me with messages on why I should invest in their HTML 5 implementations, I cannot help but feel that their answers to HTML 5 will lead me to a point where I will be either sandboxed into just their products or be forced to spend a lot of time coding my way out of their sandbox. All of that leads to that familiar sinking feeling of the past. That feeling is something I already have faced one too many times. So, I will stick with either native mobile applications or web applications that work across platforms (complete with limitations) until I feel comfortable that the sinking feeling will stay away.

A Message To Prospective Mobile Application Developer Employers

As someone who is regularly directly recruited or asked to refer possible employees for companies looking for “mobile application developers”, I have seen a trend in expectations that I think requires a bit of level-setting. I have a simple message to pass along…

Lower your standards.

While this quote does make me giggle, reminding me of an old Jon Lovitz sketch on Saturday Night Live years back, the statement does have some truth to it. You see, I believe that for many employers beginning the foray into mobile applications, hiring one developer will easily fill the need. Before you go any further, there are some things you should be aware of in order to avoid some disappointment as your hiring search begins.

  • There is more than one mobile application platform out in the world. I find far too many recruiters looking for a mobile developer who, when asked to define which mobile platform will applications be developed for, simply respond “I don’t know” or “does it matter”. The simple answer – “it makes all the difference in the world”. Today, there are several major target platforms your company could target for development – iOS (iPhone, iPad, iPod), Android, Blackberry, Windows Phone. There is not a “one skillset fits all” solution to this situation. The tools, languages and techniques used to fit the development needs all vary (more on this below). As an employer, you should take the time to really refine which platforms you desire for your applications. If you don’t know, perhaps you should first take the time to research your real needs.
  • Each mobile platform requires different technical knowledge. While many concepts around mobile application development are common to all platforms, the actual implementation/development skills around the platforms vary to a significant degree. iOS development requires knowledge of the Objective-C programming language. Android and Blackberry, while both leveraging Java as a language, use differing extensions of the base language. Windows Mobile and Windows Phone both leverage .NET languages (C# and VB.NET), but with significant differences from their desktop and web siblings. The assumption that one developer will be fluent in all languages is a precursor to disappointment.
    To see just how rare the multi-language skillset is for developers, you probably would have to look no further than your current in-house IT group. Just ask any in-house developer how difficult it would be to move an existing desktop application from .NET to Java, or a web application from PHP to .NET. The most common response from a given developer would likely be “I don’t know that language”. While there are always some developers who are fluent in more than one programming language, assuming competency across the board when looking for potential candidates will likely lengthen the time for searching.
  • A “designer” does not mean a “developer” (and vice-versa). Hopefully, most employers and recruiters know this, but I still find some do not. Many developers who are extremely competent at developing mobile applications struggle with user interface design and the graphical nature of applications. Also note that being able to program in a language does not guarantee understanding the nuances of design for the platform. I point this out because of the simple fact that I regularly see employers/recruiters going after general programming knowledge as a way of “fast-tracking” the hiring process. By this I mean seeing companies looking for Objective-C or C# skills and minimizing mobile application development experience. All I can say here is – bad idea. If are comfortable with a large post-hire learning curve for your employee, then you are OK. If, however, you expect instant results, you will likely be disappointed.
  • Be prepared to pay for employees skills. Sadly, there are some employers who are aware of everything I have said thus far but believe by recruiting generally for a mobile application developer they will get a “5 for the price of 1” hiring deal. Sorry folks – just like a company in need of hiring for natural language translation, the rule of thumb is “the more languages known, the higher the price”. Furthermore, the increasing hiring practice I have seen around “don’t tell them what we really expect from them until after we hire them” has resulted in successfully eliminating any employee retention. Bottom line – when you know what you need, be prepared to pay for what you need.

So, what can employers do to successfully recruit and retain mobile application developers? Here are a few suggestions based upon my experiences over the years -

  • Have a mobile development vision before you start the hiring process. By vision, I mean something a bit more substantial than “create mobile applications”. Think about what applications you need, who will be using these applications, what platforms do you wish to target and when you need to go to market with them. This will not only help to define your job requirements; it will also help to engage with hiring prospects during the interview process and best identify hiring candidates. Remember – prospective employees are also interviewing view (not just the other way around). As I have advised many mobile developers seeking jobs, a company that does not understand what they need to hire for or why they are hiring is never a good thing from the employee perspective.
  • Consider hiring tactically and working toward your strategy. This goes back to your mobile vision and prioritization. As an example, your immediate need may be for the iPhone. However, you want to expand your offerings to eventually include Android and Windows Phone. When hiring, you can build job requirements that look for iPhone development up front, but include an interest in developing for Android and Windows Phone in the future. When interviewing hiring candidates, you can discuss their openness toward learning about these platforms. Note: be prepared to develop a plan to support the learning process (training, time to learn, etc) and to discuss this with prospective candidates. There is nothing that turns off a potential development hire quicker than the feeling that an employee just expects them to learn something on their own with no support. By taking this approach, you will be able to identify candidates that are genuinely interested in mobile application development as a career and see you as a company to work with (not just work for) as a career.
  • Remember the non-technical skills in addition to technical skills. Even a skilled programmer in a language and/or platform does not guarantee success if the person being hired lacks “higher-level” skills. As an example, I have heard countless tales of perspective candidates who knew iPhone development inside-out – as long as we were talking games development. For a company wanting to build line of business applications that include domain knowledge and integration into complex enterprise architectures, hiring this person typically results in an entirely different learning curve from both a technical and business perspective. Be sure to include such job requirements up front to avoid a lot of time spent interviewing candidates that don’t meet your needs. Also be sure to include such discussions with candidates during the interview process. I know of at least several instances where candidate screens were entirely focused on low-level knowledge of development, only to discover that the now-hired employee had no knowledge of integrating with business systems.
  • It is a “buyers market”… and you are not the buyer. As hard as this may seem to accept, the demand for skilled mobile application developers is very high, and the supply is quite low. The higher you set the bar for job requirements, the harder it will be to find qualified candidates. Plan for a protracted employee search and hope to be pleasantly surprised if you find someone quickly. Do not wait until the last minute to start a candidate search.

In the end, employers, I give you this feedback and suggestions not to really “lower your standards”, but to adjust them. It will benefit not only yourselves, but the potential candidates to fulfill your employment needs. I just couldn’t pass up on the Jon Lovitz reference, though Winking smile

page 1 of 1

Welcome , today is Wednesday, February 22, 2012