Welcome to MSDN Blogs Sign in | Join | Help

I Moved, and So Did My Blog!

Hi All,

I have left Microsoft to start my own training and consulting business.

My new blog address is http://www.ShyCohen.com/blog/.

Cheers,
Shy.

Posted by ShyCohen | 1 Comments

Oslo and Models

As you may have already read on Doug's or Don’s blogs, “Oslo” is the codename for the new Microsoft Modeling platform. What’s important to understand is that when we say "Modeling Platform" we use the term "Modeling" in the broadest sense of the word to mean "an abstract representation of something that has a useful purpose".

The big question is: Why are models so important and what can you do with them?

Models can describe everything: a business process, an SLA, a computer farm, a single machine, a particular system deployment, a team, a person, a solution, a running process, and so on. They allow you to describe your environment in a useful way, but more importantly, they allow you to capture the relationships between models. There are several systems and solutions in existence today that allow you to describe some of the relationships in your system (like the connection between a computer and the applications that run on it), but no one to date (that I know of) had taken such a holistic approach that captures all the elements of the system, throughout the solution's lifecycle, in a uniform and open way, using one simple modeling paradigm, and made it part of an infrastructure play.

Making modeling part of the infrastructure allows the usefulness to emerge as we and others will leverage these models to create better ways to design, build, deploy, execute, monitor, and service systems. My personal opinion is that the language and the tools (cool, efficient, and useful as they are) are just means to an end – the real power of the system is in the Repository, which will store and provide proper access to these models and the relationships between them. Over time, this will be leveraged to:

  • Capture all the practical information regarding a solution in one place, and by that persisting the collective knowledge of the organization
  • Simplify cross discipline communication through persistent, non-lossy, high fidelity transition of artifacts from one stage in the application development lifecycle to another
  • Execute models, like XAML or deployment models, directly from the Repository
  • Perform impact analysis. For example, allowing one to know which business matrices will be affected if a specific machine is take down for 30min to install a patch
  • Simplify root cause analysis an issue resolution. For example, finding out that an SLA is not being met because a particular app was deployed to a machine with 1GB memory when the developer’s design calls for 2GB (the dev is easy to find if the model describing the developer is associated with the model describing the app), and fixing this by changing the deployment descriptor for that app
  • And much more ...

I am pretty excited about this commodification and democratization of models, and the potential it has to transform (simplify) the way in which we develop complex software. What do you think about this?

Posted by ShyCohen | 1 Comments

Tips for Public Speaking

 

Scott Hanselman posted a list of speaker tips for technical presentations. It's a great read, and so are the comments.

Here are 10 more tips to add on to his, focusing on general presentation skills. In my job I have the opportunity to speak with many different people in a variety of settings. I've found the following tips to be useful in most situations, whether delivering a high-level presentation to a small group of C-level executives, or a technology deep-dive to hundreds of developers at a large conference. I hope you will find them useful as well.

#1 - Speak Clearly

Speak slowly and clearly, project your voice, and break your sentences into phrases. It's amazing to see how many people talk too fast, or let their voice trail off at the end of sentences. Talking slowly will not only make it easier for your audience to understand you, but it will also help reduce the filler-words ("um", "ok?", "right?", etc.). When you speak slowly, you have time to think about what you want to say, and to "queue up" the words so that they flow smoothly. Speaking slowly and deliberately replaces the filler words with short pauses that give people time to grok your previous sentence. It also helps non-native speakers (people whose primary language is different than the one in which the talk is given) keep up with you. Beware of overdoing this though, or you may sound like a lecturing professor :-) Speaking slowly also lets you breathe more easily, which would help address the "trail off" problem, since one of its causes is simply running out of air.

#2 - Tie the Content to Something That the Audience Can Relate To

As techies, we are often engrossed with the neatness of the solution that we have built, or the technology that we are explaining, and when we talk about it we sometimes forget to explain to our audience WHY this great piece of technology is important to them, and the value that it holds for them.

Tell them an end-to-end story. A good pattern to follow is to start with either the state of the art, where things are today, or where we all want to go; nothing too controversial. Then continue to detail some of the pain-points, issues, or things that are hard to do today or that stand in our way of attaining that vision. Then show how the stuff that you talk about addresses these issues, by tying every point that you're making back to the original set of issues or scenarios that you presented. This approach doesn't fit all situations, but the model behind it is a classic "story model", so just go ahead and adapt it to your needs.

