Archive

Monthly Archives: February 2009

Someone needed to say it – Patents are a joke – companies are waging wars against one another over meaningless software patents. I heard last week (have not confirmed it) that IBM makes $1 Billion (thats with a “B”) a year in licensing their patents to other companies …

 

I know what you are saying, 1 Billion Dollars (pinky finger at the corner of my mouth) is not chump change. Right, but patents are no longer doing what they were meant to do, improve progress. That’s right, patents were conceived to protect companies that spent millions of dollars to invent new technologies or systems or processes – protect them from others from unduly profiting from their investment. 

Now patents are mostly used as a protective measure … “You sue me for patent infringement and I’ll sue you right back for infringing on one of my patents” – What’s worse? These patents are on technologies that require no investment to invent, just an idea. Let me say that again – You can patent an idea, a sketch, a concept, a process. Why is this bad? Because everyone and their brother has a good idea. It is not the idea that is valuable, it is the ability to execute on the idea. I’ve seen so many great ideas go absolutely nowhere, millions of dollars thrown at them and nothing – We are no longer valuing progress.

For example, Tim O’Reilly is famously credited for lambasting Amazon for their litigious patent attitudes. I recall, about 5 years ago, a small marketing company patented the ability to show one thing in flash, and print another thing (like showing an offer in the banner ad and when the user clicks ‘print’ a coupon spits out of your printer— this was a feature BUILT INTO THE FLASH PLAYER … They actually patented a feature in someone else’s software and it got through the patent office – what a joke!

It was recently announced that Apple is being sued (again) for intellectual property infringement. A scottish firm claims prior art on something they conceived years ago.  Something about how the “pinch zoom” works on photography.  My question to that company: “So if this idea was so valuable, why the hell did you do nothing with it? Why did you wait for Apple to execute on it only to sue them for the privilege?”…

I’m no patent attorney, but we MUST change our patent laws to value progress, not just ideas. I know this is not an uncommon topic, so why is nobody doing anything about it? OBAMA WHERE ARE YOU????

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 — 

Your corporate brand is more than just your logo or your jingle. Your brand is also the emotion raised when someone thinks about your company.

When you see the golden arches and the familiar red “M,” your mind recognizes more than simply the McDonald’s logo. It conjures up great value, the smell of hot French fries and the good times you have there with family and friends.

In your products and services, in your advertising and promotion, in the voice of your receptionist, in the attitude of your employees, people interact with your brand continuously. Every touch point of your organization has to reflect a consistent message about your brand value.

However, since the advent of the Web, never in the history of marketing have companies delivered brand disappointment in such appalling ways. Useless websites and horrible user experiences result in frustrated customers who not only abandon your brand, but tell their friends to do so as well. Enter “Web 2.0″, replete with technology that empowers organizations to make people feel good and simplify their lives.

 

WHY RICH INTERNET APPLICATIONS?

Rich Internet Applications, or RIAs, enhance your brand image in many ways. A well-designed RIA entices people to your brand. It delivers an engaging, immersive experience. It speaks to the brand promise with functionality and interfaces that stagnant web pages cannot. RIAs build brand value by making people’s interaction with your brand a more valuable, productive and pleasant encounter.

Unfortunately, we’ve all had more than a few bad online experiences that have left a poor taste in our mouths. We’ve waited on too many pages to refresh. We’ve clicked forward and back too many times to find hotel rates and vacancies. We’ve been unable to see all the seats in the arena when buying concert tickets. All too often, e-tailers actually make it difficult for us to give them our money and don’t do anything to up-sell, which results in lost opportunities.

If your company seeks to differentiate itself, you have to go beyond a basic paged-based Web presence. If your brand promises that you have elegant products, the online experience you give your customer has to match that — visually, emotionally and functionally.

Think of a good RIA as having left-brain and right-brain attributes. The left brain represents utility, functionality, navigation and usability. The right brain represents emotion — the compelling, immersive and interactive experience. Both must deliver on the brand promise.

DISCOVERY NETWORK FULFILLS ITS BRAND MISSION WITH EARTH LIVE

The name “Discovery” is synonymous with learning and knowledge, attributes that are powerfully evident in EffectiveUI’s RIA, called Discovery Earth Live. Consistent with the high production values of the network’s on- and offline media programming, the site offers crisp imagery and high-quality video in imaginative and educational ways.

The unique part of the experience is its highly interactive interface. Graphic overlays appear on a 3-D globe that users can spin with a flick of a mouse, and watch it continue to move with virtual momentum, just like a physical object. The globe is more than a flashy gimmick. Site visitors can use it to engage with high-value content like environmental news stories and field reports from experts in environmental science.

The challenge we faced when we set out to build this RIA is that we needed the application to digest and visually display massive amounts of very complicated and sophisticated environmental data from NASA and NOAA and “consumerize” it. The Earth Live RIA successfully added value to Discovery’s brand by offering their audience access to important scientific data in an easy-touse, highly immersive and entertaining interface.

We pushed the boundaries of available technology to build this application, and we encourage our designers and developers to do this, too. The result helps Discovery Network extend their brand image not only as a knowledge leader, but as a technology innovator as well. The site had 160,000+ unique visitors in the first three months, and is on track to garner more than 1.5 million users within the first year. It was featured on the cover of PC World, May 2008, as part of the Best Free Stuff: 101 Web Services and Downloads feature, and has received numerous other industry accolades and awards.

NOT JUST FOR CONSUMERS

The brand value of RIAs is not limited to customerfacing applications. Brand value can also be enhanced when RIAs are used as everyday internal operational tools in myriad ways across all vertical markets, such as financial services, business-tobusiness, government, healthcare and transportation, to name a few.

For instance, United Cargo delivers same-day packages on United Airlines flights. Their smallpackage delivery (SPD) service ships urgent parcels, such as transplant organs, flowers, fresh foods and anything else that needs to arrive in a few hours.

While United Cargo’s on-time delivery was commendable and customer satisfaction was high, management felt it could be higher. They came to us to build an RIA that would streamline the end-to-end workflow and better track packages throughout their route system.

Previously, a customer-service representative had to access multiple pages from the company’s intranet in order to upload the package information, go to another site to make sure everything was TSA compliant, and then click through some more screens to verify billing and tracking information. Meanwhile, consumers had to sit and wait while the representative navigated through the morass. Fortunately, this is no longer the case.

Now, instead of struggling through a series of “green screens” all day, United Cargo representatives interact with an intuitive, lightning-speed, visually compelling environment that significantly reduces the number of steps required to access critical package-delivery information. Best of all, the RIA is easy to learn, which eases the burden of training resources.

The RIA also decreases employee frustration, which in turn makes people’s jobs a whole lot more pleasant. The average call time with a customer has dropped, so the customer’s experience when dealing with the brand is further enriched. By streamlining the internal process of tracking SPDs, United Cargo improved its external customer service. Better service reflects the brand’s core attributes of being efficient, reliable and fast.

HOW TO IMPROVE THE ONLINE EXPERIENCE

In a recent Forrester report, analyst Ron Rogowski reported that enterprise executives cited “improving online experience” as their top priority in the coming year. Smart executives recognize that RIAs can significantly increase the value of their brand. Properly executed, RIAs improve the user experience and allow companies to differentiate themselves from competitors. Better yet, companies who are leveraging RIAs position themselves to “leapfrog the field.”

However, RIAs are not for the faint of heart. Internal IT departments typically lack the expertise to build an RIA themselves, and do not have the resources to maintain an in-house lineup of RIA specialists. While your organization may own video equipment, would you ask your design department to produce a network television commercial? Similarly, an RIA developed by your IT department, while being fully functional, may look like an IT department built it.

On the other hand, you need your IT department to work closely with RIA specialists to integrate smoothly with existing infrastructures, tie to back-end databases and help ensure the firm understands the benefits of RIA adoption. Beyond the technical expertise and design talent, you’ll need miles and miles of user research, stacks of strategy sessions and a strong roster of interaction designers, user experience designers and information architects to pull it off. Typically, a company will work with an organization like EffectiveUI when they first undertake an RIA project. From there, we have been very effective in helping organizations migrate their internal teams toward fully embracing RIA adoption.

At almost exactly the same time today, Google and Amazon release details of their digital book strategy.

Google announced they are putting 1.5 million books, all who’s copyrights have expired, on Android and iPhone applications:

http://www.nbr.co.nz/article/google-puts-15-million-books-reach-your-iphone-44332

“Coincidentally”, photos were leaked on the new Amazon Kindle, due to launch tomorrow:

http://www.nbr.co.nz/article/kindle-2-photos-leak-ahead-tomorrow-s-launch-44328

I have a friend with a first generation Kindle – I will tell you that the pictures do not do the device justice. The electronic ink technology they use is stellar, great readability even in bright light situations – In contrast, I don’t see myself reading novels on my iPhone or on any devise that fits in the palm of my hand – its just simply not usable…

That said,  John Blanco (a developer I work with at EffectiveUI) noted an undeniable truth about the new Kindle:

Much, much sleeker…but, in the end, it’s still lacking the soul of a book. I just can’t do it.

 

 


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.

 


Follow

Get every new post delivered to your Inbox.

Join 775 other followers

%d bloggers like this: