Virtual Reality and Social Presence

I always thought virtual reality was overhyped. Then I had a cutting edge demo around spaces like an office and oil rig. It blew my mind. That was two weeks ago. I still think about it all the time.

I now have so many ideas how virtual reality, then augmented reality, will change everything.

I could write 15 blog posts on the topic. In this post I’ll just focus on one over-arching VR application: social presence.

I have a lot of conference calls every week. As we all know, it’s always a mess trying to get everyone on the phone. And it’s quite impersonal. Face to face is still the best but it’s becoming less important. VR will make it even less important. I can’t wait until we all join a conference call with our VR headset. We can look into each other’s eyes and almost feel another person’s presence. We still have a long way to go though.

Probably the hardest part is looking someone in the eyes. Remember they have a large VR/AR headset. How are you supposed to see their eyes? Luckily researchers and companies are working on it.
For our podcast, I interviewed Hao Li, a brilliant graphics/AI researcher at Berkeley. He has developed some algorithms using an IR camera to track people’s face movements around the eyes. Right now it works well on an avatar. That’s the first stage of this technology, using an avatar.

The next stage will be superimposing the person’s actual face over VR/AR head set. That technology is not there yet but it’s coming. It will transform how we do business, meet people, interact with each other.

Beyond meetings it could work in so many different areas like concerts, games, conferences, events, anywhere where you want to meet and talk to other people. We’ll be able to just sit in our room at home and hang out with people across the world. Sounds nice. Also sounds a little scary. Will we all just become physical hermits, and virtual social butterflies?

Could you take a trip to visit a city virtually? Sounds lame but maybe not if it’s a specially designed virtual city. Think Second Life taken to another level. Would it be as enjoyable as in real life? Virtual ice cream doesn’t sound as tasty.

A lot of questions to answer.

Innovation and Design

This is another post on innovation. This time the topic is design. What I’m talking about here is the actual design, the user interface, the user experience. I want to focus on the design of a mobile app.

I interviewed Mike LaVigne, co-Founder and Chief Product Officer, of Clue. Clue is a women’s fertility and health tracking app. The interview was awesome. At first I was surprised that a guy was designing the user experience for a women’s app, not to mention one that tracks fertility. But it’s obvious Mike is a brilliant designer who immerses himself in the world of his customer. Much like an actor immerses themselves in their role. Their whole being is throw into the other person’s world. That’s not easy to do.

So what did I learn from this interview around design and innovation?

There are a lot of obvious points like do user testing, design with the customer in mind and start with an end goal or purpose. Those points have been beaten to death.

What I learned was two things:

Immerse yourself:

The theme song should be Eminem’s “Lose Yourself”. I know I mentioned this above. But it’s important to say again. Immersing yourself is another level of understanding your customer, your audience. It involves you being empathetic with their wants and needs and what they’re craving on a deeper level. To get to that deeper level you have to talk to a lot of people and read between the lines.

I think this is easier to do sometimes when you’re not a part of the group. Hence why Mike was so successful in creating an amazing app for women. He could understand their desires but also read between the lines and build something that they didn’t know they wanted (I know that’s a cliché these days).

For example, Mike realized that women wanted an app that wasn’t so girly. You know, the app that’s pink with hearts and stuff. Women are strong and the app should reflect that strength. So how in the world do you design for strength? Mike used bold professional colors. That didn’t treat women like girls but like women who knew what they were doing.

Be super bold:

Strong design needs a bold designer. The design needs to take risks. These risks include alienating a good portion of your target market. Don’t worry, this target market probably wasn’t your target market to begin with.

So how do you be bold, super bold?

For Mike at Clue, it was choosing a color palette that their women users would respect. It was also by giving their users a hook, something to attract them, when they immediately opened the app. For Clue, it was giving woman something of value about their health right away. This is bold because it could alienate women who aren’t interested in what you offered. Once again this is a good place to winnow down your users to just your core users/customers.

By being bold you make it easier to attract users who will love your product and be loyal users.

