Archive for June, 2009

Grey Line

This weekend I read a blog by Ted Patrick and found very interesting phrase:”If you take a careful look at Catalyst it flips the % of design and development work within an app. Where development was 80% of an app, it is now 20% and Design/Interaction was 20% is now 80%”.

Sorry for taking it out of context, but I think it will be taken out of context or even becomes a mantra for new development process the same way UML 10 years ago was suppose to produce 80% of the application out of structured requirements. I am certain that this interpretation was not intention of Theodore Patrick or anyone at Adobe.

I would suggest that 80% – 20% separation has to be clarified as it might be used by some as Adobe’s recommendation of budget/time allocation and it could be problematic for the current state of the industry.

Less generalized statement IMHO would be this:
In order for applications to be successful in consumer / occasional user market you will need to increase your typical “functionality based” budget few times for usability, design and testing. You will also need to keep lid on features in order to achieve usability staying within budget constrains.

Applications targeting mobile devices and occasional users on conventional ones are definitely a growing trend that Flash platform is best positioned to take over. Enterprise and niche application will still be out of reach of UX due to budget / features constrains – so the following notes might not apply.

I agree that most of the current design work goes into packaging (opening page(s) and stylesheets) and does not affect the quality of the application. I would argue that cinematic experience is more important than design. For example, in the movie industry films based on beauty rather than the character have higher attrition rates and lower retention.

IMHO, there should be stronger distinction between visual design (how it looks) and “interaction” design (how it does things).

People will adapt to anything that is simple and easy to understand. Current UX wave is driven by people who have taste, which can be acquired over time… even by developers. Time is of essence here – developers just need the same tools and reasonable project deadlines as the rest of the team rather then cram their time toward the end of the project.

In my experience it takes less then 6 month for a developer moved from PC to MAC OSX to “forget” old way of doing things and acquire the same taste for simplicity the designers historically enjoy by using designers products. Adobe developers have long history of using non-Microsoft systems and it is definitely reflected in the way the build applications with or without designers.

At this point any serious Flex developer working on consumer-facing project must go through at least some training in Web Design to the extent that they can modify Photoshop, Illustrator or Flash files to annotate/fix a design flaw and communicate it properly to the designers. That implies to a large extent that 60-80% of the overall time is still in the development as developers extended their reach into modern UI. It also greatly reduces overall project time and mis-communications.

I certainly hope that Flash Catalyst will be bridging the gap for the rest, but expect mixed results if people would not expose themselves significantly to the other side of the fence. Finally, as client portion of RIA becomes simple and intuitive, more work needs to be done on the server to prepare and support such predictable and intuitive behavior.

I lived through few projects of complete picture perfect designs made upfront. Unfortunately, those static pictures are full of loopholes. Good developers are just as good as good designers in interactivity and much better with data models and overall process. In the end, negligible percentage of the picture-perfect upfront design is usable and could be counterproductive for the project lifecycle as compared to conventional wireframes as a common ground. Only from common understanding (the more visual the better, but not ONLY visual – you need to make sure it is also in words so you can ensure common understanding, provide comments and establish two-way process) you can start real team work on your next RIA project.

Sincerely,
Anatole Tartakovsky
Farata Systems

Comments

 

Grey Line

But do it after you got hired.

A custom component A (written in Flash) sends a custom event with parameters to a component B (written in Flex), and the latter needs to pass received event’s parameters to Flex  Application object. The code below just traverses through all parameters of the dynamic custom event and assigns them to the corresponding properties in the Application object.

