Friday, November 2, 2012

WyWallet har potential att lyckas

Jag har länge kliat mig i skallen och undrat varför kreditkort är det enda betalsystem som funkar förutom kontanter, både IRL och på nätet. Och med fungerar menar jag: Att systemet erbjuds som betalalternativ tillräckligt ofta för att man orkar bry sig om att skaffa konto. Men äntligen verkar det vara en ny guldrush mot nya (mikro-)betalsystem. Bankerna kommer med Swish. Teleoperatörerna har lanserat WyWallet. Förutom att kunna göra egna inköp är  jag är nyfiken på om något av dessa system kan vara en bra betalsystem för Sprend.

Idag har jag provkört WyWallet och det har inte varit lätt att göra. Det finns nämligen ingenstans man kan handla med sitt WyWallet-konto! Jo okej, sms-betalningar dras automatiskt från WyWallet-kontot i stället för mobilfakturan. WyWallet lovar att det så småningom också skall bli möjligt att betala i webbutiker, i mobil-appar och i fysiska affärer - med det går inte ännu. Därför har jag bara kunna provköra dom delar av appen som inte har med betalning att göra.

Slutsatsen av app-testet är att fyra stora rika teleoperatörer måste kunna mycket mycket bättre än så här. iPhone-appen är ett riktigt buggigt budget-bygge:
  • Appen kraschar gång på gång. Det händer speciellt ofta när man återvänder till appen efter en stund i en annan app.
  • Appen är slö som tusan. Det tar flera sekunder att växla mellan sidorna, vilket leder till feltryckningar.
  • Den ser inte ut som en iOS-app; jag gissar den är byggd i något crossplatform-verktyg.
  • Dom få texter som finns är inte ens korrekturlästa.
  • Vid påfyllning av kontot via kreditkort skickas man ut ur appen och in i Safari till ett flöde som inte är mobilanpassat.
WyWallets facebooksida kan man hitta flera inlägg som undrar varför man ersätter ett fungerade system, sms, med ett sämre, WyWallet-kontot.  Ja vänta lite, vi har ju redan sms. Funkar inte det? Jag tror ändå en app kan göra inköp enklare, och det finns inget som är viktigare än just enkelhet enligt min ödmjuka mening. Om jag förstår flödet korrekt så handlar man genom att:
  1. Ange sitt mobilnummer i ett webbformulär
  2. Mobilen säger pling-plong: Vill du köpa <x> från <y> till priset <z> kr?
  3. Du godkänner genom att knappa in din pinkod.
Är detta enklare än att knappa in ett nummer och en kod i sms-appen? Jag tror risken för misstag blir lägre i WyWallet-appen eftersom man redan kan sitt eget mobilnummer i huvudet (?), samt att WyWallet-appen anger vad man betalar för. Jag jag betalar via sms trippelcheckar jag alltid att numret och koden är rätt. Det skulle jag slippa med WyWallet.

Andra fördelar är en tydlig transaktionslista, och möjligheten att flytta pengar från mig till dig. Det kostar 1 kr vilket det definitivt är värt bara för att man kan spåra transaktionen.

En stor nackdel som även David Paulsson uppmärksammat är att det blir klurigt att betala med företagspengar. Varför kan man inte registera två konton i WyWallet-appen, ett privatkonto samt ett för företaget? När man genomför ett köp skulle man enkelt kunna välja vilket konto som köpet skall registreras på. Vid slutet av månaden skulle företaget man jobbar för få en komplett lista på alla inköp som gjorts. Ingen extra adminstration eller pappershantering. Lösningen som WyWallet erbjuder är att man loggar på sitt konto och väljer ut företagsinköpen, laddar ner en pdf som man sedan skickar till sin arbetsgivare för bokföring. Funkar, men är onödigt krångligt.

Jag tror WyWallet har en stor potential. Tjänsten har fördel gentemot Swish eftersom sms-betalningar redan är ett etablerat system. Kvaliteten måste dock höjas över hela linjen (PS. Jag är bra på att koda).

Tuesday, October 30, 2012

LinkedIn för konsulter

Jag fick nyligen en fråga i en LinkedIn-grupp vad jag saknade som frilansare på LinkedIn. Detta ämne har jag haft i tankarna under en längre tid. Här är mitt svar.


