Rocket Surgery Made Easy

Steve Krug speaks at BostonCHI

Notes from 08-Dec-2009 meeting

  • Steve’s new book - Rocket Surgery Made Easy - due in bookstores in a couple of weeks – material from this talk will be in his book…
  • Passed a copy of his book around through the audience for quick peek
  • 150 or so people in attendance

Writing process

  1. writing process: collect years of notes
  2. need deadlines to force you to write (and finish)
  3. collect relevant articles for each chapter and post them all on a wall
  4. once you’ve begun to panic, start throwing things overboard
  5. Outline, write, iterate
  6. get help
  7. throw things overboard (save for next book?)
  8. FAQ at the end of every chapter – good idea
  9. Doing usability (vs How to Think About Usability)

Doing Usability

  1. A morning a month – that’s all we ask
  2. Run tests – with whole team – at our site – scheduled monthly and well ahead of time – and debrief immediately after over lunch
    1. maybe do right before iteration planning
    2. company-sponsored lunch
  3. Start earlier than you think makes sense
  4. The sooner you get information, the better use you can make of that information
  5. Don’t wait until the site is “finished” – test it as soon as it is testable
  6. Don’t worry that “you already know about the problems”
  7. If you have nothing built, test other people’s sites
  8. Are you working on the site? –> Yes ==> test now!
  9. Recruit loosely and grade on a curve
  10. Beware implied domain knowledge
  11. Some testing can be done w/o your target audience
  12. Usability testers say many things that are similar to what therapists say – “what did you expect to happen when you did that?”
  13. Keep yourself out of it! It is about the user and what the user being tested is thinking.
  14. Make it a spectator sport
  15. Get everyone to come and watch the test – frequently the observers suddenly just “get it” that they are not their users
  16. Have high quality snacks. Keep the sessions short and compact. Do them on site. Make it easy for everyone to join in, hard to have a good reason to skip it.
  17. Record sessions with Camtasia ($300). Get a good USB desktop microphone ($25). Don’t record user’s face (“useless and distracting”). Use a screen sharing service (like GotoMeeting, $40/month?) to control the UI. High quality audio is important, and should be channeled to the observation room via GotoMeeting or Skype.
  18. Focus ruthlessly on a small number of the most important problems
  19. Serious because everyone will come across them, or serious because for those who do encounter them will be seriously impeded.
  20. Don’t feel you need to come up with the “perfect” fix
  21. Ask everyone in the observation room to write down the three most important issues they observed. These are raised at the debriefing session over lunch.
  22. When fixing problems, always do the least you can do ™
  23. Prioritize the list, then work your way down the list until you run out of time/resources
  24. Sometimes a tweak is better than a redesign – don’t get suckered into a redesign – the perfect is the enemy of the good!
  25. Focus on the smallest change we think we can make to address the problem we observed
  26. Q&A
  27. Remote Testing?
  28. Remote testing is handy – saves travel time, recruiting pool grows, … do over skype or GotoMeeting.
  29. How to get it off the ground? Try a group usability test of competitor’s site – everyone can get behind that. Do one and hope people get enthused about it. Make the cost of swinging by to watch the testing really small.
  30. Be very cautious about asking users how to fix the problems they’ve encountered. “Users are not designers.” “Hopefully you know a lot more than they do about design.” Listen to them, but be careful that they’re ideas are not well thought out. The purpose of testing is to “inform your design intelligence”.

This was the third meeting of the Boston Azure User Group! (You can get on the group mailing list here.)

We watched a clip from the first day of PDC where Ray Ozzie and others talk Azure in the keynote

Discussed idea of an Azure Firestarter event – possibly for May 8, 2010 – and this seems to flow nicely from our scheduled April meeting where Jason Haley is scheduled to talk about getting started programming in Azure, such as with the Azure SDK.

Ben Day spoke on Windows Azure storage. Some quick notes / points from his talk:

  • Relational databases have a schema – all rows in a table have same columns, structure is defined before pouring in any data, data is not repeated (third-normal form breaks out data to appear only once – no redundancy)
  • … database will manage transactions across tables
  • … though mixed with replication can provide performance challenges
  • This changes for Azure Table Storage!
  • … though Azure Table Storage can scale way better – horizontally (“out”) whereas traditional SQL RDBMs tend to scale best vertically (“up”) – to larger boxes – which is more limiting and tends to be more expensive.
  • Do we need to rethink what needs to be transactional? Can we use a simplified transactional model – such as just within one table – or one instance of one table…
  • … compensating transactions are another approach
  • Securely storing data
    • Encrypt (compute is cheap)
    • If you encrypt a key, it won’t work for indexing
    • Search is harder if you encrypt
  • String columns have a 64KB size limit for Table Storage – so reference larger objects in a Blob
  • Unit testability
    • Abstract away you r persistent store, such as with Repository pattern – so you can unit test
    • Encapsulate business logic, such as with Service Layer and Domain Model patterns
    • Extract logic from UI using MVP (Model View Presenter)
    • Use Mock objects
  • Ben will come back to finish the story!

