I spend a lot of time thinking about how to get more people to use Flex. Recently, I’ve been focusing more of my thought on the “why” rather than the “how”. For example, I think it is more important to explain why you would use an animation rather than how to create an animation.

Kathy Sierra’s recent blog entry about digital cameras really clicked with my recent thinking. In it, she relates an experience she had in taking a class on digital SLRs. Most of the people in the class were “stuck in P mode”, which is to say that they relied on the camera to automatically choose all the picture settings.

At first glance, this looks like a usability problem. Maybe it’s just too hard to figure out how to adjust all the settings. However, Kathy analyzes the situation differently.

It wasn’t simply a camera problem–it was a photography problem. The camera manuals describe precisely how to turn the dials and push the buttons, but never tell us why we’d want to. They focus on the tool rather than the thing the tool enables (taking pictures). What good does it do to master a tool if we haven’t understood (let alone mastered) the thing we’re using the tool for?

I think she’s absolutely right. Knowing that you push such and such button to bump up the exposure settings by half a step doesn’t help you take better pictures. And me telling you how to attach an item renderer to a data grid doesn’t help you build better apps.

I’m still thinking about this one. In the meantime, what would you say to someone who wanted to build better applications? Are there any resources you would point them to? Advice you would give them?

“Inmates are running the Asylum”. One of the best books I’ve ever read on how to approach application/interface design. (with the user in mind) I think it has to do more with learning a different mindset rather than just blindly following “best practices” because every user group has a different set of priorities. The key is asking the right questions throughout the design process.

Joel Spolsky’s ‘User Interface Design for Programmers’ is a good confidence builder (basically pointing out that app design is a skill that can be learnt, like a programming language can, not a dark art).

I think the biggest thing that holds many people back, though, is the lack of good examples – most developers in their daily lives use bad software – most IDEs aren’t well-designed, most of us work with pro / power tools that we’re willing to invest time in learning to become productive. We quickly become blind to faults. Using great software would be a step forward.

There’s also a lack of management commitment towards great application design, largely because there isn’t an obvious commercial advantage to having the best designed software (it rarely ‘wins’).

I think the best way to encourage Flex usage is show some amazing examples. Show what you can do with Flex that you can’t do with other technologies. Before Google maps, not many people considered AJAX a viable tool.

I think your animation example is a good one. People have been so turned off by gratuitous animations getting in the way, that they often don’t understand how animations can help users understand transitions. In addition to being much easier to code, flex animations are smoother, and the code under the covers is much nicer than html/dom/javascript animations. These subtleties are hard to explain. To get the point across, the value of animations must be demonstrated with concrete examples.

” In the meantime, what would you say to someone who wanted to build better applications? ” – I’d say that anyone wanting to build rich, expressive applications with Flex needs to be patient and recognize that this is a talent in itself, and not something that any developer can just pick up.

I’ve been developing an extremely (1000’s classes) large Flex 1.5 application for almost 2 years now, and its become clear that managers/customers who saw some of the original Flex demo’s were expecting this kind of rich functionality from the word go, developed by J2EE developers who had never programmed a UI in their life!

To me, Flex offers two very solid, powerful development paradigms (the OO programming model and the ability to create expressive UI’s) but they still require two totally seperate skill sets.

“Head First Design Patterns” by Kathy Sierra is an excellent book for AS developers despite the fact it’s written in Java. All of the examples are easily portable to AS and I’ll be posting my source code ports on my site some time soon. It’s not exactly the “why” you were looking for but it answered a lot of my “why” questions when it came to planning and pattern choosing. Just thought I’d mention it since it was one of her books. — JOR

I’ve often found Macromedia help/livedocs tutorials to be impenetrable, wondering why they would ever do that…and having to mentally disregard why they did that and just learn the darn procedure, so I could bend it to my will. If that makes any sense…What I really came to kuwamoto to say is, “how’s Flex 2 OSX coming along”?

As the co-founder of a company that is betting on adobe technologies, I agree that the “why” is more critical from a business prespective.

It is not as easy to exploit the strengths of the platform as it seems.As a geek it is easy to be consumed by the potential of a platform.But until you nail the “why” you won’t have an intriguing end product.

For the application that we are about to launch I have tried to highlight the reasoning in this short video.(www.iscrybe.com).Would love to hear your comments.