"Det som mest saknas [på LinkedIn] är möjligheten att ange följande egenskaper:
  1. Jag söker uppdrag (inte anställning)
  2. Jag ledig fr.o.m. detta datum
  3. Jag passar i fler än en roll. Konsultuppdragsprofiler är ofta nischade mot en viss roll. En person har ofta kompetens för flera roller.
Det viktiga är att egenskaperna är sökbara vilket skulle ge konsultköparen kommandot över rekryteringsprocessen.

Av olika skäl är konsultbranschen, även inom IT, synnerligen analog. Personliga kontakter är oerhörd viktiga, och det är gott så. Men ofta kan kedjan mellan projektledare till potentiell projektmedlem vara för lång. En tjänst, kanske LinkedIn, kanske en helt ny tjänst, skulle i vissa fall kunna kapa dessa led.

För att exemplifiera, säg att jag är projektledare för ett nytt projekt. Jag letar efter en  kompetent medarbetare som är a) ledig vid projektstart 2012-11-15, b) finns i Norrköping, c) är en skicklig yrkesman inom området mjukvarutest. Tänk nu om den sökningen ger vid handen att det finns tre stycken som matchar. Dessa tre kan jag ta in och intervjua själv.

Säg att det blir 30 träffar i stället. Då kan jag behöva hjälp och vänder mig till konsultföretag och mäklare som jag har förtroende för. Deras jobb blir att sovra och hitta de bästa. Kanske skickar jag med en länk till sökningen jag gjort i min förfrågan.

Kanske ser jag att konsultbolaget X har ett flertal passande kandidater direkt i min sökning. Lika bra att vända mig till dom direkt. Samma sak för konsultmäklare; mäklaren har ett stall med konsulter precis som ett konsultbolag med anställda.

LinkedIn skulle kunna bli tjänsten som digitaliserar den konservativa konsultbranschen. Det skulle också kunna vara en helt ny tjänst med fokus på konsulting och inte rekrytering som bröt ny mark."

Tuesday, September 18, 2012

The App Director

The App Director Arne Evertsson behind the Java compiler (?)
“Yeah, let’s make a movie!”

På svenska

A film producer is the project manager of a movie production. He makes sure there is a script and financing. He finds the right people for the different creative and practical tasks involved in a movie making project. Also, he supports the director who is responsible for the artistic aspects of the film.

Artistic aspects? Sounds like painting or sculpture. The director carves away on a statue that is supposed to bring about emotions, thoughts and hopefully convey an important message. Script, actors and all sorts of skilled people make up the tools and materials used by the director.

My impression is that the director points and leads, and then stands back to let each person perform her particular skills. The producer is always there, providing a shoulder to cry on (?).

So what does this have to do with application development? Let's look at the contemporary de-facto standard for software development, the project method Scrum.


Scrum?

The developers, the scrum master and the product owner are the protagonists in a Scrum project. We will take a closer look at the product owner. The main task of the product owner is to feed the team with a prioritized list of stuff to do. The developers starts at the top and work their way down the list. The product owner moves, adds, or deletes tasks from the list. Each task is described in terms of business value rather than technical or solution aspects.

The above is a very sound way to go about software development, and it is the foundation on which all Agile methods stand. There are however a bunch of questions that are not answered by Scrum, important questions where development teams often fly blind.

Before the team can get started on a task it needs be sufficiently well-defined: The story must be backlog-ready, i.e. the task must be ready for the todo list. What does that mean? It’s not obvious. This question is also related to another question: When is the interaction design performed? Is the design of the user interface a prerequisite to get started or is it performed at the same time as, or even after, the programming? Also not very clear.

Job ads for software projects will often list roles like business analyst, requirements engineer, and functional architect. You’re supposed to lead workshops, write requirements specs and act like a bridge between business and technology. What? I lost myself there. Where did the product owner go? Is there a project manager around? Is requirements engineering the same as application design? The plot thickens...


George and Steven have the answer to the riddle

George and Steven. Who's who?
The best friends George Lucas and Steven Spielberg created the classical Indiana Jones movies. George is the producer. Steven is the director. What if George and Steve have understood what it takes to succeed with project work?

