Archive for the ‘Advocacy’ Category

How to rock a code demo – Selecting your font

FontChoicesIn this post I will provide tips on how to select a suitable font for code demonstrations.

One key factor in success when delivering a code demonstration is the visibility of your code. The font you use affects how easily I can read your code.

In this post I’ll discuss four characteristics to consider when selecting the font for your code:

  • Character differentiation
  • Character width
  • Monospace/Proportional
  • Ligatures

Character differentiation

The first thing you need to check is whether your font clearly differentiates different characters. A good test is to compare

  • The number 0 from the letter ‘O’
  • The number 1 from a lowercase letter ‘L’ or an uppercase letter ‘i’.

Variable names and assignments, API Keys, file paths, and URLs can contain a variety of characters. Selecting a font with good character differentiation can help avoid confusion when walking through your code.

Below is a character comparison for a variety of fonts you might find pre-installed in your code editors. Many code editors default to Consolas which has excellent character differentiation.

FontsCharacterDifferentiation

Character width

Another factor to consider is whether how much horizontal space is taken up by a single character. Ideally you want the code to fit on a single line without scrolling, so a narrower font may make it easier to display your code.

All the samples in the table below are the same font size.

At first glance Verdana and Segoe UI look similar, but Segoe is a narrower font so might be a better choice. You do need to be careful not to pick a font so narrow it becomes difficult to read such as TW Cen MT Condensed.

FontWidth

Monospaced/proportional fonts

General consensus is that you should always use a monospace (proportional) font for code. Monospace fonts use the same amount of horizontal space for each character.

The advantage to a monospaced font when displaying code is a string of 10 characters will always take up the same amount of space, so it’s easier to visualize variable lengths. Punctuation symbols can also be quite narrow and harder to see in non monospace fonts.fontMonoSpace

Ligatured fonts

Ligatured fonts are the fonts which have characters that connect to each other. If you are going to use a ligatured font for coding make sure it is designed for coding. e.g. Fira Code, Monoid, or Hasklig. unless they were designed for displaying code. Scott Hanselman wrote an interesting blog post discussing ligatured fonts. 

Ligatured fonts have a very different look when programming, some people absolutely love it, but it might cause confusion to an audience that is not familiar with this type of font.  The characters on the left are with ligatures, the characters on the right are without ligatures.

If you like ligature fonts, but your audience is confused by them, most code editors give you the ability to turn off ligatures for ligature supported fonts.

DisableLIgatures

There are other decisions to make with regards to font for code demonstrations including font color and size, but picking a suitable font is a great place to start!

 

 

How to add an FAQ bot to your website

Hosting an event? Attendees always have questions, you can bury them on your website or you can add a chat bot for quick Q&A based on your existing FAQ!

In this post I will show you the steps to

  • Create and test a FAQ knowledge base
  • Create and deploy a bot that connects to your knowledge base
  • Get a hyperlink so your website can launch a chat with the bot

This tutorial uses Azure so you need an Azure subscription to continue. If you are a student you can sign up for free Azure without a credit card at aka.ms/Azure4Students . If you are not a student you can sign up for a free Azure trial.

Create and test a FAQ knowledge base

Azure has a tool called QnA Maker which allows you to create a knowledge base automatically from an existing set of FAQ.

Visit the QnA Maker site and select Create a knowledge base from the top menu.

CreateAKnowledgeBase

Select Create a QnA service.

CreateAQnAService

You will be redirected to the Azure portal. Sign in using the account associated with your Azure subscription.

TIP: If you are redirected to a different Azure page after signing in, just go back to the QnA Maker page and select Create a QnA Service again to bring back the blade for creating a new QnA Service.

Specify

  1. Service Name
  2. Select the Management pricing tier (TIP: the ones that start with “F” are free, you can switch to a paid tier later when you need to support more calls per minute)
  3. Select your pricing tier (TIP: the ones that start with “F” are free, you can switch to a paid tier later when you need more storage)
  4. You can change the App name if you wish, it defaults to the name of your service. The name must be unique across all Azure users since it will determine the URL of your service.
  5. You can change the other values if you wish or leave them at their default values then select Create.

QnAServiceSettings2

After a minute or two your service will be created. Go to  Notifications in the top right corner and select Go to Resource.

GoToResource2

Now that you have a QnA Service you can return to the QnA Maker site and create your knowledge base. Refresh the page so the site picks up your recently created QnA Service.

Select your Azure directory, subscription name and services using the drop down lists.

Then enter a name for your Knowledge base

ConnectServiceToKB

Provide the URL for one or more web pages with your FAQ or upload one or more files containing your FAQ.

Select Create your KB to create your knowledge base.

CreateKB

You can add additional questions by selecting + Add QnA pair

AddQAPair

Type in a question the way you think a user might ask it and the suggested response.

TIP: Use the + symbol for any question to add different phrases that might be used to ask the same question.NewAnAPair

Once you have the questions and answers you want, select Save and train from the top menu to save and train your QnA service model.

SaveAndTrain Select Test to test your trained service. Enter a question and see what comes back. Note you do not have to type in the questions exactly as they appear in the FAQ, that’s because the service is using LUIS (Language Understanding ) to figure out the intent of each question.

TestQnAService

When you are finished testing select Test again to collapse the testing window. You can go back and forth adding new questions and phrasing then retraining the model as often as you wish until you feel the most common questions from users will find a suitable response.

When you are satisfied with your responses select PUBLISH from the top menu and select Publish to publish your service and get an endpoint you can use to call the service.

PublishService

Once it is deployed you will see the screen below. You can Edit then retrain and republish your service as often as you want.

You will need some of the details in the HTTP request shown on this screen to create a bot that connects to your service.

ServiceDeployed

Congratulations you have successfully deployed a QnA service. Your next step is to create a Bot and connect it to your service.

Create and deploy a bot that connects to your knowledge base

Return to the Azure portal

Select Create a resource and search for Web App Bot

CreateWebAppBotStep1

Select Web App Bot from the list of search results then select Create

AStep2CreateWebAppBot

Enter a Bot name and a pricing tier

Select your Bot template:

  • Change the SDK version to SDK V3
  • Choose either C# or Node.js as your SDK language
  • Choose the Question and Answer template

MyQnABot

While you are waiting go back to the QnAMaker and select My Knowledge bases

Select your knowledge base

Go the Settings tab

Scroll down to the Deployment details and find the

  • KnowledgeBaseID – This value will go in the QnAKnowledgeBaseID field
  • EndPointHostName – This value will go in the QnAEndpointHostName field
  • EndPointKey – This value will go in the QnAAuthKey field

AppSettingsForBot

Once your Web app bot is created, select it in the portal and choose Application Settings

Scroll down until you see the Application settings

Select Show Values to see the individual application settings and enter the values you looked up for

  • QnAAuthKey
  • QnAEndpointHostName
  • QnAKnowledgebaseId

Don’t forget to select Save after you enter the values

ChangeBotSettings

You can test to ensure your Bot is connected to the knowledge base by selecting Test in Web Chat. Type in a few questions, you should get the same responses you saw when you tested in QnAMaker. If you do not get an answer, you can try republishing the QnA Service in QnA Maker and double check the app settings are copied correctly.

TEstInWebChat

Get a hyperlink so your website can launch a chat with the bot

Now that you have a bot, you need a way to call the Bot.  There are many different ways to call a bot. You can set up channels to call the Bot from Skype or Facebook. Some platforms are quite a bit of work because you need authentication keys from the applications and you have to go back and forth connecting the application to your service passing keys back and forth.

For many of us, the ability to call the chat bot from a website is sufficient. Let me show how to get a hyperlink you can use to launch or an iframe to embed the bot into your website.

Open your bot in Azure and select Channels 

Select Get bot embed codes from the Channels blade

GetBotEmbedCodes

On the pop up page select Click here to open the Web Chat configuration page

WebChatConfiguration

Select Show to display your secret key.

If you want to embed a chat window inside your website copy everything in the Embed code to your webpage. Replace the text YOUR_SECRET_HERE with the secret key from the text box above.

If you want to open the chat window in a separate window, just create a hyperlink that points to the URL https://webchat.botframework/embed/YOURBOTNAME?s=YOUR_SECRET_HERE that appears inside the embed code. Replace YOUR_SECRET_HERE with the secret key from the text box above

LinkToBot

If you open the hyperlink you will get a new tab with the chat window

webchatwindow

If you embed the code in an iframe it will appear within your web page. You will probably want to set the height and width properties of the iframe.

 

<h1>Look a chat bot</h1>

I added this to my web page

https://webchat.botframework.com/embed/AwesomeQnABot?s=xxxxxxxxxxxxxxxxxxx

neat eh?

ChatBotInIframe

Congratulations! You have just created and deployed a chat bot that will answer frequently asked questions using natural language and artificial intelligence!

Find out more about

 

 

 

Ten Tips for writing better blogs posts

This post will share ten specific things you can do to imrpove your blog posts.

  1. Make sure your post is worth reading
  2. Use a summary sentence
  3. Use lists to summarize content of long posts
  4. Use screenshots and pictures
  5. Complement your post with video
  6. Include hyperlinks
  7. Open links in a separate tab or window
  8. Let your personality come through
  9. It’s all in the title
  10. Go back and edit your post

1. Make sure your post is worth reading

Abandon the philosophy “I blog therefore I am”. Writing a blog post can be a selfish act, you may be really happy about something, or really angry about something or maybe you just figured something out and you want to show the world ‘look what I figured out”.

Ask yourself – What will the reader get out of reading this post?

There is too much “stuff’ on the internt. When you add to that collection of stuff, make sure it’s worth someone’s time to read it.  Are there successful blogs that rant constantly? Yes, but the successful ones are deliberately written to entertain or inform. Make sure you have a take away for your reader in mind. What will I learn from your post?  ‘how to install node.js’ ‘how to make a healthy snack your kids will actually eat’ or ‘how to avoid overspending on a laptop’

imageHere’s an example, this Imagine Cup post is a first person story by a student who won first place in a competition. What’s notable is the content helps a student understand the value of participating in the competition. It’s not just a brag about winning.

2. Use a summary sentence

When you search online for ‘what laptop should I buy?’, you get two thousand matches. How do you decide which search results is worth clicking?

The average user spends about 5 seconds glancing at a page before they decide whether it’s worth staying to read that page. Remember point #1 make sure your post is worth reading! The user wlil take about 5 seconds to decide if your post is worth reading. So, provide a single sentence to tell me what I learn if I take the time to read your post.

It helps to make your summary sentence stand out visually by using italics or a different colour.

image

Another advantage to the summary sentence: Your summary will appear in the details of the search results soI know what I wil learn from the search results page as well. I wrote this post two years ago and it still gets hits (Mental note: go update this post so people aren’t finding out of date information…)

image

3. Use lists to summarize content of long posts

Sadly some of the best blog posts are the least read.

Why? Because when someone takes the time to write out all the details to explain something, the end result can be a very long blog post.

Your reader may be looking for something very specific. You may provide that information half way through your post, but they are unlikely to read through 4 pages to see if you cover that one topic. If you break your post into sections, you can provide a list at the top listing all the sections. If you really want to make the user happy, add hyperlinks so your reader can click on a topic and go straight to the section of interest to them.

image

4. Use screenshots and pictures

A picture is worth a thousand words!

If you are going to try and show me how to use a piece of software, or how to bake a cake, please include pictures and screenshots.  It is visually appealing and can be more effective than describing with text. Pictures also break up the endless text in a longer blog post. If I see a really long post with nothing but text I am less likely to read it.

If you are going to share screenshots, invest in software that will let you capture delayed screenshots so you can show pop-up menus. It helps to have an editor so you can add boxes, arrows, and highlights to your screenshots.

