Archive

Business

Rebecca Flavin, our CEO and one of our clients, Stephanie Copeland (Vice President Business Market Solutions at Qwest Communications) presented an awesome session today at the 2009 Forrester Customer Experience Forum. The session was packed (in fact, it was the most attended session of the hour) – it was my first real attempt at being an iPhone videographer, so please excuse the shaky nature of it :

How a User-Centered Approach Can Attract Customers, Drive Revenue & Deliver Competitive Advantages

Today’s enterprise executives are asking themselves:
What impact do customer-centric applications have on brand perception and ROI?
How can businesses harness the power of Web 2.0 applications to increase customer loyalty, despite a struggling economy?
How can greater user experiences serve to empower customers by driving a greater adoption of services?
Is this the right time to focus on improving the customer experience?

abstract:

Today’s enterprise executives are asking themselves:

  • What impact do customer-centric applications have on brand perception and ROI?
  • How can businesses harness the power of Web 2.0 applications to increase customer loyalty, despite a struggling economy?
  • How can greater user experiences serve to empower customers by driving a greater adoption of services?
  • Is this the right time to focus on improving the customer experience?

apologies for the shaky video and framing – was my first iPhone video recording

    Over the past few years, there’s been a ton of buzz word creation; “RIA”, “Web 2.0 & 3.0”, “Semantic Web”, “Social Media”, “Microblogging” “Cloud Computing”, the list goes on. The truth is that all of us in the tech industry often forget thechnology’s ultimate purpose: To improve humanity… We forget that all the software we create will ultimately touch a human being. 

    I’ve done it myself, created some incredibly elegant code, something that I was very proud of, but nobody in the real world cared – It was because I was caught up in solving the puzzle, mental masturbation if you will, and lost the bigger picture with an actual human being on the other side.

    About 8 years ago, I realized that there was a huge gap between what people wanted in software, and what I was delivering to them. That realization challenged me to start to focusing on user interface development. I didn’t know it at the time, but this was the impetus for EffectiveUI.

    Being a developer at heart, I attempted to create the blueprint for all software developers – some kind of system that we could all run our code through to ensure its usability. What I quickly learned, of course, is that this is not a technological problem; it can’t be solved with ones and zeros. I needed to remove myself from my developer shell and actually try to understand people – not easy for the bullied, introverted, geek in high school  (I did have one friend, my Apple IIe ).

    After 4 years of working alongside the extraordinarily talented people at EffectiveUI, I’ve come to the realization that the best we can do today to describe usable software is to list a set of subjective criteria – I know it ain’t perfect, but we’ve come to use it internally as a measurement for success on all of our engagements, and our clients seem to agree that we are giving them a leg up by focusing on these 8 criteria:

     

    #1: Usable Software helps people accomplish goals 

    Yeah, no kidding! But believe it or not, if you only think about “solving the puzzle” it is very easy to forget the very people you are creating the software for. When interviewing David Armano for the UIRC, he said something that is so simple, but is a fundamental truth that is often overlooked in many software initiatives: 

    “[Good software] does what I want it to do. So I don’t know if that’s a complex or simple thing, I just know that it works for me. When you look at the landscape of Web applications and desktop applications, if something doesn’t work contextually, it becomes a moot point even though it might be a great technological advancement.”

    All software you create must help someone accomplish something. Some of the ways to ensure this on a project is to go out and interview the target customers of the application. Watch them in their daily routine – understand the other software they find utility from (even if that software is not related to your initiative) . Even more important, understand their pain in using that software – their biggest pain is your biggest opportunity…

     

    #2: Usable Software is responsive and performs

    Most interactive agencies make design the first class citizen and force development to take second chair. This is a classic recipe for failure. If a creative director is responsible for final requirements, I guarantee the application will fail. If technology is an afterthought, performance will suffer. Your customers will not tolerate poor performing software – It’s like owning a Porche that gets 1 mile per gallon and goes only 15 miles per hour, it may look pretty sitting in your driveway, but trying to drive it to the grocery store would be an exercise in futility.

    In order to ensure software performs, you have to make creative compromises. You must ensure fluid collaboration between design and development … John Lasseter @ Pixar put it best:

    “design challenges technology technology inspires design, and the process feeds itself”

    If you can accomplish this culture in your software development process, magic will happen.


    #3: Usable Software is brand consistent and  trustworthy

    This is almost the flip argument to #2… The ying to the Yang if you will. Having a technical architect responsible for final requirements is just as disastrous as having a creative director drive them. What you will wind up with is software this very logical, and is completely understood by technologists. But what happens if your end customer is someone more real, like your mom, or a child, or someone in China? I recently did an interview with BTQ that touches on this subject – Ensuring brand consistency is giving your customers the trust that this software was written by professionals. People will not put their data into a system that looks like it was built 5 years ago, they will not trust their data is secure.  

    Trust in a system is the most commonly overlooked, or bypassed. However, it is also the one thing that can have the largest impact on user adoption. In a study conducted by Nielsen Research, Trust was the #1 reason why people did not buy on the web – 5 times the #2 reason “no need for the product or service” – think about that for a second… People were five times more likely to walk away from an offer due to the lack trust in the site than from the lack of need for the product. 

    Trust is the primary reason why social networking is quickly becoming the marketing channel of choice for many organizations – they have realized that having one’s friend recommend you is better than any marketing collateral – people trust their friends and influencers more than they trust any marketing text on your website.

    However, there are other ways to establish trust – if your software looks professional, modern, secure, and brand consistent, people will trust it. 

     

    #4: Usable Software  provides valuable feedback

    Have you ever clicked on a button in an application or on a website and literally nothing happens? So you click on it again, because you’re not sure if you actually clicked it, and still nothing… So you keep clicking until you get the app to crash. This is because the application is not providing you the feedback that “it heard you” – it is necessary, in some cases, to make people wait for processes to complete  before moving on the the next step. But you must make sure the application provides feedback behind every user interaction. Otherwise they will be confused, disorientated, or just plain angry. 

    Simple advice here – make sure everything a user is to interact with provides some feedback for that interaction.


    #5: Usable Software behaves with consistency

    Large, enterprise systems typically suffer from consistency issues. Small, utility applications usually have one to 5 uses at the most and it is easy for a single individual to design consistent controls. But once your team gets larger than 4 to 5 people, it is really easy for similar components of the software to act in totally inconsistent ways. Salesforce has many examples where things behave one way under “contacts” and a completely different way under “settings” – it makes the learning curve very long.

    We tackle consistency issues with something called an Interaction Model – think of it as a style guide but for controls and transitions. Apple has probably one of the best examples of documentation to counter-act the issues with inconsistent software behaviors called the Apple Human Interface Guidelines

     

    #6: Usable Software behaves in a familiar way

    All software is innovative. Otherwise, why are you writing it? You are trying to solve a problem that has never been solved before or in a way that has never been attempted. Innovation is critical – but you have to balance that innovation with familiarity. Some people believe that they can substitute a “familiar” interface  with an  “intuitive” one. They believe that they can create controls and systems that are new and innovative, but also intuitive. My favorite quote on this is often attributed to Bruce Ediger in 1995:

    “The only, truly  ‘intuitive’ interface is the human nipple. After that it’s all learned.”

    Later, bruce refined the statement with:

    “There is no intuitive interface, not even the nipple. It’s all learned.”

    I find it interesting when people discuss the iPhone – everyone thinks it is so intuitive and easy. The truth is that Apple has invested heavily in making the phone familiar, not intuitive. Their advertisements are showing someone using the phone (just a finger and the phone) – They have made a very complex user interactions like multi-touch, gestures and automatic orientation very easy.

    To prove my point, try handing an iPhone to someone who’s never seen the commercials – I tried this once with my mom – she was TOTALLY lost. 

    So – how do you make something that is familiar? i refer back to the point in #1 : user interviews and testing. Go to where your customers are, and watch them in their environment, using other software. In those circumstances where you must invent a new control, or want to try some innovative transitions and interactions – prototype them and get them in front of the users quickly to make sure you are developing something that is usable. 

     

    #7: Usable Software is efficient

    Now, I’m going to contradict myself. Rapid user testing and instant familiarity is not always the best way to provide a true usability. Quite often companies are measuring usability in the first 15 minutes of someone’s interaction with a product. They are taking an eCommerace “conversion” mentality for crafting their software. What if you are creating software that is meant for people to work in 8 hours a day, 7 days a week – like patient record data entry, billing system management, contact management, or customer service ticketing?  If you take the “first 15 minute” approach to usability testing, you are certainly going to make software that is way too simple to accomplish more sophisticated and lengthy workflows; you are going to make software that is very inefficient.

    To make software efficient, you need to make sure you do not “launch and forget” – Know that you are going to get a lot of things right, and some things wrong in every release – plan for measuring user behavior as a part of your post-launch process and integrate course corrections into your multi-release software project plans.


    #8: Usable Software is elegant and engaging

    This is by far the most subjective of all the criteria, and probably the most important to get right. This is where the art meets the science. You will hear people say – “this just does not feel right” — I know, very valuable and actionable feedback — How do project plan for elegance and engagement when you are never sure when you are going to achieve it? How do you mitigate the risk of projects going wildly out of budget when you are dealing with very subjective things? Frankly, its very tough. This is why most companies that engage in any software endeavor try to diminish the importance of engagement – Last year, we were up against a very large (50,000 consultant) SI in an RFP – we lost the deal because the SI was able to convince the client that “since this is a internal application, usability is not that important anyhow”  — at least they had integrity to not lie about their ability to make usable software …

    This is by far the hardest thing to message to our clients – “why focus on elegance and engagement?”  Will Tschumy gave a presentation , “Why Design Matters”, where he asked a simple , but brilliant, series of questions:

    ” What was the first MP3 player in the US Market?”

    rio-pmp300 
    Diamond Rio PMP300, Introduced November 1998 

     

    “So why do most of us have these?”

    11_979-ipod1 
    Apple iPod – Introduced October, 2001 

     

    Will then makes a very interesting observation:

    Why Didn’t the Rio Win? It had:

    • better battery life
    • more storage
    • more formats
    • first to market by 2 years
    • had more features
    He suggests it is because it balanced the wrong constraints – I think that’s just a different way of saying that the folks that introduced the Rio did not effectively value “elegant and engaging”

    More to come

    This year we are writing a book with O’Reilly that explains how to take these 8 criteria and put them into action. The book, tentatively titled “EffectiveUI, the Process for Creating Breakthrough Software”, will walk through example project deliverables and techniques that will help project teams execute against these 8 criteria — 

    There are many ways to mess up a software project – What I’d like to discuss here is a common misnomer that fix bidding a project somehow mitigates any risk – in fact, fix bidding only increases it. I realize the organizational theory behind this common practice:

    “Control costs by putting some of the risk of completing the project into our vendor’s hands”

    In the real world, however, the theory does not hold true. There are several things you should consider before asking your vendor to fix bid a software development project:

    It’s impossible to accurately estimate software development
    First, we need to agree on one thing. There is no software project that winds up exactly like you had planned it. What I mean is that software development is a series of course corrections – if you were able to see all of the risk, and had everything architected and planned out perfectly – than you would be better than 99.999% of all other technology companies in the world. Microsoft, Adobe, nor Apple commit to release dates for this exact reason – they know that software development is predictably unpredictable.

    There are only 2 possible outcomes
    When you ask a vendor to fix bid a project, there are 2, and only 2 outcomes.

    1. You get the vendor to lose money because they did not accurately estimate the project. This may seem fine to you, but the second and third projects you do with a vendor are always more efficient – if your vendor losses money they will not come back (and you will have lost that second project efficiency) It pays in spades to have a vendor understands how to work with you, that knows your business and that can have open communication and collaboration

    2. Your vendor is able to do the bare minimum in order to fulfill on the requirements and they make a killing. Recently I interviewed a sales candidate for a large interactive agency. The individual revealed to me that their most profitable projects were those that were fixed bid. He simply took the project team’s estimates, doubled or tripled them, and never told the project team that they had the additional budget. It forced the team to work in a budget that was great for the agency, and horrible for the client.

    Given these 2 outcomes, you have now successfully set up an antagonistic relationship. You are constantly questioning your vendor’s motivation, and they are pushing back on every little change because it effects their bottom line. It’s like putting a sword into 2 people’s hands & telling them “winner take all” – and then being surprised when the 2 people don’t get along.

     

     

     

     

     

     

     

     

     

     

    You lose the ability to make course corrections
    If you agree that software development requires course corrections, than you must agree that it is critical to frequently review project objectives, estimates, and timelines. It is also critical to validate the software with end users, to make sure the software is meeting their expectations. In a fixed bid situation, your vendor is heads down and not doing the proper check-ins and validations. Even if they do usability testing, they are incented to look the other way.

     

    Bottom of the Barrel
    The high risk of taking on fix bid, from a vendor perspective, means that you will likely get only those vendors that are desperate enough to take on that sort of work. Ironically, you have introduced a ton of risk into the project’s success. You might as well take the money to vegas and put it on “Red” … (actually – your odds are better in vegas – according to forester, 70% of all development projects fail because they are not accepted by the end user of the product)

     

     

     

     

     

     

     

     

     

     

    You may ask: “So, how do I manage my budgets?”
    First, understand that services companies are not in a “high risk” business. Asking them to share in the risk and not share and not share in the reward is almost alway inappropriate. Yes, you are (hopefully) paying them a great rate for their services and therefore it is completely appropriate for you to expect them to provide quality people and good-faith estimates. But asking them to “put skin in the game” means that you are asking them to do something that is outside of the philosophy of services businesses – Services companies traditionally make lower profit margins; especially when compared to higher-risk / higher-reward product companies. The shareholders in services companies are in that business because they are less risk-adverse than you. Does that mean it is hopeless to mange outsourcing. Actually, outsourcing can be much more cost effective than bringing development in-house. Usually, service providers have people that are more up-to-date on the latest technologies, and have seen many more projects and obstacles then internal project teams.

    So – how do you get the most from your vendor while maintaing a good relationship?

    1) Treat your vendor as as a partner
    A colleague of mine, Rebecca Flavin, explained to me what a great partnership looks like:

    A great partnership is where either party would willing trade places with one another

    If you think that you “won” because your vendor lost money on a project, think again … Eventually, you will wind up working with only “bottom of the barrel” companies.

    2) Demand accurate estimates, but only for short milestones
    Trying to accurately estimate a large software development project is next to impossible. One of my favorite quotes in the world was something John Cleese said when he was discussing the value of creativity:

    “If you are absolutely hopeless at something, you lack exactly the skills needed to know that you are absolutely hopeless at it — This explains so many things in life”

    This translates into software development perfectly. How can you adequately estimate something if it has never been done before, and that you know things will change along the way? The way to mitigate this undeniable truth is to let everyone know the end goal and allow the team to set short milestones and estimates along the way. This gives you, as the project stakeholder, the ability to course correct before its too late. Demand the data you need to allow you to make the right decisions….

    3) Be okay with uncertainty
    Be okay with the fact that things will not look like you initially planed them (unless you have unlimited cash and time). Agile development is an excellent model for software development. It accounts for the fact that you will never know everything before you start a project – it is execution focused. Do enough planning an product strategy up front to ensure you are headed in the right direction, but don’t get bogged down into detailed requirements documents – they almost never accurately articulate what the software will do when completed. Allow the requirements to build and modify as the project progresses. This DOES NOT mean “give your vendors a bunch of money and let them figure it out along the way” – Agile processes empower you and your vendor to spend the money more wisely, and to have levers to pull when you hit roadblocks or find out that you are missing the mark during user testing.

    4) Be okay with some imperfection
    Google’s software is in perpetual Beta. They understand that they have an obligation to provide the right mix of utility and usability while trying to push software out in a timely matter. You can easily spin your wheels trying to fix a minor bug for weeks and months and lose sight of the bigger picture. People will allow a certain number of very minor bugs in software as long as they are getting value from it. I’m using Blogo to write this post. It has an annoying bug that pushes my window off screen every time I change my monitor resolution – Despite the bugs, I use the software (and paid for it) because it still offers me more utility than posting directly in wordpress.

    That actually leads me to my last point – we often forget that all of technology is geared for one purpose: to improve the lives of human beings. No matter what vendor you choose, or what process you decide to employ, make sure everyone is hyper-focused on that person that will be using what you are building.

     


    I’m speaking at AJAX world this morning on RIAs. I’m asking the audience to challenge me here on my blog once the keynote is done… 

    Question: Who the hell goes to a keynote @ 7:30 in the morning?? 

     http://www.ajaxworld.com/general/sessiondetail0308.htm?id=118

    %d bloggers like this: