Archive

rich Internet application

I’m speaking at AJAX world this morning on RIAs. I’m asking the audience to challenge me here on my blog once the keynote is done… 

Question: Who the hell goes to a keynote @ 7:30 in the morning?? 

 http://www.ajaxworld.com/general/sessiondetail0308.htm?id=118

This time each year, technophiles are asked to part the curtains and peek into the coming year. While last year brought unprecedented growth in RIA adoption— especially by Fortune 500 companies—RIA adoption in 2008 brings a new onslaught of risks, rewards, challenges, and opportunities for companies of all sizes.

Let’s start with something positive. Last year, the overall demand for RIAs outpaced the qualified supply chain. This trend will continue. This year, companies facing both job growth and decline will need to continue to leverage innovative, usable RIAs to hone their competitive edge to outpace their competition and improve core business practices with fast, reliable, productivity-enhancing internal and external tools. However, building and deploying effective RIAs is not something companies can jump into with blind assumptions.

"adobe flex" Job Trends graph

Without the right leadership at the helm and the right team in the trenches, the world of RIAs is fraught with risk that can cost dearly. The flip side of the coin is that good RIAs can provide your customers with user experiences that leave your competition in the dust. If you keep the following risks and rewards front of mind, you can turn the 2008 RIA challenge into successful opportunities.

 

Risk: Developer inexperience
Reward: RIAs that work result in user adoption
Since many underlying RIA technologies are still emerging, finding developers with the appropriate level of experience can be tough. Thinking that you can find good Java or .Net developers immediately turn them into expert Flex or Silverlight developers is not good thinking. Inherent to these powerful new frameworks are challenges that require mastery of the technologies. Rich client applications differ greatly from server, HTML, or desktop applications and require very certain development expertise. Beware the typical developer optimistic mindset that believes problem-solving skills are platform independent.

 

Risk: Designer inexperience
Reward: Well-designed RIAs make people want to use them
The gap between sexy and usable is huge and dangerous. A great print or web designer is not necessarily a great application designer, especially not right out of the gate. It takes a considerable shift of discipline and time on the front for designers to transition from page based metaphors to RIA necessities such as features, tasks, hierarchical navigation schemes, and transitional animations. Oddly, understanding how to leverage new technologies like AIR and Silverlight means that designers may have to unlearn some of what they have relied on in the past as successful solutions. 

Forrester Research stat: 70 to 80 percent of all IT projects fail. The number one reason why they fail is a lack of user acceptance, not technical issues (caveat: user acceptance may be poor simply because an application just doesn’t work). An effective RIA designer who respects user input and usability measurement studies will dramatically mitigate the failure rate of an IT project. Look for RIA designers with experience and/or education in human factors.

 

Risk: Poor hires
Reward: Powerful designer/developer collaboration
Managers may see the words "Flex experience" on a resume and assume that, in-and-of-itself, Flex experience makes the candidate qualified. Differentiating between experience and quality is very hard for an IT manager to assess since they may have not yet seen what a good RIA developer really looks like. The same premise holds true for design talent. Hiring the wrong developer or designer obviously will likely point to costly disaster on any project.

Consider outsourcing to proven experts. Or build teams consisting of blended internal and external talent and give them prudent product management guidance. 

 

Risk: Lack of process and culture
Reward: Integrated workflow and new behaviors
Let’s say that you lucked out and put together a great team. Now you have to get them to collaborate. Establishing the right culture to enable the team to work together is critical to the success of creating engaging applications. It takes a delicate combination of humility, passion, confidence, knowledge, process, and realism to execute against business and user requirements.

Also, carefully consider reporting structures. Should the designer sit in Marketing? IT? Companies trying to build effective teams may be challenged by traditional organizational and hierarchical silos and boundaries to get the right people in the right room with the right priorities and agendas.

 

Risk: Messaging from platform providers
Reward: Great news across the board
Both Adobe and Microsoft have emerging RIA platforms (AIR/Flex/Flash and Silverlight respectively). While the hype for Silverlight is hitting stride, currently the Adobe Flash/Flex/AIR platform is the way to go for most robust online applications. Microsoft’s roadmap is very exciting, and I believe that we will see some great moves forward on their platform in the next 12 months. However, the Silverlight runtime just does not offer enough functionality or the ubiquitous reach that the Flash Player does.

The opportunity, no matter the platform, is abundant. Microsoft entering the RIA game is great news for everyone, even Adobe. They have helped to validate that RIAs are the future of how companies will engage, inform, retain, and entertain, their customers.

 

Risk: RIA providers on overload
Reward: Consistent home runs
Many providers in the RIA space are growing more rapidly than they can realistically support— flirting with implosion and growth rates of 1,000 percent and higher. Without dedicated, qualified team members in place, RIA providers have no business taking on work just to take on work. If you come across an RIA provider who has people available immediately, beware. At EffectiveUI, we would rather turn away work than fatigue or dilute our human resources.

 

Risk: Inadequate budgets
Reward: Proving the value of an RIA
The return on investing into a great RIA—even a simple one— can be astounding. Applying the same budget approach as you would, for example, a micro site or an HTML calculator is not the model to follow. Find guidance and build your case. Deploying an application that is truly going to engage users and deliver a measurable ROI requires appropriate budgeting of dollars and time.

 

Risk: Inappropriate intention
Reward: Focused discipline for the job
Hiring your advertising agency to build a critical business application is like asking your interior designer to engineer a new building. While both disciplines are important and somewhat related, they absolutely require pinpointed expertise and focus. Make sure that the person or company you engage to build your RIA understands and respects the difference.

 

add blog to del.icio.us

add blog to technorati

dig this story

One of my jobs at EffectiveUI is to talk about our services to new customers… sometimes I am asked to discuss and defend the "issues with Flash". Here are the common objections, and how I talk through them:

Flash content is heavy

You are going to read several times in this post this phrase: "it is not the content or the platform, but the execution that causes most of the issues people see in the Flash Player". The fact is, most of the applications we build would be much heavier in HTML than Flash (if you could build them in HTML). Flash content should be smaller because:

  • Flash reuses components and can layer images on the client side:
    A simple example of this would these images I used as icons for our NoMokin site:

    forum_unread_subforum.png forum_unread_locked.png topic_unread_hot.png topic_unread_hot_mine.png topic_unread_locked.png topic_unread_locked_mine.png topic_unread_mine.png
    Each image has to be an individual bitmap in HTML. With Flash, I could have created 1 large image, and 2 small transparent images and compiled them in layers to get the same results, thus reducing the file size. Now imagine this same optimization application wide.

  • Flash uses lightweight vector graphics
    the same images above would be even smaller if I was about to draw them using vector graphics rather than as bitmaps. Additionally, the graphics would be infinitely scalable, so I would not have to re-create different sized icons for different uses as the below example illustrates how a bitmap looks when scaled versus when a vector graphic is scaled.

    rastervector.jpg

  • Flash can reduce server round trips by scripting logic on the client side.
    Things like simple email validation, sorting of records in a data grid, and data charting can all be done on the client’s machine. A reduction in server round trips reduces the overall load on the server and improves application performance for your customers.

  • Flash content can be compressed.
    A SWF file is actually compressed when it is compiled using the LZW compression scheme. We have see 10 fold improvements on the footprint of a Flash application when using compression methods.

Flash is not good for Search Engine Optimization (SEO)

A very common misuse of Flash is to build entire web sites with it. I know what might be saying "But Anthony, your web site is all Flash" — True, but it is Flash only because we needed it to do something VERY specific. At the time we build it, SEO was not as critical a requirement as usability and sexiness were. EffectiveUI builds applications using the Flash player, most of which consider "search optimization" irrelevant. After all, if you were building a mortgage calculator, or a rich email client, would search engines care about the inner workings of the application, or would you want them just to care about the location of the application in your web site?

If SEO and user experience are equally important, than you should create dual web experiences, one for the search engine robots and one for your customers. Attempting to build one site that serves both needs could mean that you will make compromises on usability in order to conform to search.

 

Flash content is not accessible

This is just plain wrong. The Flex components are Section 508 compliant. In fact, Adobe has a whole department dedicated to ensuring the Flex framework is, and remains 508 compliant. However, If accessibility is a requirement for your online applications, than I would encourage you to think about creating 2 versions of the application. One that is compliant and one that is engaging. I go back to the last topic: Attempting to build one site that serves both needs could mean that you will make compromises on usability in order to conform to accessibility.

 

Flash content is hard to localize

Well, it is, "kinda". Localization is a requirement that you need to identify during the design phase of an application, otherwise it is very difficult to go back and localize it later. Localizing an application simply requires you to externalize the text (a good practice anyhow) and embedding the right font. There are considerations on some Asian languages to make (like right to left navigation schemes versus left to right) … but for the most part, there are established best practices for creating applications that are language agnostic.

 

I don’t need no stinkin animation on my web site

Flash has a bad rap… probably caused by the early days of sites with lengthy intros and really bad sound effects. It is also, however, a powerful development tool. It is a long knife that you can do great things with, but you can also cut yourself really badly. Animation can be (and has been) way over used. It can also be used to immerse your customers and keep them engaged with your application. Further, it helps to provide context in navigation, just look at the iPhone’s use of animation and you start to get the picture.

 

My development team does not know how to use Flash/Flex, how will I maintain it?