All the screenshots in this post are captured and edited with Snagit.

SNAGHTML28ce7630

5. Complement your post with video

If a picture is worth a thousand words, a video can be worth a million!

Whether you are showing me how to apply a compression bandage, how to cook an omelet or how to deploy an Azure website, video can be a great complement to your blog post. But keep it short. If you embed a 57 minute video in your blog post, chances are your video will go to the ‘when I have time’ list along with a number of other excellent recordings that I really want to watch when I have the chance. I find somewhere in the 4-9 minute range is about the longest video I will watch when it is embedded in a blog post. You are better off creating 4×5 minute videos than one 20 mintute video if you can find a way to break up the content.

As with screenshots, take the time to invest in some software for recording your video and a microphone to improve the audio quality of your recordings. The other advantage to short recordings is they take less time to redo when you make a mistake. If you are doing a software demo, increase the font sizes and consider a tool like Zoomit to help highlight and zoom in on the important parts of the screen during your demo.

Watch the video below and try to imagine writing a blog post to explain how to use this feature instead of using video. FYI, I used Zoomit to zoom in and draw a few arrows. (my Zoomit skills pale in comparison to @GeekTrainer who uses it really effectively in his Microsoft Virtual Academy videos). FYI, I used my headset instead of my Snowball Microphone for this recording and I did get feedback from a viewer saying the audio was hard to hear.

Sample video using Zoomit and headset microphone

6. Include links!

When you recommend a tool or resource, please provide a hyperlink!

I LOVE bloggers who include links to related resources. If you are showing me a recipe for a cocktail and the recipe calls has an ingredient of “ginger simple syrup” please give me the link to a recipe for ginger simple syrup, that’s not somethig I can just pick up at the store! If you are writing a technical post and you start tell me I need to have a Microsoft account and Visual Studio installed, give me links on where to create a Microsoft account and where I go to install Visual Studio! Please!

I suspect one of the people who read this post has already clicked on a link in this post. If not here’s one for you to click now.

7. Open links in a separate tab or window

Don’t lose your reader!

You’ve added links to your blog post, but what happens when your reader clicks on them? Do they leave your post? Will they ever come back?

If you don’t open links in a new window or tab, I may click on that link in and never return. You put time and effort into the post, you convinced me to start reading it. Increase your chances of me reading the whole thing by opening links in a new tab or window.

8. Let your personality come through

This is your blog post! You have a personal style, let it come through in your post.

Whether it’s a  tradition of including a picture of your cat in each blog post, links to random silly videos, song parodies, or a tendancy to write run on sentences, something I have been accused of doing from time to time even though that goes against best practices when writing blog posts.

9. It’s all in the title!

You may have written the best explanation of how to change a tire ever! But if you gave it the title “I figured it out and so can you” Chances are I will never find your post when I am searching for tips on how to change a tire.

Your title needs to give me an indication of what I will learn or at least catch my attention so I am curious enough to visit your post and read your summary sentence.

Personally I despise titles with hyperbole such as “The most amazing unbelievably scrumptions chocolate sauce ever” I find them too much and they actually turn me away. So do be careful with adjectives in your title. I prefer a simple descriptive title “An easy dark chocolate sauce recipe” is more likely to get my attention especially when you add a nice photo of a slice of chocolate cake draped in your velvety sauce… hmmm hungry now.

When in doubt, a popular title is Top Ten <fill in the blank>, people often search for top laptops, top video games, top new features, top attractions, so it’s a good fallback title, of course it does force you to come up with 5 – 10 good points to cover in your post!

10. Go back and edit your post!

Edit and then edit again!

Re-read your post and look for spelling mistakes. Spell check won’t catch everything! I recommend reading the post from bottom to top to look for spelling mistakes. After all their mite bee some words that spell check says are syntactically valid but inn you’re post are used inn the wrong context.

A good friend of mine writes short stories and has had several published. She told me when you finish a store or chapter, you should go back and edit it with the goal of removing sentences and words that do not add to the story. When you are finished your edit, your story should be about one third shorter! The result is a cleaner, faster paced story. You would be amazed how much you can remove while still delivering the same message sharper and cleaner!

Go forth and write!

There are many other ways to write great blog posts, but hopefully this helps! Apologies  to all my readers for all the posts I have written where I didn’t folllow my own rules!

Ranking priorities is easier than you think

Whether you are prioritizing your to-do list or requirements for an application. It helps to have a simple way to prioritize, in this post I’ll share my favorite method.

I’ve seen many different methods to rank items on a requirements list or to-do list. Priority High/Medium/Low,  ranking priority from 1-5.  When doing everything isn’t an option (and it never is!) somehow you have to decide what comes first.

When I taught Business Analysis, I came across a wonderful and simple way of ranking priorities: Must, Should, Could, Would. What I love about this method is the fact it is self describing. However, I still find it helpful to describe each category to co-workers when we are trying to decide what to do first.

MUST

For requirements

When I am considering requirements for an application, anything identified as a MUST is a feature that is worth delaying the release to get. Put simply, the application MUST have this feature or it is not worth building the application at all!

For my to-do list

If I don’t do this I am not doing my job! I am not talking about forgetting to file an expense report, I mean my core reponsibilities, what I was hired to do! Sometimes there is a MUST on my to-do list that I dread doing, but when I acknowledge to myself it’s a MUST do, I have to set aside time to do it.

For exercise

We all know we should get some exercise. Some weeks it is easier than others. Did you know that as long as you exercise every third day you are improving? If you exercise the 4th day you are at least maintaining. So for me, a MUST exercise day is when I’ve gone 3 days and haven’t done anything. On Day 4 I MUST do something, otherwise I am actually getting less fit. Of course a must varies depending on your goals.  When I am training for a marathon, the MUST is the long run because that’s the run that you will regret skipping race day)

SHOULD

For requirements

Anything identified as a SHOULD that is not included in a release is going to make users unhappy and may even make them mad! They will be able to use the application but you had better give them a date when the SHOULD requirements will be added. Some of the SHOULD features may be pushed back a release or two but you know the users are going to be complaining until the SHOULD requirements are released.

For my to-do list

If I don’t do this task, one of my co-workers or maybe even my boss is going to be unhappy. Maybe it’s data I promised to try and put together so they could complete a plan. Maybe it’s something I promised to follow up on. My boss isn’t going to start yelling at me because I didn’t do it, but somebody out there will be unhappy if this doesn’t get done.  I certainly try to do all the SHOULD items on my to-do list. But during a crisis, they may get pushed back until everything is under control.

For exercise

If you get exercise every third day, then you are improving. Shouldn’t we all strive to get fitter rather than just maintain our current level of fitness? Getting in a workout at least once every three days is something we SHOULD all do. When I am training for a marathon, hill work falls into the SHOULD category. I know if I do my hill work it will pay off on race day (there are very few marathon courses out there without hills). But if I don’t do my hill work I’ll still finish, it’s just going to be a lot tougher.

 

COULD

For requirements

This is how you make users happy! When you start adding the features a system COULD have the result is a feature that will make the users happy. Something the old system perhaps couldn’t do and caused them frustration. Something taht will make the users lives easier

For my to-do list

When I get to the COULD items on my to-do list I am making the people I work with happy. Perhaps even going a little bit above and beyond. Maybe it’s taking the time to write a little email to their manager thanking them for helping with a task. Maybe it’s taking the time to put together a really awesome graph or report that summarizes the work we’ve done in the past year or the work to do in the coming year. When you manage to get a few COULD items on your to-do list completed you may start to get a little recognition for your effort, even if it’s just a ‘Thank you this is really helpful’ email from a co-worker.

For exercise

Ahhh, now if you can get to the COULD do items on your exercise strategy you should actually start to notice improvements. You could take a few minutes each day to do some situps or push ups. You could add some cardio to your routine, or if you do cardio maybe add a little strength training to your routine.  But, if you want to make it a habit to get to the COULD items on your exercise routine, I strongly recommend doing it with a friend, or making sure it’s something you can turn into a routine. When I am training for a marathon I COULD add some strength training to improve my core and some stretching. I can run a marathon without doing situps, but I’m going to look much stronger in that finish line photo if I can fit it in. Hmmm, since stretching will help me prevent injury, I guess I should really bump that up to the SHOULD list!

WOULD

For requirements

When you interview users and ask them for their list of requirements for a new system, every now and then they will say something like ‘you know what would really be nice’ . These are the WOULD like to have priorities. These are feature we will include if it turns out we can do them without really spending any serious amount of money or time doing it. Every now and then the users request a change that will take very little time to implement,  it may be a feature that already exists in the software but wasn’t implemented or well understood. We don’t often get to add a WOULD to a system, but when you do, the users smile and you get the satisfaction of knowing you made them happier without a big investment of resources.

For my to-do list

Ahhh, I have so many WOULD like to do items on my to-do list. You know all those articles you want to get around to reading, or the things you want to sit down and learn when you have time. When you do have the opportunity to tackle a WOULD item on your to-do list, the result is YOU are happier. You had a little time to tackle something that you wanted to do for you. Keep an eye out for easy WOULD like to do items that won’t take much time. Once in a while you may find a little window at the end of the day, when you really don’t have the energy to tackle the big to-do items and giving yourself 30 minutes to work on a WOULD like to do can re-energize you and remind you why you like your job!

For exercise

What exercise do you actually enjoy? Is it yoga? kickboxing? (I love kickboxing) cross country skiing? A walk along the river? Find a little time here and there to do something you enjoy that happens to be exercise, rather than doing it because it is exercise. When I am training for a marathon, going for a run wiht no goal pace or distance is such a pleasure especially with a friend! Itgives me a break from the gruelling training runs and reminds me why I took up running in the first place.

How do you help someone discover coding?

One hour at a time!

HourOfCodeNEwsletterImageI am very excited to be a part of the Hour of Code. Hour of Code was created by code.org as a way of getting kids interested in coding.

“more than 50% of today’s jobs require some degree of technology skills”

Did you know more than 50% of today’s jobs require some degree of technology skills? That number is likely to increase not decrease! Some of the greatest innovations in technology seem to occur when someone in a field that is not necessarily viewed as technical (e.g. music, fashion, journalism, healthcare) learns how you can leverage computers and technology to solve problems and applies those tools to solve problems in their field.

Let me give you a couple of specific examples

Music

When a musician wants to compose a piece of music on a piano, they typically start by playing the piece, and then they have to transcribe it. This can be done using a midi keyboard so you can generate a midi file that captures the music as you play. But what about the concert pianist on the grand piano, who finds themselves having to record the music and then listen to it afterwards and transcribe it. transcribing the music is a tedious process. There is software out there that tries to convert audio to midi file or sheet music but no-one has really nailed it yet. Enter ClaVision, students from Lethbridge Alberta who were inspired by Beethoven to create software that could analyze a video of someone playing a keyboard and generate a midi file which can then be used to create the sheet music!

Journalism

Nonny de la Pena has taken the technology used for virtual reality game to find an entirely new way to share stories. This could really change the way we think of learning history or journalism. Storytelling becomes more powerful than ever. You can learn more here. (warning the video at that link contains recreated footage of a bombing and a beating that may be  unsuitable for young viewers)

Fashion

Fashion is a multimillion dollar industry, obviously technology is used during the manufacturing, but how about technology being part of the finished product? Here’s a neat little story by Sage Franch (@TheTrendyTechie) that talks about a wearable display you can integrate into clothing! Or what about the girls from Oman d=who saw their sister carrying a huge pile of nail polish bottles trying to find ‘the perfect color’ and designed an app and printer that would allow you to design and print a single application of your own custom nail color.

New people bring new ideas!

When we break down the barrier that technology and coding is for ‘geeks’ we invite people with different ideas and different problems to solve to explore the capabilities of technology. That’s why the hour of code is so important! If we can get kids to explore coding before they develop the mindset ‘Coding is for geeks, I am not a geek so therefore I am not a coder’ then perhaps a 10 year old with a passion for drawing and painting will find a new way to share art with the world. perhaps a 14 year old who dreams of trying to solve world hunger will find a better way to feed the world! The more people we have with different backgrounds and different interests learning the capabilities of technology, the more problems we can solve with technology.

Monday December 8th, 2014, I will be co-presenting a webcast on how to get started coding with Sage Franch. You can see it here.
I am also presenting it to a grade 8 class, to a group of kids at Pathways to Education, and last year I presented it to a grade 5 and a grade 6 class. Anyone can do an hour of code, and that includes you! Just deliver your own hour of code at a school or community group near you, or maybe just share it with a son or daughter, niece or nephew, one of my coworkers shared it with her parents! Who would you like to introduce to coding?

Here’s a few resources to get you started:

  • Check out http://aka.ms/startcoding for a self guided tutorial
  • You can also visit http://aka.ms/learn2code to find other courses aimed at helping kids explore the world of coding (Warning: you may be subjected to me as a presenter in a couple of those courses Smile, there are few things I love more than helping people discover the power of code!)
  • You can also visit code.org and find more tutorials for kids young and old!

If you have discovered the joys of coding, consider introducing it to a new generation! You might even have a little fun on the way!

Not convinced yet? Check out this great little video and see if it inspires you to share an hour of code!

Learn from improv–it’s not about you!

There are some basic rules in improv comedy that more of us should apply to the workplace!

I know when you think of improv you have visions of Robin Williams or Whose Line Is It Anyway? They may make it look easy, but there is a lot of practice and training required, along with some quick wits.

Some of the rules you are taught when you explore improv comedy are rules we should apply in the workplace as well. Here’s one of my favorites:

You look good if you make your partner look good

DSCF6051If you didn’t watch that Whose Line is it Anyway clip, watch it now. Notice how Colin & Ryan set each other up?  Neither one is trying to steal the scene. When they set up Wayne to sing a song they give him song styles that play to his strengths. Fans of Whose Line will know Wayne is good at  songs in the style of Tina Turner, Prince, and Sammy Davis Jr, the rest of the cast are fully aware of his go to characters and give him every opportunity they can to work them into a song.  If it’s Brad singing, they will throw him a B52 number, because he does a great impression of the lead singer of the B52s. They know that if the song works, the skit works.  An improv skit relies on the whole team and when one team member tries to control the entire scene,  hog the stage  it falls apart.  If a team member sets up a team member to fail the entire scene fails and they look bad too.

How does this apply at work? Imagine you are doing a joint presentation with a co-worker. During the presentation a demo isn’t working and an audience members asks a question that is the area of expertise of your co-worker.

Let’s suppose you are focused on making yourself look good:

Maybe when your co-workers starts their part of the presentation you tune out, maybe you are reading ahead on the slides to review your upcoming topic, or you are having a side bar conversation with an audience member when your co-presenter’s demo goes wrong. They end up spending 5 minutes with the audience watching as they try to fix it. Your co-worker is getting flustered and the audience is getting frustrated. Now later an audience member asks you a question when you are presenting, you think you know the answer but get something slightly wrong.  Your co-presenter who is an expert in that area realizes you’ve made a mistake in your explanation and either has to correct you in front of the audience, or leave the audience with misinformation.

What happens if each of you is trying to make your co-presenter look good?

You are paying attention as they present, nodding and looking attentive. When they start having trouble with their code demonstration, you can give them time to fix it by discussing a related topic while they dig through their code to get it fixed or restart the demo, or perhaps engage the audience to help out pointing out that live code demos are always a challenge (my go-to joke is “the number of typing mistakes you make is directly proportional to the number of people watching you type”). The audience is focused on your discussion not the struggling co-presenter, or they are sympathetic to the co-worker and trying to help out a fellow coder. Later, when you get a question on a topic you know is their area of expertise, you pass the question to your co-worker who provides a complete and accurate answer.

For the record, I think of myself as a pretty good presenter, but I have been guilty of the acts described in scenario one. We all slip from time to time. Hopefully this post will help keep me honest in my future presentations!

Think of it this way: instead of trying to be more successful on your own, you are trying to be more successful as a team. A succesful team can accomplish much more than a successful individual. How well would Whose Line is It Anwyay skits work if there was only one actor on the stage?

Girl Geeks vs Geek Girls and why does it matter?

GeekGirlWaterBottleTo get more girls interested in technology we need role models they can look up to. In this post I talk about not only geek girls as role models, but also girl geeks! Because we need both!

I recently returned from the Ontario Celebration of Women in Computing. This event did exactly what the title describes: celebrated women in computing. Microsoft Research was a sponsor and there was high demand for their geek girl water bottles. Shortly after, I was telling a co-worker about the water bottles and we ended up discussing whether a geek girl was the same thing as a girl geek.

This may seem like a trivial discussion, but it helped me clarify something that had been picking at my brain throughout the conference. One of the ways we can encourage more girls to enter technical fields is by providing role models. When we recognize the two different types of girls who enter technical fields, we recognize the need for two different types of role models.

Sometimes, I am asked to act as a role model. Anyone who has seen me present knows I am a passionate speaker. I love having the opportunity to try and get people excited about technology and it’s capabilities. But am I the right role model? The answer, as is so often the case, is “it depends.”

I was good at math. I was told engineering was a good degree if you are good at math. I was a tom boy as a kid. So I was quite comfortable entering a field that was dominated by men and had a perception of requiring strong math skills. I was coding Choose your own adventure games on my TRS-80 computer before we ever had a computer in my classroom. I spent hours playing video games at the arcade (okay I really dated myself there didn’t I?) or playing Dungeons and Dragons.  I was a geek, I just happened to be a girl. I consider myself fully qualified to inspire future geek girls!

ButterflyBut are there girls out there who have the potential to find their inner geek? I know there are! You don’t have to be a tomboy! You don’t have to have math as your favorite subject! You don’t have to own a 20 sided dice, in fact if you don’t even get the reference to a 20 sided dice, you can still find an amazing career in technology.

I have met some amazing girl geeks! Let’s make sure we find more of them to share as role models along with the geek girls!  Let me introduce three girl geeks I have the honour of counting among my acquaintances!

Meet Marwa and Alaa from Bahrain, together they form Team Butterfly! They love nail polish and observed the constant challenge faced by others with the same passion to find a specific color. Their solution? An app that allows you to design your own custom nail polish, pick your color, select your finish: glitter, gloss, matte, and then send it to their printer to get a sample that provides just enough polish for a single application! These girls have found a way to combine their love of fashion with technology! They have also got a brilliant business idea. Which is why they took home third place at the Imagine Cup World Finals.

meu_wearable_led_panel_3

Meet Sage Franch (@TrendyTechie). Sage is one of the Microsoft Student Partners I work with from Dalhousie University.Her blog, Trendy Techie,  is a blend of fashion and technology topics! She’s blogging about how to use the Kinect sensor one week and about Tentacular knitwear scarves the next. What’s really exciting is when she gets a chance to combine the two as she did with her post about MeU, a wearable LED display that attaches to fabric and displays custom information through your clothes.

A junior at McGill University, Genevieve has a double major in computer science and molecular biology, a small exclusive program made up of about 30 people.Finally, meet Genevieve L’Esperance, who used to describe herself as a Tech Diva. She is currently a Microsoft YouthSpark ambassador but I first met her at the 4 Girls coding event in Montreal.  Genevieve decided to become Microsoft certified after hearing a woman speak about a tech school she wanted to create for young women in Bangladesh with the help of Genevieve’s mom. Genevieve was only 14 at the time and jokes that she only agreed to attend the Texas conference so she could buy new cowboy boots. But when she listened to the woman and heard her express such heartfelt desire to teach girls in an area with extreme poverty, she was inspired to further pursue technology and teaching.

Since she unleashed her love for computer science and her desire to spread it, Genevieve has devoted countless hours to teaching programming to girls. She works not only to show them the skills but to convince them that the field is a viable option. She learned that in part from her mom, who worked as a model at tech trade shows before becoming a successful entrepreneur. She attempts to show girls how technology is opening doors for her with the hope she can convince them it’s not just for boys

So if you are talking to young students about careers in technology, make sure you tell the story of a geek girl and a girl geek! You never know which story will inspire the next young woman to seek out a career in technology!

I know what I am doing, why do I need a process?

If you have worked in a big company, you have been told “there’s a process for that”. This post will look at why the process, as much as we love to hate it is essential for long term success.

Some people are very good at their jobs! They know instinctively what needs to be done and how to do it. I love working with these people, we all do! Maybe you are one of those people. But, even if I have a team of high performers, I still need process.

Maybe someone on the team is changing roles. Maybe we just hired someone new. A team is usually a mix of junior and senior team members. If you have rock stars on your team, I think a manager would want to bring some junior people onto that team to learn from the top talent!

When different people do the same task the quality is going to vary. Some people will do it really well, some people will do it reasonably well, others will not do it well at all. Those who are underperforming at a specific task may be very talented people but perhaps they are new to role, or this particular task is not their area of expertise. Ever met a great programmer who seems incapable of filling out a time report or expense report correctly?

The result is a widely varying level of quality, the quality level changes depending on who did the task or even depending on how alert and busy someone was on a particular day. (I have days when I write carefully thought out blog posts, and I have days when I knock out a couple of short paragraphs and point to a video to meet a deadline). Quality can vary tremedously as shown in the graph below.

QualityBar

So how does process fit into all this? Well when you define a process, you guarantee a mimum level of quality. By having a checklist or a set of steps that you *must* complete and that you complete *every* time you undertake a task, you ensure the quality never falls below a certain minimum standard. If someone new joins the team and all they do is follow the process, at least you know the task was completed acceptably well. Likely not as well as if it were completed by a senior team member, but it got done! If your junior team members can complete this task that may free up your senior team members to do other things that require their specific expertise!

Basically a process throttles the quality. So  you end up with something like this

MinMAxQuality

The lower red line indicates the minimum quality guaranteed by following the process.  The upper red line indicates the highest quality that can be reached when you follow the process. So, following the process is great for the a new team member or someone who is not an expert on that task because they know following the steps in the process guarantees an acceptable output.  Some of you are cringing at my terrible drawing skills above. But at least I centered the drawing on the page, and I set it to the recommended size for this blog (300-600 pixels wide), and I removed the shadow background on the image. I am a lousy artist, but at least I have a process I follow when I add an image to a blog post. Nobody is going to yell at you for doing a a lousy job if you followed the approved process. If you ever do have somebody accuse of of not doing your job properly when you did follow the process, then it’s clear your process needs updating. This may be an opportunity for you to be a star by being the person who identifies the need to update the process and works with the team to update the process so the next person who comes along doesn’t have the same problem you did!

But what about the rock stars on the team? Do we make them follow the process as well? After all you can see on my professional looking chart above that if I follow the process I limit the quality level that can be reached. My strongest team members may be able to achieve a greater level of success by not following the process! Good for them. But don’t I want the entire team to be successful? Don’t I want my top team member to not only do their job well but to help other people improve? What is it about the process that limits their ability to perform at their best?What information do they have? What tricks have they learned? I look to my top performers to help me improve the process so that everyone on the team does their work better. So for all of you who took one look at my graph and cringed, I ask you: If I was on your team what specific steps could I take whenever I am drawing a graph to make it look more professional? What tool should I use? are there particular colors I should select? a particular font? Yup, I know all those things affect the quality of my graph. (now you are wondering am I really that horrible at drawing or did I do it this way just to provide an example… I’m not telling). They key is that I look to the experts and the rock stars to help improve the process. That way you raise the quality of the output for everyone!

BetterProcess

Now, before you go off to your boss and start suggesting improvements for all the existing processes, I do want to point out another very important aspect of processes! A process can be used to guarantee a minimum level of quality, but sometimes steps in a process are there to ensure we are compliant with the law, or to ensure we can track important information. So if you are trying to convince the boss to remove steps from a process, it’s a good idea to try and find out why the steps are there in the first place!  I hate scanning all the receipts and attaching them to me expense report but since Revenue Canada requires the company to have copies of my receipts we can’t just take that step out of the process. Though I would like to thank whoever it was at the company who improved the process so we can just scan and email them in now. I used to have to send in physical copies. The work doesn’t end when you define a process, you should constantly be on the lookout for opportunities to make the process more efficient and more effective.

So next time someone tells you ‘we have a process for that’, your response should be ‘awesome I am glad to hear it’. If you are new to the task, you have instructions on how to complete your task with the confidence. If you are a subject matter expert then I fully expect you to look at the process with skepticism, and if you think the process can be improved, talk to the process owners! Let’s make it happen and make everyone look like rock stars!

How to pitch an idea to management and executives

This post will show you a great presentation structure you can use when you are requesting funds or resources to help you implement an idea.

pitchpostexecutiveWhen presenting to an executive it’s important that your presentation be clean, concise and to the point!

If you know the individual there may be a format they expect or prefer for presentations. For example, Max Long was president of Microsoft Canada and he believed you could do anything with one slide so when you presented to Max your best bet was to use one slide whenever possible

But not all exectuvies have pre-defined powerpoint templates you can borrow before you meet them. That’s when it’s important to have a solid strategy for presenting a proposal. This is true whether it will be you delivering the presentation or someone else is presenting on your behalf. When I taught ITIL there was a model they recommended when defining a strategy that makes an excellent format for executive proposals. I’ve had great success with this model and wanted to share it with you today!

Slide 1 – The vision

Does your company have a vision? Although sometimes from the ground visioning can seem a little vague and you may wonder why executives go offsite to discuss vision, it’s actually very important for a company’s success. What differentiates you from other companies? Why would someone choose your company’s service or product over another company? What are we good at? What do we want to be best at doing? If you can’t answer these questions it’s hard to set a direction for the company and to make the right decisions as to which opportunities to pursue and which to put aside for now.

One of my favorite quotes is “I can do anything, but I can’t do everything!” This is true for companies as well as individuals. How do you decide which plans are worth your limited time and money? You look for plans that help you achieve your vision. When you have an idea to put forward, you need a vision as well.

A vision is your ultimate goal.  Let’s be clear, your proposal or idea will not achieve this vision, but, it will be a step in the right direction! A vision is something you strive for. I strongly recommend taking a few minutes to look up the vision of the company you are presenting to as well! It can certainly help if your vision aligns with theirs!

I think this will make more sense if we look at a few specific examples:

I want budget to buy everyone new laptops because our existing laptops are out of date – Perhaps your vision is a team of employees who feel empowered and productive! Will buying new laptops make them feel empowered and productive? Not necessarily, there are other factors in play which affect their productivity and sense of empowerment but it will help!

I want to take some software we have in house and make it open source – Perhaps your vision is a company seen as leaders in their field.  Will publishing some open source oftware make you leaders in the field? No, but it shows the development community that you have software in that field and you are confident enough to share that software with the developer community. It should certainly help your reputation (as long as the software is good )

I want to upgrade to the newest version of Office because of the data capabilities. Perhaps the vision is a team with the information they need to make the best decisions!  Once again, Excel doesn’t guarantee you will have the information you need when you need it or that they will make the right decision, but having tools that help you analyze data effectively will help!

So slide 1 should be a single sentence that states your vision and possibly an image that captures your vision.

Slide 2 – Where are we now?

Now that you have presented your vision, it’s time to create a sense of urgency. You want to provide your audience with a feeling that the current situation is not acceptable and something needs to be done. You need to provide an honest assessment of the current situation. If you are taking the time to present to the executive, presumably it’s because you see something you feel needs to be fixed or an opportunity that should be seized. Now is the time to help them understand that need or opportunity!

This is a good time to present data or statistics that demonstrate the need  for change. You want new laptops? Get some data, tell them exactly how old the current laptops are, maybe get some data from the service desk to see if you can find out how many users are losing productivity because of laptop issues.

If you don’t have data, a good story can fill the gap. Was there an incident where a customer was unhappy because your team didn’t have accurate data that shows the need for better data analysis tools? A strong management team understands the value of a good customer experience and the potential negative impact of a bad customer experience so if you can provide specific examples where customers were unhappy because of the current situation that can also demonstrate a need for change

Slide 2 should provide some data or some specific examples that demonstrate why the status quo is unacceptable.

Slide 3 – Where do we want to be?

Okay, slide 1 was your vision, a long term goal you would like to reach eventually. This slide should be a very specific goal you can reach in the foreseeable future. It should be a SMART goal. A SMART goal is Specific, Measurable, Achievable, Realistic and Timely. Which basically boils down to “what do you really think we can achieve if we implement your proposal?” What exactly will get better?  Will customer satisfaction be 50% higher? Will employees spend 10 hours less a year dealing with IT issues? How long will this take? Will you achieve this goal in 6 months? a year? Ideally you want something that will show a return in a single year, you are going to have a tougher time proposing something which takes multiple years to show a benefit.

If you do have an idea that will help the company in the long run you might want to break it down into smaller proposals. What could you achieve in year one, in year two? in year three? Most companies do their budgeting one year at a time, so it’s easier to approve or finance a project for one year. After your first year you can approach them for a follow up project.