private function passParamsToApp (event:MyGreatEvent):void{
// this code can be used in preloaders that need to load fast small Flash swc
// getDefByName syntax allow to avoid pre-linkage of the Application obj 
var anApp:Object = getDefinitionByName ("mx.core.Application").application;
 
for (var i:String in event) {
   try{
        anApp [i] = event [i];
   } catch (e:Error) {
      trace ("There is no parameter " + i +  "in " + anApp + " defined");
  }
}

The custom event is also defined not by the book (actually, it’s in our book) – it has no clone() function, no metadata tags, and no officially declared custom properties:

public dynamic class MyGreatEvent extends Event{
 
   public function MyGreatEvent(type:String, customerID:String, someOtherJunk:XML){
      super(type);
      this.customerID = customerID;
      this.someOtherJunk = someOtherJunk;
   }
}

You can read more about Flex apps using a single event here:
http://flexblog.faratasystems.com/?p=285

As you see, this code in the for loop works on the assumption that the Application object has setters or the public properties with names that match parameters of the event (customerID and someOtherJunk).

But even this requirement can be overcome if you’ll use dynamic application object as explained in Chapter 2 of our upcoming book “Enterprise Programming with Flex.” (Anatole, Victor, and myself have a high-priority task to submit the final two chapters to O’Reilly in two weeks).

If you’ll offer something like this during the Flex job interview answering the question,  “How to pass parameters from a custom component to Application object?”, you’ll get burned by object-oriented purists.  The kosher answer in the interview situation is a well prepared speach about the Mediator pattern as explained here http://flexblog.faratasystems.com/?p=246.

But if I’ll be running this interview, you are hired!

Comments

 

Grey Line

Information Week has published an interview with GM’s CIO discussing the impact of the bankruptcy on the two-billion-IT operations of this huge corporation .
After reading this article, I’m pretty sure that GM’s IT is doomed. The chances are slim that they will turn themselves into leaner and agile organization as it should be in 21st century.

The article reveals “In 2006, GM awarded about $7B (!) in IT contracts to EDS, Capgemini, Hewlett-Packard, IBM and others, and earmarked another $7 billion or so for additional contracts in following years. Szygenda has a history of demanding that outsourcers change their operational practices to fit GM’s needs. One example is their creation of global teams to work on GM accounts”.

Now let me explain how I read this interesting paragraph. These leeches , a.k.a. global consulting firms were charging $200p/h for mediocre consultants and were able to suck $7B worth of blood out of GM and are ready to continue enjoying the party. If you’ll tell me that I’m going over board with $200, let me explain how it might looked on paper – five inexpensive offshore resources at $40p/h each. Can you imagine, in India you can hire a project manager for only $40p/h! It’s like dream come true.

But let me ask you, my dear typical Fortune-500 CIO, “Why did you need that project manager in the first place?”
“Yakov, don’t act silly.  He’d manage a team of 4 developers for this job”
“Why did you need this team?”
“It’s required as per the approved architecture and the project plan provided by our consulting partners”
Sure, it started even before the project plan with dead souls from overseas (see http://yakovfain.javadevelopersjournal.com/dead_souls_from_overseas.htm )was carefully baked into it.

Most likely, it started when these nicely dressed salesmen showed up at GM armed (and dangerous) with beautifully prepared powerpoint presentations showing “where you are now” and “where you want to be in a year, two years, and even five years”. Yes, they knew all the answers. And here’s the road map that will bring you from point A to point B with the help of Global Leeches Ltd.
The visitors would continue, “If you’d hire American resources for the same job, it would cost you $15B, but we can deliver the same suite of products and services for mere $7B.”

Sounds like a good deal, and the orgy of the vampires begins.

The Information Week’s article states that GM awarded $7B in 2006, but you’ll never learn such classified information as how much of this amount was spent on the projects that failed.
Another hint that GM’s IT is doomed is the statement about creation of the global teams. The combination of two innocent words global and team gives me goose bumps.  I don’t believe in global teams.

I’m one of the partners running a small company, and we’ve learned our lesson and would never hire a global team. We cherry pick individuals, put them through THE SAME tough interviewing process as local candidates would go through. We manage individuals. This model works for us just fine.
During the last (tough) year, majority of our clients were not large corporations, but the small ones, and we found the explanation. Solutions that we offer are based on simple architectures that do not require bringing a bunch of consultants lead by a full time manager.   We give our customers an economical solution.

Interestingly enough, when we present our solutions to small companies running on a very limited budget, they are well received by these companies that must count their money. But if we’d present the same solution to a large IT shop, it would not fly. Why? Because individuals and small companies appreciate real costs, track record and simplicity as main artifacts of “real cost of ownership”. Large organizations are more concerned with imaginary artifacts of “savings”, “discounts” and “proven architecture” while keeping large outsourcing budget as it’s easily justifies their IT portion of “managing”.

People in the enterprise architectural committee will quickly “get the message” and will look for technical solutions that can be illustrated with some “serious” architectural diagrams that would help in proving… the need of having a full time architectural committee. But realistically that would inflate the efforts to the extent that would help these individuals in achieving their career objectives pleasing the C-level management at the same time.

The rest of the answers by Mr. Szygenda (GM’s CIO) just confirms that he’s not a leader that GM needs at these trying times. He quotes the statements of the CEO who believes this and that. We know were his believes brought the company. The CIO uses the words could and probably too often.

I see no hope there.

Yakov Fain

Comments (1)

 

Grey Line

Guys,

1. As a speaker of AJAXWorld conference (NYC June 22-23), I can invite
anyone as a guest for free (the guest won’t get free lunch or access
to iPhone conf though).

Enter discount code ajaxspeakerexpo at http://tinyurl.com/qtu4b8

My presentation is about occasionally connected applications with Adobe
AIR, Java and BlazeDS: http://ajaxworld.com/event/session/469

2. Preliminary topics for our Second Annual Enterprise Flex Symposium are published at http://www.eventbrite.com/event/355645746.

Regards,
Yakov

Comments (2)

 

Grey Line

This is great news. The most valuable new feature for enterprise developers are data-centric code generator and network monitor. Flash I’m glad that Adobe picks up the best ideas from third-party libraries and components and implements them in Flash Builder. It’s a win-win situation for the Flex community.

Flash Catalyst will become the main prototyping tool for all Flex UI designers. Need to analyze the generated code to form an opinion about its effect on the productivity of Flex developers.

Overall, I’m pleased with these releases. My writeup about them is here: http://flex.sys-con.com/node/982740.

Yakov Fain

Comments