Monday, February 11, 2008
Can UX be a Boomerang?
I kept thinking about the Jared's point of view about another security -vs- user experience trade off.

In this case, Jared stands that you can't require the same security for a "Magic tricks Forum" and for a "Bank website". I agree with that. I really hated when Mingle asked me for an ultra secure password for a trial version I wanted to use in my network. Everyday I wanted to login into the system I had to try several password... Well, at least I was feeling lucky® they decided no to block my account in the process :)
However, I think you can't put everything in the same bag. He was using this argument to say that applications should specify what was wrong when the login has failed (was it the username or the password?). The usual behavior is a message similar to this one: "Either your username or password is wrong, try again! Did you forget your password? ".
This kind of messages goes against the UX because it's imprecise. If you are more precise you can help him (and others trying to log in) to solve the problem. But, it's also true what me and others argued about how we -as users- manage usernames and passwords everyday. To make it short, users have the same passwords and usernames all over web, in different sites. I do that and many people I know do also. Ok, my bank web site password is not the same that the blogger's one.. but I cannot be sure about other "not-critical" sites. I can't even remember all the sites I am registered in!!! Can you?
The point is: can you forget security issues if you are designing the "Magic tricks Forum" when you know it is the actual behavior of your users? Lets put it in another way. What happen if some of your user's account is hacked (sometimes all they need is the username because it's a valid email), and this information is used to steal more important data of him in other site? Ok, it's not totally your guilt, but, couldn't you avoid it? Can you just blame your user because of his uninformed behavior? I don't think so. How will your user feel about your site? Do you think he will just guilt himself or will your site also pay the penalty? The second one is more probable and for sure your team will look incompetent.
You know, sometimes UX is indirect. You can just try to improve it but you may end provoking a terrible headache for your user in name of it. Although in this case you may share the guilt with your user, if something happens, you can be sure you will pay for it because -as always- bad UX has more publicity.
If I were you, I would stay defensive to avoid boomerangs.
Labels: Internet, Technology, Usability, UX
Thursday, December 06, 2007
Lets Build An API
Are you feeling a déjù vu? As always, we need to watch not only the picture but the full movie to understand what is going on.
As Jared Spool said, every market goes through four steps (in this order): Technology, Features, Experience and Integration.
We are now in the Experience phase. Web 2.0 is all about user experience, tell that to 37Signals. However, in the software industry there is an always subjacent war about platforms. Windows, Mac, Office, Google, SAP, Facebook, Data, Html, Browsers... everyone want to be the winner platform, and in this way, they have to open the doors for developers to empower their position, and so, they make a public API. Each day, someone else is entering in the API game, and this is good for all of us.
But the real interesting point are the assumptions in the background.
If you build an API and someone else can replicate your software... which is your competitive advantage? You get the database, the raids, the data center, and the 24x7 problem and the third party the advertisement? Actually, in my modest opinion, there are two very interesting assumptions: the URL fidelity and that data remains in your side. And you know, Facebook is living from its three-tables-database (Users, Friends and Applications) and the gift-card they received from Microsoft to send a message to Google. For this reason, you and many engineers in these companies may think: "we won't put this data available through the API because this is our key data".
The URL fidelity is a very interesting topic. 15 years ago nobody knew about urls and now you can't get a decent one. What will happen in 10 years with urls? Who cares? In 10 years we will be in Web 7.0.
However, the point about the data isn't so clear anymore. This was ok until someone wrote a robot capable of stealing all your data (slides), and now, you can steal and then store it somewhere (it would be very funny to take amazon data and save it back in the EC2, would you join the project?).
But here is the funniest part of the history: they don't need a public API. They are using HTML as your public API and taking all the data they need, to do whatever they want. You can also use this robot and be sure I will be doing it in the future. Hey! It should be illegal! Don't tell me, and what do you think Google has been doing from the beginning? Ok, they call it crawl (not steal) and don't save it in a relational database but in a home-made File System, but this is just tech-stuff.
You know my point of view, users should own the data, or at least, not just [Put Your Favorite Company Here]. I would love to hear your opinion...
Labels: Internet, Platform, Technology
Wednesday, October 24, 2007
Usability Cookie - Did Hamilton lose the F1 Championship because of bad user interaction?
There are rumors out there saying that Lewis Hamilton lose the F1 Championship, last weekend in Sao Paulo, because he pressed the "wrong" button (the Start button) that "restarted the system".
I prefer to believe that is just a Hamilton's perception, maybe he pressed the button while another error was taking place in the background...
I can't believe such a terrible user interaction design in a F1 car! Why would someone want to restart the system during a F1 race? In any case, it should be a very-very-very-difficult-to-press button, something you should press very hard during 30 seconds with both hands and your head, not a yellow one in the steering wheel.
What is sure, is that all the F1 fanatics are talking about this yellow button all around the globe. So, we should take this lesson: good interaction has no publicity, bad interaction does, and you should avoid it.
Apparently, the team is now denying this information and assigns the episode to an hydraulic fault. Anyway, do you believe are they going to admit such a design error? Who knows?
Labels: F1, Technology, Usability cookie
Thursday, September 20, 2007
What Is A Platform?*
Probably, you have read the Marc Andreessen' post about the three kinds of platforms, and the interesting answer from Joshua Allen. If you don't, I recommend both.
First, I don't believe Marc Andreessen is using his argument to advertise Ning. It makes no sense, he doesn't need it. From my point of view, he has an obviously strong conviction about where the platforms should go, and that is the reason why he founded it.
He proposes basically two things: something can be called a platform if you can program it; and that you can classify all the platforms in three levels depending on where the code runs (remote code that uses an API to communicate with the platform, a plugin attached to the platform, an application inside of the platform).
Then, Joshua responded that his analysis has some problems because the data is the platform, not the software. That is clearly part of the vision of Tim Berners-Lee for the semantic web.
But, my question is: is data enough?
I don't think so. I think we need a Marc Andreessen' style platform to make the Joshua's data accessible in a massive and new way for everyone, something very close to the Strategy Letter IV that Joel wrote a few days ago. With that conviction I founded Himalia two years ago, to give the developers something they can program to give their users much more data available, in an easy and interoperable way. This is a very long way, but I am convinced that it is where we should go, because we have the technology to do that.
(*) I added this post to my software redefinition series, What Is A X?. We need to rethink many of the definition of the main concept of our still young industry.
Labels: Himalia, Platform, Software redefinition series, Technology
Thursday, August 30, 2007
MIT Sketching
Take a look to this video. I am wondering why I didn't have this tool during my physics classes in the university.
The video's comments don't seem to agree with me ;)
Labels: Physics, Technology
Tuesday, August 28, 2007
Pay-per-crawl
One of the first things I understood after I created this blog was that Google is using their power (position) in a very insane way. To say in their words, they are being a little evil.
People think Google indexes the web, but really, they don't make too much (after they created the brand and the PageRank algorithm). Some studies say 30% of the web isn't indexed. That is, 1 of 3 pages you are looking for, is not present in any search engine.
Believe me, you have to work hard just to enter in a search engine (one month or more from your submission), and then, if some day they decide to include your website, you have to hire a SEO to make Google work properly, and appear in the first page when the user type your name... Google should be indexing the web in the right way, not you (by hiring a SEO for them), or Google should pay for it.
It is a vicious circle, you pay a SEO and Google get more people working for them to get the top-5 positions for the "britney spears" search entry. Then, that word becomes more competitive and you need another SEO to keep your position. It is ironic, everybody doing the Google's work while they give 20% to their employees to create Orkut for Brazilians and play ping-pong ;)
But if it is not enough, Google consumes your bandwidth (money) every time they crawl your site. Ok, you may think it isn't too much waste, they are just using a little part of your bandwidth... but, what would you think if 1 million of companies start crawling the web and your site, just like Google does. Clearly, that is different, because the abuse becomes obvious. On the other hand, you can't use a robot to consume their money (i.e. writing a program to auto-click adSense advertisements) because they may sue you. So, why can they waste my money but I can't waste theirs? Do you think it is fair? I know, I can write a robot.txt file to avoid the crawler, but why should I waste my time for them? Why are they assuming they can use my bandwidth?
I think it will be a problem in the long run. But don't panic, it won't happen for a while. Some day, if everything continues as it goes, people will notice that Google is not producing accurate results for their searches, because SEO's are manipulating them, and a fairer search engine will emerge. Google is becoming a advertised menu, and I don't want to search stuff there.
Let be sincere, Google is not producing the web, they are just getting money from your production and using your resources to do that! It could be a fair model when they were a start-up, but nowadays, that they are earning billions of dollars with your customers and your bandwidth, and you have to outsource a SEO for them, I think it can be considered evil, don't you?.
I can think in two solutions to this problem on the top of my mind: Google should pay-per-crawl your site, and they should crawl your site only if you specifically allow them (crawler should be disabled by default). But I will keep thinking, in Internet you always can do something to avoid the use of the power.
What do you think? May be, I am the only one thinking that this model is wrong.
Labels: Crawlers, Google, Internet, Technology
Thursday, July 19, 2007
What Is An Operating System?
We all know that Windows, Linux, OS/2, Unix, etc are Operating Systems.. but how do you define them concretely?
Is it a set of drivers? Is it a platform to run applications? Is it just a set of applications?
I remember the OS's teacher trying to answer this question the first day of classes... but he couldn't find the right answer.
Facebook has acquired Parakey, a company that promote themselves as a Web Operating System..
So, this question came to my mind again: is Parakey really an Operating System? What do you think?
But, who cares? I am sure that Facebook has paid it as if they were ;)
Labels: Software redefinition series, Technology
Thursday, July 05, 2007
iPhone? No, Simon!
If you think the iPhone was the first multi-touch user interface phone, you are wrong.
Bill Buxton, the man behind Microsoft Surface explains the multi-touch history here (and his history with multi-touch user interfaces).
Please, don't forget to scroll down to see the Simon phone launched for IBM and Bell South in 1992!!!!
The reasons why nobody know it:
- launched too early?
- technology adoption curve is longer than people believe?
- marketing is SO important?
What do you think?
Labels: Technology, UX
Sunday, May 06, 2007
Name and conquer
This is a very famous principle in maths.
I think Donald Knuth was the one who first propose it in Mathematical Writing, but I am not completely sure.
For example: v = c + u(ci − cj + 1)
Should be v = c + ku, where k = ci − cj + 1,
If you're going to do a lot of formula manipulation in which (ci − cj +1) remains as a unit.
I still remember it from time to time, but never with maths involved ;)
Some time ago, I remembered it when I started with my investigation about user interface modeling techniques and I found the Hypermedia methods. Nobody knows about Hypermedia and I think the name has a lot to do with it. When you say "Hypermedia" people think in everything but formal models for the web. Well, this is the reason why they renamed it as Web Engineering some years ago...
However, some time ago I remembered this quote again while watching the Dave Astels techtalk about BDD (Behaviour-Driven Development). He was promoting the TDD (Test-Driven Development) philosophy, that says: "write the test before the code". He was the one who wrote the book about TDD that won the Jolt Award, but... he said, "actually, people wasn't using it"... Why? When you have a very strong deadline you just write the code and then the test (but only if you have enough time, don't you?).
But then, something came to his mind...
If you rename test as specification everything makes sense: "write the specification before the code". It sounds far better! Specification is a fist-step task in software development and everybody knows it. Everybody understand the Waterfall method. The good thing now, is that the specification can be tested automatically, because, at the end... it is a test.
Sometimes, the psychological influence of renaming things are amazing. This principle is not new but sometimes you can think it is only related with branding or marketing areas. However, it is true also in maths and software development techniques, unnamed or bad-named things can destroy everything you have done.
BTW, the Google techtalk isn't good enough to recommend it, but it has very funny final Kent Beck's quote:
"I always thought Smalltalk would beat Java, I just didn't know it would be called 'Ruby' when it did."
- Kent Beck
Labels: Hypermedia, TDD, Technology
Monday, April 09, 2007
The Car I Want
I love this car. Although I haven't driven it, I love the concept: "electric cars that people wants to drive".
Despite the fact I am not sure if human being should drive cars (car crashes produce 1.2 million dead every year, are the first dead cause for young people in the rich countries, etc.), I must agree that it is the best way I know to start with environment-friendly technologies in the car market. I strongly believe that in this century we should move from driving CO2 cars to habiting ambient-friendly car-like transporters. Well, the Tesla way is a good first step in the right direction.
Tesla Motors is a Silicon Valley start-up company that shares the software start-up spirit, for example, you can find Jeffrey Skoll, Larry Page and Sergei Brin among their investors.
They are targeting the sport high-end market with this Tesla Roadster (these kind of people are the only who can buy 100,000usd toys). As a second step, they will learn about their technology and provide a family sport car in a wider but still high-end market. In the long term, they will provide the "usual" car-company offer. They are also changing the standard distribution channel for cars: they will provide specialized end-user Tesla Shops. They can make this because their actual customers aren't worried about the price/feature trade-off, they are just looking for a new toy. I think this can only be a short/middle term strategy in order to encourage the Tesla brand value.
I really like their strategy, do you think it is a blue-ocean one? I think so.
Disclaimer: This post has nothing to do with user interfaces... are you sure? really? Ok, you are right ;)
Labels: Frinedly Cars, Technology, UX
Thursday, March 15, 2007
SQL, the first successful DSL
There is a new wave around the software factories and the domain-specific languages now. However, we have tried specific languages from the very early beginning and along the whole software history: Server languages, Script Languages, Query Languages, etc.
From this point of view, I think that SQL (Structured Query Language) is the most successful DSL in the history.
Why SQL is a DSL?
Just because it's a language designed to solve a specific problem: "to define databases and retrieve information from it".
I think one of the most important things when you are trying to create a language to solve a specific problem is to target a well-defined problem. That is, it should be bounded, focalized and easy to communicate.
Besides, two things could make it the most successful one: to have a lot of people wanting to solve the same problem, and to support a good extensible approach form the beginning.
Who need SQL?
Most of the last 30 years applications need databases. You may think in writing your own code each time, to avoid constrains involved in the SQL and the DBMS, but it would have no sense for most of us if you think in the costs.
Have it got an extensible approach when the model is not enough?
Well, yes and no. Many SQL statements were impossible in the beginning and remained in this state until a few years ago. The model had to be improved year by year.
This is a gold rule in the DSL approach that everyone should understand: you should improve your specific-language while you learn from your specific-problem. Or, what is the same, the language won't be perfect from the first time. The model is stable right now, 37 years after the first approach written by E. Codd.
I think we have learned a lot and new DSL's should take less time to get stable ;)
Labels: DSL Tools, Technology
Wednesday, July 26, 2006
I am back.
Just to say two things: you should read this Martin Fowler article about Ruby, RubyOnRails and enterprise applications; and second, after finishing the alfa test, I have updated the designer screenshots.
Labels: Himalia, Technology
Wednesday, March 22, 2006
Now, Ruby on rails
RIA's (Rich Internet Applications) frameworks have come to stay here.
We have them in many flavours: Server-side, pre-compilers, client-side, etc. In a few day I will give you my point of view about all this "new" stuff, starting with Ruby on Rails.
Labels: Platform, Technology
Saturday, March 04, 2006
IBM Approach - Open Laszlo
I have been exploring the open laszlo project.
It's another XAML/XUL-like approach to describe the presentation of a user interface layer. But isn't just another one. Why? It's build over Flash. So, it doesn't require a client installation at all... well, it obviously requires the Flash player, but Macromedia says it's installed in 98% of the internet-ready computers. I think that it turns the Flash Player the most-popular browser (browser = user interface player?). Avalon (included in Windows Vista as Windows Presentation Fundation) is following the same approach, with their own set of tools, including an animation-maker tool. XUL, impulsed by Mozzila.org, is basically the same, but built over dhtml.
I suggest you to see the lazlo on-line examples... I am sure you are ready to. So, it's great. don't you think? "Rich" web user interfaces in nowadays computers?
But now, they are thinking in moving Flash out and adding a new compiler from LZX to the Open Ajax initiative.
So, wasn't it so great?. I think this have a lot to do with the "AJAX platform war" that we are seeing today, and it's nothing but an IBM's tactical decision to impulse their Open Ajax.
I don't know which Ajax framework will finally win but there are a lot of them in the battle, supported by the bug guys.
But I am really sure that the next year, with Windows Vista released, the software industry will need a lot of cross-platforms solutions (converters, translators, abstractions, etc.) one time again.
Labels: Internet, Platform, Technology