Slide 3 should provide a realistic goal for the end of the project you are proposing. Be specific general statements such as “employees will be more productive” or “users will be happier” won’t cut it. You need something that can be measured such as 15 % less calls to the service desk for this application, 10% increase in satisfaction on the employee satisfaction survey.

Slide 4 – How will we get there?

Okay, you’ve got their attention. They understand the problem, they understand where you want to take them. Now, they are ready to hear your proposal! This is the one section that may take more than one slide, because this is where you pitch your actual proposal. This is where you ask for the funding, the time, the resources, the commitment from other teams to help you, whatever it is you need to execute your plan!

Slide 5 – How will we know when we get there?

On slide 3 we specified a specific and measurable goal we were going to achieve. On the last slide we specify how we are going to measure how close we are to that goal. If you said there would be a 10% increase in employee satisfaction, when will that employee survey be distributed? Will you need to issue an extra survey to measure the success of your project in a timely manner? Will you work with the Service Desk to get reports on the amount of time spent on incidents for the application you are trying to improve?

If you are lucky there is already a reporting structure in place you can use to measure the success of your project, however you may need to work with another team to collect some baseline data now and agree on data that will be collected as the project progresses to make sure you can tell if your project is working!

What gets measured gets managed! It’s important to monitor your progress as you execute your plan. If the reports indicate things are going well, then you have some great data to share with your boss to show that their investment is paying off! If things are not going well, you want to know that sooner rather than later so you can determine if you need to make adjustments to your plan if needed. You don’t want to go up to the executive a year after they gave you the funding and say, oh well it looks like it didn’t work. If at the end of the year your project doesn’t work (which is a possibility, lots of things can go wrong, unexpected barriers may prevent your success) when you go back to your boss, if you can show them you were monitoring the progress and you tried to redirect and adjust when things weren’t going as well as you hoped that’s going to be a much better story to tell than saying, we did ‘x’ then at the end of the year we found at that didn’t work.  But hopefully, the reporting you set up will showcase that you met or maybe even exceeded your original goals!

You may think the reporting is just something management wants, but it helps you as well!  It allows you to monitor the success of your project so you can tweak as needed along the way, and it allows you to concretely show the impact your project delivered when it’s over.

Finding Inspiration

I just attended and presented at TEDx Youth Montreal. An incredible opportunity to inspire and be inspired.

Our first presenter is Olympic medal winner Andreanne Morin. She was on the Canadian Women’s eight team at the London Olympics and came home with a silver medal.  50 weeks of training a year, 6-7 days a week, 3 workouts a day, oh and she’s a law student! Through sleet, snow, fatigue, they trained and worked. When the big race happens your training pays off, especially the most gruelling workouts when you were tired and didn’t think you could do it. Because you know you got through those and you can do it when the time comes!

The next presenter is David Ragsdale, a neuroscientist who pulls an actual human brain out of a bucket! He then proceeds to explain what defines each of us, changing the way we see ourselves completely.

A 13 year old girl named Sophia who has a disease that caused all her hair to fall out and was forced to realize that now she’ll never fit the mold of the perfect 13 year old and explains that since she accepted that and took time to just figure out who she is and stop worrying as much about what others think she’s never been happier. “No-one here fits the mold, we are all different, so take a step back and figure out who you are and break the mold!”

Uhhhh… wait a second, I usually present to a bunch of geeks and explain how to write code, how exactly did I end up here again waiting for my scheduled time to go backstage and get miked up.

I have 9 minutes, no cue cards, and no slides. Why does 9 minutes seem like such a daunting task when I used to spend all day standing in front of a class explaining and presenting.

A video from a TED talk by a man who took fun pictures with his 28mm lens of people in Israel and posted huge photos of them on walls in Palestine, then took pictures of people in Palestine and posted giant photos of them in Israel. Showcasing local everyday heroes and giving everyone a reminder of the commonalities between the two sides.

Next, Sasha Diguilian, a professional rock climber who recently won a gold medal at the Pan Am games. The training is hard, she says, but every time she considered skipping a training session she reminded herself that every training session she attended was a step forward, every one she skipped was a step backwards. Why would anyone choose not to keep moving forwards!

I’m up next. I don’t think I’ve ever spent so much time preparing for 9 minutes. On the train, in the hotel the night before, in the hotel the morning of, sitting on a bench in the hallway visualizing it in my head, changing only a few words here or there, not wanting to risk throwing off the speech I had written up. I think the last time I wrote every word of a presentation and memorized it was in high school.

My talk, is apps, seriously Susan? I mean isn’t that just your job? How do you make that inspiring? Well, some aspects of my job are inspiring, no seriously, when you see the apps other people create it can blow you away! Do you have a smartphone or tablet? They are everywhere. Of course the apps make them really shine. Anyone can build an app, in an afternoon you could build something simple. That’s a great way to start. Now think bigger, something that could help you day to day. Now think bigger, something to help others day to day. Now think bigger, what app could help a charity. Now think bigger! Could your app have a real impact? Help someone with MS record and report their daily symptoms to their doctor? Take a recording from a stethoscope and send it to a program that analyzes the sound to determine if an infant in Africa has pneumonia so they can be treated in time to save them?

“Those who are crazy enough to think they can change the world, are the ones who do”

It’s a quote from an Apple commercial, but I love it.

Are you crazy enough?

Dream it! Build it! Live it!

You could see the students in the audience nodding, they get it, they see the potential of the devices they already have in their hands. The students seem to understand it better than most adults! That’s why they inspire me, they don’t see the barriers or limits, they just see the potential. May we all take a lesson from the students and be crazy enough to think that we can make a difference!

My talk might never be posted online, so maybe only 200 people will ever witness a 9 minute talk that took me hours of work. But, no regrets! I will never again share a stage with such an inspiring and diverse group each of whom inspired me in a different way. I can only hope that in some small way I repaid in kind.