I have been working with Flex allot lately. It has been an amazing journey, 3 consulting projects are complete, rates have doubled, and I am starting a new company. I have embraced Flex.&
I initially resisted learning Flex because I misunderstood the product. I judged Flex based on a seemingly high price and thus I only tinkered with the features and tools. In building Flow, I looked deeper into Flex and built some sample applications to see what Macromedia was thinking. I was very shocked at just how deep Flex was and how robust the toolset is in practice. From the MXMLC compiler to the debugger, these tools are a generation ahead of anything on the market for delivering applications to the Flash Player. Somewhere about this time, I got my first Flex consulting project and that changed everything.
The client found me through my blog posts about V2 Components and ActionScript. They took a risk in choosing a green Flex developer and I am very grateful. I learned Flex by being dropped into a Flex project and scrambling to learn the tools and techniques. At first I struggled with MXML and AS integration but soon found myself making components and classes for Flex. I went from 0-100 MPH with a toolset I had rarely used, but strangely, I knew what I was doing. The advantage for me was that I am good at ActionScript and understand the Flash Player very well. Once I understood the Flex compiler model and what was going at compile-time and run-time, I haven’t looked back.
The key benefit in Flex is automation. Flex allows me to work about 500% faster than in Flash and allows me to reuse presentation/business logic on a much higher level. For RIA development, I can get to 90% completion in about 1/3 of the time using Flex compared to Flash. Flex allows me to separate application logic from the view cleanly and allows me to style an application with CSS/AS Skins. Flex has removed 100’s of mindless tasks that used to burden my development in Flash. Flex simply saves me time and allows me to work at a higher level.
One of the more interesting discoveries was that Flex MXML is highly reconfigurable. In development, I focus on functionality first and get something working quickly. It never looks good but it contains all the controls and logic needed. I then clean up the UI for the client presentation. On several occasions I sat down with the client and we would make edits in real-time via CSS and shifting XML blocks around. Since the Flex component namespace is flattened, you can shift controls around on screen and not break any of the UI logic. In practice I was able to effectively change an application UI late in the development cycle. This allowed me to focus on the requirements and allow the applications to support a rich UI that met client expectations.
The other thing that has stunned me is that my consulting rates have more than doubled. Companies who use Flex are willing to invest in software and infrastructure to do the job right. They are better clients and they pay better rates. I thought Flex projects would be shorter given Flex automation and higher rates, but rather, the scope of the projects is much larger and more ambitious. The void created by Flex automation is quickly filled with new requirements and larger scope. Flex didn’t automate me out of a job but rather allowed me to work on larger projects at better rates.
So what is next for me…..
I have started a new company focused on supporting business use of Flex and Flash. Over the next 3 years there will be massive adoption of Flash/Flex as an application medium as the Internet embraces the RIA. I have partnered with the best developers that anyone could imagine and there are great projects afoot. We are weeks away from a public beta of some revolutionary software that will change the way you learn, develop, and reuse software.
To jumpstart development, we licensed Flex for commercial use.
Here goes start-up #4 for me!