This can also be seen as market segmentation. But being bold goes one step farther than market segmentation. Market segmentation helps you to understand how you might fit into a market. But what if that market isn’t established, like for Clue? If the market is established, then being bold means picking a certain segment (could be overlapping segments) and pushing the design to its edge to appeal to that particular segment.

Be bold in design.

Innovation is an Attitude

On our podcast, Flyover Labs, I’m lucky enough to interview many talented and creative people. I’ve interviewed a number of Chief Innovation Officers. I love these interviews because for me they are the future and the heart of some of these large companies.

I have many different findings from these interviews. Today I want to talk about how to make innovation the core function of a large company. I’ve never started or run an innovation program at a large company but through these interviews and my own innovative products, I have something to share.

How to instill innovation?

I have really enjoyed talking to these Chief Innovation Officers at American Family, Fidelity, Revera, and Xerox because they need to innovate, often in an organization where innovation has not always been at the forefront. What I’ve learned over and over is that they all focus on changing the culture and the attitude at their organizations.

This may seem obvious, and in some ways it is. But innovation is such a commonly used word now that it sometimes lacks substance. “Let’s be innovative!” That sounds nice but where do you start? How do you become innovative, come up with new ideas and execute on them? It doesn’t just happen by saying Let’s Innovate. Nor does it happen overnight.

That’s why these Chief Innovation Officers focus on the culture. And it makes so much sense. In my own life, I’m always thinking of new ideas for clients or projects. When I learn something new I try to see how this could help someone I know. For me that’s a big part of the innovative process: reading, learning, digesting new ideas and then integrating them into my framework of ideas and projects and partners.

But I don’t think everyone is like that. Just imagine if everyone at some of these large companies was like that. Wowsers. There would be so many different ideas. How to deal with all of those ideas I’ll save for another blog post.

These ideas are the beginning life blood of innovation. However, it may seem risky and uncomfortable for people to share ideas. When I share an idea, I get nervous it might get shot down. Over the years, I’ve become better and taking criticism. So an organization needs to be tolerant of bad ideas (there will be many) to find the few that will lead to blockbusters.

How do you instill this acceptance of bad ideas, good ideas?

It’s tough. It needs to start from the top I’ve learned. Senior level executives need to be onboard with innovation and ideally submit their own bad ideas too. We’re all fallible.

I like what the Chief Innovation Officer did at Reuters where they set up an internal VC group to fund good ideas from their employees. It sounds like they’ve obtained some nice potential products. But what I think is even more important is the attitude it sets at Reuters. Now people across the organization know about the internal VC group. Every month or so they have employees pitch their ideas.

The ones that resonate with the judges are funded to test out the idea. It’s pretty simple which also makes it brilliant.

I know other companies do the same but I’m surprised more don’t. It signals to everyone in the company that we want your ideas, your ideas are the future for our company. Instead of just buying innovation, which is very expensive and can be fraught with issues, innovating internally can be an affordable and sustainable way to grow a company.

And the funny thing is that the employees are the best people to suggest new ideas. These large companies are perfect breeding grounds for innovation, if they can figure out how to tap into them.

Good luck.

I Have a Great New Software Idea! Now What?

What if you have an idea for a new software product? What do you do next? Here is how we can help you test and create an amazing application.

This blog post will focus on the first stage where you analyze the idea, the customers, the marketplace (including pricing), competitive landscape and timing. In future posts I will write about testing the idea, soft implementation (minimum viable product), launch, and pivoting. We are very familiar with all of these stages.

Initial Idea Stage:

The initial stage is where you have an idea. It’s super exciting. You think it will take over the world. This phase is so much fun.

Then you start to dig in deeper. Hopefully you start to think about prospective customers and partners. You analyze the size of the market. Then you find a competitor doing something similar, kind of.

Wait, maybe the idea isn’t perfect.

All of sudden your brilliant idea is only pretty good. This is a very normal part of the process. Part of the main issue with this stage is that many ideas, even the good ones, fall down because people expect to have no competition and have an enormous market. That rarely happens at the beginning.

