A very interesting question, or rather comment, was raised a few weeks ago in a LinkedIn discussion titled,
“Why Am I in Demand?” - Personal Branding for Mature Workers
The problem with this question, other than being a blatant grab for eyeballs, is that it’s not targeted in the least towards the Flash community. But it does underlie a perception I’ve noticed amongst some Flash designers & developers who may be just starting out, or are looking at stepping up their profile in the community and the job market.
I’ll save you the tedium of watching this video blog: according to the author, there are 5 questions you need to ask yourself:
1. What makes me tick?
2. What can I deliver?
3. How do I make my workplace better?
4. Why am I in demand?
5. Why should you hire me?
First, if you’re interested in becoming an office drone, with a job as exciting as the monotone delivery of the author’s video blog post, then by all means answer these questions. But if you want to have a kick ass job or a freelance business that you’ll love, ask yourself this:
1. How well do I communicate, verbally and on paper?
2. Do I have the chops to get the job I want, and if not how do I acquire them?
3. Do I care about sharing my discoveries and fostering a sense of community?
Second, the very idea that a person would be reading a blog dedicated to “Personal Branding for Mature Workers” is just wrong. I’ll tell you why:
It doesn’t matter how old you are in this industry. That’s a myth.
I thank Adobe for aggregating this blog on the MXNA. Without aggregation, posting on a blog feels like whispering in a desert: someone may hear you, but you’ve got to shout, so to speak. :)
For those of you new to this blog, here are the most recent posts:
- Jan. 3: Learning AS 3.0 is Easy (or at least 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 on New Job Descriptions for “Flash workers”.
- Jan. 4: Why Flex for RIAs?:
authorative Flex adoption evidence.
- Jan. 5: I Do Like Writing Books, Sam I Am:
an essay on the merits of tech writing.
- Jan. 7: More Reasons to Use Flex
- Jan. 10: So You Want To Hire a SWF Developer?:
a whitepaper on updated job and skill descriptions for “Flash workers” in the current marketplace.
- Jan. 13: Flex 101: Part 14 - Using the Event Subclasses:
my latest Community MX article.
- Jan. 14: Staffing Flex Developers (And the Upgrade or Die Syndrome):
be all you can be.
Today I came across a very interesting post by Yakov Fain, who comments on staffing a team for your Flex project. In it he divides the different kinds of roles and skillsets necessary for a well-balanced team into three categories:
- Flex GUI developers
- Flex component developers
- Flex architects
- Flash Developer
- Visual Flex Developer
- Enterprise Flex Developer
The interesting thing is that Yacov comes from a background as seasoned Java programmer and project manager with substantial experience in forming teams of Flex developers, so you gotta know he’s eaten the dog food an drunk the cool-aid on this topic, to mix metaphors. Whereas my perspective is as a Visual Flex Developer/Flash Platform Developer, having been on a few such Flex development teams in my consulting work over the last few years, and seen them succeed or fail in part based on the presence of balanced skillsets as described by both Yacov and myself.
Yakov’s assessment nails the staffing situation on the head, and feels validating when I say to a prospective client (in different words), “Hey that’s great that you have a team of Java developers who have just picked up Flex, but don’t you think you might need a few Flex developers (like me) who have actually grown up with the technology and know how build a decent interface?” ;)
Of course the converse can be true, like when I’ve been asked to build a full-blown data enabled enterprise application, and I have to tell the client, “well, you might need a Java or ColdFusion developer on your team who knows a bit more about these things than I do”. I am not ashamed to admit it: (for the moment) I am not a server-side enterprise developer. Tools for the job.
I also occasionally meet Flash Developers or Visual Flex Developers who think that they need to learn Java and enterprise frameworks just to compete in today’s Flex development marketplace. I myself struggled with that question until quite recently, convinced I had to go out and get a Comp. Sci. degree just to get ahead. But in the past six months of consulting, the market has proved otherwise, as clients find my depth of experience with ActionScript 3.0 and the Flash Runtime (amongst others) to be an invaluable asset. I’ve even ventured into the realm of architectural planning on my last few projects. So there is hope yet for us “Flash boys” (and grrls ;)).
So now I tell some of my colleagues still struggling with the issue of “upgrade or die,” that in this rapidly expanding market for Flash and Flex Developers, there is a place for “Flash workers” of a wide range of skillsets. Thermo will open up that vista even more when it comes out.
It’s all good. :)
Almost every time I speak with a new recruiter, I find myself explaining what a
“Flash Platform Developer” is, and what the skills listed on my resume mean in the overall context of RIA development. Or having conversations with project managers and HR personnel about why it may be necessary to hire two different kinds of Flex developers, unaware of the distinction.
Lurking in the background of such discussions was a subtext, an underlying question: “what do we call the 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 might be useful to publish an article on the topic of (re-)defining these developers, given recent and upcoming changes in the technology, and in the employment marketplace.
This free Community MX article, entitled ‘So You Want To Hire a SWF Developer?‘ serves as a whitepaper for recruiters, HR personnel, managers and developers looking to get to grips with defining and hiring various people who “build SWF files for a living.” *
* Okay okay, so you got me, smarty pants: any one of these developers can publish for Flash, AIR or Flash Lite runtimes and not author a SWF file, I had to call them something…
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.
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.