Ahh … finally a question with some real meat behind it! It is difficult to tell a large organization’s IT department that they need to learn something new. They are already dealing with hundreds of technologies … I even worked on a project last year where we had to integrate with a machine running on vacuum tubes (no joke). So how can you possibly ask to have them add yet another platform on top of their .Net, Java, PHP, Ruby on Rails, Fortran, C++, Pearl and Cobal skills? Well, I first start with the fact that Flex does not replace anything, rather it augments their existing infrastructure… they do not need to go in and rip out the .Net infrastructure and replace it with Flex. Flex and Flash will simply sit on top of their existing SOA and APIs to meet specific business objectives where usability is core critical to success. Then I talk about how Flex and Actionscript is an ECMA compliant language, pretty easy for a Java developer to pick up (in fact, many java developers are relieved to work with a good, extensible GUI framework).

 

I don’t want to have to ask my users to download a plug in.

At the time of the writing of this post, Flash has 98% ubiquity. The latest version (Flash Player 9) is at 95.7% (view the latest stats here). At some point your competitors are going to leverage the power of the platform and see a huge boon in user adoption (if they haven’t already). About 20% of the engagements EffectiveUI does today are about "leap-fogging" a competitor that has already leveraged the Flash Player sone some manner. If you allow 2% of your customers dictate how you engage the other 98%, than you online business will always be well behind your competition’s…

stats.gif

 

Flash has security flaws

This is the question that started me writing this post. Recently, The Register published an article "Serious Flash vulns menace at least 10,000 web sites". The article discusses an inherent, "serious" security flaw in the flash player and in Flash content. This article reminded me of a "breaking news" story I saw on the Today Show about a year ago. It was about these things that would capture your personal data and report it back to a web site. These things were called "cookies". Although I’m sure that security nazis will tell you to turn off cookies, I actually like the fact that when I go back to eBay, it remembers who I am. In fact, almost every Fortune 500 company web sites utilize cookies to track user behavior and provide a better online experience for their customers.

Cartoonist Scott Adams put it best:

dilbert2007113333116.gif

 

Anyhow, back to the article. It discusses a flaw in the Flash Player. The article does not go into details on exactly what the flaw is, so I am required to speculate based on this Adobe Whitepaper referenced in The Register article … the security hole requires the following to be true in order for it to be exploited:

  • You have a Flash application that ties into business logic on your server
    AND
  • This application is not served over a secured (https) connection
    AND
  • This application takes a very specific set of instructions directly from the HTML it resides in
    AND
  • Your middle tier services layers allow for any query on your data without validation or sanitization
    AND
  • You have placed a"cross domain" file on your web servers that allows ANY other Flash application on Any other domain to access your domain
    AND
  • You have not already fired your IT manager for the all of the above being true

(btw, I have NEVER seen all of these things in one place at any company doing business on the web)

 

The Last Word

I am always amused by those that see things only as black and white (or more appropriately only as "ones" and "zeros"). Flash is "bad" … Flash is "good". Both can be true at the same time. Flash is bad if you do not execute well, if you are new to the technology. Flash can be very powerful in the right hands and in the right circumstances.

 

add blog to del.icio.us

add blog to technorati

dig this story

A good article by Elizabeth Montalbanco of IDG News Service was picked up by InforWorld:
 

http://www.infoworld.com/article/07/12/20/AIR-RIAs-raise-Adobe-profile_1.html

She discusses how Adobe is becoming a “major player” in the platform market:”Over its 25 years, Adobe — a company known less for its dazzle than its dependability — has quietly turned itself into a multibillion-dollar software vendor on the strength of technologies that have become essential to computer users. Creative professionals would be lost without the graphic-design tools Photoshop and Illustrator, and Adobe Acrobat and PDF have made it easy for everyone to share documents cross-platform.But with its acquisition of Macromedia two years ago, Adobe also took on another role — as pioneer of providing a next-generation platform for developing rich Internet applications. RIAs, as they’re called, provide more intuitive and multimedia-rich user experiences on the Web than typical client/server or desktop applications, and are now in high demand as users expect more from their multimedia Web experiences with the rise in popularity of sites like YouTube and Facebook.” 

Disclaimer: I was interviewed for this article, so my opinion should be taken with a grain of salt :)

EffectiveUI is looking for several very unique individuals. If you have the passion, humility and intellect to produce the best rich Internet applications for the worlds largest brands, email me at “jobs @ effectiveui . com” and we’ll get back to you quickly:

  • Senior Flex Architect – Lead a development team from architecture through deployment. You also gotta love to roll up your sleeves and “get stuff done”! We only hire the top 2% of all RIA developers, so come prepared for a tough interview :)
  •  Experience Architect – Help our clients define how a project gets started and executed. This multi-disciplined role requires you to help strategize with our clients on system architecture, RIA best practices, and exceptional usability. Think of this position as a technology savvy product manager. 
  •  Training Manager / Community Evangelist – Define how the next generation of developers “make the grade”. This role primarily requires a deep knowledge of Flex, but will quickly grow into other technology disciplines. You will need to teach and speak in front of small to large groups of people, do a little travel, and to run our Flash & Flex User Group here in Denver.  

– Anthony

%d bloggers like this: