Sunday, 9 November 2014

Lunch

Lunch is an internal to Microsoft, Windows Phone 8 app that allows Microsoft employees to create and join public lunch groups in an effort to help diversify their network. After I pitched the Lunch App I recruited a group of engineers, testers and designers to collaborate and build the app. The app we came up with was a bit different than we had originally planned. After a few focus groups we learned that people wouldn’t necessarily feel comfortable making themselves available for anyone to have lunch with them on an individual basis, but they would be much more comfortable doing it as a group. Therefore, we decided to focus on the group scenarios. 

MVP
For our first version we decided we would create a solution that would make it easy for any company employee to create or join a public lunch group. To create a sense of common interest and therefore make it easy for people to come together, each public lunch group would have a  specific topic of discussion. Features included - sign in using Microsoft credentials, create lunch group, delete lunch group, join lunch group, cancel lunch group, view other members of lunch group, tile notifications, choice of 2-10 attendees, specify location, and search lunch groups by categories (today, this week, and more).

Version 2
After receiving lots of great feedback, we added many more features. We made it so every time you joined/created a lunch group it would sync to your outlook calendar, you could email all members of a lunch group at a touch of a button, you could create private lunches using your Outlook distribution lists, and you could receive toast notifications when people would create a lunch group. 


Here is what the final app looked like. 
Here are some of the technical details. 

We created it using the MVVM design principles; it is written using C# and XAML. 

When the user chooses to sign in, they are directed to a sign in page provided by Azure Mobile Services (AMS) where they type in their Microsoft Domain account. AMS calls Azure Active Directory (AAD), which is a copy of Microsoft’s Active Directory, and asks for an authentication token. When AAD ensures the user is who they say they are, it sends a token, or a string of random numbers that AMS needs in order to grant access to the app. The token is cached on the client’s Random Access Memory (RAM) and then Lunch uses the token to call AAD to retrieve information about the user (Name, Title, Org). Once the app receives this information it stores it in an Azure Database we created for easier retrieval. All of this happens the second after the user types in their credentials and are waiting to enter the app. The token actually comes with an Access Token, a Refresh Token (that allows the access token to be refreshed without having the user type in her credentials), some user information and an expiration date. After a few days, the tokens expire, and the user will need to go through the sign in experience again in order to receive a new token. 

Our database has the following tables - UserInfo, Groups, UserPhoto, Attendee, User login, User Channel, User Messages, Locations, and Message Counts. Between our app and the database tables there is an Application Programming Interface (API), that we have used Node.js to create. Our API doesn’t look at the databases, but rather another level of abstraction - stored procedures using SQL (sprocs). The way it works is the app uses a web request to contact AMS, which then contacts the sproc, which looks at the sql tables and returns the information to sprocs and then the api and then the app.

Thursday, 9 October 2014

Lunch - the Pitch

About two months ago I came up with a fun idea for an app. I had come to work very early to hit a deadline and worked nonstop on my project till 11:50 am​. At that time, I wanted badly to take a break from work and go to lunch with someone and so began IM'ing a few friends, but unfortunately none of them were available. I went down the hall to find a coworker, but they already had plans. So instead, I bought my lunch, took it back to my office, ate it in ten minutes and went back to work. It was a bit depressing. I would have done anything to have someone to eat lunch with, well except for step out of my comfort zone of course. That's when it hit me - why couldn't we have an app that helps you find the perfect lunch mate any time you want?

I thought about this idea for a long time and pitched the following presentation to a mentor of mine, who encouraged me to build it (next post).

Our obligation as a business is to provide goods and services to people that will make their lives better. But like any business it is imperative that we always continue innovating, providing our customers with new and better products and services. So we spend a lot of time, money, and effort finding the best talent. We then provide these people with the best resources, trainings, processes, and managers, hoping that they will be able to innovate. And this sometimes works.

However, too often innovation is serendipitous and unpredictable. Such as the time David Weise and Murray Sargent saved Windows. Because Microsoft and many other companies have been saved by serendipitous innovation, businesses and professors have been studying this innovation for years and have decided that in order to create more serendipitous innovation, you must have the following characteristics - people with diverse backgrounds and cultures, frequent meetings, not always business specific, diverse talents and mind-sets and expertise are brought together, close physical proximity and serendipitous encounters.