#3 - Rehearse, Rehearse, Rehearse

A talk is very much like a show. You are on stage, in front of a live audience, and you have a script to guide what you say and do (although you might be improvising around it). Just like a stage show, your talk should be well rehearsed. Ideally, you should know your talk by heart. You should be able to give the entire presentation from memory. The slides are for the audience, not for you. Know all the talking points, have the demos polished and smooth, and know where you want to be (time-wise, audience-emotions-wise, and story-wise) at key points in the presentation.

#4 - Think About the Emotional Impact of Your Talk

At a conference, people change context every hour. By the time they leave, they will have seen over 20 talks. How will they remember yours? People describe talks as "boring" or "cool" - they describe their experience in emotional terms. As it turns out, most people don't remember a lot of the technical details of talks they have seen, but they will remember their "wow!" moments, and how they felt at your talk. Move your audience.

Humor may at times be a dangerous path to walk (especially cross-cultures), but done right it will take the talk to a higher level. You can use spoken humor or funny graphics on your slides, but be culturally and environmentally aware. A much safer path is a cool demo with a suspenseful moment or something that people do not expect to see that will get them applauding spontaneously. If you can pull off a "wow!" moment, spontaneous applause, and a laugh all at the same talk, you are a true presentation master :-)

#5 - Engage With Your Audience

Always look at and talk to the audience. You are there to talk and interact with them. Catch people's eyes for a short while, and give audience members the feeling that you are talking with them. Beware not to look at one person too much or for too long of a time or that person might feel as if you are putting them "on the spot". Similarly, beware not to look at a person for too short of a time, or that person might feel as if you are trying to avoid them. If you are indeed speaking in phrases (tip #1), look at an audience member for one phrase, then move on to another person for the next phrase. If you are too shy to look at people in the eye, look at their forehead - they could never tell the difference :-)