Often the best ideas are a little ahead of their time. And it’s difficult to identify your exact customers, price point, sales channels and adoption rate. If all of this is easy to identify, your idea might be too late unless you have a new business model or distribution strategy to take-on the competition.

What now?

Timing is crucial yet almost impossible to understand. I’ve started companies that were before its time. I’ve also started companies that were too late to the party. It helps if you’re in the middle of the industry and understand the buyers, sellers, distribution and pricing, and the pace of new tech advancements. This can help a lot.Although, sometimes the best ideas come from the outside.

Generally the best way to start is by asking potential customers about your idea. For business to business ideas, this means reaching out to customers directly asking for their thoughts. For business to consumer, this means asking friends, your network, running a kickstarter, and testing ads on facebook to see if consumers are interested in your idea.

Often leading innovators, like Steve Jobs, say that your customers don’t know what they want. That’s true. But talking to your potential customers early-on, in true Lean Startup fashion, will at least uncover issues with your idea.

These issues could be around distribution, or how the product will integrate your customers’ current systems. I don’t think you should incorporate every single thing a prospective client mentions, but some of their feedback could lead to new product ideas and design.

Who’s your target customer?

Often this is fairly obvious. If you’re building a new server platform for healthcare companies, then your target customer is probably the CTO at healthcare companies.

Keep in mind there are two levels of who is your target customer. There is the company, like Culvers or IBM or Mayo Clinic. Then the next level is the actual person. This is critical to understand who this person is. Within your target customers, who will actually be interested in talking with you. It’s often different in different companies.
For one company I worked with, the CTO of a pharma company was interested in our software solution. In another pharma company, it was the role of the innovation team. This gets complicated and a lot of time can be wasted going after the wrong person within an organization.

Over time you will identify two or three people, and their titles, to go after. Once you know who to target, it helps a lot with messaging because now you can customize your message based on who you’re targeting.

Who are your competitors?

You will always have competitors. Often when I come up with an idea I start searching on Google for competing ideas. When I come across one or two I get depressed. Shoot. My idea is taken. I have stopped working on some projects because there were competitors. This is not the way to think about competition.

As we’ve all heard, competition can help validate a market. Now you know your idea isn’t completely insane.
The key is to research your competitors (money raised, experience, advisors) along with the market. Is there something you can do differently. When Alibaba started an auction site they had a formidable competitor just bought be Ebay. The odds from an outsider seemed impossible.

But Alibaba went after the market with a free offering. Consumers flocked to Alibaba’s site. Then Alibaba had to think about a business model, although part of the strategy was probably to protect their other web properties from Ebay.

The key is that if your idea is part of a growing young industry, there is room to maneuver and figure out a killer strategy. If you’re an established company, your idea doesn’t have to be revolutionary because you already have distribution and sales in place. But it does have to be strong enough, provide an ROI, or make life easier for your customers, to get some traction.

That does it for this post. In the next post I will talk about testing your idea.

Better, More Efficient App Design

I just read this great article on the future of apps and bots.

The writer talks a lot about his experience in China. Sounds awesome. But I’m not sure if all of it applies to those of us in the US. Right now our messaging and apps aren’t set up in the same way they are in China. I hope they will be over time.

The article talks a lot about WeChat, which is the dominant chat platform in China. You can do everything through this platform (pay utility bills, chat with friends, buy pizza, call an uber). It’s impressive.

What is especially nice about it is how they designed the main screens to make you super productive. It’s all about productivity and efficiency, and somewhat discovery. The main screen is set up around your messages. And then you can quick navigate to buy a pizza or pay your utility bill from there.

When you go to buy a pizza, you don’t message using natural language, like “I want to buy a pizza”. Instead it’s more like an app experience. It’s more visual. And you can input instructions using numbers not natural language. That’s smart. I always thought with Microsoft chatbots you would start typing with companies using natural language. After reading this article that doesn’t make any sense at all. It’s much more efficient to use numbers and visuals to quickly select and move the engagement on.

With the WeChat example you don’t have to download the Pizza Hut app to make it happen.

Figure 1 Better App Design

So what are the key take-aways? The app ecosystem experience needs to improve on our phone. We’re all sick of downloading a new app for everything. Everyone feels that messaging platforms like Whatsapp or Messenger or Kik will step up with something more like WeChat. I think it’ll make our lives easier both from a consumer and developer perspective.

In the near future, creating chatbots should be done closely with apps in mind. The combination of chatbot capabilities, quick interactions with text and the visual navigation system with apps, is powerful.

Also, we have always pushed for a clean look and feel to an app. I think that’s what Americans have wanted. But now I wonder. Check out this image from the article on Guangzhou Metro’s home page on their app. It’s a mess, but you can navigate quickly.Figure 2 Better App Design

In the US, if I saw an app like this I would assume it is horribly designed. But now I’m not sure. With this transit app, you want to connect with it, find what you’re looking for quickly, and get out. I don’t need an amazing user experience, I need efficiency (usually). Of course it’s different if you’re selling boutique dresses.

Ideally the transit app above would learn your preferences. If you’re always clicking on Buy Tickets and Timetable, those should be the top two choices. Get in get out, fast.

Chatbots and Fast Food Ordering

Bots are all the rage, so let’s have another post about them. I still wonder how quickly users will start using bots. I could see early users becoming frustrated if the chatbots don’t understand what they’re asking.

For example, let’s say McDonalds allowed you to order via sms. That would be very cool. What if you connect with their sms bot and said “2 fries, and 3 big macs, boom”. I’m not sure why you would say “boom”, but you did. How would the chatbot respond to this? It would have to be sophisticated enough to parse the text and understand an appropriate reply.

Let’s break down this super simple order from the chatbot’s perspective. The bot breakdown we’ll call it.
“2 fries”. The bot should know you want two orders of fries. That’s pretty straightforward. But it should immediately respond, “What size?” If you respond “Large”, then the bot needs to hold the state from the first sms to the second one. It should now know that you want 2 Large Fries.

Most of the bot frameworks include holding of state so that’s great. But it has to be developed into this McDonald’s bot.

“3 big macs.” This is also pretty straightforward. The bot should recognize that the customer wants 3 big macs. But now that the bot knows the user also wants 2 Large Fries, the bot should ask if they want the value meal, which would include a drink. So let’s say the bot responds with, “Do you want 1 fry and and 1 big mac to include a drink, a value meal”? Now the bot has to understand many different variations that could lead to a potential value meal. Then if the customer says “Sure”, the bot must add the extra cost to the order, but not the full amount since the drink is part of the value meal.

“Boom.” This is nonsense of course but what should the chatbot do it with. It could do many things, whatever you want. What could make sense is to address the first two items with appropriate responses, either confirming or asking clarifying questions. Then the chatbot could say “Boom, I’m sorry I’m not sure what you’re asking”. Then if the user says “Boom shake the room”, the Bot could say the same thing. This would make it pretty simple but not get the chatbot into trouble.

Isn’t language complex? It is, which makes it so interesting.

The key to a lot of these bots will be a complex and dynamic language and context engine. This engine will need to understand all the potential questions, in all the different formats that a customer could ask.

For example, with ordering, it could be “Can I have”, “I’d like”, “Can I order”, “2 big macs”. And that’s just a start. Over time I imagine there will be bot libraries that have the Ordering library which will take care of some of these issues. But there will always be custom tweaking and ongoing maintenance. And when you launch your chatbot you will need to carefully analyze the language used by your users and make constant updates to the language/context engine. Over time your engine will be able to answer most questions but initially it’ll be fairly dumb.

One question is how much time do you spend trying to answer all the questions your users will ask, and how they will ask those questions, or provide answers. One route would be to spend a ton of time perfecting it. I think there is some merit to this because you want your chatbot to sound very intelligent. The other route is to do something bare bones and then learn how your users are interacting with it. The chatbot should also learn over time. But you’ll also have to update the engine manually.