Let us marry the product owner of Scrum with the director from Hollywood. Let us call the baby The App Director. The first thing he does is to put an equal sign between business benefits and end-user benefits. If nobody goes to see the movie the film studio makes no money. If the end-user doesn’t benefit from using the application, the company will make no money. It’s really that simple: Business benefits = End-user benefits. This fact is often lost somewhere between the powerpoint presentations and project documents.

The director has the vision. The director has the ability to make that vision tangible in the project goal. The vision comes from a deep knowledge of the needs, but even more from the creative skill of being able to visualize the solution. The app director identifies the users' needs. The app director designs the application, thereby becoming the main stakeholder. He is the CID, the Chief Interaction Designer. The app director realizes the end-user benefits.

Hey, wait a minute. Rewind please. You will need a business expert to know the business needs. There’s your app director, right? Yes. But only if said business expert is also an expert at application design. If not, the business export may be provide support for the director, great support. Learning the business rules is a necessary and very interesting activity for the director.

Let’s go back the Bearded Brothers, how would they do this?

George and Steven have long before the start of the shooting worked on a script together with the script writer. There exists a very clear picture of what shall be achieved. No matter whether Steven wrote the script himself or not it will become his script in the creative process. Before shooting begins each scene is pinned to the wall in the of storyboards. Even as the shooting is in progress there are changes being made to the script.

Now re-read the previous paragraph substituting implementation for shooting, application design for script, interaction designer for script writer, story for scene, wireframes for storyboards.

Let’s leave George and Steven alone for a while.


I believe this is the way to do it

Before the team of developers gets going there is a design. It’s not complete, does not contain all the details, but it does provide a good picture of what we right now think is the end goal. There are of course details for the stories at the top of the list. The director works with an interaction team that contains interaction and graphic designers, and they will always stay ahead of the developer team. Before a a story/task is ready for the todo list, the director will get input from one or more developers regarding tech issues and time estimations. In this way the todo list will be fed with doable tasks. As soon as the stories get done by the D-team they fly back to the I-team for usability evaluation; the conclusions of which get fed back into the loop.

Luckily we can avoid the Hollywood movie production monster machine. We are developers and we move with agility. The agile way is the basis for how we work.

I haven’t said a lot about the Application Producer but I think this role is more similar to the role of the Project Manager. Perhaps I would take a few Scrum master tasks and give them to the producer. The producer, together with the director, will be responsible for the delivery of a usable system with real benefits for the end-user.


Conclusions

I have four points to make:

  1. Focus on end-user benefits and you will create business benefits.
  2. Interaction design is the most powerful tool of the app director.
  3. The app director is an expert at designing applications. Domain knowledge and business knowledge are input into the design process.
  4. Use two teams, the interaction team and the developer team. The I-team always works ahead of, but also after, the U-team.

The application director is the product owner (Scrum) but with a clearer area of responsibility. He has a deep understanding of usability and user value. He transforms user needs into app design and leads the team all the way to the goal.

Friday, September 14, 2012

Applikationsregissören

“Ja, vi spelar in en film!”

In English
Applikationsregissör Arne Evertsson bakom Javakompilatorn (?)

En filmproducent har det övergripande ansvaret för att en film blir till. Det handlar om att se till att det finns ett manus, finansiering, och hitta rätt personer att utföra dom olika kreativa och praktiska uppgifterna i ett filmprojekt. Inte minst skall producenten stöda regissören som har det konstnärliga ansvaret för filmen.

Konstnärliga anvaret? Det låter som måleri eller skulptur. Regissören hackar fram en skulptur som skall väcka känslor, tankar och förhoppningsvis förmedla ett budskap. Materialet och verktygen utgörs av manus, skådisar och alla möjliga superproffs inom sina konstnärliga hantverksområden.

Mitt intryck är att regissören både pekar och leder men sedan också håller sig undan så att var och en kan bidra med sitt kunnande. Producenten finns alltid där som en axel att gråta emot (?).

Men vad har allt detta med applikationsutveckling att göra? Låt oss titta på samtidens defacto-standard vad gäller mjukvaruutveckling, projektmetodiken Scrum.


Scrum?