So companies are spending millions to try to create an environment that will get their people diverse networks, with no silos, and plenty of chatting. This is witnessed in Google's new campus plans and Marissa Mayer's email to Yahoo employees, "To become the absolute best place to work, communication and collaboration will be important, so we need to be working side-by-side. It is critical that we are all present in our offices. Some of the best decisions and insights come from hallway and cafeteria discussions, meeting new people, and impromptu team meetings. We need to be one Yahoo!, and that starts with physically being together."


Essentially their strategy is quite simple. Hire a bunch of people with diverse backgrounds


and force them to be close together long enough so they'll start talking to each other.


The problem with this is that some companies don’t have the money to do such elaborate things, which means their employees will remain in different buildings and some will have to walk more than 2.5 minutes. The biggest thing however is that even if you were to get everyone under one roof, most people still wouldn’t talk to each other! It’s too painful to speak to the person in line with you, let alone ask them to have lunch and think of a new invention! What if they say “no?” What if they think you are weird? Wouldn’t it be embarrassing?

But what if we could get rid of all of that pain! What if we could ensure that we aren’t going to get rejected? What if we could meet new people and enjoy their company whenever we wanted without feeling ridiculous?

Introducing Lunch Me – a social Windows Phone app that makes it easy and painless for anyone to find a lunch mate. As they have lunch with different people, they expand the diversity of their network, spark innovative ideas, and break silos – impacting the work they do and how they do it.

This is how it works.

First Scenario:
Meet Jenny, a Content PM in MSN and is in charge of the MSN homepage. She is very gregarious and is always looking for someone new to meet. She is heavily involved in Meetups, Microsoft social groups and conferences. These however take a lot of time and happen infrequently. She is looking for something more effective and has recently heard of the Lunch Me app. She just downloaded it and is ready to get started.



She types in her Microsoft credentials.


The app automatically fills in her profile, but she can edit it if she likes. She likes what she sees and hits okay.


Then it takes her to the People page, where she sees all of the people who have made themselves available for lunch for that day. She doesn’t really care to ask someone for lunch, because she doesn’t care who she has lunch with. So, she hits the availability button on the app bar (the red circle icon).


The app automatically populates the lunch time from 12 to 1 and using geolocation picks the cafeteria closest to her. She doesn’t have to change anything so she hits okay.


The availability button is now green and she knows that everyone can see her now. She goes on with her work and hopes someone invites her to lunch.


This is April, a Product Manager in Windows Phone. She graduated from a top business school and has been in marketing since she graduated 5 years ago. She also likes to network, but she is much more proactive about it. She takes her work and time very seriously so she wants to be in complete control of who she goes out to lunch with and when. She uses Lunch Me three or four times a month and she loves it. She is going to use the app today.


Once on the People page, she sometimes scrolls down the page to see if anyone pops out at her, but usually she uses the sort button. Last week, she wanted to learn about OSD so she searched by Product Group. The week before that, she needed some help with a challenge at work so she searched by title. This week she is in the mood to just find someone fun who has the same interests as she does. Jenny is a good fit because they both like to scuba dive. She clicks on the chat button on the right of her name. The app has an automatic message already filled in. She could edit it, but this time she is in a hurry so just hits send.


Meanwhile, Jenny receives a toast, which takes her to the chat page where she replies to Jenny that she is delighted to have lunch. During lunch, though they didn’t really anticipate this, April tells Jenny of a project she is struggling with and Jenny is able to give her some really good advice. April goes back to work ready to execute the advice she just received and Jenny goes back feeling good about the help she has provided.


Second Scenario:
Dorothy is an HR Director over diversity. She is currently trying to build Microsoft’s Female Network but can’t seem to reach new females. She spends lots of time setting up conferences and even more time trying to get people to come to them. Fortunately she has discovered Lunch Me, which has made recruiting much easier. The app helps her set up quick lunch meetings all over campus to meet new females, share the network with them and help develop their skills.


Once on the People page, she slides to the right which navigates her to the group page where she sees all of the fun group lunches that are available.


She clicks on the plus button on the app bar and fills in the information for a group lunch. She sets the amount of people she is looking to have lunch with and hits okay. 


Before she knows it she is having lunch with a great group of ladies, who are not only exited about the female network at Microsoft, but also give her some great ideas for improving the program. She also has an opportunity to coach them and help link some of them with mentors. They all go back to work invigorated by their new friends and network.