Remember to give proper attention to all parts of the room. One good way to do that is to split the room into quadrants and scan them in a figure 8, choosing a different person to look at every time. One nice trick to get used to doing this naturally is to do the following when practicing your talk: place post-its on the wall with eyes drawn on them to simulate the audience, and then practice eye contact and the scanning pattern while you practice delivering your talk. Moving about (see tip #8) will also contribute to your ability to pay attention to the entire room.

Do not talk to your slides being projected on the screen behind you (see tip #3). You can glance at the screen for a second to make sure that the PowerPoint animation is happening as expected, but don't talk with your back to the audience. It doesn't matter if you're looking at your laptop's or the podium PC's screen either - if you're not looking at the audience you're not talking to them.

Speaking of computers, do not talk to your computer. If you are demo-ing something and need to operate the computer, make sure to look up at the audience every few seconds, and maintain that eye contact. It is most likely that the audience would be looking at the screen and not at you, but you still want to look at them (see tip #6).

#6 - Be Attentive to the Audience's Feedback and React Accordingly

Whether you're giving an intimate talk to a handful of folks, or presenting on stage in front of hundreds of people, be attentive to your audience's verbal and non-verbal feedback. Look at them continuously when you talk (see tip #5) and ask yourself:

  • Are they excited about what they're seeing?
  • Are they receptive to my humor?
  • Am I going so fast that I left them behind with a puzzled look on their face?
  • Should I pick up the pace or rather slow things down a bit?

Whatever you see, don't just plow along your predetermined path. If something works with your audience, do more of it. If something doesn't work for them, stop doing it. If the audience isn't laughing at your jokes, drop the humor. If they like code, stay in the IDE and talk to the points that you have on your slides from memory (see tip #3). Remember that at the end of the day you are there for them, and if you want them to like your presentation (see tip #4) you need to give them what you want in a way that they like it.

#7 - Use Hand Gestures and Other Non-Verbal Communication

Use your hands to gesture in a manner that complements and augments your verbal communication. Here too, you should be aware of cultural differences and sensitivities. Some motions do not cross cultures, e.g. making "bunny ears" with your hands to signify quotation marks while you speak. Some motions that are benign or even friendly in your own culture (e.g. showing the palm of your hand) may be offensive in others. Large motions, those done with your arms rather than your fingers, are typically safer than finger motions, and can also be seen better by people sitting far from you. One specific thing that I need to do fairly often is point at people to indicate their turn to speak. If you need to point at someone, a culturally safe way of doing that is with your entire palm, rather than by pointing a finger. Motion with your palm facing upwards as if you're inviting the person to speak, rather than pointing and putting the person on the spot. Lastly, when you are not gesturing, relax your hands to the sides of your body and assume a natural pose.

#8 - Do Not Stand In One Place

Move on stage; be energetic and dynamic, but not erratic. Move with a purpose. Do not wander or drift, and remember to replant yourself after you move from spot A to spot B. Allow yourself a few moments in a location before moving again. One thing that I sometimes do is associate certain spots on stage with something that I'm talking about. For example, I'll stand at one point of stage when talking about the developer aspects of something, and at another point when talking about the user aspect of that thing.

Do not "hide" behind the podium - step out to the open where people can see you. When possible, I enjoy walking down to the audience and talking with them up-close. This is not appropriate for all presentation types, so use this advice cautiously. Also, if you are using a microphone and plan to get off stage, first make sure that there's no feedback. (Try it out at the tech-check and figure out the "safe range".)

Josh Holmes has a good post on this as well.

#9 - Simplify Your Language and Grammar

Language mastery is the mark of the erudite. It is, however, an impediment for non-native speakers that hinders their apprehension of the information thus conveyed. Let me try this again: Speaking a language very well may show that you are smart, but it does not help people understand you better :-)

#10 - Relax!

A relaxed speaker seems more confident, knowledgeable, and in control. Being relaxed will help you better remember your talking points, and make it easier for you to focus on multiple things at the same time (the content, the audience, your stance and voice, etc.). It will also help you keep your cool and recover gracefully as the inevitable presentation "hiccup" happens every now and then. Get a good night's sleep before your talk. Cramming the night before and being tired for the presentation is not going to make it any better. Practicing and being prepared for your talk (see tip #3) will also help you relax. Clear your mind of all other distractions and get into what I like to call "Presenter Mode".

 

That's it for now! I hope this will be helpful and do let me know (via comments) if you have any other tips and tricks to share.

Posted by ShyCohen | 2 Comments
Filed under:

TechEd US in Orlando

If you are going to TechEd in Orlando come check out my S+S talk: A Practical Guide to Doing the Software-Plus-Services Thing (ARC09-TLC). My goal for this talk is to describe how S+S can address some of the challenges in developing large SOA-based systems, and help create solutions that were not possible or practical before. I will also describe some of the options for participating in the S+S ecosystem, and provide general guidelines on how to do that. I'll be giving it at the TLC on Thursday (6/5/2008) from 2:45PM to 4:00PM.

I'll be at the TLC every day, so come on over and say Hi.

Posted by ShyCohen | 0 Comments

TechEd Israel Videos

The videos of my TechEd Israel talks are online.

The Software plus Services talk is here. This is a new talk that I did with my dear friend Tim Stevens, and it was really great.

The Service Taxonomy talk is here. This is the first time that I gave this talk in Hebrew, and in fact, the first talk that I gave in Hebrew in 10 years or so.

A list of the rest of the talk at the conference, as well as download links to the videos and decks, is available here.

Posted by ShyCohen | 0 Comments

TechEd Israel

If you are going to TechEd Israel, make sure to catch the talk that Tim and I are delivering on S+S. If all goes well (and the demo gods like us) then this should be one awesome talk :-) Oh - and don't forget to bring your cell phones!

I'm also giving a slightly updated version of the Service Taxonomy talk. Come check it out too!

Posted by ShyCohen | 0 Comments

Help us prioritize our future investment in Windows Workflow/Rules Designer re-hosting scenarios

The Windows Workflow Foundation (WF) team is looking for YOUR input to help us prioritize our efforts around designer re-hosting scenarios.

If you're interested in helping us shape the future of this feature, tell us what you think by filling in this survey. The survey will close on Wednesday, March 19th 2008.

Posted by ShyCohen | 1 Comments

Are you going to TechEd Europe?

If you’re going to TechEd Europe Developers in beautiful Barcelona, come check out my talks in the Architecture track and say Hello.

My talks are:

 

ARC07-IS - Service Taxonomy: A Common Language for SOA (November 6th at 09:00 in Room 114)

ARC06-IS - Exploring Event Driven Architectures (November 6th at 17:00 in Room 116)

 

See you in Barcelona!

Shy.

Posted by ShyCohen | 3 Comments
Filed under:

Help us prioritize our future investment

The Windows Workflow Foundation (WF) team is asking for your assistance in prioritizing our efforts going forward. If you’re interested in helping out, please take the time to fill in this survey on your current and future usage of WF Activities, and the areas where you would like to see us invest going forward. Your feedback will be extremely helpful in shaping the future of WF.
Posted by ShyCohen | 1 Comments
Filed under:

Ontology and Taxonomy of Services in a Service-Oriented Architecture

A few months ago I published an article titled Ontology and Taxonomy of Services in a Service-Oriented Architecture in the Architecture Journal.

One table that did not make it into the article was the summary table below.

Category

State

Security

Errors

Build/Buy

Management

Messaging

Self

N/A

Limited

Buy

Centralized

Utility

Self

User/App

Limited

Buy

Centralized

Entity

System

User/App

Limited

Build

Centralized

Capability

None/Self

App

Meet SLE and SLA

B/B/Lease

Centralized

Activity

None/Self

App

Meet SLE and SLA

Build

Per app

Process

Process

User

Biz Logic

Build

Per app

Check the article out and tell me what you think.

Posted by ShyCohen | 1 Comments
Filed under:

Rory "makes" Doug leak details about some of our future plans

While I was at TechEd, some folks on my team recorded this video for channel 9.

Guess what future feature leaked on this video? (hint: watch time mark 27:57)

Now that's one heck of a pourus mambrane :-)

Posted by ShyCohen | 0 Comments

TechEd EMEA in Barcelona - Code and random notes

TechEd EMEA was a cool event in an even cooler city. I'm definitely coming back :-) The organization was great and the speaker community awesome (we speakers are always hanging out together, but this was the first time I saw such a feeling of community).

Ok, first of all – some business.

Code, Demos, and Slides

Thanks to all the folks who attended the talks. I will post all the slides and code on my website soon (www.ShyCohen.com). Some of them are new things that I did not release before and some are updates to things you’ve seen before (though not at TechEd EMEA J). Watch this blog for upload announcements (I’m actually on vacation right now and trying to minimize work-related activities J).

Now, some fun anecdotes.

Most Enjoyable Moment

Being on stage for my Intro talk and telling everyone we shipped! What a great way to end a 4+ year journey!

Most Disappointing Moment

The launch announcement that wasn’t. The announcement at Eric Rudder’s keynote was so under-toned that no one really knew we shipped unless they came to my talks. Oh well…

Most Geeky Moment

While I was waiting for the techs to fix the projection issues that the PPT machine had, I had VS open so without thinking I just typed:

      using (TwoTechnicians)

      {

        FixScreen();

      }

Wouldn’t it things be so much simpler if you could actually do that? J

Most Random Fun Moment

Celebrating someone’s birthday on the bus after the speakers’ dinner, with Roy Osherove improvising birthday songs on his acoustic guitar. What a great night that was!

Posted by ShyCohen | 1 Comments
Filed under:

Laurence and Craig on Channel 9

My good friends Laurence and Craig recently recorded a Channel 9 video on WCF tracing. Check it out on: http://channel9.msdn.com/showpost.aspx?postid=236291

Posted by ShyCohen | 0 Comments

Web Service Software Factory ARCast

Ron just posted the session Don Smith and I recorded at TechEd US in Boston about the Service Factory. Check it out on skyscrapr.
Posted by ShyCohen | 0 Comments

Getting on the SOA Bandwagon

Ron Jacobs just posted the ARCast we recorded at TechEd Israel titled "Getting on the SOA bandwagon". Check it out on Channel9 or SkyScrapr.

Posted by ShyCohen | 1 Comments
Filed under: ,
More Posts Next page »
 
Page view tracker