Utvecklarna, scrummästaren och produktägaren har huvudrollerna i ett Scrumprojekt. Låt oss titta närmare på produktägaren. Produktägarens huvuduppgift är att kontinuerligt föda teamet med en prioriterad lista av uppgifter. Utvecklarna betar av listan från toppen. Produktägaren stuvar om, lägger till eller tar bort från listan allt efter behov. Varje punkt i listan är beskriven i termer av affärsnytta, inte teknik eller tillvägagångssätt.

Detta är en mycket sund inställning till programutveckling, och arbetssättet är grunden för alla agila metoder, inte bara Scrum. Det finns dock ett antal frågor som inte besvaras av Scrum alls, viktiga frågor där utvecklingsteam ofta famlar i blindo.

Innan en uppgift kan påbörjas måste den vara tillräckligt väldefinierad så att teamet kan ta sig an den: Storyn skall vara backlog-ready. Det vill säga, uppgiften skall vara mogen att hamna på att-göra-listan. Vad betyder det? Oklart. Denna fråga är också relaterad till en annan: När sker interaktionsdesignen? Är användargränssnittets utformning en förutsättning för att påbörja utvecklingen eller sker detta samtidigt eller till och med senare? Också oklart.

I jobbannonser för mjukvaruprojekt används ofta rollbeskrivningar som business analyst, kravfångare, och verksamhetsanalytiker. Man skall hålla workshops, skriva kravspecifikationer och vara bryggan mellan verksamhet och teknik. Men det är ändå beställaren och styrgruppen som beslutar om projektets mål och innehåll. What? Jag tappade tråden där. Vart tog produktägaren vägen? Finns någon projektledare inblandad här? Är kravprioritering detsamma som applikationsdesign? The plot thickens...


George och Steven har svaret på gåtan

George och Steven. Eller kanske tvärtom?
Dom goaste vännerna George Lucas och Steven Spielberg ligger bakom dom klassiska filmerna om Indiana Jones. George är producenten. Steven är regissören. Tänk om det är så att George och Steven har fattat det där med att arbeta i projektform?

Låt oss gifta ihop produktägaren från Scrum med regissören från filmproduktion. Låt oss kalla bebisen för Applikationsregissör. Det första applikationsregissören gör är att sätta likamedtecken mellan affärsnytta och användarnytta. Om ingen tittar på filmen kommer filmbolaget inte att tjäna några pengar. Om inte användaren har nytta av applikationen kommer företaget inte att tjäna några pengar. Så enkelt är det faktiskt: Affärsnytta = Användarnytta. Detta är ett faktum som ofta försvinner bland powerpointpresentationer och projektdokument.

Regissören har visionen. Regissören har förmågan att konkretisera visionen i projektmålet. Visionen kommer från en djup kunskap om behovet, men i ännu högre grad från den kreativa förmågan att se lösningen framför sig. Applikationsregissören är behovsfångaren. Applikationsregissören designar applikationen och blir därmed kravställaren. Han är CID, Chief Interaction Designer. Applikationsregissören realiserar användarnyttan.

Men vänta lite nu. Spola tillbaka. Det måste ju till en verksamhetsexpert för att kunna se verksamhetens behov. Där har du din applikationsregissör. Eller hur? Ja. Men bara om nämnde verksamhetsexpert också är expert på applikationsdesign. Om inte, kan verksamhetsexperten vara ett stöd för applikationsregissören, ett fantastiskt bra stöd. Inhämtandet av verksamhetskunskap är en nödvändig och synnerligen intressant uppgift för regissören.

För att återknyta till bröderna Skägg, hur gör dom nu det här?

George och Steven har långt innan inspelningen jobbat på ett manus tillsammans med manusförfattaren. Det finns en väldigt tydlig bild av vad som skall åstadkommas. Oberoende om Steven skrivit manuset på egen hand eller ej så blir manuset hans egendom i den kreativa processen. Innan inspelningen startar sätter man upp varje scen på väggen i form av storyboards. Bara för att inspelningen har kommit igång är inte manuset gjutet i sten, utan ändringar och tillägg görs löpande under produktionen.

Läs nu om ovanstående stycke, men byt ut inspelningen mot implementationen, manuset mot applikationsdesignen, manusförfattaren mot interaktionsdesignern, scen mot story, storyboards mot wireframes.

Okej, låt oss lämna George och Steven för en stund.


Så här tror jag man skall göra