Around 23 attended.

Gave talk today at Architect Factory, Part Deux today titled Since Software is a Business, Architects need to be More than Technologists. The slide deck can be downloaded here. The most prominent concept/slide follows:

Technology Skills

Technology + Communications + Business-Awareness = Influential Architect

The overall event was excellent. It was organized primarily by Bryan Tuttle of CodeRight, a Consulting/Training company. Many thanks to Bryan for a job well done!

Second meeting of Boston Azure User Group

Guest speakers were Michael Stiefel and Mark Eisenberg

Meeting was held December 3, 2009 at the Microsoft NERD

We opened with Boston Azure Theater, kicking off a few minutes after 6:00.  For around 45 minutes we watched a video of Microsoft Director Manuvir Das’ PDC talk A Lap Around the Windows Azure Platform.

From there, Microsoft’s Mark Eisenberg walked us through a summary of key Windows Azure announcements made at (or right before) the Microsoft PDC in November. The deck Mark used is available BAUG_PDCHighlights. There was a lot of interest in the announcement details and in the pricing model.

Our keynote speaker, Michael Stiefel, followed with a detailed look into the project “Dallas” announcement, showcasing the Dallas “Data as a Service” platform, working through sample apps, a custom mashup – with code, demonstrating the straight-forward programming model (ATOM feeds), and showing use of the data directly within Excel. Michael wrapped up by reviewing the business model – and discussing the interesting possibilities (publishers can publish – and others can consume – data so much more easily than today since Microsoft will have eliminated the “contract friction” we’d have if every consumer had to strike a deal with every publisher).

According to RIAStats, a version of Silverlight is now detected on more than half of the browsers sampled! This is a telling milestone as installations of Silverlight continue to grow – drawing inexorably closer to that of Adobe Flash which currently enjoys installations on around 97% of browsers.

If you look at the graphic, and you consider the “not detected” section, it reads 49.99%, which means that the sum of those detected is better than half.

silverlight-exceeds-50-percent

At PDC 2009 in November, Scott Guthrie announced that Silverlight penetration was up to around 45%, up from around 30% in the summer. These RIAStats numbers feel in line with that.

Of course, I know this doesn’t “prove” Silverlight is really on more than 50% of browsers, as RIAStats are not a perfect reflection of the web as a whole, but it seems an interesting milestone nonetheless.

Silverlight has been in the wild for 863 days: Silverlight was released for real (RTW, or “released to web”) on 05-Sep-2007, followed thirteen months later by Silverlight 2 RTW 14-Oct-2008, then less than nine months later we saw Silverlight 3 on 09-July-2009. Silverlight 4 is in beta – maybe Microsoft will announce its release at MIX10 in mid-March? If they do, that would be on a similar release rhythm as from Silverlight 2 to Silverlight 3.

Silverlight’s installed base will also get another boost from the 2010 Winter Olympics next month as well. (And Silverlight 2 shipped shortly after the 2008 Summer Olympics.)

It is interesting to note that another tracking site – StatOwl.com – not only shows the penetration lower – and doesn’t agree on any of the numbers – but also doesn’t even agree on relative installed base across versions [EDIT: after Comment from Travis Collins, added in Silverlight 4 = 0.04 for RIAStats]:

  RIAStats StatOwl
Silverlight 1 0.62 1.39
Silverlight 2 1.91 9.73
Silverlight 3 47.44 23.85
Silverlight 4 (beta) 0.04 (<1 pixel) not shown, or 0%
Undetected (reported) 49.99 65.03%

 I’m not sure why they don’t agree – perhaps differences in sample sizes, sampling methodology, or due to different audiences being sampled.

Also, if you check the math yourself, you’ll see the values shown don’t tie down perfectly for RIAStats (though they do for StatOwl); if you add up the individual Silverlight versions along with the Undetected, you won’t get exactly 100%. Some sort of rounding errors I assume. [EDIT: See explanation in Comment from Travis Collins, RIAStats creator.] But I also assume that the Undetected = 49.99% is most likely right (at least not wrong due to a rounding error, since it is harder to round wrong there).

