Monday, November 19, 2007


Now that I am a CUA, I got some interesting job in hand. One of our projects was just taking off and my company decided to make use of my recently gained knowledge on usability. So I was introduced in the project as a Usability Analyst. As the name sounds good, so does the work. In this endeavor I had to do user analysis and data gathering. My job started with a quick survey to know who the end users of our client were. I had an 18 question survey which got 90% completed response. That’s too good by number. By this I was able to come up with User profile, Environment Profile and Task profile of the user group.

Survey gave a strong foundation for usability interviews or end user interviews. For all those who got baffled by the thought of taking end user interviews, let me tell you this is the first and a major step in any user centered design. As the name ‘user-centered-design’ itself includes ‘user’ as the first term, we too keep users in first place while designing a good interface for them.
Usability interviews are done at various stages of a project to gather data about users, their conceptual model and their working habits. One-on-one interview is a good choice if it is difficult to have people perform a task while being observed. Once you know your users and their conceptual model, you go back and come up with a design which now needs to be tested with the users. Again you can conduct user interviews as a part of usability testing.

Following is a quick guide for conducting usability interviews to gather data.

Purpose: To uncover users’ conceptual model, assumptions and thought process.

Number of participants: Now this has always been a debatable issue. Ideally I recommend 5-7 which is a good number to gather data as well as test a sample interface.

Screener: You need to find out right candidates for interview purpose. Write down the criteria’s you want in your candidates. For example you want candidates with at least 3 years of computer experience, who are familiar with internet apart from checking mails. You desire candidates who have done online shopping at least 2-3 times and are aware of the process etc. These screeners are handy for recruiting firms who fill find out suitable candidates for you.

Setup: A closed cabin, question set, voice recorder (if needed), rough sketches of design, mints and water for participants, card sort material and gifts for participant

Questions: There are a lot of questions which you need to bombard the interviewee with however; it’s not just the questions but also their sequence which matters a lot.
Start your interview by giving your introduction, purpose of the meet, duration of the interview etc. It should include a blend of open ended questions followed by close ended ones to get to a proper insight.

Focus of interviews must be demographics like age, work profile education roles and responsibilities, computer experience etc. Interview must also include questions to know users’ domain knowledge, terminology used, past experience with the system, current information source and so on. To be an effective interviewer, you have to focus on the insights. During the interview if the user narrates a story or incident about the system, you are on the right track. Capitalize on it, try to find the reason of that kind of user behavior and document it. This means that the user is not beginning to open up. Try to pull the thread of a topic till the time you have got all the information desired. During interviews be absolutely non judgmental and neutral. Practice active listening which gives the interviewee a feeling of being heard inherently he/she will be keener to answer more questions with ease.

One more burden that the interviewer has to carry is the task of documentation. It’s not a bad practice to note points during interview itself, but it slows down the process and sometimes the focus is lost. It’s better to have one more person with you with a job to note down important points. You two can discuss on more inputs after the interview has finished. Finally note down interview results as soon as possible as these minor but valuable information may slip from your mind.

Card Sort: Card sort technique is useful to open up users mind and know how they tend to group data. Perform card sort with the participant and ask them to group similar labels under one heading. Enquire why they have made certain choices. This will uncover their thinking about a particular label and give you inputs on redesigning labels if needed.

Closing: Inform the participant that you have completed all the questions and were glad to have him. Enquire whether interview has any questions for you. Hand over the gift to him/her and let them leave on a pleasant note.

I forgot to mention the cons of one-on-one interview techniques

1. Time consuming
2. Expensive
3. Can yield different responses form same participant
4. Highly dependent on interviewers technique.


On a closing note, mastering interviewing technique is not a one night job. Do not let newbies conduct user interviews as they may tend to loose the focus of interviews and gather data may not be fruitful. Instead ask them to join in as an observer or for noting interview points for first few interviews. This will give them the right set of skills needed for interviewing candidates in future.

