Brian Richardson

Coding, traveling, etc.

SD West

I made it home tonight and I have to say this last week has been amazing. I learned a great deal and feel this was probably the best experience of my career so far. Besides being able to attend lectures from some of the top people in the industry who were able to pass on so much valuable information from their own personal experiences, we also had so many top professionals in the audiences of the same talks providing feedback and suggestions at the discussions. To have the ability to get so much information on topics you are interested in from so many top people in the industry from a number of major players is just an experience you can’t get in any other way.

March 9, 2008 Posted by | Santa Clara (SD WEST) | Leave a Comment

Dances With Robots

Mark and I had the chance today to attend a keynote presentation by James McLurkin who is a robotics student at MIT who specializes in swarm behaviour of small simple robots working in groups to complete a task. His presentation was excellent and the demonstration of his robots was a lot of fun to watch.

Dances with Robots

March 8, 2008 Posted by | Santa Clara (SD WEST) | Leave a Comment

IHOP

Mark and I had our last breakfast at IHOP. We are going to miss that place.

IHOP

March 8, 2008 Posted by | Santa Clara (SD WEST) | Leave a Comment

GUI Bloopers

Since I am by no means a UI expert, I am just passing on all the points mentioned in this talk I attended at SD WEST. I enjoyed it a lot.

Grayed out input fields
Don’t used input fields that are grayed out as a way of displaying text. Always use a control that is never editable such as a label.

Negative Checkboxes
Never use a checkbox being checked as a way to say “Do not do the following”. You need to be consistent. Checking means do something, unchecking means do not.

Dynamic Menus
Do not have menus where the content of the drop menu changes based on the current task the user is doing. If you want to make certain items inaccessible at certain times, gray them out so the user knows they are still there, just not accessible at this time or in this context. The reason this is a problem is because users tend to remember where something is, but not always what it is called. Users often scan menus and want to go back to where they remember seeing that feature before. So do not automatically add and remove. Dynamic menus undermines a basic learning strategy.

Popup Not Identifying Itself
The function of the popup is not explained, user may loose what functionality the popup relates to.

Pages Not Identifying Themselves
Simple examples are the menu not highlighting the menu tab that shows the page you are currently viewing, or the page title is not present or clear.

Distracting Off-Path Links and Buttons
Don’t distract the user from their current task by sending them off in another direction mid stream. Use the pattern “Process Funnel”. This means that when a user tells you what they want to do, what their goal is, put them in a funnel with minimal distraction until they have accomplished their goal.

Too Many Levels of Dialogs and Menus
Look for areas in your interface with too much depth and see how it can be flattened. One approach is to optimize for the most commonly used paths.

Inconsistent Text
Same functionality called different things in different areas. This makes it very difficult for a user to learn an application.

Rule:
Same Word, Same Thing
Different Word, Different Thing

Misleading Text (e.g., Erroneous Messages)
A common example is a misleading error message, such as an error message on the page telling the user the “Username entered is invalid” when it is actually the login server that is down and not responding. The problem here is the user will keep retrying because they have not been given a clear message

Easily Missed Information
For example an error message which is placed on the page far away from where the user has entered the data that has caused the error and is currently focusing. Often users will not associate the two.

Burying Relevant Information
Making it difficult for the user to understand what the info is they need to complete their task amongst all of the information being shown. Also avoid too much repetition in naming options such as options that all start with the same name:

How to …
How to ….
How to ….

Color Differences that are Too Subtle
Graphic designers often create this issue by using color pattern with too subtle of differences. This is always bad. Also if a color difference is the only way to tell something apart, that’s also bad. You must also take into consideration people who have color blindness or even bad monitors. One good test is to print UIs in black and white. Use of color should only be used as a redundant emphasis along with another visual hint.

Instructions Disappear Too Soon
Giving instructions in a dialog that then must be followed after the dialog has been closed should always be avoided.