That’s all for now. I hope this post made you think a bit.


Chatbots are the rage. And they should be. For a long time I’ve wanted to be able to contact restaurants, retailers and businesses through sms or skype or google hangouts. Now it’s coming, which is awesome.

It feels like the early days of mobile when there was so much opportunity to build different apps. At the same time, is this more hype than reality? We won’t know that answer for a long time.

So what are some ideas for chatbots? There are a number around retail and restaurants for ordering food, making reservations and ecommerce. What about some other ideas?

This post will focus on corporate related chatbots. How could chatbots make companies more efficient? Let’s focus on customer service. It’s always been my dream to be able to text, skype of google chat with any company around customer service. I think this will be more feasible in the near future.

The customer service chatbot could be across every single messaging platform. But how would it would work? Would I need to have a chatbot for each company? That sounds like a lot, and onerous, messy. There almost needs to be a customer service directory. That way you only need to download one chatbot that will give you access to thousands of companies’ chatbots.

For example, in skype you could have a chatbot for your internet provider, your cell provider, healthcare provider, plumber, landscaping and others. I guess it wouldn’t be too messy to have these chatbots. But what happens when you want to contact the local vacuum servicing company. Do you really want to download their chatbot? Sounds annoying.  You could end up with hundreds of chatbots you rarely use.

That’s where the customer service directory comes in. This chatbot would know your location so when you type “Olson Vacuum”, the chat for Olson Vacuum in Madison, WI would come up. Then I could make a reservation or ask how much it’d cost to replace a certain part.

This is a fairly simple example, customer service. Over time the customer service chatbots should be able to do lots of stuff and be connected into a company’s internal systems.

For example, I’ve always been impressed with Charter’s phone bot. You call and “She” walks you through a simple diagnostic trying to figure out why your internet isn’t working. Then at some point She’ll say, let me reset your modem for you. At first it feels magical because I never talked to a human and here my modem is resetting. It’s wonderful. This example could be taken farther into all products especially as more and more are connected to the internet. Chatbots will be able to understand and service many products on their own.

Going back to our vacuum repair example, when your vacuum is connected to the internet, the chatbot could automatically diagnose the issues you’re having with your vacuum. Then the chatbot could make recommendations and give you pricing. If you say yes, it could book you an appointment. Then their friendly robot will come to your house to fix your vacuum. OK, that won’t happen any time in the near future, but the chatbot with all of its capabilities will happen in the nearish future.

It’ll be a chatbot service world.

Estimating Costs

This post is all about estimating costs for software development projects. It’s not always easy. That’s why many firms have a discovery, research and scope period before they will give you an idea how much a software development project will cost.

Why can it be tough?

There are a lot of variables with software. And until we understand all the nuances there are always issues that could pop up. For example, let’s say a client is developing an eCommerce site that sells flags. In conversation the client talked about how the purchasing process goes from selecting a flag, to entering an address, then to credit card information. For selecting flags, they mention that there is a list of flags they want on the site. Great. We would assume that the client has a list of flags that they would send us and we’ll add those to the flags table in the database, which will then be displayed on the flags page of the website.

But what if what the client really wanted was to pull the flag information from an external website using an API? Maybe they actually drop ship the flags using this third party service. As you can imagine, this is a big difference in how the flags will now be displayed on the website. Now instead of pulling information from our internal database it will make a call to a third party API to pull in the flag information. This is common but integrating with third party data is generally trickier because you have to understand how their API works. And there can be issues with connecting and integrating.

This change would usually increase the cost and scope of the eCommerce site.

This is why consulting firms typically spend a lot of time and charge a lot money just trying to understand what you want before they submit an estimate. And even then the estimate isn’t usually guaranteed. Most software development projects are done on a time and materials basis.

But, change can be OK.

