17
Jan
2007

Keeping the Flex ecosystem humming

Most of us on the Flex team come from the world of desktop software, which has a certain rhythm. You plan, you prioritize, you build it, you test it, and you ship it. During this cycle, each turn of the crank takes 12-18 months.

The Flex project is similar and it’s not. On the one hand, the Flex product is like desktop software in that we probably do want to keep it stable for a while before releasing new functionality. When people are depending on your framework, it, you shouldn’t change it every month.

On the flip side, the Flex team has a responsibility to “keep things going” on a steady basis. In that way, it’s very different from desktop software. To keep the Photoshop community going, the best thing to do is to ask the engineering team to put their heads down and to keep working on the next killer version of Photoshop. To keep the Flex community going, you want the team to be more actively engaged throughout the process. Most of the dev team is active on lists like flexcoders. People like Ely do experiments with Flex and post about them.

One of the most important pieces of the puzzle is documentation. We are trying to find new ways to move faster on getting documentation to customers, and as part of this, the doc team is now posting new chapters to the Flex documentation as soon as they have written them.

There are other “ecosystem” plans that we haven’t put into action yet (shhhhh!). In the meantime, what do you think the Flex should be doing? What would help you? What would help the Flex community in general?

14 Responses to “Keeping the Flex ecosystem humming”

  1. Dimitrios Gianninas

    I would like to see an apache jakarta like website for all the flex-like component/classes ppl are building. With easy to access ASDoc, where we can easily download the SWC and just drop it into our projects.

  2. Ben Forta

    Dimitrios, sounds like we should add an ASDoc type enhancement to RIAForge.org.

    — Ben

  3. Igor Costa

    Kuamoto

    The best part of this it’s listener gateway from all flex team gave them to the community I’ve saw the growing ecosystem into blogs about flex exploding like a atomic bomb.
    But you’re right the puzzle for sure is the docummentation. Most clients and friend who codes into Flex I usualy listen “The docummentation could be more detalied about this topic”. We know that actualy the team of Doc. released their blog and Wow perfect idea. And the idea of consulting the most released updated documentation are a plus. Each time I access the livedocs of Flex has new itens and improved documentation.
    You probably know the the Robo Help system has brought to all of us and in my point of view could help those of them.

    But to finish this my long term comments, as you asked.
    What do you think the flex should be doing?
    Flex should be doing more community example site, to showcase much more than only show showcases included in the derby, Prizes for example T-shirts could delivery to community developers and in case could exist a Flex Community Expert as representative. For those examples with source code could help lot of people listed in the flex product page instead only the derby winners.

    What would help me?

    You guys do bunch of work, I’m very satisfied with growing work of you guys do. hehe But… a little comment, increase the details into the Programming Actionscript 3. Just that.

    What would help the Flex community in general?
    I guess this question could be resumed in the other two above. Kind of stuff could be help those of who write or read code or related about Flex. Overall the wizards and some other extentions to Flex Builder it’s a plus.

    So, Thanks for all.

  4. JesterXL

    Most common complaint I’ve heard is examples. The examples in the LiveDocs under most of the classes are frikin’ great. To add, smaller apps that expound on those would really help. While the lack of example apps has helped in the consulting sphere, its not good for us in the long term.

    Basically, more stuff like this:
    http://cairngormdocs.org/

  5. Tariq Ahmed

    Hey Sho. Great Docs can give Flex another edge over the competition.

    I strongly urge the Flex product management team get a download from the Coldfusion product management team and learn about their philosophy. I used to be a hardcore C/C++ guy back in the day, then Perl, and eventually CF. Anyone who encounters CF loves it for how quickly it makes you effective.

    I think Flex let’s you get effective to a basic level fast – so at the start the reward factor is huge; but you face exponentially increasing difficultly in getting to the next skill levels (intermediate, advanced, expert, god/Jesse Warden).

    Where as with CF, the progression is quite linear. And in fact, many CF developers just stay at intermediate, because they can be effective with the technology at that point. As a manager you have to even force them to become more advanced. Where as with Flex, it’s reverse, you’re forced to get advanced if you really want to be able to do anything beyond something basic.

    I’ve been spending a lot of time pondering over why this is. Some thoughts are:

    – The CF philosophy is to abstract complexity. It’s all about making CF do the hardwork, so that you don’t care or have to. I want the Flex 3 theme all about making stuff easy.

    E.g, populating a datagrid with data, easy. But JSP, PHP, CF, etc… coders think “I’m going to get my data, loop over it, and dynamically build my rows. And depending on data I’m going to do conditional displaying”. So if you had an 8 column datagrid that has like a roadmap on it, and when the next row of data changes to different quarter than the previous, programmatically insert a row (that’s not based displaying data from the dataProvider) with a single column that spans all 8 cols…

    HTML wise, easy (psuedo code):

    if (currentQtr != lastQtr)
    $currentQtr

    But in Flex, you start out as a beginner populating a basic datagrid and instantly feel like a hot shot, but then you get this one *tiny* (and what would be a zero brainer in your current proficiency) extra requirement and *BAM* in 2 seconds you feel frustrated because now they have to do a ton of research to figure out how to do that.

    The point I’m trying to make is, much like usability of UI, there’s usability of the language in that the more you can cater to how developers think, the easier it is for them to adapt to it.

    At the same time, the technology needs to evolve to such that the learning curve is much more linear, vs exponential.

    – Even if it were a performance hit, it would help web programmers adapt if there were similar language constructs that they were familiar with. , , and take care of 90% of it.

    – The CF docs are awesome. I use LiveDocs daily, and in one page I know everything I need. There is two types of help I find. 99% of the time I just can’t remember the functions arguments, and I just need a quick memory jog. And the other 1%, which is equally important, is the full low down on how exactly that thing works with an example that I can rock and roll with.

    – CF is an older technology, and so there’s a more mature community driven support structure. So, how can we fast track that for Flex? Unless Adobe is going to throw 500 tech writers at the problem, which even if they did, they’re dependent on how much access they get to the developers. The problem is developers typically aren’t rewarded for documenting for knowledge transfer. Therefor I feel the only feasible solution is a major concerted effort to make the docs community driven. I’m talking more than just posting comments on a page, let the community completely rewrite a page if they need to. Sure have change control in place to ensure consistency, but it sure beats:

    setStyle(): Let’s you set the style

    – Interface Functionality QA Automation is almost non-existant. If I understand correctly you need the non-free FDS to use the Mercury QTP plugin. That’s unacceptable.

    – The Debugging in Flex is crazy awesome. But it’s missing the ability to monitor in real time traffic going back and forth. Often people use third party tools for that (ServiceCapture, etc…). It’d be great if that was built in.

    – I would focus the Flex engineering team on making additional components for the next year. I get asked about that ALOT. Stuff that’s plug and play that doesn’t require more than a 2 step process to get going (none of this copy this file to here, and that file over there, and edit this xml file over there). Plus it’s an additional revenue stream if you sell them as “Bonus Packs”, a la carte, etc… I’m talking industrial strength Calendar components, auto-complete components (beyond just the simple anemic it-basically-works components that have been thrown out there). Again, goes back to making developers effective fast. No one has time to be making that stuff on their own, they need to be able to jam at the speed of business.

    Thx!

  6. Tariq Ahmed

    Hmm looks like angle brackets didn’t take.

    The psuedo code example was:
    if (currentQtr != lastQtr)
    [tr][td colspan=8]$currentQtr[/td][/tr]

    And the tags that would help beginners get to an intermediate level fast by providing similar constructs to what they’re used to are things like mx:loop, mx:if, and mx:table, mx:tr, mx:td.

  7. Dave

    It would be nice if the Flex documentation page indicated when chapters of the Flex Developers Guide have been updated.

  8. sho

    Great comments, everyone.

    Dimitrios: Great idea.

    Igor: Thanks.

    Jesse: I agree about the importance of examples. Thanks for the link. We’ll look at it to see what we can learn.

    Tariq: you mention a lot of great points. As it turns out, most of the documentation team are ex-CF folks, so it’s all the same people. :-) I think the biggest challenge with documenting Flex is that it’s such a different paradigm from what people are used to.

    Your anecdote about generating a table in CF versus populating a DataGrid is a great example. There are several things going on here. (1) In CF (as well as PHP, JSP, etc) all processing happens on the server. In Flex, you have some code to write on the client and some code to write on the server and the two have to communicate with each other. (2) There is a higher level of functionality in the “DataGrid” component than in the “Loop” construct. Because of this, you automatically get things like sorting, editing in place, etc. But this higher level of functionality makes it harder to modify.

    I also agree with your comments about components. I haven’t played around with the autocomplete component yet, but it sounds like you are looking for more. Can you give more specifics?

    Dave: Good idea.

    Thanks for the great comments so far. I’ll pass them along to the documentation, community, and engineering teams.

  9. Tom Ortega

    I second Tariq’s request for more industrial strength components, but would rather not waste the Flex team’s time doing it. Instead, have them build an environment to support “secure” components, i.e. compiled (non-source code viewable) components that people can sell and rest easy that people won’t steal the source. I know that may sound selfish, but let’s face it, Adobe does it. Some of the source to your tags is unavailable for public view. Give that same power to the ecosystem in an easy to use manner.

    When I think ecosystem, I think of things helping each other live and grow. The solid product releases create demand for work . Work creates jobs (full-time and contractual), user groups and market for third-party products (custom components, WebORB). Job positions create a need for training and books. All the above creates a need for conferences.

    As far as I can tell, we have all the parts of the ecosystem. We just need to figure out how to grow each part. Adobe could assign representatives to each of the areas listed above. Ted is a great Tech Evangelist, but there’s only one of him. He can’t be the Work Evangelist, 3rd Party Evangelist, Training Evangelist, Book Evangelist and Conference Evangelist. He can, but sleep is good as is a personal life. LOL

    Silvafug noticed the deficit of skilled Flexers in the Bay Area and we started the free training. John, Ted and I saw a need for a conference, so we started one of those too. It was not hard to start any of those initiatives. In fact, Adobe has helped along the way with each one. We need to package that up though and make it reproducible around the globe.

    That’s it for now. Hit me up if you want more. LOL

  10. Tariq Ahmed

    Sho: Thx. Ya I understand how the datagrid works and the change in paradigm. :)

    The point is you’ll lower the learning curve and barrier to entry if you factor in where people are coming from. I’m not saying get rid of the datagrid, but add additional components that cater to how current web developers think.

    E.g, the mx:table idea can come with a disclaimer about a major performance hit. But Web Programmers will flock to it because they can relate to it, it’s a concept they find comfort with. And, later on as they become more proficient they’ll switch over to the more performance boosting components.

    E.g, the documentation is all about this how things are in the land of Flex, if you can’t figure it out, well that’s just how things are done.

    E.g, a large respository of A La Carte/3rd Party/Aftermarket plug-and-play components that get the newbie into effective land quick because they can spend $50-$500 on a component that they can quick turn around and use, vs spending weeks trying to it on their own.

    In my CFDJ article on intro to Styling with Flex the pattern was: this is what you’re doing right now in CF/HTML/CSS, and this is how you’d accomplish the same thing in Flex with side by side comparisons. That way you can relate the new stuff to the old stuff you’re familiar with.

    These are just examples, there are any number of things you can do to factor in the developers mental model.

    The strategy should be:
    – Get newbies able to get on board quick (which I’d say you’re at a reasonable level)
    – Enable newbies to become effective at an intermediate level fast. And this is the major hurdle right now.

    Right now my perspective is there is a large skill gap. There’s tons of advanced newbies (75% of the flex pop), folks who have figured out how to get simple apps going. But these are the guys and gals that attend Roger Gonzalez’s (super amazing btw) MAX presentation related to Flex performance/modularity and want to understand, but having to deal with excluding libraries and all the pitfalls with that to save memory, etc… Emotionally they’re thinking…”Gosh, we never had to deal with this on the PHP/CF/ASP/Etc side of things, is it really worth going down this road for drag and drop?”

    And then you have a handful of Flex super gods (Tracy Spratt, Jesse Warden, Renaun Erickson, etc…).

    I would aim for 10% newbies, 80% effective intermediates, and 10% advanced. That’s the right mixture that is going to let the flex ecosystem flourish and grow. And then we come up with a plan of attack of how to achieve that.

    This is the reality: Intermediate and Advanced Level Programmers of traditional web technololgies are EXTREMELY effective at what they do. It is very difficult emotionally to go from being amazing at something and then go to being a newbie and struggling.

    And, because they’re Intermediate and Advanced they work at jobs with tight deadlines, they have to give accurate target dates, work estimates, etc… It’s quite a leap of faith to take a risk and jump on board a new technology when you have a deadline. It’s so easy to quickly fall back on what you know because you can garauntee delivery. So, if they can’t quickly convert themselves from newbie to effective intermediate, they’ll continue to keep falling back on what they’re currently using, and continue to use Flex in small low profile apps with the hopes of one day getting good enough at it.

    Tom: The reason why the Flex team needs to kick additional components off, is because of what you point out later. “Silvafug noticed the deficit of skilled Flexers…” If the Flex team doesn’t do it, who will? The community just isn’t there yet.

    Lastly: For us non employed Evangelists… :) Perhaps we need to be working more in unison, vs all willy nilly and disparate. It may be more effective for guys like Ted to be directing a concerted effort that gets all the evangelists executing on some kind of a plan of attack. As Tom notes above, Ted can’t be doing it all himself. (thinking outloud). The first step is we need baseline metrics. And I’m guessing you already do. But it would be good to track and publish (even if in a more closed forum) Flex community demographics. There are some public bits and pieces of info (# of users in flexcoders, flexcoders.net, etc…).

    Hmmm yes…. this giving me some ideas…. :)

  11. Tariq Ahmed

    God, what’s up with me and my book sized comments. :)

    Clarification: “For us non employed Evangelists” – I’m employed, I meant Evangelists who aren’t employed by Adobe.

  12. greg h

    Sho,

    Thanks for asking!

    I have put my request up here:
    http://tech.groups.yahoo.com/group/flexcoders/message/62063

    g

  13. greg h

    Hi Sho,

    Another “ecosystem” suggestion: FlexTV.

    There is an ever growing catalogue of streaming web presentations on Flex. But I do not know of any centralized site cataloguing them. It might be nice if such an indexing of streaming video titles on Flex could be cross posted on both Devnet and Flex.org. (fyi … the closest I know of an existing catalogue is http://carehart.org/ugtv/list.cfm, and though searchable it includes all Adobe technologies, not exclusively Flex.)

    I think it this would be especially helpful in disseminating the information necessary for getting Flex developers to the intermediate and advanced levels (as Ahmed suggests is necessary).

    One source that would be amazing to make publicly available is links to Acrobat Connect recordings of the MAX Flex sessions. Having attended, I found most of those presentations really helpful in my getting a much better grasp on intermediate and advanced Flex topics.

    The only MAX presentation that I already know of a public link for is David George’s “Tips and Tricks for Delivery More Responsive Flex Applications”:
    http://admin.adobe.acrobat.com /_a300965365/p71169528/

    Also, an earlier version of Jesse Warden’s presentation on “Flex for Flash Designers: How Flex and Flash Work Together” is available streaming on the net here:
    www2.sys-con.com/webinararchive.cfm?registered=on&pid=wc_rwf6_s06warden

    Having the other advanced MAX presentations available on demand could really be beneficial for the Flex ecosystem. Such as the presentations by Roger Gonzalez, Alex Hariu, Alex Uhlmann, Ely Greenfield, Steven Webster, David Zuckerman, Thomas Gonzalez, etc. Going forward if we can record presentations like these once, developers can watch them for years to come. And for learning, hearing the lecture and seeing the demos is much more important than just seeing the slides.

    Another existing source is the Adobe Developer Week presentations (from June 12-16, 2006):
    http://www.adobe.com/communities/developerweek/

    For beginner titles, I love the Lynda.com titles by Dave Gassner:
    http://movielibrary.lynda.com/html/modPage.asp?ID=248
    http://movielibrary.lynda.com/html/modPage.asp?ID=290

    And of course there is the excellent DVD title by James Talbot over at Total Training (it would be great if we could get this streaming online):
    http://www.totaltraining.com/prod/adobe/flex2_ria.asp

    g

  14. greg h

    Sho,

    Another thought on “ecosystems”.

    Don’t know if you have seen this post by the ColdFusion product manager, Tim Buntel:
    http://www.buntel.com/blog/index.cfm?mode=entry&entry=54DB3FFD-4E22-1671-5BDCF74737695F12

    Be sure to see the comments. Several ColdFusion developers have now posted back profiles of themselves.

    It might be fun if someone on the Flex product team might be able to get a thread like this going too :-)

    g

Leave a Reply