An Architect's View

CFML, Clojure, Software Design, Frameworks and more...

An Architect's View

10 Skills Developers Will Need

April 6, 2009 ·

An interesting blog post from TechRepublic was doing the rounds on Twitter this morning so I thought I'd comment on it in terms of revelance to the CF community. The blog post was 10 skills developers will need in the next five years. Let's go through each of the ten items in turn...1: One of the “Big Three” (.NET, Java, PHP) I thought it was interesting that the author elevates PHP to the same level as .NET and Java. He means more than just the language (in case you haven't read the article!). I expect some CFers know PHP well and I'm sure some CFers know Java well but I suspect most CFers don't currently hit this point. See also #6. 2: Rich Internet Applications (RIAs) If Adobe's promotion of Flex and AIR hasn't hit you yet as a CF developer, you need to get on board. The author hints at AJAX being part of this point but he's really talking Flash, JavaFX and Silverlight. Fortunately, since ColdFusion integrates so well with Flex, and we as CF developers are being asked to create more complex and more engaging applications, this should be an easy on-ramp for most of us. I expect many of us will score on this point. 3: Web development Ding! Remember, the author is talking to the broader developer community and a lot of corporate developers - even in the .NET and Java space - are not building web applications yet. CFers have been doing this for years - score one for the home team! 4: Web services Ding! How many CFers these days have never consumed a web service and never published one? It's a declining number and we're lucky that CFML makes this brain-dead simple for us. Most of us should score on this one too. 5: Soft skills Always hard for developers but I suspect more CFers interact directly with their customers / clients than almost any other sector of development. Why? Because many (most?) CFers came to CFML from non-programming backgrounds where CFML was "just" a great tool to help them solve real business problems easily. Sure, we all know some CFers who have little or no people skills but I bet many of us score on this one. 6: One dynamic and/or functional programming language Ding! OK, so CFML was not on the author's list but he's really angling at the concepts in these languages. The ability to play fast and loose with the type system, pretty much any of the advanced techniques available with CFCs. You may not yet be very far down the path on dynamic programming techniques but CFML has already put you on the ladder. As the author says "Every top-flight developer I’ve met recommends learning at least one dynamic or functional programming language to learn new ways of thinking, and from personal experience, I can tell you that it works." 7: Agile methodologies When you work in a RAD environment for the web, you tend to adopt a number of agile practices without even being aware of them so even tho' you may think of "Agile" as a buzzword / fad, it shouldn't be all that foreign to you: short release cycles, customer involvement, focus on working software. Test-driven development is picking up momentum in the CF community - another Agile practice. I know some CFers who are long way down the Agile path so you may score on this point. 8: Domain knowledge Many CFers came to programming from the business side. They know their domain well and CFML allowed them to build solutions in that domain. Domain knowledge allows you to add value by guiding the client and by proactively anticipating business requirements. Do you score? 9: Development “hygiene” Bug tracking, source code control, being organized about how you develop code. It still continues to surprise me how many CF shops don't have some of these basics in place. Still, there are several evangelists for SVN, Ant, Trac and so on within our community and over the last few years I've seen a shift towards better practice. Keep it up! 10: Mobile development The author mentions both web development and RIAs as ways to attack mobile development. It may not be common for us now but our close association with Adobe and its huge push into this space gives us a good path to learn how. The author says you should hit at least seven of these ten as soon as possible. So how did you score?

Tags: adobe · coldfusion · flex · programming

12 responses

  • 1 Andy Sandefer // Apr 6, 2009 at 2:25 PM

    An Interesting Post
  • 2 Adam Cameron // Apr 8, 2009 at 8:57 AM

    Hi Sean
    Where *is* all this uptake of Flex that I keep hearing about? I run a Flash blocker on my Firefox install, and I have never come across a site in which I've actually *needed* to unblock the Flash. There's been the odd occasion when the nav was done in Flash (bleah), so the site simply didn't work unless I unblocked the Flash (or, more realistically, went to a different site offering the same product or service via a more traditional and usable UI).

    It still seems to me that 95% (arbitrary figure) of the time, the Flash content on websites is still pointless crap around the edges of the page, or soemthing that has me looking around for the "Skip Intro" button. Not actually things that are vital to the experience.

    On the other hand... AJAX is everywhere.

    Can you point me at some production sites that use Flash (specifically Flex generated Flash would be better).

    Don't get me wrong, I want Flex to be popular (I just successfully applied for the "Flex Builder for unemployed people", and intend to teach myself it, shortly). But despite spending about 12h a day on line, I'm just not seeing it anywhere. Am I moving in the wrong circles?

  • 3 Sean Corfield // Apr 8, 2009 at 9:26 AM

    @Adam, the big uptake of Flex is internal to corporations so you won't see it on the web "at large" although more and more "flagship applications" on certain websites are switching to Flex.

    Flex is used more for business / customer facing applications than for developer facing stuff so I'm not surprised you haven't seen much of it.
  • 4 Andy Sandefer // Apr 8, 2009 at 9:36 AM

    I really have to second what Sean said. There really is a war brewing between Flex and Silverlight and their not battling for public content supremacy. They're going after application developers.
    I would've counted JavaFX in with this race but I'm really unsure about the future of Sun at this point. Whoever ends up owning Java and MySQL will have a major impact on whether this ends up being a 2 or 3 horse race. I just hope that it is not ORACLE - they've pretty much been buying companies just to kill them for about the last 5 years or so.
    Flex is around you, you're just not looking in the right places to see it. Think apps - not content driven sites and you'll find Flex. Corporate Extranets have been waiting for tools like Flex for a long time. It lowers total cost of ownership and breaks down platform barriers. Think about it (no Citrix, no browser dependency, no paying per seat for apps and the list goes on and on.
  • 5 Adam Cameron // Apr 8, 2009 at 10:17 AM

    I know about the "behind the corporate firewall" stuff, I was just wondering where the market penetration was in the public-facing world. It seems like there isn't any.

    It's not like the public-facing world is shy of RIA type stuff: AJAX is increasingly ubiquitous (if that's not an oxymoron), so I'm wondering why Flex just ain't cutting it.

    I suppose a lot of the AJAX stuff is isolated widgets on a page (like a search input which suggests what you might want to search on as you type), whereas Flex is targeting being an entire application in the web browser, and - as you say Andy - a business environment is more a sitter for an app than the public web is.

    BTW: I think if MS and Adobe are targetting application *developers*, then they're focusing on the wrong people. Developers are at the bottom of the food chain. They should be targetting at a minimum the software dept manager, but probably more the software dept's client: the business unit managers: the ones who need the applications, not the ones delivering or writing the applications. Software developers don't make the decisions in these matters...

  • 6 Andy Sandefer // Apr 8, 2009 at 11:33 AM

    You seem like a nice enough guy but you're totally off base here. If I were a massive software company with a new product offering I'd be targeting universities (that's where the new leadership will ultimately come from), developers and management. When enough developers cause a riot then management ultimately listens (or they simply lose their talent to firms who respect free thinkers).
    You say you haven't seen Flex anywhere, well where are you visiting us from? What planet are you on? Because here on Earth even little kids in Dubai know what Yahoo Maps is and and maybe Weight Watchers and whole cadre of other consumer facing applications.
    I'm not sure but I may be detecting an underlying theme here which is that you don't want to have to learn any of these technologies because you've already taken the time to learn AJAX.
    Well, I'm in the same boat but I don't feel sorry for you. I knew way back when I was 22 years old and I was first getting started in my career that I had chosen a time consuming profession that rewarded people who were not afraid to be in a constant learning mode. I watched all of the COBOL and RPG guys fall by the wayside and I'll watch all of the web folks who can't grow beyond the DOM die too. I guess the question is - will you be one of them?
    I know it's frustrating (I just spent the last year getting deadly good with AJAX) but you have to adapt. Stop looking for reasons not to learn Flex and just do it!
  • 7 Adam Cameron // Apr 8, 2009 at 1:30 PM

    Hi Andy. I'm not wanting to clutter up poor old Sean's blog with too much of this nonsense, but just a quick one.

    Firstly, you are reading me wrong. I don't know AJAX from a bar of soap. Well: I know a superficial amount of it: I did a bit of XML-HTTP stuff back before the concept of "AJAX" had a buzzword, but it's changed dramatically since then, so that hardly counts. I don't do a great deal of UI stuff, so I'm pretty ignorant of all the various AJAXy APIs and methodologies and that sort of thing. Hey, I had never even used the built-in AJAXifying stuff in CF until about six weeks ago (and only then as an exercise to make sure I'd some exposure to all the CF8 stuff I'd never needed). I would have spent more time with Flex than AJAX (so - like - 6-8h as opposed to 3-4h ;-)

    Also - like I said - I wasn't saying there weren't any Flex-driven sites out there, just that I had not seen any, and I was genuinely asking for examples. Note your examples don't seem to be such good ones: I didn't even know Yahoo had maps... I've always used Google's ones. But anyway: I see no Flash on Yahoo's maps: it's all AJAX. I cannot see any Flash on (never heard of it... I'm one of these weird people who don't actually live in the United States. There's a few of us... you might have heard mention of us in the news or something? ;-). But I only looked superficially. Weight Watchers (yes, heard of that one!) has some space-wastage Flash for their site banner, plus a form that doesn't seem to actually need to be done in Flash? And I don't see too much Flash jumping off the page as I click around, either. Then again, I get redirected to the site if I browse to .com, so maybe the US site is different?

    But, anyway: I'm not against Flex. I think it's cool (that's why I'm taking the time to learn it, which I said in my first comment), I was asking what I thought was a simple question: where are all the sites, if it's so popular?

    Anyway, "whatEVER".

    Sorry Sean. Case closed from my end of things: I'll just keep an eye out for people pointing out where Flex is being used in the public arena (so I can see what they're doing with it).


  • 8 Sid Maestre // Apr 11, 2009 at 10:27 PM

    Hey Adam,

    Since you're not in the US, you may not be using twitter, but MANY twitter desktop apps are built using Flex/AIR. Flex does a great job consuming web services like those provided by twitter.

    An excellent Flex app is for photo editing.
  • 9 Sean Corfield // Apr 12, 2009 at 9:26 PM

    And my company's Workspace application is Flex-based :)
  • 10 Dan // Apr 13, 2009 at 12:58 PM

    Hello Adam,

    I'm one of those 'behind the firewall' developers. I'm not at the bottom of the food chain and I use Flex 3/CF/SQL everyday. If you want some examples of public Flex applications (You seem to be confusing the raison t'etre for Flex and Flash) then here is a good resource: Beyond that, surely you've heard of Buzzword, Slide Rocket, Picnik, and Photoshop online (Photoshop is a good example of Adobe eating their own dogfood). There are literally hundreds more. Take a moment to google around. I think you'll be pleasently suprised. Learning Flex is great fun. Good luck in your endeavors.
  • 11 Simon Horwith // Apr 17, 2009 at 3:05 PM

    I read the same article the day it was published and thought it was very sage advice. What I personally hope people pay attention to is the fact that functional programming was mentioned. It's no secret that I've been a fan of LISP for quite some time (I'm now getting ready to take your advice, Sean, and look into Haskell) and I have to admit that though the features in CF have only a vague resemblance to the features of LISP, my approach to CF (and other) development has changed thanks to my exposure to LISP. My feelings about OO in general have also changed a lot - to the extent that I'm not an advocate of the OO approach so much anymore.
    Of course, nobody is paying me to work in a "real" functional environment, nor can I imagine anyone paying me to do so anytime soon (i.e. not in this lifetime).
    As this is the case for most folks, I recommend learning functional programming but keeping it in the camp of being either an academic or hobbyist pursuit. If that discourages anyone let me reiterate that I whole-heartedly believe that you won't regret a single minute spent learning functional concepts.
    Of course, in your case Sean, I know I'm pretty much preaching to the choir, aren't I?
  • 12 Sean Corfield // Apr 17, 2009 at 3:19 PM

    @Simon, great to "see" you here!

    Glad to hear you're going to play with Haskell - it's a more pure functional language than LISP but it has a strong community around it (and it's a lot of fun!).

    Interesting to hear you say you no longer advocate OO so much. I remember you being very passionate about Object Think. I'd love to read a nice, long blog post covering your current thoughts on OO...