I just finished reading the inspiring book “Scaling Lean and Agile Development” by Larman and Vodde.
If your app is for a team of users, don’t focus on the app nor the users. Focus on not impeding their interactions. Don’t forget they can talk to each other and think on their own without your app !
If your app is for a team of users, don’t focus on the app nor the user. Focus on not impeding their interactions. Don’t forget they don’t need your app to talk together. They are already doing it. Worst : don’t try to replace live interaction with electronic processes. It’s best for them and cheaper for you.
It was a shiny day of July, the meeting was 3 hours long. The goal ? Prioritizing, specifying and poker planning the next sprint. We made the mistake of scheduling it right after a 8 hour meeting with our key users (sort of day-long presentation/feedback of our latest monthly release). Now we were embarking on the next sprint. We were exhausted and really focused on details.
Examining story after story, we were fighting to make them all fit in the sprint. First mistake.
Second mistake : focusing too much on each story at a time. Loosing the big picture.
The third mistake needs a little back story.
Our application’s goal is to help people who already work closely together to do so with a tablet. They already talk to each other, they are trained to work together. They work this way since 1933 at least.
The user stories were about helping the team leader to distribute roles in his crew. Simple in appearance…
It’s was a nightmare of story dependencies, complex vague specifications, really expensive features.
Why ? We forgot the people the leader has to manage are physically in the room during the use of the feature. Hence all controls, feedback, error-prone specifications we were trying to establish were useless.
Simply by TALKING to each other, the users could work together. We forgot that since the begging. Focusing more and more on the new tool we were building, we forgot the primary human tool : talking.
We saved our velocity and the project budget. But the danger is still around. Don’t forget the most basic human skills instead of trying to replace them all in one app.
If you still speak about features, or plan to add another sprint to “finish” the backlog : you are not Agile.
On some Agile projects I’ve been working on I noticed an arch reality :
If you still speak about features, or plan to add another sprint to “finish” the backlog : you are not Agile.
One of the first warning I give a new client about Agile projects is the following : your backlog is not a magical whishlist. You can have :
- sprints (event with fixed time frame)
- a backlog
- a board
- a scrummaster
- a product owner
- a daily meeting
- and so on
but if you still think the team will finish all your User Stories at the end of the last sprint, you’re gonna have a bad time.
So Agile is a big scam, right?
No. Certainly not. It’s a reality call : if you don’t have enough money to build all you have in mind, you won’t.
And you know what ? It’s a good thing ! Features are not the goal of all this sprinting. It’s about VALUE.
Your backlog is not final. It’s a moving plan. It’s a goal. And User Stories are certainly not features. A US can be composed of many features. Or none sometimes (just a simple analog solution)
There will be delay and lag. Even in Agile of course. And the solution is not to do another sprint. It’s to cut down the number of features and start concentrate on what is really meaningful to users.
If you think I’m to vague start looking a the best product out there : less features but an immense value each time you use it.
Dismount what you already built !
Maintenance is a part of your software value. It has a cost, it represents a debt.
So some final word of advice :
Have some budget dedicated to dismount or erase some features. It increases software quality (with less code base) and increases its value (more stable, less feature creeped soft).
While trying to add Korean support to the Wifinsite app, I ran in the following problem : the app stays in english. French was ok, but no Korea.
Actually you have to add 2 Korean languages : ko(korean) and ko-KR(South-Korea). Very disturbing.
PS/ Sorry for the short article. I’ll post a detailed tutorial if needed.
The other day I tried to buy a ticket on koreanair.com. I had to try 31 times to achieve the transaction.
Here are the ordeal I encountered.
E.T. go home
First of all : the Home page. Or should I say : one of the numerous home pages. There are so many ! Home page when you are logged, home page to select your country (which should be automatically detected, come on in 2010 !), home page in Korean when you encounter an error ! Great.
You must put one and only one page in you site you Korean Air people. And please, don’t use 2 home pages with just 2 pixels and a combo of difference.
Don’t follow the link, it’s broken
Maybe you would say : “OK, I’ll copy/paste the url and try to put it in Internet Explorer or Firefox or Safari or Chrome or Opera.” Fail ! Copy/paste does not give you a valid URL. It seems to be randomly generated to put you back on the one of the home pages.
Hey ! This text is an image !
Some buttons and some texts are images ! So if they are not translated from Korean, you have a chance it stays in korean even if the page is in english. Texts are horrible but it seems like korean websites use them an awful lot to create pixel-precise pages. Go away you semantic web, we don’t need you !
One of the thing you don’t want to happen when your are manipulating real plane tickets with real money is server errors. This is what happens. Is my money transfered ? Are my tickets issued . No way to say because :
We don’t need no feedback
This is true, I don’t like to know if my transaction worked, if my credit card number if securely transmitted. I don’t care ! I prefer pink heart floating away.
I’m a little harsh with them : there are informations. Many, many informations. But not the one I need !
At the end of a lost request please meet Useless-Support-Girl. She will be very pleased to tell you the phone number you cannot call to have no information.
Back to the future
If you try to print the source code of some pages, you will see code comment dated of 2002. Wow, was it HTML 1 or HTML 1.8 at the time ? Don’t look for AJAX. This little snobbish way of doing so-called modern-pages. It’s outdated in 2002. Or at least, not invented yet maybe.
Frames and tables
Yes, here they are. Many of them. Frames to avoid loading pages and tables to put stuff in rows. Yes, because CSS is so modern. It won’t be compatible.
Pop it up !
One great things about browser is ad blocking extensions and serial popups blocker. Koreanair.com uses popups to inform you about crucial stuff. Bummer. Please turn off this horrible feature. And you will be able to nearly try to maybe buy a ticket. Otherwise “ya dun goof‘d” man.
IE is the root of evil
You know what ? Internet Explorer is maybe the only browser used in Korea. Google Chrome ? Firefox ? What’t that ? We don’t need it. Our code is IE 4.3 fully compatible.
Thinking like a technology engineer (juste being IE compatible in 2002) makes bad UX.
Not thinking about the technology (putting great graphics but with no code evolution perspective) makes bad UX too.
You’ve got to consider both. Put a designer and a programmer in your team. Make them work together. Not one after the other.
Korean air is not really a nightmare of graphism and color, but truly of experience. Things seems right at a glance. But when you click and use it seriously it’s just impossible.
And you know what ? I tried to buy a tickets to it’s competitor Asiana. Same problem ! Do you believe it ?
Have a look at the following picture.
Now tell in which street I am: the first one on top and going to the one above ? Or the other way around ? (Think that you must look at the road while doing this of course.) For me it’s impossible.
The problem is : there is no universal convention to indicate going from a point to another. They could have used an arrow for example.
Also missing is the name of the city I’m in. I needed this information during a lot of occasions.
So before even thinking of putting TV on my GPS or Heads Up Display (which would rock !) : just make a good UI first.
Making the Notes App look like a real notebook is an error.
The first time I used an iPad I lauched the Notes App. And I saw this is not just a yellow page with lines. There is a fine border of leather near the edge, and the background in not really yellow.
Just to make it look like a real notepad. Wrong.
I checked on iPhone : same thing. It looks like a real notepad.
What’s the problem with that ?
1. Same appearence does not means same interaction
So with this application I should be able, at least, to write on it, not look at it’s appearance.
But you could say : this is not a problem, if the application lets you use it like a real notebook, the fact that it looks like a real notebook is a bonus.
Right. But you can’t use it like a notepad. So why look the same if you can do less ?
I was not honest when I said I just want to write on a notebook. I also would like to DRAW. This I can’t do. The application looks like a notebook (useless), I can’t write on it (serious limitation).
My impression would not be the same if it didn’t look like a notebook and I could not draw on it. Would have been a simple text note app.
2. Softwares are a chance to get rid of physical limitations, not copying them
When I use the application, I want to do more than with just a simple notebook. I also want it to resolve some real life constraints. Otherwise I’d use my real notebook.
What I can’t do with a real notepad that Notes is doing :
- No need for a pen, just use my hand : OK
- Share my notes : OK
- Copy/Paste : OK
What I can do with a real notepad that Notes is NOTdoing :
- Put a picture in my note
My point is : there is a gap between what an application can do and what it looks like. So don’t use paradigm that are too old or uncompleted. Just do something else.
Software should be inspired from the reality but being able to do at least the same. Not less.
I had the same problem with Calendar on iPad : what bothers me in the reality (the margins and the page junction) is still here ! Just to make it look like a real agenda.
Same idea with BumpTop : it’s based on what bothers me a lot : gravity. Now I must fight against gravity in my computer too.
Here is a wonderful conference by John Cleese at the World Creativity Festival.
When it comes to entrepreneurship, screewriting or engineering (3 of my passions) the problem is the same : creativity is nothing magical. You don’t need to be an artist living a Boheme life, drinking all day long, never cutting your hairs. There are methods and ways to improve your creation and find idea.
To summarize :
When a problem is to hard to solve : go sleep !
Did you test this method ? After struggling hours on a problem : the solution comes when leaving the problem alone. It’s because you let your mind relax and find new inspiring idea. That’s great, however it doesn’t work every time.
Let your mind find idea itself
I liked the remark about today’s life : we are over-busy. So we never let our mind wander around. Hence we never feed our brain with new element to build idea upon.
Don’t get disturbed
Obvious but so true : a phone ringing, a mail coming when your debugging, writing, or creating a new product specifications, is terribly disturbing. Sometimes you don’t even notice. Resuming an interrupted creative session is painful.
Reserve Space and Time for creation
Obvious again but so hard to do. The best place where creativity came to me was in parks alone on a bench. You must define a start and end time : to make this work session a special moment in your day. Very hard when you share office with someone.
My only regret is that he does not talk about group creativity, because Monty Python individually talented people grouped together.
And you ? How do you find new idea when you need them ? Where is your oasis, the place where your go to be undisturbed ?