EDIT 01-Feb-2010: Found an interesting, relevant post on Cool facts about Silverlight penetration / mindshare from UXPassion.com.

Meeting #1 of Boston Azure User Group!

Keynote speaker: Brian Lambert of Microsoft

Meeting was held Thursday October 22, 2009 at Microsoft NERD in Cambridge, MA

Mike Werner (Microsoft evangelist for Azure in the Northeast) introduced the user group at this innaugural meeting, plugged the upcoming Microsoft PDC, then introduced Bill Wilder, the guy who started the Boston Azure User Group.

Bill Wilder provided an overview of the group (powerpoint slides):

  • All meetings will have Windows Azure focus
  • Any technology or business concept – cloud models, Microsoft dev technologies, tools, and so forth - is fair game, but must be presented with appropriate Azure slant: they need to be related back to Azure or else they are not appropriate for Boston Azure User Group meetings

Brian Lambert spoke on how to build applications for Windows Azure.

Bill’s raw notes from Brian’s talk:

  • Can call unmanaged DLLs through Full Trust
  • “Fabric Controller worries about the “shape” of your app”

Worker Roles

  • Background processing – utility computing
  • May communicate with outside services
  • Not externally visible to client
  • Queues ~ how we communicate to a Worker Role ~ since both Worker Roles and Web Roles can talk to storage (like Queues), this is a good medium

There are public and private containers in blog storage. Public is the only accessible to clients (w/o keys that is).

Partitioned for scale

Blobs = ? “cloud files”

  • Up to 50 GB / blob + 8k of metadata

Azure Dev Workflow:

  • Add some Web Role(s)
  • Add 0+ Worker roles
  • Add Service  Configuration
  • Add Service Package
  • Upload to Windows Azure Management Portal
  • Deploy to Windows Azure Fabric Controller
  • Provision / Run the roles and storage needs; monitors the health

Sticky Storage ?

….

Azure Tools + Azure SDK

….

For “dev” + “test” + “etc.” – may want to use REAL azure accounts – not just the “other account” you have in your main production account

….

Need to handle the “at least one worker role will work on it” contract – your application needs to be designed for this…

“poison message” – due to bug or oversight or bad data, a message from the queue will NEVER be successfully handled. App needs to handle this currently.

Queue timeouts can have different values – could be, say, different for different message types.

….

Worker Role => a class that inherits from WorkerRoleMain (what was this class name??)

Fabric occassionally calls GetHealthStatus() which returns a RoleStatus. If you tell the Fabric you are Unhealthy, the Fabric may slay you? Maybe your NIC card is flakey, so your performance to external web services is too slow?

….

Public container for blob – for actual image (full size) linked to from the thumb.

“Fiddler is your friend when you’re working … watch your requests.”

Dev Fabric + Cloud Storage is an excellent mode to run in for effective debugging – can watch the message traffic with Fiddler.

“There is no debugging in the cloud. There’s logging.”

RoleManager can also write to “local storage” [[more interesting access / features coming soon!]] – then can go to Portal and use “configuration” button to update your config file to “copy logs” (did they move it?)

===========

can even bring web site up with http://localhost:8020 

WorkerRole is very simple to just run it in a process

Use Test Running to fire up a WorkerRole

  • Tight dev cycle
  • Can also now run a performance profile

Tricks: log in “real fabric”, write to console in “dev fabric”

My notes from Intuit talk at Boston Cloud Meetup on Nov 3, 2009.

Per Alex Barnett of Intuit – only 12% of 4m Small Businesses not willing to use hosted data with SaaS.

Webware 100 finalists… best software solutions.

How do cloud-based apps Integrate?

  • Finance system know the project in Basecamp is done
  • Calendar know about CRM

Simplify by mapping services to a COMMON DATA MODEL (this is a REALLY big deal, IMHO).

QuickBooks have 4 m customers who have effectively agreed on a database schema… exposed an API to this data store. Nice…

The “Small Business Data Cloud” – available today from Intuit – as the Intuit Partner Platform.

native apps

  • Flex applications hold the logic
  • Server-side Java coming in development

federated apps

  • identity
  • data
  • billing
  • most of the action is over here (rather than native apps)

They expect to ship 1.7 m units of QB 10 over next 6-12 months – this will really launch the platform.

4 m users spending 4 b hours per year of screen time

25 million users within these Small Businesses

FAST TIME TO VALUE through SaaS solutions.

Intuit keeps 20% of the rate, rest goes to developers