It’s easy to see that an app like this could have some obvious benefits such as breaking silos and diversity. But perhaps a much more important and less obvious benefit could be that of engagement. Currently, Gallop reports that only 30% of employees are engaged, or contributing discretionary effort, a statistic that hasn’t changed in 13 years. To measure engagement, Gallop uses 12 indicators. Lunch Me would have an impact on at least nine of these including “I have the materials or equipment I need to do my work right,” “Someone at work seems to care about me as a person,” “At work my opinions seem to count,” and “I have a best friend at work.” According to Gallup, if Lunch Me will increase engagement it will also increase productivity and profitability while decreasing attrition. And if we can do this, I wonder how many companies would be willing to pay for this service?






Sunday, 5 October 2014

Behind the Bing Homepage

Recently, I was asked to give a presentation to some of my colleagues. My first thought was to talk about my current role and the projects I've been working on. But as I thought more about the opportunity, I was reminded of a Ted Talk I watched some time ago. The Ted Talk was called "What is the Internet, Really?" In this talk, Andrew Blum talks about how one day his internet stopped working so he called the internet company to come fix it. After struggling to figure it out, the cable man took Andrew outside and pointed to a bundle of cables sticking out of the side of his house. As he did this they saw a squirrel running along the wire and then the cable man said, "There's your problem. A squirrel is chewing on your internet." That was the first time he realized that the internet was more than a transcendent idea. He finally realized that the internet was tangible! So he spent a year or two documenting the people and the artifacts that make up the internet.
 
Ever since I saw that talk, I've been infatuated with learning how things work. So I decided I would learn about a Microsoft product or service and share my findings with my colleagues. I quickly went to Bing to search through all of Microsoft's products when it hit me - why don't I do it on the Bing homepage? I love the homepage and I use it every day. It made complete sense.
 
So I spent a couple of weeks speaking to many of the people working on this wonderful product. I condensed the process to tell the story in 15 minutes and created the following slideshow. Disclosure - I'm not representing Microsoft and none of the below is top secret, in fact I took out a bunch of stuff so I could share it here.
 
It all starts with a small team of 2-3 people called the image acquisition team. Their job is to work with dozens of stock image companies and collect the very best pictures they have. Then once a month there is an image review meeting where the content PM and her team decide which of these images is bing worthy or which images are beautiful, intriguing, and poetic. The way they describe it is they don’t want a picture that you would find on the back of a postcard. They want a picture with a new perspective – something that causes people to stop and ask what is that, where is that, what’s going on. And they have found that the more intriguing the picture is the more engagement there is from the user. As you can imagine, the conversations in this meeting can be quite interesting because beautiful is quite subjective. Since I’m from Idaho, if I were to see a picture of a potato being harvested I might start to cry because it’s so beautiful. But others will think I’m crazy. After they work out their differences and pick the pictures they essentially store them in a file. Every two weeks, the content PM opens up her calendar and starts to pick out the pictures that will be used each day. But it’s not as easy as randomly picking the pictures. They try to make sure that 30% of the pictures are relevant to that specific day – so for example holidays they pick a picture that represents that holiday, but they also celebrate other less known holidays too. I remember for the World Turtle Day they picked a “Green sea turtle being cleaned by reef fish off the Kona Coast, Big Island, Hawaii”.
 

Once the pictures are chosen a designer will take the pictures and touch them up a bit and make them look pretty. Because once in a while you are going to catch a cute groundhog right after it has finished it’s lunch and before he has had time clean itself up. We don’t want to embarrass the poor hog.


So after the touch ups you have this gorgeous picture ready for show.


The next thing the designer has to do is cut it up. She cuts it up 15 different ways.

 

Because the bing image has to be gorgeous on all devices and in all ways. This image is going to be used for the xbox so it has to be big enough to fit on big screen tvs, but it has to be small enough to be a tile on Windows. Then there is the Windows phone portrait and landscape and the laptops and bing is even on an iPhone.

 
 
So now that the picture is ready the next thing that the team works on is the hotspots. Hotspots are the four little squares that give you clues about what you are looking at and entice you to learn more. As we talked about in the beginning the picture if done right causes you to stop and wonder what you are looking at. Well the hotspots are supposed to further entice you.
 
 
The idea came from magazine covers. When I was talking to the PMs I kept hearing that the image is supposed to be like the magazine cover and the hotspots work in the same way they do for magazines. They are supposed to cause curiosity in the reader and get them to use the service. The one thing I want to point out is that each one of these hotspots are curated. They are hand-picked by an editor who spends on average one hour on each one of the hotspots. He usually tries to have three types of hotspots – a query, a video, and an image search.
 
After all of that is done they send it to the GeoPolitical team where they will make sure the content can be shown all over the world. They especially check that all the following adhere to strict policy - People, symbols, national symbols, flags, maps, and globes.
Once they pass they are finally ready to be uploaded! But it’s not that simple. This image shows that there are actually nine different teams handling the distribution of the bing image all over the world. And as you recall, a big part of their goal is to make the image relevant. So these teams ensure that the pictures are distributed at the right time. So for example on the day this image was distributed to the US it happened to be Canada day – so they did a special picture just for them.


Okay so we have the picture and the hotspots up and it looks lovely. Another big part of the site can’t be created beforehand but rather has to be created live – and that’s the Popular Now Carousel. Again, the big thing I want to point out here is that these are curated. The team that does this spends approximately 13 hours a day working on these. They have an editor who lives in New York and starts work 3 hours before us. Together they produce about 40 of these a day. They usually stick to news, sports, and entertainment. One of the hardest things they do is to cut down each story to 20 characters including spaces. 


But we aren’t done yet. Most of the people we have talked about have come from the content side meaning they have been editors and designers. But there is an entire engineering team made up of PMs, engineers, and testers dedicated to building the site and making sure it works properly and it is always improving. The PM is primarily focused on knowing the customer and articulating what the customer wants and to clearly communicate it out to his team. He learns what the customer wants through data, feedback and usability studies. Then he gets ideas of what features could make the site better. He writes down his ideas in specs and meets with his team to discuss. They are running agile so they meet for a scrum meeting Monday, Tuesday, and Wednesday and the first thing they do is listen to the song of the day. I asked them what they had listened to that week and they said Paul Simon, Earth Wind and Fire, and Chicago. Then they talk about the progress they’ve made with the specs, what they are working on for the day and what is blocking their success. And then they go to work on these features. I wanted to give you an example really quickly of what this process looks like. This is what the Bing page looked like several months ago. At that time, a certain percent of Bing users came to Bing and did nothing, a certain percent searched, and a certain percent clicked on the Popular Now segments. Well, the PM noticed that the carousel used in the image search was liked and largely used. He wondered how it would do on the Bing Homepage so he wrote the specs and his team built it.
 
 

But instead of releasing the new feature to the entire population of users, they decided to run a flight, which basically means they were going to test the feature with a small group first.
 




If the flight succeeds with the small group of people, they would push it out to all users. And in this case it was well received since we all see the carousel. In fact, since the carousel was added there has been a certain amount increase in engagement, search and Popular Now clicks.

I hope you have enjoyed learning about the Bing Homepage as much as I did. I wanted to close with four learnings – First, it is a blast to learn how things work! There is a ton of information I didn’t have time to share with you today, but trust me there is a lot that goes on behind the scenes that we take for granted. I encourage you to be curious and take some time to learn how our products and services work. Number two, it is crucial to document the process and your learnings. If you just reach out and speak with someone, though it’s a great step, it won’t mean much if you don’t force yourself to write it down or draw it out. Putting this presentation together has forced me to think of the complete story from beginning to end and how all the pieces tie in together. I am committing to doing this again at least once a year. I will go and learn how something came about and put it to a presentation and share it with my colleagues. Number three, people are so excited to tell you what they do! So just reach out and ask. One of my mentors tells me that he tries to have lunch with someone outside of HR at least once a month and learn what they do. Lastly, Microsoft really cares about its consumers! They want each user to have an excellent experience! They put in a ton of time, money, people, and effort to give them the perfect experience.
 

 
 

Sunday, 14 September 2014

Remenis

This is the story of Remenis, a social web app that helped people write, share, and collect all their life stories. Well, at least it did when it was live and running back in 2012. I am unfortunately starting this blog a few years late.

Remenis was a Twitter Bootstrapped, Facebook-like, web app that was written in Python using Django, hosted on Heroku, and used Facebook Connect for authentication. The site's goal was to encourage users to write the stories of their life and share them with their friends. The way it worked was: 

The user would log in using Facebook so we could learn who was in their social network. The user would receive suggestions of stories they could write - such as "What was the most embarrassing thing you did in college?" "Tell us about your wedding reception." "What was a lesson your father taught you?" After the user wrote their story, they would tag everyone who was in the story. Those tagged would receive a notification, and not only have the story for their records, they would also add to the story things they remembered or their own perspective. These stories could also be shared with other friends, or with the public. People could like the story, make comments, and like comments. They could even share the story on Facebook. 

Sounds like Facebook you say? Here is how we were different:

Facebook
Remenis
Current. All about the current stuff – what’s happening now.
We are all about the good ole days. We want to hear your best stories from the past.
Brevity. Pictures and one sentence comment on what the picture is highlighting.
We want details, lots and lots of details! Tell us everything you can about the story. Make it vivid.
Busy. Dozens and dozens of things to do – games, chat, videos, and the list goes on.
We are about one thing and one thing only – Stories! We know the power of stories, especially those of your friends and loved ones. They will inspire us, teach us, help us appreciate life and others more.
Garbage. Lots and lots of garbage. I mean really who cares if you are about to use the toilet right now, if you have entered in a home makeover contest, if you just listened to “Girls Just Want to Have Fun,” what you just bought online, or if you like weird and often offensive quotes.
All you are ever going to get here is stories! Really. Nothing else. It’s like having your own personal Reader’s Digest.
Superficial. It’s about superficial relationships -- seeing how many friends you can add, saying hello once you are friends with them, wishing them happy birthday once a year, reading their weird posts for a few weeks before finally unsubscribing from their feed.
Remenis is about celebrating and deepening the powerful relationships we already have through stories. By writing stories about your friends and family you will be reminded of the great life you have. By reading their stories or stories others have written about them, you will learn new things about them that will make you appreciate them more.

There were three of us working on this project - two developers and me - I was in charge of PMing, UX, and UI. Nathan, Aswath and I met at a Startup Weekend on February 17, 2012. Nathan and I were working on Volunteer Around Me, a mobile app that was going to revolutionize service projects, that is until the judges sank our ship. Aswath was romancing an idea that would allow people to share hotel rooms, even with warning of it being against the law and all. After the event, since we all worked for the same Tech company and we got along pretty well, we decided to team up and work on our own idea.

We brainstormed a few Saturday mornings and discussed over a hundred ideas. We eventually landed on three that we liked - a collaborative journal, a wiki for the average Joe, and an app for inspiring people. Because we couldn't choose one we decided to combine them all and make Remenis. 

Quite frankly, we didn't create Remenis after doing tons of research. We built it because it was something we really wanted. Something we believed would help people keep their history/legacy, bring people together, and inspire them to joy, success, love, etc. We realize that our life and our characters are mainly built upon our memories. As we make decisions we don’t just think about the consequences. We look back in our life and remember that one-liner our dad used to say or the vow we made to love and cherish someone. When we are asked if we are happy, we don’t think about our feelings that very minute. We think back at that time in high school when our team won the championship, when we traveled to Rome with a special person, when we held our child in our arms for the first time.

Life and character is what Remenis was about. We wanted to help everyone and ourselves write, share and collect all our life stories.

Unfortunately, soon after we built the site and started getting users, our lives got a bit too hectic and the project went unattended. Nathan went to Asia for several months to do service work, Aswath got a new job at another software company, and my wife had twins. I'm sure we all have awesome stories to write about; if only Remenis was still around... :(

Here is some of the work I did. Unfortunately, since it was so long ago the site is now broken so it would take too long to fix it in order to take some screenshots, so you'll just have to do with the few design drafts I created and that I still have left. Most of these were tweaked in the end, but they'll give you an idea of what we did.

These are a couple pictures of the first landing page, home screen, and the first logo I created.







After realizing the logo was too busy and the look and feel wasn't quite what we wanted, we came up with a different logo and look.




Here are some screenshots of our site:

The top had a carousel and here are some more of the pictures featured on it.




Once you entered the site, you saw the following instructions:



Inside the site, you would see the following tool to help you think of stories. We had a list of these questions on a database that we could add to and the tool randomly pulled from it:


And that's all I can find. :(

It was an excellent project. We had an excellent team. Man, those were some good ole days!