Innan teamet med programmerare sätter igång finns en design. Den är inte komplett, innehåller inte alla detaljer, men den ger en utmärkt bild av vad vi föreställer oss är slutmålet just nu. Detaljer finns däremot för dom stories som är högst på priolistan. Regissören jobbar alltså med ett interaktionsteam som innehåller interaktionsdesigner och grafisk formgivare, och dom ligger ständigt före utvecklingsteamet. Innan en story/uppgift är färdig för priolistan låter regissören också en eller flera utvecklare göra en teknisk design och uppskatting av omfattningen. På detta sätt föds priolistan med konkreta genomförbara uppgifter. Allt eftersom stories blir färdigprogrammerade åker dom tillbaka till interaktionsteamet som evaluerar användbarheten och tar med sig slutsatserna i det fortsatta arbetet.

Som tur är slipper vi den Hollywoodska massiva monstermaskinen som en filminspelning är. Vi systemutvecklare kan vara mycket mer lättrörliga. Den chansen försitter vi inte utan det agila tankesättet är grunden för hur vi jobbar.

Jag har inte sagt så mycket om Applikationsproducenten men denna roll liknar nog mer det som kallas Projektledare. Kanske stoppar man in en del av vad Scrummästaren gör i producentens arbetsuppgifter också. Tillsammans med applikationsregissören har han ansvar för att användarna får glädje och nytta av systemet.


Slutsatser

Det är fyra saker jag vill säga:
  1. Fokusera på användarnytta och du kommer att skapa affärsnytta.
  2. Interaktionsdesign är applikationsregissörens främsta verktyg.
  3. Applikationsregissören är expert på att designa applikationer. Domänkunskap och verksamhetskunskap är input till designprocessen.
  4. Jobba med två team, interaktionsteamet och utvecklingsteamet. I-teamet ligger ständigt före, men även efter, u-teamet.
Applikationsregissören är alltså en produktägare a la Scrum fast med ett tydligare mandat och arbetsuppgifter. Han har en djup förståelse för användbarhet och användarnytta. I hans huvud förvandlas behov till en konkret design och han leder teamet hela vägen in i mål.

Thursday, May 24, 2012

Could manual testing work?

Let me tell you about my experience with software testing. In many projects (but not all) there has been a group of testers. Their job has been to test the system after the developers are done, file bug reports, wait for fixes, and then re-test. It all looks sound on the surface, right? However in practice this classical setup has a number of  problems :
  1. The tester isn't part of the team. He needs written documentation to know what to test. Somebody has to write this very detailed documentation.
  2. Testers I've worked with have had absolutely no clue on how to automate even the simplest test cases. Instead they have spent lots of time doing monkey work.
  3. The fact that there is a specific phase for testing means the developer, consciously or unconsciously, gets lazy with his own testing. That results in many bugs.
  4. If there are many bugs most of the tests will probably be impossible to run. The tester will have to wait for the developers to fix the bugs.
  5. Developers will quickly hack the bug fixes since we're already out of time.
  6. Nobody will know when or if it will be possible to deliver anything to the actual users.
 The  solutions  are pretty obvious. In the same order as above:
  1. Put the tester into the developer team. The tester will now have a chance to write tests even before code gets written.
  2. The tester is a programmer capable of automating tests.
  3. There is no testing phase. Stories are done only when they have been tested.
  4. No waiting for fixes will occur.
  5. No quick hacking will occur.
  6. Delivery is on demo day.
Problem solved. Relief.

 Right? 

Actually... Yes, I think so!

In my current project (which more or less follows Scrum) however we have yet to set up automated testing at a story level. The test cases so far have been completely manual. This fact gave rise to a discussion today among team members that I summarize like this:

"The thing I'm working on now affects more than just one story. I'll probably need to re-test quite a few stories and forms. What if the next story is similar? I'd have to re-re-test those same things again! That's going too take to much time. What we need to do is to have a code-freeze a number of days before sprint ending. We'll use those days to test the whole system and fix whatever bugs turn up."

Yes, that would do it.

 No! Panic Button! Incoming Godzilla! Iceberg on starboard! The drachma has arisen from the dead!

If we do this, we re-introduce a testing phase at the end of the sprint. Having a testing phase leads to sloppy developers, which leads to many bugs, which leads to end-of-sprint chaos!