Can have trial-periods, entitlements (monthly-charged extra features), more options coming next year.

Developers support the apps – Intuit supports everything else.

http://code.intuit.com – some Open Source in here

  • some code uses SAML
  • support Java, Python, Ruby, PHP, and .NET versions of code, such as SAML gateway

http://developer.intuit.com

Intuit – SMB, 4m customers

Salesforce – Enterprises, 25k customers

Is it a per-user, or per-customer license? Intuit end-users don’t need a license.

Don’t need to license QuickBooks to use the overall platform – but there may be some synergies.

Intuit certifies apps for use in their marketplace. Federated apps go through a third-party security assessment – on Intuit’s dime today, though that may change in the future.

I attended Presentation Camp Boston, a bar-camp style conference, on 24-Oct-2009. There were many good ideas and presentation tips. Among them, these are my favorites.

Top 10 Presentation Tips

The top 10 presentation tips I took away from Presentation Camp Boston

From Kenny Raskin’s keynote:

1. “Have a Passionate Purpose”

When you are speaking, it is not only about the content. If you mean what you say – you really believe in it – (which I believe Dale Carnegie refers to as conviction) - then you are more likely to be successful at conveying your message and persuading your audience.

Kenny shared a quote which was something like the following:

Who you are being when you are saying what you are saying says more about what you are saying that what you are saying.

Not just sell it – it was believe it + sell it both at once. This tip resonates with me and is consistent with a lesson from studying and performing improv; one of my instructors, Erik Volkert, really got across the difference between acting it out and really committing – and the impact that has on stage.

2. “The presentation starts before you are even in the room”

  • Find out who the audience is and what you want to say to them. What do you want them to FEEL. (“Know your passionate purpose!”)
  • As you are preparing to enter as a speaker, take a breath. Focus. Clear your mind.
  • As you enter, look your audience in the eyes. Before you say a word. Greet the audience. Pause… and let them respond.

3. Genuine eye contact != scanning

Eye contact is important. Don’t scan the audience and think that’s eye contact – you need to pause and connect with individuals one at a time – this may be for the duration of a thought or statement – or just until you feel you’ve connected. Some of your eye contact moments will be during pauses and are your opportunity to re-energize by breathing.

From Diane Darling’s Talk about Networking:

Not about presenting to large groups, but focused on presenting to very small groups of one or a few other folks in a social / networking situation.

4. Business Cards from A-Z

Some wisdom on business cards:

  • You need business cards. And they don’t need to be plain and boring… Diane’s cards have a list of tips on one side – useful and “sticky“.
  • She advises to keep your business cards in one pocket, and the ones you collect in another pocket – just have a simple system to avoid fumbling.
  • Write on the business cards – you may forget later otherwise that this card is from someone you offered to send a link to an interesting paper, or perhaps they might be a future business partner. Handy, easy hack.
  • If you do give a talk to a group, be sure to have a stack of cards handy to share at the end.

5. “Own the room”

I am a highly functional introvert
~ Diane Darling, author of The Networking Survival Guide: Get the Success You Want By Tapping Into the People You Know

