Joeflash’s Enigmacopaedia


What kind of SWF Developer Are You? (and how to hire them)

Posted in Flash, Business, Flex, Adobe, Workflow, Employment by Joeflash on the January 3rd, 2008

A few days ago I participated in an interesting discussion on Paul Ortchanian’s blog about approaches to SWF development as a way of categorizing the-dude-who-builds-SWFs, and it made me think of all those conversations I’ve had with designers, developers, project managers, recruiters and HR people looking to get a handle on this.

In response to Paul’s post, since there are more than five ways to build SWFs, what with open source compilers out there, I am not sure if it’s fair or even accurate to refer to the kind of developer by what tool they use to compile a SWF file or application. In my view the terms Flash Developer and Flex Developer are pretty accurate descriptions of job categories, though there could be further clarification to be sure.

I would categorize “SWF developers” or “Adobe-based programmers” into five types:

1) The Flash Designer

This is more of a graphic designer who specializes in animating with Flash, and knows enough coding to muddle through creating some visually stunning experiences, but is unable to code any kind of data-enabled or component-based application. They generally excel in illustration, 3d modelling and animation design, with a little bit of AS and HTML/CSS coding experience.

2) The Flash Developer (otherwise known as the “Flash Designer-turned-Developer” or “ActionScript Programmer”)

This is the AS2/AS3 developer who more often than not uses the Flash IDE for development, but may also use a third-party dev tool such as SEPY, FlashDevelop or even Flex Builder. They are not particularly interested in using MXMLC or the Flex Framework, and stay closer to visually expressive than business-focused application development. Their advanced knowledge of ActionScript enables them to create visually stunning dynamic animations using things like PaperVision3D and physics engines. Most often this type of developer started off learning Flash from a designer’s point of view, and graduated into ActionScript development later on.

[ update 2008-01-04: ] Another term for a Flash Developer might also be “ActionScript programmer,” who may or may not have started with the design tools in the Flash IDE. A PHP/ASP/CF/etc. programmer who now codes primarily in ActionScript without using Flex or much of Flash’s design tools can also be considered a Flash Developer.

3) The Visual Flex Developer (otherwise known as the “Flash-turned-Flex Developer”)

This is a Flex developer who grew up with Flash, became a Flash developer, and decided to migrate to Flex rather than focus exclusively on AS3 development. These developers may not be as knowledgeable as their Java/.Net/C counterparts in building architectures, but their intimate knowledge of the Flash runtime’s capabilities, as well as the ability to code expertly in low level AS3, make them equally as valuable.

[ update 2008-01-04: ] The Visual Flex Developer might also be adept at enterprise development, but their strongest skill is client-side programming rather than server-side programming.

4) The Enterprise Flex Developer (otherwise known as the “[insert language here]-turned-Flex Developer”)

This is the Flex developer who started out in other languages such as Java, .Net or C, and has recently graduated to Flex. They don’t know a whole lot about the history of ActionScript (if at all), and they don’t care about timelines or animation — they want to focus on patterns, server-side integration, data-enabled applications, enterprise development, frameworks. They may be a novice in the particulars of the Flash Runtime and low level AS development, but they generally know a lot more about advanced programming concepts than most Flash developers. You hear most of the bitching about “why AS is not more like [Java/C/Python etc.]” from these types of developers.

[ update 2008-01-04: ] As was pointed out to me by a colleague on FITO, it is conceivable that an ActionScript programmer with experience of server-side coding and enterprise deployment might take up Flex, in which case they would also be an Enterprise Flex Developer, hence the assertion “[insert language here]-turned-Flex Developer” remains true, even though the term implies that the stronger skillset is in server-side languages and enterprise development workflows, with client side development in ActionScript & MXML being second.

5) The Flash Platform Developer (otherwise known as the “expert jack-of-all trades swf developer”)

This is someone with a lot of experience in coding for visual Flash applications built in AS2 and AS3, knows how to develop in Flex, including enterprise application programming such as design patterns and architectural frameworks such as Cairngorm. They can also develop for most of the Adobe SWF-related technologies such as FMS, LCDS and AIR and Flash Lite, including knowledge of server-side languages such as Java, CF and PHP.