The only really good solution is to automate the testing. But since we haven't done that we need a compromise solution. Suggestion for manual testing:
  • Multiple story implementations that affect the same existing functionality get tested together and just once. Before code-freeze. Fix for: Time
  • There is a code-freeze and the extra days will help us confirm the done-ness of stories. The testing will cover functionality we didn't even think about when doing story specific testing. Fix for: Regression testing
  • Only stories that are completed according to the DoD before the code-freeze occurs, may be included in the sprint delivery. No stories are allowed to enter into the state of Done after code-freeze. Fix for: Bad habits
That might work. Let's see if I get a chance to try it out.

Wednesday, April 18, 2012

Browser versions and testing Swedish web sites

Judging from the Top 12 Browser Versions and the Top 5 Operating Systems in Sweden in April 2012, the following is my list of OS/Browser/Versions necessary to test on. I've exluded iOS since Sprend doesn't work on it. I might add Linux even if it doesn't reach very high on the OS top list.

And btw, who said the browser was done? Hopefully the list will be even shorter as all browsers move towards continuous upgrading.




Wednesday, April 11, 2012

The Gate Challenge

Cinemas get more competition every year. Films are being watched in home cinemas and on smartphones.  If the cinema business is going to keep up it needs to do two things:
  1. Enhance the experience 
  2. Reduce the friction
Since Peter Jackson is busy with the first, let's concentrate on the latter: reducing the friction when buying a ticket. Picture this: You're walking down the street with a friend and you see the cinema building 50 meters ahead. Your friend asks: Fancy catching a flick? And by the time you reach the doors you are holding two tickets in your hand. Magic?

Let's back up. Fifty meters take roughly 30 seconds to walk. In that time you need to grab your phone, start the ticket app, select a movie, pick seats, and pay for the tickets which are delivered within the app itself.

Would it even be possible to create this app? I think so. As it turns out it takes 30 seconds to walk from the gate of Råsunda Filmstad to the doors of the three screen "multiplex" Filmstaden Råsunda. This is..

The Gate Challenge: To create and app that lets you pick up your phone at the gate of Råsunda Filmstad and have the tickets in your hand before you reach the doors of the cinema.

Let's say that in pictures.



1. At the gate of Filmstaden: 30 seconds left


Details

  • The app has just been started and is showing tonights movies.
  • The cinema is automatically selected based on either proximity or last purchase. I guess last purchase makes more sense. The user may choose another cinema if needed.
  • The movies are showing in chronological order, and the list contains only those movies for which tickets can be bought.

2. Passing Portvaktsstugan: 23 seconds left


Details

  • Hunger Games at 17:30 has been selected
  • The movie has an IMDb score of 7.7 of 10, or 4 stars. The user may select the rating system of his/her choice, or a combination of different rating systems.
  • The user selects the number of tickets with the buttons at the bottom.

3. Outside SDI Media: 15 seconds left



Details

  • It's possible to zoom, pan and select seats just using your thumb.
  • No double tapping or multifinger gestures are needed.
  • There is no count down before it's too late to select.
  • The available seats are updated in realtime.

4. At the Little Studio: 7 seconds left


Details

  • The last step is to confirm the purchase.
  • There needs to be a countdown timer here after which the seats are released. But we can wait to display the timer until 30 seconds or so has passed.
  • But hey, what about the 30% cut that Apple takes for in-app purchases? Not a problem since the app doesn't utilize the in-app purchase function of AppStore. Apple won't mind since the product sold will not be consumed within the phone. We are free to offer credit card payments or any other payment solution.

5. Just outside the cinema entrance doors: Time is up!


Details

  • Yes, we made it in 30 seconds! The two tickets are now showing in the app itself.
  • There is no back button and you can't buy more tickets before these ones have been used.
  • The tickets inform you that the scheduled starting time is Now!

6. Cinema lobby


Details

  • The ticket taker swipes his finger in an S shape to "tear" the ticket. Or some other shape.
  • One might want to switch shape regularly to make counterfeiting difficult.


7. Just relax


Details

  • Relax and don't forget to switch on Movie Mode (= Airplane Mode).

Finally...

Råsunda Filmstad also houses the headquarters of SF Bio. The question is, is SF up for the challenge? I'm right here should you need a helping hand.




Archive