I love that quote! As a fellow introvert, that’s how I want to be. Diane builds a case for being highly functioning with a plethora of straight-forward tips on how to handle lots of business social situations. A couple of examples:

  • Prepare several generic ice breaker questions you can use when you meet someone new. A good format for such questions is “Tell me about ______.” You fill in the blank with “your job” or “how you got into this line of work” or “how you ended up at this conference” etc.
  • Wear your name tag close to your RIGHT shoulder (since that’s where the eye most naturally is directed during a hand-shake.
  • Don’t start with your name! Introduce yourself by saying something about yourself, and end with your name – it is easier to remember there.
  • Saturday Night “Live” != Saturday Night “Unrehearsed” — you will be more successful if you practice some of what you will say — like what is your brief introduction of yourself (your elevator pitch), ending with your name, of course!

6. Connect with the Gatekeepers

If you want to get access to key people who may be hard to get to, consider connecting with those people who control access – such as a personal assistant to the CEO.

From Edwin Guarin’s talk, The Killer Presentation:

Edwin is an Academic Evangelist for Microsoft. His talk was called The Killer Presentation – Gettting to Point B.

7. Distributing Your PowerPoint Deck

Suppose you’ve given a talk, but now your audience wants a copy. Here’s how to do it, plus a couple of important benefits:

  • File > Save As… and choose either PDF or PowerPoint Show.
  • If you have Hidden slides – perhaps because you want “single source” for a slide deck that you use in multiple circumstances, but don’t want to maintain the bulk of the slides more than once – this will drop all those marked as hidden at the time you Save As.
  • If you have Notes, they are not included either. Sometimes your Notes are just speaking points, but perhaps they are not something you want everyone to see.

8. Spruce Up Your Talk with Images

You are preparing a deck, and you want to be memorable. You want that “just right” image or text effect.

  • Edwin recommends the use of royaty-free photos from http://sxc.hu.  You need to create an account to access them, then are free to use them in your PowerPoint slides.
  • Note that you are not licensed to subsequently redistribute these images if they are embedded in your PowerPoint deck. I registered an account on sxc.hu web site asking for clarification – and there was a tad bit of ambiguity around the licensing (the license text seem to both suggest it was fine and also say it wasn’t) – so I sent in a specific question on this scenario. The response from sxc.hu support was that the PowerPoint cannot be posted for redistribution. I am not a lawyer. And I do not even play a lawyer on TV.
  • [In my talk, I advocate searching through Google Images advanced search and filtering by Usage Rights to only include images labeled for reuse (usually through Creative Commons).]
  • To embed an image that is too bright, overlay it with a rectangle – and set the transparency to accordinly to fade it a bit so that text can be seen on top of it.
  • Use SmartArt to snazz up your text… transform a bullet list into a ring, or horizontal property or other eye-candy fanciness.

From Brainshark demo:

9. Sharing Your Presentation After the Fact

Brainshark has a cool way for you to post your slide-deck to their free http://my.brainshare.com hosted service: you can upload both the deck *and* an audio track.

This is way better than just distributing the PowerPoint deck, which may not be of any use for people who didn’t attend the talk. Of course, you do need to create (or record) an audio track.

I am not sure how the slides and the audio are sync’d – like when in the audio track should slide 7 pop in – but my guess is that you are expected to record your voice while delivering the talk – and some agent on your desktop keeps an eye on when you transition between slides. If so, I wonder if it can also capture screen shots of non-PowerPoint activities – like if I pop up a web browers, or use Visual Studio.

From Bill Wilder’s talk on Better Tech Talks:

Yes, I am recommending a tip from my own talk. :-)

10. “It is a Talk, not a Read”

Don’t even thing of reading your slides to your audience.

  • If you cram all the text for your talk into your deck , you will be guilty of promulgating support for Death By PowerPoint.
  • Your audience can read faster than you can talk anyway – they will be done before you. And they won’t be listening to you while they read; they can’t do both at once.
  • Your audience will resent being read to. As Jack Welch is reputed to have said to a presenter reading him the slides: if everything is on the slides, then we don’t need you.
  • There are better tools for a stand-alone document – like blog posts, or word-processors. PowerPoint is a poor substitute when writing a document that is being prepared for general reading.
  • If you do need to capture more info than belongs in the slides, consider putting it into the Notes section, and then using dual-monitor capabilities to have your laptop display different content than the projector, and configure PowerPoint to know about this via:  Slide Show > Set Up Show > Multiple Monitors.

I attended Presentation Camp Boston on Saturday 24-Oct-2009. I sat in on several excellent talks, plus led a session myself called Better Tech Talks. which was a presentation & discussion on giving technical talks to technical people.

I’ve been thinking a lot about how to give code-centric talks to software engineers, plus the general problem of clear communication through presentations. Those in my session will recognize that my slides (Better Tech Talks – 24-Oct-2009) do not stand alone well! – but should serve as a good reminder for those who participated in the session.

Feel free to follow-up with me to continue the discussion!

The Boston Azure User Group is a Cloud Computing community group focusing on Windows Azure, Microsoft’s Cloud platform, and …

The Boston Azure User Group is now on the map – literally!

Check out Jim O’Neil’s user group map. Zoom in on Cambridge, MA and you will see us waving from the NERD center. Thanks Jim!

While not as awesomely interactive and visual as a Bing map, we do appreciate other people plugging the user group:

Speaking of Roger Jennings… at the first Boston Azure meeting this Thursday night (Thu 22-Oct-2009 @ 6:30), we’ll give away copy of his hot-off-the-presses book Cloud Computing with the Windows Azure Platform!

I found Roger Jennings’ book chock full of useful information – from context to detail to practical code samples. I stopped at Barnes & Noble after a user group meeting in Burlington and picked up my own personal copy – why no Kindle version!? – and quickly plowed through it. Now I want to go back and play around with the abundant code samples. And in case you are wondering – no, this isn’t the copy we’ll be giving away…we have a new one.

The Boston-area User Group Calendar

Next Page »