Can Flex be Design Driven?

I met up with Kenny Bunch, his wife, his brother Phillip, and Dave Buhler yesterday after work. Our goal was to hang out, and talk tech. Kenny’s pretty well known down here in Atlanta, mainly because of his Turner & CNN contacts. His programmer background also adds a unique perspective on things since he’s worked in a few different types of environments. He now does his own thing.

One interesting point he brought up was in explaining how parts of Turner (Cartoon Network) work in regards to Flash Development. He was describing how projects are design driven, stemming from the fact they are in the entertainment industry. As such, designers typically have the final say on how things are made, and the design drives the project. I understood what he was saying, as my first job in the industry was with one such type of firm.

What I didn’t think about was how he described it. Design Driven projects don’t really mean much to designers; they are designing things, duh. To programmers, however, it means a lot. I’ve gone the opposite direction. As my projects grew in scope, so to did the driving forces behind them. More and more became business driven, and finally database driven. Where I am at today is a total 180 degrees from where I was 6 years ago.

Before it was, “PSD ownz ju!”; the design comp is the end all be all. You build what’s in the design. Now, most of my projects “work” based on how the database is designed, directly correlated to whatever business we’re building things for. The design is from signed off mockups. These mockups, however, don’t drive the project per say. You can sign off on mockups, and say that the “application needs to work like what’s designed in the mockups”, but you don’t CODE to the mockups; you code to the whatever the server-side developers and you the client developer work out. This, of course, all stems from how the database is designed. Granted, there is tons of leeway, and things you can do on the middle tier, and client to help simplify things, but bottom line, the db is the driver.

Client’s, however, don’t see db, middle tier, or even some client level programming changes. They either see a new bug, working functionality, or a design change. Thus, it’s easier for them to equate progress with visual changes which unfortunately is in direct contention with how db driven projects are made. It’s easier in Rich Internet Applications because we have more of a design presence than Visual Basic or .NET applications for example. Visual changes are more apparent, contribute to good experiences, and have immediate, and a visually, recognizable presence.

It made me wonder if Flex could ever be used in a design driven environment. For example, I’ve seen some mention of Flash Developers who have entertained the idea of utilizing Flex Builder 2 as their primary coding tool for ActionScript, but will use Flash primarily for the actual building of the application. It makes sense once Flash 9 is released since Flash 8 only supports ActionScript 3 and Flex Builder 2 only supports ActionScript 3 (unless you go download Blaze, the Flash 8 update that has AS3 support in an alpha format).

Back in the day, we’d all use Flash MX 2004 to compile a SWF with our components in it. We’d then spend the rest of our development in Eclipse using a FAME setup. This was really desirable, mainly because of the speeds which incremental compiling gave us (1 second vs. 1 minute and a half for 1 line of code being changed) and better code debugging tools. Flex Builder 2 has the same thing, so it’s only natural to want those things. You can use Flash Development Tool now, no doubt.

At the time, we did have a pretty much design driven project. It was still equally driven by DB, backend, and other functional needs to, so in retrospect, I’d say we were all on equal footing pretty much stemming from the fact that all matter, and have equal relevance in product development.

Anyway, I just thought it curious. I know Flex 2’s main goal is adoption; getting traditional developers involved via the low barrier of entry. The flipside is seeing if traditional Flash Developers coming from design driven environments can somehow adopt Flex into their workflow.

In building a prototype game, it’s really not too bad. You still have to use 2 tools, using Flash for the actual design & animation, but since assets can now be mapped to classes, it’s cake to get ’em into ActionScript only projects (no Flex components or MXML). Furthermore, you can use an ANT script to ensure the latest compiled SWF assets are copied to your various directories for embedding into other SWF’s, or for use at runtime.

This comes back to the fact that the perceptions of the Flex developer community will take awhile. When they look at it, they see a lot less things to worry about: no memory pointer crap, no browser or OS related issues, and the ability to talk to ANY backend all simultaneously.

When a designer looks at it, they see the ability for their designs to look as intended. Their fonts, transparency, and layout all exact on any browser and any platform. They don’t have to design for the lowest common denominator like they do with web design, and this prevents compromising their vision.

The latter is one of the great facets of the Rich in Rich Internet Application that I fear will be a long while before traditional development shops recognize what they are ALSO getting in addition to a ubiquitous, predictable, and lightweight runtime engine.

I think Flex developer shops (aka former Java dev shops, w00t!) will perceive this as not a problem. Most designs in my experience are conservative, and done with minimalist implementation in supporting to not even acknowledging the customer’s brand.

This is total opposite from how traditional design work is done. A disturbing parallel is how a lot of people interpret Interaction Design, Information Architecture, and Designers as the same role. If you are a smaller company, that makes total sense, but that doesn’t make it ok.