Dialog Boxes that Trap Users
For example an “OK” button that informs you of a problem yet does not allow you to take a step back. It warns you that something you probably don’t want to happen is about to happen, but does not give you an option to not do it, just tells you it is about to happen and waits for you to say “Sure, alright, I guess I have no choice”. The second way to trap a user in a dialog is by having a message on the dialog that does not at all make it clear which options on the dialog mean what. No clear relationship between the text and the options.

So what to do?

Avoid anarchic development.

  • No Design
  • No UI Standards
  • No oversite

User centered design and Agile are definitely compatible.

March 7, 2008 Posted by | Santa Clara (SD WEST) | Leave a Comment

Agile and Object Oriented Principles

In order for a team to really adopt Agile, the project must be structured in a way to allow for small, thin vertical strips of the application to be released independently of any other feature in the application. If we have a story for feature A, then we should be able to implement the story for feature A, test feature A, and release feature A without affecting feature B. If this is not possible in your current project, then you must work to moving in this direction. This division is extremely important at working towards an Agile system that has few bugs and is quick to QA.

For example: I make a change to feature A, well it is not just feature A that needs to have QA look at it, it is now also feature B that needs a complete regression test. But wait, what if QA is unaware that feature B is dependent on code that was changed in feature A, then that testing may get missed. Now, also because we can’t release feature A independently of feature B we now have to release both together. Now, we have created production bugs which are costly to fix in feature B and now we have maintenance tasks which will now take up time in the next sprint, that could have instead been spent on other new development work to add more business value to the product. Also those bugs in feature B will now require testing time in the next sprint and possibly regression testing of feature A or possible breaking feature C, etc. So, as was stressed in the talk, you should always be working towards small applications that can be independently released, if not, you my be stuck in this loop.

March 7, 2008 Posted by | Santa Clara (SD WEST) | Leave a Comment

Developer Bowl!

Mark and I attended the annual SD WEST Developer Bowl. The Developer Bowl is a trivia contest between some of the top brains at some of the biggest technology companies. This year there were teams from Google, Intel, IBM, and CodeGear competing. The questions were ridiculously tough. The winning team was from IBM.

Developer Bowl!

March 7, 2008 Posted by | Santa Clara (SD WEST) | 2 Comments

Sharks 3 – Senators 2

My first time attending an NHL game. Hockey fans down here a quite reservered. It was a good game, it was tied 2-2 and the Sharks got a goal three minutes into overtime.

HPPavillion

March 6, 2008 Posted by | Santa Clara (SD WEST) | Leave a Comment

Intel

Mark and I made a quick trip to Intel just before lunch and toured the museum.

Intel

March 5, 2008 Posted by | Santa Clara (SD WEST) | Leave a Comment

EXPO Software Vendors

Mark and I went to the software vendors area tonight and made it to just about every booth in the place. Most than half of all the software tools being pitched were along the lines of helping with Agile project management, release management, and QA. Agile has been a big theme of this conference so it was no surprise to see so many different tools to help teams following Agile adopt the process more easily.

That’s me stopping by he Google booth!

Google

Mark could not decide between the free pretzel or the the free hot dog.

Mark enjoying the free food

The EXPO Floor

EXPO Floor

My haul for the nights work

EXPO Haul

March 5, 2008 Posted by | Santa Clara (SD WEST) | Leave a Comment

Arrived in Santa Clara!

I have arrived in Santa Clara and I have to say this city is absolutely beautiful. If Innovation Place was an entire city, that is what Santa Clara feels like. Mark and I walked a few blocks to go for supper tonight and passed Citrix, Namco, AMD, Nortel Networks, and several Yahoo buildings. This is quite the impressive environment. However, after a long day of Travelling Mark and I finished off the day with the “Ultimate Combo” at IHOP. Yep, it was incredible, and yes, we will be going back tomorrow for breakfast. A good breakfast is important before a long day of intense learning (LOL).

Some of the presentation materials have already been made available online. So it looks like I have some reading to do tonight. I am really looking forward to the first day of talks, it will be a lot of fun!

Yahoo!

March 3, 2008 Posted by | Santa Clara (SD WEST) | Leave a Comment

Follow

Get every new post delivered to your Inbox.