Although generally used as an umbrella term which can apply to any one of the preceding developer categories (#2-4), I consider the title a mark of mastery (or mastery-in-the-making). I’m not too sure if one can consider oneself a master of such a constantly evolving range of technologies, so I use the term loosely.

[ Note 2008-01-04: for a primer of Flex-related technologies, read “Flex 101″ parts 1 and 2 of the series, free on Community MX ]

Like Paul Ortchanian, I have an issue with the how low the salaries still are for the very competent and advanced AS3 developer. Though there is a tendancy by the industry to categorize the above types of “SWF developers” according to pay scale in the order above, with #1 being lowest to #4 as the highest paid, with the exception of #5, all four types of seasoned professionals should be worthy of an equally high salary in my opinion, with #5 worth a slight increase beyond that.

I think the reason that Flex developers generally get paid more, is that Enterprise Flex Developers ideally have a knowledge of enterprise development that most Flash Developers do not posses, and Visual Flex Developers have the ability to code a Flex application, with all its architectural complexity, get down and dirty with the ActionScript code, and add some expressiveness to the application to boot. And, as it so often happens, salaries are driven by market forces: experienced Flex developers (whether Visual or Enterprise) are in high demand, whereas there is a perception in the interactive media and advertising industries that experienced Flash Developers are abundant, including a tendency in the industry to commoditize creative talent, so their salaries are generally lower.

I personally became a Visual Flex Developer (aspiring towards Flash Platform Developer-dom ;)), for one, because once I tried Flex Builder (and more particularly Eclipse), I could never go back and code in that stone age editor in the Flash IDE. (Flashdevelop has since provided a route for me on my AS3-only projects.)

Secondly, by acquiring skills in Flex application development, I was able to take on a wider variety of freelancing jobs: I can take on an AS3 project if I’m in between Flex projects, so the work is more consistent.

Third, building enterprise Flex apps using patterns are more challenging for me than building pure AS3 projects, most of which are pretty simple in their use of OOP and design patterns.

The industry that tends to develop Flex apps is also different, the client expectations are different, and so are the projects. Flex projects I participate in generally are less about procedural code born out of impossible deadlines from a “let’s just get it out there in time for the next marketing launch,” and more about building robust applications. So the timelines are longer, the project planning and workflow is better thought out, so there is less stress, for more money. I realize I’d been looking for that kind of workflow and clientèle all along in my Flash projects, so to find it being a Flex developer really made the transition a non-decision for me.

I have also talked to more than a few project managers and HR people who seem to be following the growing trend to hire Flex developers with little or no actual Flex development experience, which flies in the face of all common sense. Although I partly understand the reasoning: unable to find Flash Developers with sufficient experience in Flex and backend languages, design patterns and large-scale development, companies are looking for Java and .Net people who can pick up Flex.

But I’ve yet to see a workflow where a Flash Designer and what I call a “Novice Enterprise Flex Developer” can talk on the same wavelength most of the time. What a lot of teams need is a Visual Flex Developer, or even better, a Flash Platform Developer, to bridge the gap between the designer and the enterprise Flex developers. A well-rounded Flash platform RIA development team should have Flash Designers, Visual Flex Developers and Enterprise Flex Developers in its workflow, as well as server-side developers and junior support staff.

With a well-balanced team possessing the range and depth of expertise required, an enterprise project has a much greater likelihood for success.

3 Responses to 'What kind of SWF Developer Are You? (and how to hire them)'

Subscribe to comments with RSS or TrackBack to 'What kind of SWF Developer Are You? (and how to hire them)'.

  1. Joeflash said,

    on January 4th, 2008 at 5:32 pm

    Note there has been some interesting cross-discussion going on about this topic in the Flash In TO user group forums.


  2. on January 10th, 2008 at 1:42 am

    […] e person who builds SWF files for a living, and what exactly do they do?” Following my previous post and ensuing discussions with fellow developers, I thought it […]


  3. on January 14th, 2008 at 11:49 pm

    […] t no harder than AS 2.0): further insights on Colin Moock’s commentary. Jan. 3: What kind of SWF Developer Are You? (and how to hire them): initial thoughts […]

Leave a Reply