Maybe the aforementioned benefits, ubiquity, predictability, and lightweight are in fact “good enough” in a pragmatic sense for traditional developers coming to Flex. While I feel I can clearly convey the benefits of good design to those I work with and the clients I have, to them, they are more interested in functionality vs. presentation. Again, this stems from the fact that they are NOT in the entertainment industry. I still think there is room for serious growth, and designer integration. Gamers’ would get it…

Obviously, I don’t think X-Men: The Last Stand design style should be implemented into Enterprise applications. Maybe 2Advanced, though, their new design is off the hook! The point here is that you DO have those kind of design capabilities, in addition to all the other developer benefits of the Flash Player. I say you should take advantage of them. Use them to beat your competition. If you don’t have qualified designers on staff, contract them out and/or hire them and involve them in your development process (in the initial spec stages, not the implementation ones).

Microsoft’s Expression is going to have the same problem, only worse so. At least Adobe‘s products work in both markets. Your designer can use Photoshop and Flash whilst your developer can use Flash and Flex. Some of these apps have serious seniority, placement, and strong designer / developer followings. Expression (Sparkle and Acrylic), have neither, although, again they both stem from (now) the same company.

The only catalyst I can see for change is Breeze, the ultimate Rich Internet Application. Good design, good functionality, and extremely useful to boot. Frankly, I think the bar can, and should, be set higher on the design front. We have capabilities others don’t; let’s all use them to a competitive advantage.

6 Replies to “Can Flex be Design Driven?”

  1. I actually see myself phasing out Flash altogether, with the exception of creating animations, and quick prototyping. The Flex framework makes layouts so much easier, and the components are easily skinned to look like pretty much whatever I want. It’s also a ton easier to do slick programmatic transitions in Flex.

    Even sites for the entertainment industry boil down to view states – it’s just that a lot of them have some cool animation between the states. So, I think that the same Flex capabilities that work well for traditional applications can work well for more design-centric apps also, it’s just that the developers may need to get used to a somewhat different way of thinking.

  2. ummm…yeah …. I don’t know. It’s weird cause I have to be developer / designer most of the time.

    It took a while for me to get into a flow because usually I’m a designer 1st then developer.

    Most people might not agree, but I hate stuff that looks alike from the design perspective. I know it’s more work, but I’m usually thinking of how I can change a component visually as oppose to extending it’s capabilities.

    I use RoR more and morenow and got in a conversation with another the other day who HATES Flash cause it’s ‘not open’ ummmmm….wtf!? I also run into many programmers who get excited because it works and says ‘oh yeah, put some colors on that.’ …ummm again WTF?!

    After some time I believe that I probably start thinking design first these days. However not in the traditional sense of colors, fonts, etc.

    I usually start with HOW do I want to visually represent something. I want to get to prototype as soon as possible with basic layout and interaction functionality. From there if the back end has to be developed it can and if the front end has to be refined (fonts, colors, animations, etc.) then it can at the same time.

    Right now that ‘thought’ process works better for me. Will it change, I don’t know, maybe. However over time I’ve realized that looking good AND working good to me are equally important.

  3. Tom has a good point. If properly skinned, you can work with the Flex framework, and no one will even recognize it. That’s exciting. BUT, it’s kind of heavy, and that means a long, boring download for a flashy entertainment site. That’s not exciting. Flex is designed with bigger applications (with lots of opportunities for components) in mind. For an entertainment site, you’d be better off finding something lighter if you want it based off basic components and views like that.

  4. Jesse,
    Thanks for making the long trek into town. To your point, I would say currently Flex can be used with design to an extent. Theoretically you could create the same application you might create with Flash, design wise and all. However, it depends on how you are defining design. Like we talked about and I think you were able to explain, most of the applications you have been working on are very business based, form driven apps. These are perfect for Flex, and ridiculous for Flash. On the other hand, you have marketing/design apps. These are a different breed. To your example, X3 could be done in Flex, but should it? How long would it take in comparison to Flash? Flex is good with an existing component structure. You have elements you drag and drop in. In Flash, designers are creating the elements right there in the canvas, there vision (pixel by pixel) is translated directly. It is not you or I twisting their elements to work. To this point, both tools serve different needs. Both needs are valid, creating the need for the separate tools. I currently use both and love both. You pick the tool that fits the job. Adobe has really moved in the right direction. Now I’m interested to see what Appolo brings to the fold. My guess is a Mozilla based desktop engine.

  5. PS. Remember that day when I was telling you where I thought MM would go with all their tools, player, etc. Interesting to see where they are at ;). What gets me know like I said is where they are going. I have high hopes.

  6. hey jesse –
    well i have to say i gave flex a really close look. as a mac user i installed parallels, bought xp pro and installed the flex trial. something about flex just doesnt

Comments are closed.