Thursday, November 15, 2007

I am updating my blog after a long time, thanks to my busy schedule but now I am back. During these days I was engaged with a usability project as well as a flex project.

In my Flex application I came across a very challenging scenario. Here is a background of what we were doing. We had our main application made up of various nested flex applications. Finally all the smaller applications were getting loaded into the main application using SwfLoader component of Flex. Everything was looking good till the time our dear client did something which they love to do -change the requirements. To meet their requirement it was necessary to pass a lot of arguments from the main application to the smaller nested applications. Now it looked pretty simple approach.



I did some Google search but could not get any help. Finally I got a simple example in Flex 2 Developers’ Guide which is the documentation on Flex 2 provided by Adobe to help poor developers like me.


Flex 2 Developers’ Guide has an example of passing arguments around various applications on page 276. It gives a brief idea of argument passing between applications however one has to alter the code to make it usable.
To enable argument passing you need to use SystemManager class provided in the Flex 2 frame work. Here is the code snippet


[Bindable]
public var loadedSM:SystemManager;
// Initialize variable with information from the loaded application.
private function initNestedAppProps():void
{
loadedSM = SystemManager(myLoader.content);
}

In the above code ‘myLoader’ is the SwfLoader component used to load a swf file or an application. You can define it like this

<mx:swfloader id="myLoader" source="local.swf" width="300" creationcomplete="initNestedAppProps();">


Lets say you want to change a public variable ‘varOne’ of local.swf which is loaded using SwfLoader, we write the following function:

public function updateNestedLabels():void {
loadedSM.application["varOne"] = "I was just updated";
}

To call this function we need to modify the initNestedAppProps() function to the following
private function initNestedAppProps():void
{
loadedSM = SystemManager(myLoader.content);
l
oadedSM.addEventListener(FlexEvent.APPLICATION_COMPLETE,updateNestedLabels);
updateNestedLabels();
}
The second line of initNestedAppProps() is most important as it assigns an event listener to SystemManager when the application is loaded completely. If this code is missing you will be slapped with a ‘Null Object Reference Error’ which took me 2 days to resolve.

In this way arguments can be passed across various nested applications in flex 2 using swfLoader.



Friday, August 31, 2007

Recently I was working on a webservice application in Flex and had a real tough time with it. The webservice was not getting resolved and I was continuously slapped with a ‘WSDL.BadElement’ error. I was clueless, as the same webservice was working nicely with SAP Netweaver Visual Composer. This meant that there was some problem with Flex. While Googling for a solution I came across Flex 2.0.1 Hotfix 3. I quickly downloaded it and followed the steps for its installation as mentioned on the web site.
Darn!! The error was gone and my application was running smoothly. Thanks to Hotfix 3

Adobe Flex 2.0.1 Hotfix 3 is really handy when your Flex application is not able to resolve a webservice call. Typically, you get errors like faultString = ‘WSDL.BadElement’ or ‘element not resolvable’ or sometimes flash player doesn’t return any runtime errors. At this point try installing Adobe Flex 2.0.1 Hotfix 3 on Flex builder 2 and it will resolve these problems.

One more interesting finding when I tried to call the same webservice with Flex Builder 3; it was not giving me ‘BadElement’ error. Cool!! It means that Adobe has resolved all the major issues in Flex 2 and is ready with Flex Builder 3.

Wednesday, August 22, 2007

My First Adobe Article

Recently I wrote a big fat article on Customizing Gauge Component of SAP Netweaver Visual Composer using Flex. It was published on SDN as a tutorial and now it is on Adobe site.

You can have a look at it here

Friday, August 17, 2007

