I have written before about the Skånetrafiken vending machines for the trains in my region. Skånetrafiken recently launched a completely new system for buying tickets and using a new type of RFID cards for payments, called Jojo cards. The neat thing with these, is that they dont require the card to be put into the machine, but instead just require cards to get close to the reader. This way you dont need to pick the card from your wallet when using it. Thats neat.
With this nice solution comes new machines for reading the cards, which are installed in all the buses, as well as some other type of machine for buying train tickets. I have seen the latter in two forms, and havent looked into the difference yet. What I do know, is that one accepts cash while the other is only for Jojo cards. I just had to try one of these out when I saw it at the station and I had some time spending waiting for the train.
Exploring the machine, I immediately discovered some flaws with user-friendliness and strange workflow. Touchscreen being too resistant to touching and too little information in each screen was things that I noticed.
One of the strange workflows parts is the fact that if you want to pay with Jojo card, you are first required to register it, choose your way of travelling, and then register card again. Somehow as a user this is a very annoying workflow having to raise your hand with the card twice, and I couldnt seem to find out why they wanted to do this. You could imagine that they want to see the amount of money on the card to see if you could afford the trip, but this was not the case since my card only had time period credits for unlimited use, but no money credits to buy special trips. When registering the card the second time, the machine just stated not enough money credit, and cancelled my search. This resulted in some frustration having spent time on the search, but abruptly cancelled by the machine. The possibility to use my credit card for the searched trip was something that I had to choose as the first option before I could even search and see the price for the trip.
I remembered reading in the local newspaper about Skånetrafiken stating that “Well, its always like that, people just need to get use to the system, they will soon enough.”
After playing with the machine some more, finding more of this type of “bugs”, a girl came up and wanted to buy a ticket so I moved away. Watching this girl get more and more frustrated with the machine for about a minute, she turned to me and asked me for help buying a ticket. She just wanted to buy a youth ticket to Helsingborg from the closest station Maria station where we were situated. The thing is that Helsingborg is one of the really big towns in my region, and should be one of those “quick buy options” (shortcuts), especially if you are travelling from Maria, which is a of part of Helsingborg town. When looking at the shortcuts on the home screen, I realized that all of them went to reasonably big towns in the region, but were all predefined for adult ticket prices. Then what should a person do to buy a youth ticket? You have to keep in mind that youth ticket prices apply to any person in the region under the age of 20, which applies to quite many people travelling by train.
The option “other towns” on the home screen shows about 20 more options of destinations in the region, but since the 6 biggest ones were on the frontpage, they are not shown in this screen either. The biggest difference from the home screen is that these destinations dont come with the predefines adult price. But since we wanted a youth ticket to one of the destinations on the home screen, we did not find our solution on the second page either.
Well, after that I had two options to try, the “Map” to use and find the destination there, which included zooming in multiple steps before the destination appeared on the map as a button.
So, how about some use cases with personas to discover these issues at an early stage of development? I mean, youth ticket is most probably a common used ticket.
More flaws on the user interface of the machines can be found at http://www.skanetrafikensuger.se/. I recall many of them being issues that could have been avoided with proper testing actually. Since I dont know if they are going to remove it soon, here quoted in swedish:
Därför suger de nya biljettautomaterna
- Ingen maskin har knappar som låter “ding” när man trycker på dem. Vilket spånhuvud har skakat fram det gamla ding-ljudet från Windoze 3.1 och stoppat in i maskinen. Rätt ljud för audioell feedback är givetvis ett kort och koncist “dutt”.
- Touchskärmen sitter så långt bakom glaset att det endast går att trycka på en “knapp” på skärmen om man är pygmé och tittar på skärmen rakt framifrån. Vi andra normallånga måste trycka 2cm under önskad “knapp”.
- Vansinnigt segt GUI. Inte ens ett litet inbyggt system är så slött, detta körs under Windoze på (industri?)-PC!
- Gränssnittet är en kognitiv katastrof. Inte ens en ingenjör kan göra ett sådant ointutivt gränssnitt.
- Omöjligt att få ut tidsstämplat kvitto för resegaranti, måste därmed ha tillgång till kopiator för att ansöka om resegaranti.
- Omöjligt att få ut ett nytt papperskvitto på köpt biljett. Användbart när automaten på bussen har slut på papper. Som en extra teaser ser man biljetten på skärmen.
- Måste hålla upp JoJo-kortet två gånger mot läsaren vid köp. Var gör man föresten av kortet under köpet? Obegripligt!
- Skärmsidan där man väljer antal vuxna/barn/hundar/katter vid biljettköp har två knappar med snarlikt namn, en “Nästa” och en “Fortsätt”. Obegripligt innan man tryckt fel en gång.
- Inmatning från knappsatsen för kod till konto/kreditkort kort segar efter.
- Kortläsaren för konto/kreditkort är värdelös. Går inte att hantera med stora fingrar eller vantar på händerna. Verkar dessutom rätt okänslig, ibland får man stoppa i och ur kortet mer än en gång. Ointutiv att man ska stoppa i och dra ur kortet.
- Varför den svarta skärmsläckaren med den röda ringen?
- Maskinen får spel och står och låter ding-ding-ding om man lämnar den i fred en stund.
- Det ointuitiva och sega användargränssnittet resulterar i att biljettköp tar långt mycket längre tid än med de gamla automaterna. Dessa, ska tilläggas, var heller inte direkt användarvänliga.
Inte många rätt med andra ord… Faktum är att jag ansträngt mig för att komma på en enda bra grej med de nya automaterna men inte lyckats. Fast det spelar ju ingen roll, enligt Skånetrafiken är det ju kunderna som är ovana och inte begriper något.
Har du fler anledningar? Tveka inte att maila mig påph@skanetrafikensuger.se.
Yesterday I attended a PMI seminar on Organizational Project Governance. Although I am not into the whole PMI/PMP thing, I have attended some sessions and got a somewhat overview of some of the things that is included in the PMBOK. The thing is that I can see the PMP thing a little bit like the ISTQB (founded 2002) for testing, but broader in its coverage and somewhat more experienced and older (founded 1969). So why am I even considering looking into these things?
Well, I think that any knowledge is good knowledge. And as a tester, I am always affected or in contact with this kind of management, so why not gain some knowledge about these things. At some point in the future, the knowledge will be handy, Im sure.
The seminar was in three parts, where I was actually one small part myself, presenting the leadership course I have attended (Value based leadership) , going to write about that later I suppose.
Second part was Ted Böklin from Tetra Pak PMO, explaining some of the work areas and templates that he and Tetra Pak uses in his work. Really interesting, although it was somehow at a very high level for me to not understand everything. The PM pit is deeper than you might think=)
The third part was Kjell Rodenstedt and his colleague Thomas Jansson. Together they have really extensive knowledge in the areas of PPPM, a new abbreviation for me, Portfolio Program and Project Management. Apparently they have been doing this stuff for decades, and during their journeys of course gathered plenty of material in their toolbox. So what were they to do with all of this?
This is what fascinated me, they decided to make everything available for anyone on a portal. Their whole toolbox of document templates, processes and everything, for FREE! Project management goes Open Source!
So, without digging deeper into their history, business case or goal with all of this, I just wanted to tell about this incredible step for PM. I am not a big fan of templates and plans and everything, but I think that this is a step in the right direction. Imagine everyone taking their work, create their versions of it, and more and more do it lightweight. The first step is taken, now we just need to cooperate with the PMs to get the most out of the project plans that we really want to follow, everyone!
Check it out: www.opgport.com
James Bach brings up the logging in a system as a tool for the exploratory tester. I really like this, and am going to see if I can straighten out his list to fit my specific project and situation. I have been thinking about this some time now, but mostly about the information within the log entries, and not the logging mechanism itself.
The system I am testing at the moment has extensive logging features, or at least it logs very many things at multiple levels. I use the logging sort of like he mentions, but not relying as extensively on it as it sounds in his post. The system is pretty straightforward relying on one input that creates one single output. Apart from that, there is only logging and status management to keep track of events.
In our case, when testing a part of the system and keeping my eyes on the logging, it struck me that there was a line “check that x has not failed”. This line was very common to see, since it was logged for every event created successfully. But thinking about it, was this entry a useful entry? NO! In my case it was so obvious that none of the developers had been thinking about it, but it was an horrible entry. Why? One of our statuses for events was “FAILED”. So if an event would fail, the obvious thing is to grep for this word in the logs. But having every successful event instance log the word failed would be devastating for any operator trying to find the cause of a failet event.
So what I would like to extend in James’ list, is that of bullet 5″- Event type description: short, unique human readable label” and “- Event information: any data associated with the event that may be useful for customer service or assessing test coverage, this data may be formatted in ways specific to that event type.”
I want to point out the value and importance of having these string fields not interfere between different types of log entries. Like my example above, keeping the word ‘Failed’ away from any successful events at all times is crucial. The problem is that it is so easy to get it wrong. Developers need to think about this when coding, and not only log what the code does, but create the human readable log entry consistent from the user/operator perspective. If something is successful, it does not matter that the code is “checkJobNotFailed(job)”, but the logged entry should verify the success.
Other types of risks with the logging content is of course that of usernames and passwords. If this type of information is logged in a readable way at any logging level, the log files must be handled according to the security policy of this information.
I have made two examples to point out less good logging events. So, what more examples of “good vs bad” log entries are there? Remember that I am not talking about the logging mechanism and its’ good and bad practices like the ones presented by James, but the content of the event entry messages.
Please enlighten me with more input.