Using Agile makes changes in the middle easier because every two weeks you achieve a new deliverable. It still takes time and money to make those changes. At the same time, life is about change and rarely do projects not have some changes in the middle. In today’s world, that’s inevitable. So it helps to keep your architecture open to changes, even radical ones.

Augmented Reality Medical Application

This is another post on augmented reality. I find these posts more fun to write than the project management posts. I can’t imagine why. Augmented reality will change how we interact with technology. Maybe that’s why.

This post is on a specific augmented reality idea. This idea is not rocket science. I actually think it’s a fairly well documented idea. But I don’t know anyone actually doing it.

The idea is to arm healthcare workers with real-time augmented reality support. For example, say a nurse in a rural town in Wisconsin or a village in Senegal is wondering about a specific medical condition. Maybe the patient has a lot of small bruises on their legs or something. And let’s say the nurse is not able diagnosis the issue.

So he/she straps on the augmented reality glasses, and connects with a doctor or other colleague. Now the doctor can see everything the nurse can see. The doctor can also draw and point to areas that the nurse will see via the glasses. It’s like having the doctor in the room, almost, or the next best thing.

The doctor can have the nurse go through a number of steps to help diagnose the condition. If the doctor is unsure, then they can refer to another doctor.

This could revolutionize how healthcare is delivered, especially to rural or hard to reach places. Of course you’ll still need internet access which will be an issue in many rural places in Africa, but even that is coming.

This diagnosis could also be saved and catalogued so the next time someone has small bruises on the legs, the nurse can search for that and see the video. Ideally these learnings would be shared with everyone across the world. That’s easier said than done. The identity of the patient would of course have to be anonymized, but can you imagine having access to tens of thousands of these videos. That’s powerful.

This use case could of course be applied to other areas where experts would be needed: home maintenance, art, engineering, etc. This augmented reality technology could unleash the power of people across the world. One of the limitations will be the experts’ time. There are only so many hours in the day. That is why it is important to save and properly catalog valuable learnings. That’s tough. Who is going to do that and why?

What would be the best starting point for this medical augment reality app? I’m not sure. I think a rural place in the US would be a good starting point. They should have wifi. And those small community clinics often lack the expertise around certain cases. Often those patients need to travel to larger cities to be seen. Could augmented reality help? Maybe.

Our Software Development Process: The Launch

This is the last in a series of posts about our software development process. Our previous posts in the series walked you through all the stages of thinking and development an application: The Ideation Phase; Gathering Basic Requirements for a Proposal; The Proposal; Gathering Requirements; Creating a Backlog and Planning Sprints; Testing and Quality Assurance; and User Testing. In this last post we will look at how we launch the product to the world.In our most recent post in the series we talked about User Acceptance Testing (UAT). This is usually done on a separate server, called the UAT server. This is where the client/user performs their own testing after we do our own QA. The bugs found during the UAT are taken care of in the next two week sprint. Once the bugs are fixed, the pages are released to the world. They’re launched.

To launch the newly created, or edited, pages we move the pages from the UAT server to the production server. This is the server that serves the pages to the world. It’s an exciting and scary time. The project and pages we’ve spent so much time working on are now being released to the world.

At this stage we begin to receive feedback from users about the user experience. We can also look at the analytics to see which pages people are visiting and which are dropping off. This is more marketing analytics, but that helps define what changes need to be made to the site or product.

It is important to keep in mind that constant maintenance will be essential. This is especially true for high traffic sites and sites with more functionality, like ecommerce and other features like managing staff or projects. Another type of site that typically needs more maintenance is those with more integrations. From our experience, system/app/module integrations are more likely to need maintenance because if code changes in any one of these systems, it can break the integrations. However, this may not always be the case.

After the site is released it is important to practice regular QA. Have someone who is not a customer try to break the site. For a small brochure site with minimal traffic, regular QA is probably not necessary. But for a site with more functionality and traffic QA is a must.

Now that the site or pages are launched, you can look forward to the launch of the next pages being developed. With agile software development launching new pages happens on a regular basis.