I took a plunge and got certified in the Certified Usability Analyst exam conducted by Human Factors International Inc. (CUA). Now I can proudly call myself Certified Usability Analyst. I must admit that this was one of the toughest exams I have ever taken. I had scheduled my exam one month in advance so that I can get a nice time for preparation. I started the test with my heart pounding real hard, but my anxiety vanished as soon as I got the first question on the screen. My hard work and efforts received sweet rewards when the exam result popped up. Oh Boy!! I scored 83% (much more than I had expected). Last week I received my CUA certificate and a stamp. HFI gives you a personalized self inking stamp after successfully passing this exam, which you can put on all the documents signed by you. Creative idea!! isnt it??

CUA exam is conducted at all HFI centers once in two months, so attend their training, prepare for the exam and get certified. I can assure it really helps you in building credibility in your organization.

Preparation track

To be a HFI CUA, it will be great to attend HFI’s certification track training course. The courses included are:

  • User-Centered Analysis and Conceptual Design (UCA)
  • The Science and Art of Effective Web and Application Design (Design)
  • Practical Usability Testing (UT)
  • Putting Research Into Practice (PRP)

More information on HFI’s training is available here
This exam is a test of knowledge and not the course content; hence thorough reading of study material is a must. It is an open book test, therefore you are expected to answer some scenario based questions. My tips for all who are preparing or planning to take this exam are :

My Tips

  1. Attend all four training courses of HFI
  2. Give yourself at least three weeks to prepare for the exam
  3. HFI’s training material is more than enough to study. Read it carefully and thoroughly.
  4. Use sticky notes to mark important sections on your training books so that you can directly flip to it rather than searching all the pages during the exam.

Insights of the exam

This exam consists of 100 questions and the duration is 2.5 hours (4 hours for other languages) with a passing of 70 marks. It is divided in 4 sections viz UCA (26 question), Design (38 question), UT (26 question), and PRP (10 question). PRP section is the easiest with only 10 questions so you can spare about 10-15 minutes for it.
So folks I must say that it was a really nice experience to pass this exam and to get certified. I would recommend all usability specialist do this certification as it will not only make your resume elegant but also boost your self confidence.

Thursday, July 19, 2007

Recently, me and my team carried out an exercise to customize SAP netweaver visual composer components. In this endeavour, we tried to change Gauge component. Image shows the final component. We also played around with clock component a bit. So after completing this tricky task, I wrote a full length tutorial for all developers who adore flex and VC.
Complete article is posted on SDN which you can get here

One fine day my dear boss (don’t be amazed he is a good man) asked, me whether I am interested in usability. I had a blank expression on my face and wondered is this a place in Greece? Is it a new technology I am not aware of? Reading my face, he explained me the whole concept of Usability and oh boy, I got damn excited about this. So all arrangements were done and I was scheduled to attend Human Factors International’s (HFI) Usability training program for next 10 days.

Now before attending the very expensive training, I did some research about the course (which all guys do to get an edge over fellow attendees), and was amazed with the topics covered in the curriculum. So with this excitement, I entered the venue, Hotel Residence, Powai (Mumbai). Geee the entire atmosphere was awesome. No doubt we were treated royally (besides a huge training fee) with nice breakfast, tea breaks and mouth watering lunch (I m loving it!!). Ok enough of this. Let’s get some insights of our training.

HFI is a consulting company with specialty in usability for over 20 years. They are the spear heads of this field and are hired by all big organizations to make usable applications and websites. Now many of us must be thinking what this whole idea of usability is? To clear all doubts, usability means ‘how much user friendly, easy to understand, self evident, efficient and easy to use, is a web site/ application’. Phew. Too much, isn’t it?

This course comes in four modules viz.

1) User-Centered Analysis and Conceptual Design (UCA)
2) The Science and Art of Effective Web and Application Design (Design)
3) Practical Usability Testing (UT)
4) Putting Research into Practice (PRP)

I took all four courses and they were pretty cool. I personally liked UCA the most ,as I wasnt aware of it. Our trainer, Mr. Abhijit Thosar (Group lead HFI) did an excellent job of training as well as giving us relevant examples of UCA for three days. This course is the first step in a user centric designing approach. According to the guide lines of this course, we do not directly jump into design a site /application; instead we do an analysis of who the users are, their demographics, their working environment etc. It is something very logical, yet we do not follow this practice. I would recommend every person, engaged in web application development/design, to attend this course.

Now it was time to dig into Designing aspects. Mr. Hitesh Agrawal (Group lead HFI) guided us for next three days to learn correct design principles of web sites/ applications. We thoroughly enjoyed his teaching and had a lot of fun. Design course revealed some dos and don’ts for developing a user friendly web site/application. Best topics (according to me) were internationalization and accessibility. I would recommend this course as a must do for all guys working on international projects.

Usability testing was another interesting course. In this course we learnt techniques of testing an application (for usability and not for coding bugs). UT provides useful feedbacks from the end users, which helps in validating the design and discovers any bugs in the current application.

Last but not the least was PRP course. This course comes real handy for all usability consultants as it projects current web trends. This course is a consolidation of all research papers submitted on the topic of usability by researchers all over the world. We learnt interesting facts and figures about user’s behavior, and mental model.

In the end I appreciate all hard work done by the Abhijit, Hitesh, Mr Patil and Archana. Thanks for the lovely training and a good learning experience.

Haah. Wondering whether to attend this? Trust me; it’s worth its training fees. I forgot to mention, HFI also has a certification exam, which is conducted at HFI office after every two months. So attend this course, get certified and I am damn sure, your resume will look more elegant than before, of course you will also discover a new way of web site/application design and development.

Enjoy

Friday, July 6, 2007

So as this book got lauded from every corner of the world, I, being learning Flex and Action Script 3.0, was hunting for it. To my surprise, it was available in India in a low price edition. So I asked my company librarian to procure this book as soon as possible.
I read this book entirely and I must say that it is definitely one of the best books on Action Script 3.0. Thanks Joey, Darron, and Keith for the wonderful reading experience.

Action Script 3.0 cook book is a book for developers who are unaware of the power of AS 3.0. I liked the way in which the contents are arranged as well as their flow. You are glued to this book as it is written in a simple language and is comprehensive as well.
Some of the chapter I liked were Bitmaps, Programmatic animations, Sound and Videos.
These chapters explored some of the unsung melodies of Action Script in a very simple manner. AS 3.0 developers, catch hold of these chapters as soon as possible. Also, it gives you some tips and clues to watch out while implementing and I guess this adds more into its credibility. Some topics like Perline noise, Acceleration and springs are fun to learn.

Well enough of my thoughts over its pros, so lets move on to the cons. This book teaches some methods which are not from the AS 3.0 library, instead they have created a separate library called ASCB for this. Now this book discusses some mathematical functions which are included in ASCB and not in AS 3.0 library. This is actually helpful while developing, but somewhere I felt that it is just spoon feeding.

But I really appreciate the efforts of these guys to write such a lovely bible for AS 3.0
I would give 4 out of 5 points to this exciting book.
Catch hold of it people, its worth investing.

Wednesday, May 9, 2007

In my application, I was bugging my head for a long time as my Tab Navigator was not getting initialized. Data was getting displayed on the first tab but for the other tabs, it was giving a null object reference error.Interesting part here is that if i navigate through all the tabs of tab navigator and then populate it , error was gone.
Reason being very simple, by default only the first tab is initialized and the others are not created.
By setting the property creationPolicy = all, this issue can be resolved.

I thought writing this point here as it took a lot of my time to figure this simple mistake.

Flex Date Formatter

Recently I was working on Flex Builder 2. I must say that its a fine tool from Adobe. Good Job !!
Formatting dates is a problem everywhere and in flex this issue is handled quite nicely.
I have the following example:


var df:DateFormatter = new DateFormatter;

df.formatString="DD-MMM-YYYY";
var dob:String = 28/11/1985;
dob=df.format(dob);

These lines convert the dates into the desired format.