<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-17912762</id><updated>2011-12-03T05:35:30.030Z</updated><category term='Web performance matters index'/><title type='text'>Performance Matters</title><subtitle type='html'>&lt;B&gt;Slowness Considered Harmful&lt;/B&gt;
&lt;BR&gt;
&lt;small&gt;Collected thoughts about software and site performance&lt;/small&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>55</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-17912762.post-234270058039616899</id><published>2007-03-18T09:59:00.000Z</published><updated>2007-03-18T10:12:41.149Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web performance matters index'/><title type='text'>Index of Migrated Posts</title><content type='html'>All posts from this site have now been migrated to their new locations at &lt;a href="http://www.webperformancematters.com"&gt;&lt;b&gt;Web Performance Matters&lt;/b&gt;&lt;/a&gt;. This index is a cross-reference to the new site for anyone who arrives here from an old link. &lt;br /&gt;&lt;br /&gt;My previous post (see below) also lists new locations for a few recent items that are not included in this list.&lt;br /&gt;&lt;br /&gt;&lt;div style="line-height: 0.9em;" &gt;&lt;br /&gt;&lt;h4 style="margin:0;" &gt;Foundations&lt;/h4&gt;&lt;br /&gt;&lt;ul style="margin:0;" &gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/11/1/probability-the-rain-in-spain-.html"&gt;Probability: The Rain in Spain ...&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2006/4/1/waterfall-methods-past-and-ever-present.html"&gt;Waterfall Methods: Past and Ever-Present&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2006/4/16/software-engineering-matters.html"&gt;Software Engineering Matters&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h4 style="margin:0;" &gt;Performance as an Aspect of Usability&lt;/h4&gt;&lt;br /&gt;&lt;ul style="margin:0;" &gt;&lt;br /&gt;&lt;li&gt;&lt;a href=" http://www.webperformancematters.com/objectives/"&gt;Why Performance Matters&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/10/17/web-usability-a-simple-framework.html"&gt;Web Usability: A Simple Framework&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/11/9/the-dimensions-of-usability.html"&gt;The Dimensions of Usability&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/10/21/performance-matters-for-voip.html"&gt;Performance Matters for VoIP&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h4 style="margin:0;" &gt;Web Usability Books&lt;/h4&gt;&lt;br /&gt;&lt;ul style="margin:0;" &gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/11/10/dont-make-me-think.html"&gt;Don't Make Me Think, by Steve Krug&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/11/11/designing-web-usability.html"&gt;Designing Web Usability, by Jakob Nielsen&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/11/14/the-design-of-sites.html"&gt;The Design of Sites, by Douglas Van Duyne et al&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/11/15/usability-for-the-web.html"&gt;Usability For The Web, by Tom Brinck et al&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h4 style="margin:0;" &gt;SLM Overview&lt;/h4&gt;&lt;br /&gt;&lt;ul style="margin:0;" &gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/10/18/practical-service-level-management.html"&gt;Service Level Management (SLM)&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/11/3/keeping-a-public-site-healthy.html"&gt;Keeping a Public (Site) Healthy&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/10/25/performance-dj-vu-all-over-again.html"&gt;Performance: Deja Vu All Over Again&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/10/27/the-web-site-availability-model.html"&gt;The Web Site Availability Model&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/10/28/the-web-site-response-time-model.html"&gt;The Web Site Response Time Model&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/10/31/the-value-of-reference-models.html"&gt;The Value of Reference Models&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h4 style="margin:0;" &gt;Managing Rich Internet Applications&lt;/h4&gt;&lt;br /&gt;&lt;ul style="margin:0;" &gt;&lt;br /&gt;&lt;li&gt;White Paper Series:&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://www.webperformancematters.com/journal/2006/2/28/managing-rias-1-introduction.html"&gt;1. Introduction to RIAs&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://www.webperformancematters.com/journal/2006/3/2/managing-rias-2-slm-issues.html"&gt;2. SLM Issues for RIAs &lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://www.webperformancematters.com/journal/2006/3/6/managing-rias-3-the-technologies.html"&gt;3. RIA Technology&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://www.webperformancematters.com/journal/2006/3/9/managing-rias-4-the-ria-behavior-model.html"&gt;4. The RIA Behavior Model&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://www.webperformancematters.com/journal/2006/3/17/managing-rias-5-measuring-responsiveness.html"&gt;5. Measuring RIA Responsiveness: Introduction&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://www.webperformancematters.com/journal/2006/3/25/managing-rias-6-measurement-challenges.html"&gt;6. Measuring RIA Responsiveness: Complications&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://www.webperformancematters.com/journal/2006/4/10/managing-rias-7-developing-usable-rias.html"&gt;7. RIA Usability and the Site Development Process&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://www.webperformancematters.com/journal/2006/5/22/ria-white-paper-and-wikipedia.html"&gt;Update: RIA White Paper and Wikipedia&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2006/5/2/alistair-croll-on-ajax.html"&gt;Alistair Croll on Ajax&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2006/8/15/reporting-web-application-responsiveness.html"&gt;Reporting Web Application Responsiveness&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h4 style="margin:0;" &gt;Web Performance Engineering: Building in Performance&lt;/h4&gt;&lt;br /&gt;&lt;ul style="margin:0;" &gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2006/8/14/ten-steps-to-a-faster-web-site.html"&gt;1. Ten Steps to a Faster Web Site, by Alexander Kirk&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2006/8/18/web-performance-tuning.html"&gt;2. Web Performance Tuning, by Patrick Killelea&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2006/8/22/speed-up-your-site.html"&gt;3. Speed Up Your Site, by Andrew B. King&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2006/8/27/101-essential-checklists.html"&gt;4. Deliver First Class Web Sites: 101 Essential Checklists, by Shirley Kaiser &lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h4 style="margin:0;" &gt;Setting Performance Objectives&lt;/h4&gt;&lt;br /&gt;&lt;ul style="margin:0;" &gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/10/16/when-is-your-web-site-fast-enough.html"&gt;When is Your Web Site Fast Enough?&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/10/22/the-miller-response-time-test.html"&gt;The Miller Response-Time Test&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/10/23/wysiwyg-or-no-site-is-an-island.html"&gt;WYSIWYG, or No Site is an Island&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/10/24/delight-satisfy-or-frustrate.html"&gt;Delight, Satisfy, or Frustrate?&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h4 style="margin:0;" &gt;Capacity Planning and Load Testing&lt;/h4&gt;&lt;br /&gt;&lt;ul style="margin:0;" &gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2006/8/24/are-online-retailers-ready-for-business.html"&gt;Are Online Retailers Ready for Business?&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h4 style="margin:0;" &gt;Measuring Performance&lt;/h4&gt;&lt;br /&gt;&lt;ul style="margin:0;" &gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2006/3/14/deep-thoughts-on-management.html"&gt;Deep Thoughts on Management&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2006/12/12/yahoo-on-web-page-performance.html"&gt;Yahoo! on Web Page Performance&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h4 style="margin:0;" &gt;Detecting, Diagnosing, and Fixing Problems&lt;/h4&gt;&lt;br /&gt;&lt;ul style="margin:0;" &gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/11/2/keeping-it-on-the-road.html"&gt;Keeping it on the Road&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h4 style="margin:0;" &gt;Reporting on Performance&lt;/h4&gt;&lt;br /&gt;&lt;ul style="margin:0;" &gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/10/26/the-abcs-of-measurement-data.html"&gt;The ABC's of Measurement Data&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/10/19/apdex-application-performance-index.html"&gt;The Application Performance Index&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h4 style="margin:0;" &gt;SLM Cost/Benefit Analysis&lt;/h4&gt;&lt;br /&gt;&lt;ul style="margin:0;" &gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/11/4/the-business-case-for-web-performance.html"&gt;The Business Case for SLM&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/11/7/slm-learning-from-dotcoms.html"&gt;SLM: Learning from Dot-coms&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/11/8/armstrong-on-it-business-alignment.html"&gt;Armstrong on IT-Business Alignment&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2005/11/16/climbing-the-slm-maturity-ladder.html"&gt;Climbing The SLM Maturity Ladder&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h4 style="margin:0;" &gt;Performance in the News&lt;/h4&gt;&lt;br /&gt;&lt;ul style="margin:0;" &gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2006/5/2/insights-from-interop-2006.html"&gt;Insights from Interop 2006&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.webperformancematters.com/journal/2006/8/24/are-online-retailers-ready-for-business.html"&gt;Are Online Retailers Ready for Business?&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-234270058039616899?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.webperformancematters.com/' title='Index of Migrated Posts'/><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/234270058039616899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=234270058039616899' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/234270058039616899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/234270058039616899'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2007/03/index-of-migrated-posts.html' title='Index of Migrated Posts'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-3686851560609384681</id><published>2007-02-28T09:04:00.000Z</published><updated>2007-02-28T09:55:10.146Z</updated><title type='text'>Recent posts now migrated</title><content type='html'>I have completed the migration of these posts to my new blog, located at &lt;a href="http://www.webperformancematters.com/"&gt;webperformancematters.com&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Understanding Web Usability&lt;/span&gt;&lt;br /&gt;&lt;p&gt;One of the great things about the Web has always been its democratic nature. Anyone can participate. But once you do, your contributions are wide open to public scrutiny. Good or bad, someone will evaluate your Web content.&lt;/p&gt;&lt;br /&gt;&lt;b&gt;Tags:&lt;/b&gt; &lt;a href="http://technorati.com/tag/Usability" rel="tag"&gt;Usability&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+design" rel="tag"&gt;Web design&lt;/a&gt;, &lt;a href="http://technorati.com/tag/worst+website" rel="tag"&gt;Worst website&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Ryan+Stewart" rel="tag"&gt;Ryan Stewart&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Rich+Internet+Application" rel="tag"&gt;Rich Internet Application&lt;/a&gt;, &lt;a href="http://technorati.com/tag/RIA" rel="tag"&gt;RIA&lt;/a&gt;, &lt;a href="http://technorati.com/tag/performance" rel="tag"&gt;performance&lt;/a&gt;.&lt;br /&gt;&lt;p&gt; See the new site, &lt;a href="http://www.webperformancematters.com/journal/2006/12/18/understanding-web-usability.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Web Design and Mouse Rage Syndrome&lt;/span&gt;&lt;br /&gt;Have you ever been frustrated at a Web site that downloads with the speed of an Alaskan glacier? Or become angry when a favorite site, or your Internet connection, is down. Have you experienced any of these symptoms:&lt;ul&gt;&lt;li&gt;Faster heart rate?&lt;br /&gt;&lt;li&gt;Increased sweating? &lt;br /&gt;&lt;li&gt;Furious clicking of the mouse?&lt;br /&gt;&lt;li&gt;Simultaneous clicking and cursing the screen? &lt;br /&gt;&lt;li&gt;Bashing the mouse?&lt;/ul&gt; Come on now -- admit it! Maybe some of them, just once or twice? Because if any of this sounds familiar, you're not alone.&lt;br /&gt;&lt;b&gt;Tags:&lt;/b&gt; &lt;a href="http://technorati.com/tag/Social+Issues+Research+Centre" rel="tag"&gt;Social Issues Research Centre&lt;/a&gt;, &lt;a href="http://technorati.com/tag/SIRC" rel="tag"&gt;SIRC&lt;/a&gt;, &lt;a href="http://technorati.com/tag/YouGov" rel="tag"&gt;YouGov&lt;/a&gt;, &lt;a href="http://technorati.com/tag/mouse+rage" rel="tag"&gt;mouse rage&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+design" rel="tag"&gt;Web design&lt;/a&gt;, &lt;a href="http://technorati.com/tag/performance" rel="tag"&gt;performance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+performance+management" rel="tag"&gt;Web performance management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/health" rel="tag"&gt;health&lt;/a&gt;.&lt;br /&gt;&lt;p&gt; See the new site, &lt;a href="http://www.webperformancematters.com/journal/2006/12/16/web-design-and-mouse-rage-syndrome.html"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Yahoo! on Web Page Performance &lt;/span&gt;&lt;br /&gt;&lt;p&gt;A recent post by Tenni Theurer, who works in a performance team at Yahoo!, appeared in the &lt;a href="http://yuiblog.com/blog/2006/11/28/performance-research-part-1/"&gt;&lt;b&gt;Yahoo! User Interface Blog&lt;/b&gt;&lt;/a&gt;. The post begins with the claim that ... &lt;blockquote&gt;&lt;em&gt;... most of web page performance is affected by front-end engineering, that is, the user interface design and development&lt;/em&gt;. &lt;/blockquote&gt;Theurer introduces the &lt;a href="http://en.wikipedia.org/wiki/Pareto_principle"&gt;&lt;b&gt;Pareto Principle&lt;/b&gt;&lt;/a&gt;, commonly known as the 80/20 rule, which states that 80% of the consequences come from 20% of the causes. In the case of Web page download time, she argues that the backend systems which generate an HTML document -- apache, C++, databases, etc. -- should be regarded as the 80% of causes that account for only 20% of download time. The other 80% of download time is spent fetching the elements that make up the page, such as images, scripts, and stylesheets.&lt;/p&gt;&lt;br /&gt;&lt;b&gt;Tags:&lt;/b&gt; &lt;a href="http://technorati.com/tag/Yahoo" rel="tag"&gt;Yahoo&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Pareto+principle" rel="tag"&gt;Pareto principle&lt;/a&gt;, &lt;a href="http://technorati.com/tag/80+20+rule" rel="tag"&gt;80/20 Rule&lt;/a&gt;, &lt;a href="http://technorati.com/tag/performance" rel="tag"&gt;performance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+performance+management" rel="tag"&gt;Web performance management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/IBM+Page+Detailer" rel="tag"&gt;IBM Page Detailer&lt;/a&gt;,&lt;a href="http://technorati.com/tag/Keynote" rel="tag"&gt;Keynote&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Page+Size" rel="tag"&gt;page size&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Round+Trip+Time" rel="tag"&gt;round trip time&lt;/a&gt;, &lt;a href="http://technorati.com/tag/RTT" rel="tag"&gt;RTT&lt;/a&gt;, &lt;a href="http://technorati.com/tag/TCP" rel="tag"&gt;TCP&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Slow+Start" rel="tag"&gt;slow start&lt;/a&gt;.&lt;br /&gt;&lt;p&gt; See the new site, &lt;a href="http://www.webperformancematters.com/journal/2006/12/12/yahoo-on-web-page-performance.html"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;ITIL Crash Course &lt;/span&gt;&lt;br /&gt;&lt;p&gt;Anyone involved with IT these days knows that ITIL is a hot topic, and one that seems to get hotter every month. ITIL, the Information Technology Infrastructure Library, has evolved from work sponsored by the UK Government in the late 1980's. According to the official ITIL site, it is "the most widely accepted approach to IT service management in the world".&lt;/p&gt;&lt;br /&gt;&lt;b&gt;Tags:&lt;/b&gt; &lt;a href="http://technorati.com/tag/ITIL" rel="tag"&gt;ITIL&lt;/a&gt;, &lt;a href="http://technorati.com/tag/InfoWorld" rel="tag"&gt;InfoWorld&lt;/a&gt;, &lt;a href="http://technorati.com/tag/ISO+20000" rel="tag"&gt;ISO 20000&lt;/a&gt;, &lt;a href="http://technorati.com/tag/performance" rel="tag"&gt;performance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+performance+management" rel="tag"&gt;Web performance management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/service+level+management" rel="tag"&gt;service level management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/SLM" rel="tag"&gt;SLM&lt;/a&gt;.&lt;br /&gt;&lt;p&gt; See the new site, &lt;a href="http://www.webperformancematters.com/journal/2006/10/26/itil-crash-course.html"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;101 Essential Checklists &lt;/span&gt;&lt;br /&gt;&lt;p&gt;Continuing my &lt;a href="http://performancematters.blogspot.com/2006/08/web-performance-engineering-1.html"&gt;&lt;b&gt;series of posts&lt;/b&gt;&lt;/a&gt; on Web performance guidelines, today I'm reviewing one chapter of a new book, &lt;a href="http://www.sitepoint.com/books/checklists1/"&gt;&lt;b&gt;Deliver First Class Web Sites: 101 Essential Checklists&lt;/b&gt;&lt;/a&gt;, by Shirley Kaiser of &lt;a href="http://skdesigns.com/"&gt;&lt;b&gt;SKDesigns&lt;/b&gt;&lt;/a&gt;, published by Sitepoint in July 2006.&lt;/p&gt;&lt;br /&gt;&lt;b&gt;Tags:&lt;/b&gt; &lt;a href="http://technorati.com/tag/Shirley+Kaiser" rel="tag"&gt;Shirley Kaiser&lt;/a&gt;, &lt;a href="http://technorati.com/tag/SKDesigns" rel="tag"&gt;SKDesigns&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Sitepoint" rel="tag"&gt;Sitepoint&lt;/a&gt;, &lt;a href="http://technorati.com/tag/performance" rel="tag"&gt;performance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+site+optimization" rel="tag"&gt;Web site optimization&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Checklist" rel="tag"&gt;Checklist&lt;/a&gt;, &lt;a href="http://technorati.com/tag/page+design" rel="tag"&gt;page design&lt;/a&gt;, &lt;a href="http://technorati.com/tag/site+design" rel="tag"&gt;site design&lt;/a&gt;, &lt;a href="http://technorati.com/tag/service+level" rel="tag"&gt;service level&lt;/a&gt;, &lt;a href="http://technorati.com/tag/SLM" rel="tag"&gt;SLM&lt;/a&gt;, &lt;a href="http://technorati.com/tag/optimization" rel="tag"&gt;optimization&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+optimization" rel="tag"&gt;Web optimization&lt;/a&gt;, &lt;a href="http://technorati.com/tag/tuning" rel="tag"&gt;tuning&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+tuning" rel="tag"&gt;Web tuning&lt;/a&gt;.&lt;br /&gt;&lt;p&gt; See the new site, &lt;a href="http://www.webperformancematters.com/journal/2006/8/27/101-essential-checklists.html"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Are Online Retailers Ready for Business? &lt;/span&gt;&lt;br /&gt;&lt;p&gt;Every year, more and more shoppers turn to the Web for their holiday shopping, with total sales in 2006 projected to be in the multi-billion dollar range. But will online retailers be up to the task? Our recent study suggests that many will not... &lt;/p&gt;&lt;br /&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://technorati.com/tag/eCommerce" rel="tag"&gt;ecommerce&lt;/a&gt;, &lt;a href="http://technorati.com/tag/online+retail" rel="tag"&gt;online retail&lt;/a&gt;, &lt;a href="http://technorati.com/tag/holiday+shopping" rel="tag"&gt;holiday shopping&lt;/a&gt;, &lt;a href="http://technorati.com/tag/performance" rel="tag"&gt;performance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+performance" rel="tag"&gt;Web performance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/site+outages" rel="tag"&gt;site outages&lt;/a&gt;, &lt;a href="http://technorati.com/tag/load+handling" rel="tag"&gt;load handling&lt;/a&gt;, &lt;a href="http://technorati.com/tag/load+testing" rel="tag"&gt;load testing&lt;/a&gt;, &lt;a href="http://technorati.com/tag/service+level" rel="tag"&gt;service level&lt;/a&gt;, &lt;a href="http://technorati.com/tag/dial-up" rel="tag"&gt;dial-up&lt;/a&gt;.&lt;br /&gt;&lt;p&gt; See the new site, &lt;a href="http://www.webperformancematters.com/journal/2006/8/24/are-online-retailers-ready-for-business.html"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-3686851560609384681?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/3686851560609384681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=3686851560609384681' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/3686851560609384681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/3686851560609384681'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2007/02/recent-posts-now-migrated.html' title='Recent posts now migrated'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-7354490355698791946</id><published>2007-02-22T22:15:00.000Z</published><updated>2007-02-22T22:49:04.676Z</updated><title type='text'>Performance Matters has moved</title><content type='html'>I have joined &lt;a href="http://www.uprightmarketing.com"&gt;UpRight Marketing&lt;/a&gt; as a partner, and after a lot of site design and development work, Performance Matters is now being transformed into a new journal with its own domain, at &lt;a href="http://www.webperformancematters.com/"&gt;WebPerformanceMatters.com&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;I built both sites myself using the &lt;a href="http://www.squarespace.com"&gt;Squarespace&lt;/a&gt; platform, and I'm now in the process of migrating all the old posts. Other than details of the progress of the migration, I won't be posting anything new here. But check out &lt;a href="http://www.webperformancematters.com/journal/2007/2/20/content-migration-and-overhaul.html"&gt;this post&lt;/a&gt; on the new site for all the details of the changes I'm implementing on the new platform.&lt;br /&gt;&lt;br /&gt;See you there!&lt;br /&gt;--Chris&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-7354490355698791946?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/7354490355698791946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=7354490355698791946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/7354490355698791946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/7354490355698791946'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2007/02/performance-matters-has-moved.html' title='Performance Matters has moved'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-1512697762634043492</id><published>2006-12-18T08:07:00.000Z</published><updated>2006-12-18T08:52:09.155Z</updated><title type='text'>Understanding Web Usability</title><content type='html'>One of the great things about the Web has always been its democratic nature. Anyone can participate. But once you do, your contributions are wide open to public scrutiny. Good or bad, someone will evaluate your Web content.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;People Recognize Poor Design&lt;/strong&gt; &lt;br /&gt;In the Web's early days, when people were adjusting to this new medium, most online critiques applied to a site's design. If you created a really ugly site, before long your handiwork would end being featured on a &lt;a href="http://www.webpagesthatsuck.com/dailysucker/"&gt;&lt;strong&gt;site dedicated to bad design&lt;/strong&gt;&lt;/a&gt;, or even included on someone's &lt;a href="http://www.pcworld.com/printable/article/id,127116/printable.html"&gt;&lt;strong&gt;all-time list&lt;/strong&gt;&lt;/a&gt; of bad sites. Today, the collaborative features of the Web 2.0 environment such as &lt;a href="http://www.mytechlists.com/pc-worlds-25-worst-web-sites-ever/"&gt;&lt;strong&gt;blogs&lt;/strong&gt;&lt;/a&gt;, &lt;a href="http://www.webforumz.com/worst-websites-archive/"&gt;&lt;b&gt;forums&lt;/b&gt;&lt;/a&gt;, and widely used &lt;a href="http://en.wikipedia.org/wiki/Folksonomy"&gt;&lt;strong&gt;folksonomies&lt;/strong&gt;&lt;/a&gt; practically guarantee that &lt;a href="http://www.drafzal.com/old/"&gt;&lt;strong&gt;truly awful design&lt;/strong&gt;&lt;/a&gt; will receive the &lt;a href="http://digg.com/design/The_worst_website_ever_made"&gt;&lt;strong&gt;recognition&lt;/strong&gt;&lt;/a&gt; it deserves. Such criticism can be constructive; people can learn from good &lt;a href="http://www.angelfire.com/super/badwebs/"&gt;&lt;strong&gt;examples&lt;/strong&gt;&lt;/a&gt; of what NOT to do.&lt;br /&gt;&lt;br /&gt;Today, blogs and wikis extend their democratic and educational influences beyond site design to site content. This can be tough on the writer who wants to explore new ideas. But as Wikipedia, one of the best example of online collaboration, advises all contributors: &lt;blockquote&gt;&lt;em&gt;If you don't want your writing to be edited mercilessly or redistributed by others, do not submit it.&lt;/em&gt; &lt;/blockquote&gt; This is excellent advice, because the collaborative search for truth online is not subject to parliamentary or academic niceties. If someone advances a weak argument, people will be quick to point out its flaws. And an unpopular opinion can produce flaming responses. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Is Web Usability a Sham?&lt;/strong&gt;&lt;br /&gt;For example, last week Ryan Stewart, who has &lt;a href="http://blog.digitalbackcountry.com/"&gt;&lt;strong&gt;his own blog&lt;/strong&gt;&lt;/a&gt;, and also writes a &lt;a href="http://zdnet.com/"&gt;&lt;strong&gt;ZDNet&lt;/strong&gt;&lt;/a&gt; blog about Rich Internet Applications (RIAs), wrote that &lt;a title="Permalink" href="http://blogs.zdnet.com/Stewart/?p=196" rel="bookmark"&gt;&lt;b&gt;Usability on the web is a sham&lt;/b&gt;&lt;/a&gt;, arguing that ... &lt;blockquote&gt;While accessibility and standards are great for the Web, the concept of usability has been overblown. &lt;em&gt;Usability&lt;/em&gt; as we define it is basically the rules for how the Web should behave while in the confines of the Web browser. But Web applications don't have to exist inside the browser and relegating them to these antiquated notions of usability is bad for progress.&lt;/blockquote&gt; To support this argument, he used the Back button as an example of a browser usability problem that RIA developers could eliminate altogether. &lt;br /&gt;&lt;br /&gt;I think the central idea behind his argument was that the RIA technologies -- because they offer the developer more options -- can be applied to deliver usability improvements in Web-based applications. But I'm afraid he expressed it very poorly, first by over-generalizing in his criticisms of the concept of Web usability, and second by trying to use the Back button -- one of the most intuitive and widely-understood browser conventions -- as an example of poor usability. &lt;br /&gt;&lt;br /&gt;Naturally, his post has been generating a small firestorm of responses ranging in tone from &lt;a href="http://talkback.zdnet.com/5208-12516-0.html?forumID=1&amp;threadID=28285&amp;messageID=531013&amp;start=33"&gt;&lt;strong&gt;expletive-laden outrage&lt;/strong&gt;&lt;/a&gt; to &lt;a href="http://talkback.zdnet.com/5208-12516-0.html?forumID=1&amp;threadID=28285&amp;messageID=531266&amp;start=33"&gt;&lt;strong&gt;carefully-argued disagreement&lt;/strong&gt;&lt;/a&gt;. In their different ways, both those examples (along with other responses) argue that Stewart's post is full of opinions and assertions that are not supported by any evidence, and that (to put it bluntly) Stewart doesn't really know what he's talking about.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Marshaling the Right Skills&lt;/strong&gt;&lt;br /&gt;Unfortunately, this is a common problem in the field of Web design. An &lt;a href="http://performancematters.blogspot.com/2005/11/dimensions-of-usability.html"&gt;&lt;strong&gt;effective online application&lt;/strong&gt;&lt;/a&gt; must be available, responsive, easy to navigate, and deliver value to its user. This demands a wide array of skills rarely found in a single individual. As a result many sites are designed and built by people who are aware of only a small subset of the issues they should be considering. And all too often, someone in the site development process -- a business manager, someone in marketing, a Web designer, or a site developer -- makes key design decisions without understanding the consequences. And the challenges are even greater when &lt;a href="http://performancematters.blogspot.com/2006/04/managing-rich-internet-applications-7.html"&gt;&lt;strong&gt;developing a Rich Internet Application&lt;/strong&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Simply getting more people involved isn't the solution. Some really bad Web site designs have been the result of &lt;a href="http://www.webxpress.com/tomlinson-view/57"&gt;&lt;strong&gt;design by committee&lt;/strong&gt;&lt;/a&gt;. Even if you follow a good checklist, like &lt;a href="http://www.alvit.de/blog/article/20-rules-of-smart-and-successful-web-development-and-web-design"&gt;&lt;strong&gt;this one&lt;/strong&gt;&lt;/a&gt; by &lt;a href="http://www.alvit.de/vf/"&gt;&lt;strong&gt;Vitaly Friedman&lt;/strong&gt;&lt;/a&gt;, you will overlook some important aspect -- often site performance. The problem is the sheer breadth of knowledge required to do a good job. For evidence, read the Wikipedia entry on &lt;a href="http://en.wikipedia.org/wiki/Web_design"&gt;&lt;strong&gt;Web Design&lt;/strong&gt;&lt;/a&gt;. It's an unbalanced, poorly organized, collection of information that offers little help with the process of creating an effective site. &lt;br /&gt;&lt;br /&gt;The only answer is to get better, more knowledgeable, people involved. Start with a good overview of the process, like &lt;a href="http://performancematters.blogspot.com/2005/11/web-usability-books-4.html"&gt;&lt;strong&gt;Usability for the Web: Designing Web Sites that Work&lt;/strong&gt;&lt;/a&gt; by Tom Brinck, Darren Gergle, and Scott D. Wood. As they say in the book's introduction: &lt;blockquote&gt;To ensure high usability on our own Web projects, we defined a development process that incorporates proven techniques from software and usability engineering, graphic design, project management, and other disciplines. The process had to be practical and lean. It had to allow us to work on multiple projects of varying sizes with fixed budgets. It had to help us keep track of the details that can kill usability and destroy profitability. This book is about that process.&lt;/blockquote&gt; Then find people who understand what the book is talking about to do the work -- and don't interfere!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tags:&lt;/b&gt; &lt;a href="http://technorati.com/tag/Usability" rel="tag"&gt;Usability&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+design" rel="tag"&gt;Web design&lt;/a&gt;, &lt;a href="http://technorati.com/tag/worst+website" rel="tag"&gt;Worst website&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Ryan+Stewart" rel="tag"&gt;Ryan Stewart&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Rich+Internet+Application" rel="tag"&gt;Rich Internet Application&lt;/a&gt;, &lt;a href="http://technorati.com/tag/RIA" rel="tag"&gt;RIA&lt;/a&gt;, &lt;a href="http://technorati.com/tag/performance" rel="tag"&gt;performance&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-1512697762634043492?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/1512697762634043492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=1512697762634043492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/1512697762634043492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/1512697762634043492'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/12/understanding-web-usability.html' title='Understanding Web Usability'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-5190036033058817225</id><published>2006-12-16T02:17:00.001Z</published><updated>2006-12-16T21:31:12.821Z</updated><title type='text'>Web Design and Mouse Rage Syndrome</title><content type='html'>Have you ever been frustrated at a Web site that downloads with the speed of an Alaskan glacier? Or become angry when a favorite site, or your Internet connection, is down. Have you experienced any of these symptoms:&lt;ul&gt;&lt;li&gt;Faster heart rate?&lt;br /&gt;&lt;li&gt;Increased sweating? &lt;br /&gt;&lt;li&gt;Furious clicking of the mouse?&lt;br /&gt;&lt;li&gt;Simultaneous clicking and cursing the screen? &lt;br /&gt;&lt;li&gt;Bashing the mouse?&lt;/ul&gt; Come on now -- admit it! Maybe some of them, just once or twice? Because if any of this sounds familiar, you're not alone. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mouse Rage Syndrome&lt;/strong&gt;&lt;br /&gt;The consequences of poor Web site performance don't usually make news, unless there's a big outage on &lt;a href="http://en.wikipedia.org/wiki/Black_Friday_(shopping)"&gt;&lt;strong&gt;Black Friday&lt;/strong&gt;&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Cyber_Monday"&gt;&lt;strong&gt;Cyber Monday&lt;/strong&gt;&lt;/a&gt;. Then the story invariably focuses on the business lost by companies whose sites were overloaded or down. But what about the effects of poor performance on customers? A &lt;a href="http://www.techweb.com/showArticle.jhtml?articleID=196603628&amp;cid=RSSfeed_TechWebhttp://www.techweb.com/showArticle.jhtml?articleID=196603628&amp;cid=RSSfeed_TechWeb"&gt;&lt;strong&gt;recent study&lt;/strong&gt;&lt;/a&gt; by the &lt;a href="http://www.sirc.org/"&gt;&lt;strong&gt;Social Issues Research Centre&lt;/strong&gt;&lt;/a&gt; (SIRC), an independent, not-for-profit organisation based in Oxford, UK., provides this perspective. &lt;br /&gt;&lt;br /&gt;Researchers found that &lt;em&gt;badly designed and hosted websites cause stress and anger&lt;/em&gt;, and coined the term "Mouse Rage Syndrome" (or MRS). They concluded that &lt;em&gt;five key IT flaws&lt;/em&gt; in the way websites are designed and hosted &lt;em&gt;may lead to harmful health effects&lt;/em&gt;. &lt;br /&gt;&lt;br /&gt;Those five problems will come as no surprise to any regular user of the Web: slowly loading pages, confusing layouts, excessive pop-ups, unnecessary advertising, and site unavailability. But as I was saying in my &lt;a href="http://performancematters.blogspot.com/2006/12/yahoo-on-web-page-performance.html"&gt;&lt;strong&gt;previous post&lt;/strong&gt;&lt;/a&gt;, it is not fair to blame IT for these problems, when most of them are the result of poor design choices by Web site designers and developers.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Damaging Customers' Health&lt;/strong&gt; &lt;br /&gt;The study combined data from a &lt;a href="http://www.yougov.com/"&gt;&lt;strong&gt;YouGov&lt;/strong&gt;&lt;/a&gt; poll of 2,500 people with physiological tests on a separate sample of Internet users, who were asked to find information from a number of different websites. Tests measured physical and physiological reactions to website experiences, looking at brainwaves, heart-rate fluctuations, muscle tension and skin conductivity. According to the report:&lt;blockquote&gt;When the test participants came to the 'problem' sites that we had deliberately chosen as comparisons for the 'Perfect Website' evaluation exercise [a prior study], responses changed quite dramatically in most, but not all, cases. While a few managed to stay calm and simply 'rise above' the problems presented by crazy graphics and slow-loading pages, others showed very distinct signs of stress and anxiety. &lt;br /&gt;&lt;br /&gt;Some changes in muscle tension were quite dramatic...While this was happening, the participant's faces also tensed visibly, with the teeth clenched together and the muscles around the mouth becoming taught. These are physically uncomfortable situations that reduce concentration and increase feelings of anger.&lt;/blockquote&gt; These reactions, if not &lt;a href="http://en.wikipedia.org/wiki/Anger_management"&gt;&lt;strong&gt;managed&lt;/strong&gt;&lt;/a&gt;, can eventually lead to other, more serious, health problems. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Poor Designs Can Kill&lt;/strong&gt; &lt;br /&gt;According to the SIRC report, "users want Google-style speed, function and accuracy from all of the websites they visit, and they want it now. Unfortunately, many websites and their servers cannot deliver this". The result is consumers seeking alternative websites in a bid to avoid undue stress and Mouse Rage. &lt;br /&gt;&lt;br /&gt;Jacques Greyling, managing director of Rackspace Managed Hosting, who commissioned the study, commented: &lt;blockquote&gt;&lt;em&gt;We believe that businesses that are selling online have a duty to their customers to ensure that the experience is as stress free as possible. The public has shown that it wants to buy online, ... (so) businesses need to provide simple and easy to navigate layouts, whilst focusing on speed and uptime.&lt;/em&gt;&lt;/blockquote&gt; If more studies confirm these findings, which will probably seem obvious to anyone who spends a lot of time online, maybe more Web designers will get the message that their poor designs are not just killing the business. They could be killing people -- really. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Performance Matters!&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tags:&lt;/b&gt; &lt;a href="http://technorati.com/tag/Social+Issues+Research+Centre" rel="tag"&gt;Social Issues Research Centre&lt;/a&gt;, &lt;a href="http://technorati.com/tag/SIRC" rel="tag"&gt;SIRC&lt;/a&gt;, &lt;a href="http://technorati.com/tag/YouGov" rel="tag"&gt;YouGov&lt;/a&gt;, &lt;a href="http://technorati.com/tag/mouse+rage" rel="tag"&gt;mouse rage&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+design" rel="tag"&gt;Web design&lt;/a&gt;, &lt;a href="http://technorati.com/tag/performance" rel="tag"&gt;performance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+performance+management" rel="tag"&gt;Web performance management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/health" rel="tag"&gt;health&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-5190036033058817225?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/5190036033058817225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=5190036033058817225' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/5190036033058817225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/5190036033058817225'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/12/web-design-and-mouse-rage-syndrome.html' title='Web Design and Mouse Rage Syndrome'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-116591742300014939</id><published>2006-12-12T08:00:00.000Z</published><updated>2006-12-15T02:39:20.840Z</updated><title type='text'>Yahoo! on Web Page Performance</title><content type='html'>A recent post by Tenni Theurer, who works in a performance team at Yahoo!, appeared in the &lt;a href="http://yuiblog.com/blog/2006/11/28/performance-research-part-1/"&gt;&lt;b&gt;Yahoo! User Interface Blog&lt;/b&gt;&lt;/a&gt;. The post begins with the claim that ... &lt;blockquote&gt;&lt;em&gt;... most of web page performance is affected by front-end engineering, that is, the user interface design and development&lt;/em&gt;. &lt;/blockquote&gt;Theurer introduces the &lt;a href="http://en.wikipedia.org/wiki/Pareto_principle"&gt;&lt;b&gt;Pareto Principle&lt;/b&gt;&lt;/a&gt;, commonly known as the 80/20 rule, which states that 80% of the consequences come from 20% of the causes. In the case of Web page download time, she argues that the backend systems which generate an HTML document -- apache, C++, databases, etc. -- should be regarded as the 80% of causes that account for only 20% of download time. The other 80% of download time is spent fetching the elements that make up the page, such as images, scripts, and stylesheets.&lt;br /&gt;&lt;br /&gt;She presents two graphics to illustrate this point. A table summarizing home page measurements of 8 popular Web sites -- Yahoo!, Google, MySpace, MSN, eBay, Amazon, YouTube, and CNN -- shows that retrieving HTML accounts for between 5% and 38% of their download times, and just 12% on average. The other 88% is taken up downloading and rendering other page elements.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Waterfall Charts&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger/7699/1738/1600/31528/YahooWaterfall.png"&gt;&lt;img style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="Yahoo Waterfall Chart [click to enlarge]" src="http://photos1.blogger.com/x/blogger/7699/1738/320/898645/YahooWaterfall.png" border="0" /&gt;&lt;/a&gt; To illustrate the reason why HTML accounts for such a small percentage of all page download time, Theurer uses the diagram shown here [&lt;em&gt;click to enlarge&lt;/em&gt;]. I call this kind of data visualization a 'waterfall chart', because of its shape, and because it is similar to the way the &lt;a href="http://en.wikipedia.org/wiki/Waterfall_model"&gt;&lt;strong&gt;waterfall model&lt;/strong&gt;&lt;/a&gt; of software development has always been always depicted graphically.&lt;br /&gt;&lt;br /&gt;Theurer says (in blog comment #22) she used the &lt;a href="http://www.alphaworks.ibm.com/tech/pagedetailer"&gt;&lt;strong&gt;IBM Page Detailer&lt;/strong&gt;&lt;/a&gt; tool to get the measurement data shown in this diagram. I have used this tool, and it produces a &lt;em&gt;Chart Panel&lt;/em&gt; similar to the one above, which is a graphical representation of all of the component downloads that make up a single page.&lt;br /&gt;&lt;br /&gt;I have not seen much documentation online, but if you take the time to register with IBM and download the software, its Help file is quite informative. It explains that the ... &lt;blockquote&gt;&lt;em&gt;... IBM Page Detailer attaches to the workstation TCP/IP socket stack and monitors all of the HTTP/HTTPS protocol based communications between your Web browser and the network. IBM Page Detailer then displays web activities in a series of color-coded bars&lt;/em&gt;. &lt;/blockquote&gt;It also has quite a long section on &lt;em&gt;Results Analysis&lt;/em&gt; and other &lt;em&gt;Considerations&lt;/em&gt; regarding Web download times.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger/7699/1738/1600/81736/KeynoteWaterfall.png"&gt;&lt;img style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="Keynote Waterfall Chart [click to enlarge]" src="http://photos1.blogger.com/x/blogger/7699/1738/320/369516/KeynoteWaterfall.png" border="0" /&gt;&lt;/a&gt; This kind of analysis is not new. Since 1998, &lt;a href="http://www.keynote.com/products/web_performance/index.html"&gt;&lt;strong&gt;Keynote&lt;/strong&gt;&lt;/a&gt; has offered a similar &lt;em&gt;Web Content Diagnostics&lt;/em&gt; feature in its MyKeynote portal -- here's a &lt;a href="http://www.keynote.com/docs/datasheets/TxP_web_content_diag.pdf"&gt;&lt;strong&gt;datasheet&lt;/strong&gt;&lt;/a&gt; describing the newest version of this service, recently released. For example, the figure on the right [&lt;em&gt;click to enlarge&lt;/em&gt;] shows a Keynote diagnostic measurement of the &lt;a href="http://searchmarketing.yahoo.com/"&gt;&lt;strong&gt;Yahoo Search Marketing&lt;/strong&gt;&lt;/a&gt; page.&lt;br /&gt;&lt;br /&gt;Unlike the IBM Page Detailer, which always measures from the desktop where it is installed, Keynote's diagnostic measurements can be taken from anywhere on the company's worldwide network of 2500 measurement computers (or "agents"). This example comes from an agent located on the Verizon network in Houston.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Lesson for Web Designers&lt;/strong&gt;&lt;br /&gt;Even without looking at the data in any detail, the message of these waterfall charts is evident from their general shape: &lt;blockquote&gt;&lt;em&gt;Web page download times rise with the number of bytes to be downloaded &lt;strong&gt;and&lt;/strong&gt; with the number of separate content elements comprising a page&lt;/em&gt;. &lt;/blockquote&gt;This fact is not news to anyone whose job involves monitoring or managing site performance. Even for a Web page consisting only of a single HTML file, you cannot compute download time simply as page size divided by bandwidth. That's because of the way the &lt;a href="http://en.wikipedia.org/wiki/Transmission_Control_Protocol"&gt;&lt;strong&gt;TCP&lt;/strong&gt;&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Slow-start"&gt;&lt;strong&gt;slow-start protocol&lt;/strong&gt;&lt;/a&gt; works, sending one or two packets (typically 1.5Kb - 3KKb), then doubling, and doubling again, up to the receive window size of the client.&lt;br /&gt;&lt;br /&gt;But most Web pages these days contain many imbedded graphic objects, CSS files, and script files, all of which extend download times. Most of these files are small, requiring just a few TCP packets to transmit. But every transmission requires a separate "Turn", adding another &lt;a href="http://en.wikipedia.org/wiki/Round-trip_delay_time"&gt;&lt;strong&gt;round-trip delay time&lt;/strong&gt;&lt;/a&gt; (RTT) from the client (i.e. browser) to the server(s) and back. This behavior has been widely documented and is well-understood by performance specialists: &lt;ul&gt;&lt;li&gt;In a previous post here, I described the &lt;a href="http://performancematters.blogspot.com/2005/10/web-site-response-time-model.html"&gt;&lt;strong&gt;Web Site Response Time Model&lt;/strong&gt;&lt;/a&gt; and linked to the CMG2000 paper (&lt;a href="http://www.keynote.com/downloads/whitepapers/ecommerce_response_time.pdf"&gt;&lt;strong&gt;E-Commerce Response Time: A Reference Model&lt;/strong&gt;&lt;/a&gt;) in which I introduced it.&lt;br /&gt;&lt;li&gt;In 2001, Peter Sevcik and John Bartlett of &lt;a href="http://www.netforecast.com/"&gt;&lt;strong&gt;NetForecast&lt;/strong&gt;&lt;/a&gt; published their paper on &lt;a href="http://www.apmadvisors.com/Articles/BCR%20Article%20Web%20Performance%20FNL.pdf"&gt;&lt;strong&gt;Understanding Web Performance&lt;/strong&gt;&lt;/a&gt;, in which they first outlined a formula for computing Web page download times based on total bytes, the number of components, and on round-trip times between browser and server(s).&lt;br /&gt;&lt;li&gt;That formula was simplified and explained in a highly readable paper by Alberto Savoia -- &lt;a href="http://www.stickyminds.com/sitewide.asp?ObjectId=5030&amp;amp;Function=edetail"&gt;&lt;strong&gt;Web Page Response Time 101&lt;/strong&gt;&lt;/a&gt; -- published in July 2001 in STQE, the magazine of software testing and quality engineering (now &lt;a href="http://www.stickyminds.com/BetterSoftware/magazine.asp"&gt;&lt;strong&gt;Better Software Magazine&lt;/strong&gt;&lt;/a&gt;). &lt;/li&gt;&lt;/ul&gt;Since then, many articles and papers have reiterated this message. An entire industry segment -- &lt;a href="http://www.netforecast.com/Articles/Pocket%20Guide%20to%20ADS.pdf"&gt;&lt;strong&gt;Application Delivery Systems&lt;/strong&gt;&lt;/a&gt; -- has emerged to help organizations offset delays in delivering their Web pages and satisfy customers' expectations of responsiveness. All the same, as is clear from the comments posted to the Yahoo! User Interface Blog, some Web designers and developers still need to learn this lesson.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tags:&lt;/b&gt; &lt;a href="http://technorati.com/tag/Yahoo" rel="tag"&gt;Yahoo&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Pareto+principle" rel="tag"&gt;Pareto principle&lt;/a&gt;, &lt;a href="http://technorati.com/tag/80+20+rule" rel="tag"&gt;80/20 Rule&lt;/a&gt;, &lt;a href="http://technorati.com/tag/performance" rel="tag"&gt;performance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+performance+management" rel="tag"&gt;Web performance management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/IBM+Page+Detailer" rel="tag"&gt;IBM Page Detailer&lt;/a&gt;,&lt;a href="http://technorati.com/tag/Keynote" rel="tag"&gt;Keynote&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Page+Size" rel="tag"&gt;page size&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Round+Trip+Time" rel="tag"&gt;round trip time&lt;/a&gt;, &lt;a href="http://technorati.com/tag/RTT" rel="tag"&gt;RTT&lt;/a&gt;, &lt;a href="http://technorati.com/tag/TCP" rel="tag"&gt;TCP&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Slow+Start" rel="tag"&gt;slow start&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-116591742300014939?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/116591742300014939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=116591742300014939' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/116591742300014939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/116591742300014939'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/12/yahoo-on-web-page-performance.html' title='Yahoo! on Web Page Performance'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-116192673200272761</id><published>2006-10-27T05:24:00.000Z</published><updated>2006-10-27T05:50:26.410Z</updated><title type='text'>ITIL Crash Course</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/InfoWorld%20cover%202006_43.jpg"&gt;&lt;img style="float:right; margin:0px 0px 5px 5px; cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/320/InfoWorld%20cover%202006_43.jpg" border="0" alt="InfoWorld magazine cover" /&gt;&lt;/a&gt; Anyone involved with IT these days knows that ITIL is a hot topic, and one that seems to get hotter every month. &lt;br /&gt;&lt;br /&gt;ITIL, the &lt;em&gt;Information Technology Infrastructure Library&lt;/em&gt;, has evolved from work sponsored by the UK Government in the late 1980's. According to the &lt;a href="http://www.itil.co.uk/"&gt;&lt;strong&gt;official ITIL site&lt;/strong&gt;&lt;/a&gt;, it is "the most widely accepted approach to IT service management in the world". For a lot more detail, see the &lt;a href="http://en.wikipedia.org/wiki/ITIL"&gt;&lt;strong&gt;wikipedia entry for ITIL&lt;/strong&gt;&lt;/a&gt;, which describes it as "a framework of best practice approaches intended to facilitate the delivery of high quality information technology (IT) services", and goes on to explain that: &lt;blockquote&gt;ITIL outlines an extensive set of management procedures that are intended to support businesses in achieving both quality and value for money in IT operations. These procedures are supplier independent and have been developed to provide guidance across the breadth of IT infrastructure, development, and operations.&lt;/blockquote&gt; If you subscribe to any technical magazine, newsletter or blog written for an IT audience, then you have probably seen more than one story on the benefits of adopting ITIL-based approaches to IT management. The latest publication to jump on the ITIL bandwagon is this week's &lt;a href="http://www.infoworld.com/print_issue/archive/latest_print_issue.html"&gt;&lt;strong&gt;InfoWorld&lt;/strong&gt;&lt;/a&gt; (October 23, 2006, issue 43) -- also available &lt;a href="http://www.infoworld.com/article/06/10/20/43FEitil_1.html"&gt;&lt;strong&gt;online&lt;/strong&gt;&lt;/a&gt; -- which contains an excellent 5-page article introducing ITIL. &lt;br /&gt;&lt;br /&gt;The magazine cover touts the importance of ITIL today: &lt;em&gt;To keep pace with business strategy, IT need a blueprint for delivering services. That's where ITIL, the modern-day bible of governance, comes in.&lt;/em&gt; The article itself is arranged like an interview in which the authors, Randy Steinberg and Michael Goodwin, answer ten questions. I won't list each question, because often you have to read the answers for the next question to make sense. But here's a summary.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ten questions&lt;/b&gt;&lt;br /&gt;Question 1 presents three examples to show how ...&lt;blockquote&gt;ITIL raises customer satisfaction, reduces waste in the IT organization, and lowers operating costs.&lt;/blockquote&gt; Questions 2 and 3 introduce the processes that together make up the ITIL discipline of &lt;em&gt;Service Support&lt;/em&gt;, and the related idea of a &lt;a href="http://en.wikipedia.org/wiki/Configuration_management_database"&gt;&lt;a href="http://en.wikipedia.org/wiki/Configuration_management_database"&gt;&lt;strong&gt;Configuration Management Database (CMDB)&lt;/strong&gt;&lt;/a&gt;&lt;/a&gt; that provides the foundation for storing and retrieving all information about the IT infrastructure, and making timely management decisions. &lt;br /&gt;&lt;br /&gt;Question 4 moves to the equally important discipline &lt;em&gt;Service Delivery&lt;/em&gt;, and  includes an &lt;a href="http://www.infoworld.com/infoworld/img/43FEitil_in2.jpg"&gt;&lt;strong&gt;informative diagram&lt;/strong&gt;&lt;/a&gt; showing the central role of &lt;em&gt;Service Level Management&lt;/em&gt; as the function that regulates the interface between Business and IT. [Incidentally, this highlights a perennial issue we face in high tech, where the ever-shifting meanings of common terms makes it hard for people to communicate clearly. In this instance, ITIL's definition of &lt;em&gt;Service Level Management&lt;/em&gt; covers a narrower range of activities than &lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;&lt;strong&gt;my previous use&lt;/strong&gt;&lt;/a&gt; of the same term here.] &lt;br /&gt;&lt;br /&gt;Question 5 introduces the other ITIL books: &lt;em&gt;Introduction to ITIL&lt;/em&gt;, &lt;em&gt;Planning to Implement Service Management&lt;/em&gt;, &lt;em&gt;ICT Infrastructure Management&lt;/em&gt;, &lt;em&gt;Applications Management&lt;/em&gt;, &lt;em&gt;The Business Perspective&lt;/em&gt;, &lt;em&gt;Security Management&lt;/em&gt;, and &lt;em&gt;Software Asset Management&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Question 6 asks, &lt;em&gt;ITIL has been around for more than 15 years. Why is it now taking hold in the United States?&lt;/em&gt;, and answers: &lt;blockquote&gt; The United States has always lagged behind Europe in the discipline of IT infrastructure management. Go to a bookstore, and you'll find precious few books on the subject. Go to the universities, and you'll visit a lot before finding one that teaches it. One reason that this is changing is the increasing impact of European- and Asian-owned companies operating in the United States, all saying, Hey, get on board! You need to be ITIL-compliant. That's how we run our shops over here.&lt;/blockquote&gt; It also refers to something I have &lt;a href="http://performancematters.blogspot.com/2005/10/delight-satisfy-or-frustrate.html"&gt;&lt;strong&gt;written about&lt;/strong&gt;&lt;/a&gt; here. Whereas IT customers of the past were "&lt;em&gt;internal staffers, managers, and auditors&lt;/em&gt;" ...&lt;blockquote&gt; these days increasing numbers of IT customers ... are &lt;em&gt;external&lt;/em&gt; -- actual customers of the business itself, interacting via public Web sites. If systems fail, potential buyers are likely to take their business elsewhere; potential damage to corporate reputation is high.&lt;/blockquote&gt; Question 7 deals with the needs of large and small IT shops.&lt;br /&gt;&lt;br /&gt;Questions 8 and 9 address getting started and getting outside help with your ITIL implementation.&lt;br /&gt;&lt;br /&gt;Question 10 talks about ITIL's relationship to &lt;a href="http://en.wikipedia.org/wiki/ISO_20000"&gt;&lt;strong&gt;ISO 20000&lt;/strong&gt;&lt;/a&gt;. I will discuss the relationship between ITIL, C&lt;small&gt;OBI&lt;/small&gt;T, and some ISO standards in a future post.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Summing up&lt;/b&gt;&lt;br /&gt;The article concludes that ... &lt;blockquote&gt;Companies that have initiated ITIL efforts are already seeing higher customer-satisfaction levels and reduced costs and labor. Although not a panacea for all IT challenges, ITIL is a fundamental conceptual change for how IT will be doing business in the 21st century. Its time has come. &lt;/blockquote&gt; From all the evidence I see, this is an accurate summary. If ITIL's time has not yet come for your organization, maybe you should expect it to arrive soon. In future posts, I'll be writing a lot more about how ITIL applies to Web Performance Management. But if you just finding out about ITIL, I recommend this InfoWorld article as a good starting point.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tags:&lt;/b&gt; &lt;a href="http://technorati.com/tag/ITIL" rel="tag"&gt;ITIL&lt;/a&gt;, &lt;a href="http://technorati.com/tag/InfoWorld" rel="tag"&gt;InfoWorld&lt;/a&gt;, &lt;a href="http://technorati.com/tag/ISO+20000" rel="tag"&gt;ISO 20000&lt;/a&gt;, &lt;a href="http://technorati.com/tag/performance" rel="tag"&gt;performance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+performance+management" rel="tag"&gt;Web performance management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/service+level+management" rel="tag"&gt;service level management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/SLM" rel="tag"&gt;SLM&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-116192673200272761?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/116192673200272761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=116192673200272761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/116192673200272761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/116192673200272761'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/10/itil-crash-course.html' title='ITIL Crash Course'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-115663322663027997</id><published>2006-08-28T04:01:00.000Z</published><updated>2006-08-28T04:00:44.883Z</updated><title type='text'>Web Performance Engineering [4]</title><content type='html'>&lt;em&gt;Continuing my &lt;a href="http://performancematters.blogspot.com/2006/08/web-performance-engineering-1.html"&gt;&lt;b&gt;series of posts&lt;/b&gt;&lt;/a&gt; on Web performance guidelines, today I'm reviewing one chapter of a new book, &lt;a href="http://www.sitepoint.com/books/checklists1/"&gt;&lt;b&gt;Deliver First Class Web Sites: 101 Essential Checklists&lt;/b&gt;&lt;/a&gt;, by Shirley Kaiser of &lt;a href="http://skdesigns.com/"&gt;&lt;b&gt;SKDesigns&lt;/b&gt;&lt;/a&gt;, published by Sitepoint in July 2006.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Sitepoint is known among Web developers for its &lt;a href="http://www.sitepoint.com/books/"&gt;&lt;b&gt;practical publications&lt;/b&gt;&lt;/a&gt;, and Kaiser deserves credit for including a full chapter on site performance alongside &lt;a href="http://www.sitepoint.com/books/checklists1/toc.php"&gt;&lt;b&gt;all the other useful advice&lt;/b&gt;&lt;/a&gt; in this book. &lt;br /&gt;&lt;br /&gt;As its title states, this book does not cover topics in great depth. Each checklist item is stated, then discussed briefly. But Kaiser does include enough detail to justify each recommendation, and often includes examples of how to do it. Chapter 11 (&lt;em&gt;Web Site Optimization&lt;/em&gt;) is 19 pages long, presenting 41 recommendations arranged into six checklists: &lt;blockquote&gt;Creating Clean, Lean Markup&lt;br /&gt;Minimizing URLs&lt;br /&gt;Optimizing CSS&lt;br /&gt;Optimizing JavaScript&lt;br /&gt;Supporting Speedy Server Responses&lt;br /&gt;Optimizing Images, Multimedia, and Alternative Formats&lt;/blockquote&gt; However, once I started reviewing Kaiser's checklists, I soon noticed a remarkable similarity between her choice of topics and those covered in Andrew King's book, &lt;em&gt;Speed Up Your Site&lt;/em&gt; -- the subtitle of which also happens to be &lt;em&gt;Web Site Optimization&lt;/em&gt;. &lt;br /&gt;&lt;br /&gt;A bit more scrutiny, summarized in &lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Checklist%20vs%20Speed%20Up%20Site.png"&gt;&lt;b&gt;this spreadsheet&lt;/b&gt;&lt;/a&gt;, revealed similarities in the naming, wording, and organization of the checklist items too. Although Kaiser cites &lt;em&gt;Speed Up your Site&lt;/em&gt; in her first paragraph, she does not actually recommend it explicitly, or mention any collaboration with Andrew King. But she seems to have relied heavily on that one source as the main inspiration for her &lt;em&gt;Web Site Optimization&lt;/em&gt; chapter.&lt;br /&gt;&lt;br /&gt;To give Kaiser her due, rather than simply parroting all of King's recommendations, she has ignored the more extreme ones. All the same, her material still shares most of King's limitations and omissions, many of which I listed earlier when I &lt;a href="http://performancematters.blogspot.com/2006/08/web-performance-engineering-3.html"&gt;&lt;b&gt;reviewed his book&lt;/b&gt;&lt;/a&gt;, and which I plan to cover in future posts in this series. &lt;br /&gt;&lt;br /&gt;In conclusion, if you'd like a handy summary of the material in King (except for his excellent discussion of the Psychology of Performance), Kaiser's book has it, plus about 300 more pages of useful checklists on other topics. I recommend it, because I don't think you can go far wrong with any book from Sitepoint. If you want to read more about the same topics, you can find &lt;em&gt;Speed Up your Site&lt;/em&gt; on sale on Amazon these days under half price. But don't assume that either book will give you a well-rounded picture of &lt;em&gt;Web Site Optimization&lt;/em&gt; issues and techniques. &lt;br /&gt;&lt;br /&gt;For more ideas about that, continue reading &lt;em&gt;Performance Matters&lt;/em&gt;, and I'll do my best to fill in the holes.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tags:&lt;/b&gt; &lt;a href="http://technorati.com/tag/Shirley+Kaiser" rel="tag"&gt;Shirley Kaiser&lt;/a&gt;, &lt;a href="http://technorati.com/tag/SKDesigns" rel="tag"&gt;SKDesigns&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Sitepoint" rel="tag"&gt;Sitepoint&lt;/a&gt;, &lt;a href="http://technorati.com/tag/performance" rel="tag"&gt;performance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+site+optimization" rel="tag"&gt;Web site optimization&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Checklist" rel="tag"&gt;Checklist&lt;/a&gt;, &lt;a href="http://technorati.com/tag/page+design" rel="tag"&gt;page design&lt;/a&gt;, &lt;a href="http://technorati.com/tag/site+design" rel="tag"&gt;site design&lt;/a&gt;, &lt;a href="http://technorati.com/tag/service+level" rel="tag"&gt;service level&lt;/a&gt;, &lt;a href="http://technorati.com/tag/SLM" rel="tag"&gt;SLM&lt;/a&gt;, &lt;a href="http://technorati.com/tag/optimization" rel="tag"&gt;optimization&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+optimization" rel="tag"&gt;Web optimization&lt;/a&gt;, &lt;a href="http://technorati.com/tag/tuning" rel="tag"&gt;tuning&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+tuning" rel="tag"&gt;Web tuning&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-115663322663027997?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/115663322663027997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=115663322663027997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/115663322663027997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/115663322663027997'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/08/web-performance-engineering-4.html' title='Web Performance Engineering [4]'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-115648301971645620</id><published>2006-08-25T05:31:00.000Z</published><updated>2006-08-30T02:52:34.710Z</updated><title type='text'>Are Online Retailers Ready for Business?</title><content type='html'>&lt;em&gt;Every year, more and more shoppers turn to the Web for their holiday shopping, with total sales in 2006 projected to be in the multi-billion dollar range. But will online retailers be up to the task? &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;My team at Keynote recently studied &lt;a href="http://www.keynote.com/solutions/ci_retail.html"&gt;&lt;b&gt;25 top online retailers&lt;/b&gt;&lt;/a&gt; in three categories: Books and Music, Electronics and Apparel. The study involves measuring a typical customer's navigation path through each site -- from Home Page, to Search, to Product Details, and finally Checkout.&lt;br /&gt;&lt;br /&gt;Using computers ("&lt;em&gt;agents&lt;/em&gt;") that emulate the behavior of a customer using an IE browser, we measured the exact same sequence of steps on each site from 10 locations throughout the US, over various connection speeds, every hour for a month (mid-May through mid-June, 2006). This produces a large data sample (over 6,000 data points per site), which we then subject to a lot of statistical analysis. By the time we publish the report, we believe we have a reliable picture of a site's health and readiness.&lt;br /&gt;&lt;br /&gt;This is the second year we've conducted this particular study, and the 2006 results were surprising. While the top-ranked sites continue to provide excellent service -- almost perfect availability, excellent download speeds, and very little inconsistency -- the lowest-ranked sites had some serious failings. Without doubt, the performance problems we saw were bad enough to dissatisfy customers and impact the bottom line. They fall into three general areas:&lt;ol&gt; &lt;li&gt;&lt;b&gt;Outages:&lt;/b&gt;&lt;br /&gt;We consider a transaction (the sequence of steps) to be &lt;em&gt;unavailable&lt;/em&gt; if any part of the purchase path fails so that the customer is unable to complete their transaction. And when 30% or more of our measurements during an hour report a site as unavailable, we count it as an &lt;em&gt;outage&lt;/em&gt;. &lt;br /&gt;&lt;br /&gt;Only 4 of the 25 measured sites registered no outages during the month, while some of the least reliable sites had more than 15 hours of downtime. These hours are during the peak period each day (8 a.m. to midnight EDT). Apparel sites were especially outage-prone, averaging over 4 outages each.&lt;br /&gt;&lt;br /&gt;We all know how frustrating it can be to try to buy something online only to have the process fail midway through, or to not even be able to get to the site's Home Page. I'm not sure which is the more annoying. And if these major retail sites can't stay up under relatively light summertime loads, how will they respond when their traffic increases dramatically during the holiday season? In the increasingly competitive retail marketplace, being down for even a single hour at that time of year can have a significant financial and brand impact.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Load Handling:&lt;br /&gt;&lt;/b&gt;One area of our analysis involves a site's ability to keep up with its current load, without any performance degradation. On a site that is built with sufficient capacity, performance does not change noticeably as traffic fluctuates during the day. At this time of year, most retail sites should be idling, because traffic is light. Indeed, we saw that the best sites, Barnes and Noble and Gap, had virtually no slowdowns each day, indicating that they can handle their present load comfortably.&lt;br /&gt;&lt;br /&gt;Of course, it takes a controlled load-testing project to discover what happens when traffic volumes are doubled, tripled, quadrupled, and so on. But judging from our measurements, these sites do appear well prepared to handle increases in their load. In contrast, several sites already display significant load-handling issues now, slowing down as much as 100% each day. For example, a page that normally appears in 3 seconds would take 6 seconds under load. Not only does this kind of sluggish behavior annoy current customers, it suggests that these sites are highly likely to crumble under the increased load, once holiday shoppers begin to fill their online storefront -- unless something is done before then to increase capacity.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Dial-Up Performance:&lt;/b&gt;&lt;br /&gt;While many of us can't remember the last time we used dial-up, a large percentage of users still use slower connections. These might not be dial-up, but a poor wireless connection, a slow hotel connection, or a satellite connection may not be much faster. So site designers shouldn't forget about their bandwidth-challenged customers.&lt;br /&gt;&lt;br /&gt;Yet that's exactly what seems to be happening. Many retail sites seem set on alienating the dial-up user. The sites we tested averaged 30-40 seconds per page, which &lt;em&gt;really&lt;/em&gt; adds up fast in a 10-page shopping transaction. And in some cases we even clocked Home Pages taking &lt;em&gt;over 100 seconds to download&lt;/em&gt;. A few sites got it right, Dell being a good example. They have the fastest Home Page in the study for dial-up users because they serve a slightly trimmer page for this audience.&lt;/ol&gt; In short, the best sites are ready, and their performance sets the standard for the retail industry. But even among the leading retailers we studied, many could do a lot to improve the quality of the online shopping experiences they offer.&lt;br /&gt;&lt;br /&gt;More importantly, if one of these sites is struggling now, what will happen in December, when I desperately need to buy my last-minute gifts? I'm not optimistic they will be ready to take my business. And I absolutely hate fighting the crowds at the local shopping mall, so -- along with thousands of others like me -- I'll be buying from their competitor's site.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update #1:&lt;/b&gt; To hear a longer (12.5 min) discussion of these results and related issues in the retail industry, listen to a &lt;a href="http://www.storefrontbacktalk.com/securityfraud/storefrontbacktalk-week-in-review-audiocast-recorded-thurs-aug-24-2006"&gt;&lt;b&gt;StorefrontBacktalk Week In Review Audiocast&lt;/b&gt;&lt;/a&gt; discussion I took part in. Click on the link for the section on &lt;em&gt;whether the major E-Commerce sites are ready for the holiday rush or the holiday crash&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update #2:&lt;/b&gt; I was also interviewed about the study today (8/25) on &lt;a href="http://moneycentral.msn.com/Content/CNBCTV/TV_Info/closingbell.asp"&gt;&lt;b&gt;CNBC's Closing Bell&lt;/b&gt;&lt;/a&gt; program. As you might expect, that interview was a lot shorter than the StorefrontBacktalk Audiocast. You can &lt;a href="http://www.criticalmention.com/vg/keynote/"&gt;&lt;b&gt;view a replay&lt;/b&gt;&lt;/a&gt; online; the username is &lt;em&gt;keynote&lt;/em&gt; and password is &lt;em&gt;keynote0895&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://technorati.com/tag/eCommerce" rel="tag"&gt;ecommerce&lt;/a&gt;, &lt;a href="http://technorati.com/tag/online+retail" rel="tag"&gt;online retail&lt;/a&gt;, &lt;a href="http://technorati.com/tag/holiday+shopping" rel="tag"&gt;holiday shopping&lt;/a&gt;, &lt;a href="http://technorati.com/tag/performance" rel="tag"&gt;performance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+performance" rel="tag"&gt;Web performance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/site+outages" rel="tag"&gt;site outages&lt;/a&gt;, &lt;a href="http://technorati.com/tag/load+handling" rel="tag"&gt;load handling&lt;/a&gt;, &lt;a href="http://technorati.com/tag/load+testing" rel="tag"&gt;load testing&lt;/a&gt;, &lt;a href="http://technorati.com/tag/service+level" rel="tag"&gt;service level&lt;/a&gt;, &lt;a href="http://technorati.com/tag/dial-up" rel="tag"&gt;dial-up&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-115648301971645620?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/115648301971645620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=115648301971645620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/115648301971645620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/115648301971645620'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/08/are-online-retailers-ready-for.html' title='Are Online Retailers Ready for Business?'/><author><name>Ben Rushlo</name><uri>http://www.blogger.com/profile/01064782799288796169</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-115623348953426761</id><published>2006-08-22T07:01:00.000Z</published><updated>2006-08-22T23:25:52.676Z</updated><title type='text'>Web Performance Engineering [3]</title><content type='html'>&lt;em&gt;Continuing &lt;a href="http://performancematters.blogspot.com/2006/08/web-performance-engineering-1.html"&gt;&lt;b&gt;my series&lt;/b&gt;&lt;/a&gt; on Web performance guidelines, today I am reviewing another book -- &lt;a href="http://www.websiteoptimization.com/speed/"&gt;&lt;b&gt;Speed Up Your Site&lt;/b&gt;&lt;/a&gt;, by Andrew B. King, published by New Riders in 2003.&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;A while back, when I was reviewing &lt;a href="http://performancematters.blogspot.com/2005/11/web-usability-books-4.html "&gt;&lt;b&gt;Web Usability Books&lt;/b&gt;&lt;/a&gt;, I promised to cover &lt;em&gt;Speed Up Your Site&lt;/em&gt;, but never got around to doing so -- for reasons I will explain. A full &lt;a href="http://www.websiteoptimization.com/speed/toc/"&gt;&lt;b&gt;table of contents&lt;/b&gt;&lt;/a&gt; listing all 19 chapters is available online; in summary, the book has six parts: &lt;blockquote&gt;Part I - The Psychology of Performance (38 pages)&lt;br /&gt;Part II - Optimizing Markup: HTML and XHTML (99 pages) &lt;br /&gt;Part III - DHTML Optimization: CSS and JavaScript (111 pages)&lt;br /&gt;Part IV - Graphics and Multimedia Optimization (85 pages)&lt;br /&gt;Part V - Search Engine Optimization (39 pages)&lt;br /&gt;Part VI - Advanced Optimization Techniques (79 pages) &lt;/blockquote&gt; Part of my difficulty in reviewing this book was that I have mixed feelings about it. Naturally, I am always pleased to see an entire book devoted to performance issues. Also, Part I is particularly good. Containing 77 references, it is a very well-researched survey of &lt;a href="http://performancematters.blogspot.com/2005/10/miller-response-time-test.html"&gt;&lt;b&gt;an important subject&lt;/b&gt;&lt;/a&gt; rarely covered in books about Usability. On the other hand, I am not nearly as impressed with the rest of its advice and guidelines, for two reasons: their correctness, and their completeness.&lt;br /&gt; &lt;br /&gt;First correctness. Regarding the actual content, my issue is not that &lt;em&gt;Speed Up Your Site&lt;/em&gt; contains factual errors. As far as I can tell, its content is accurate. But some of its recommendations -- although they may indeed improve performance -- are so unnatural that they are not really the correct way to tackle the problem. This concern is summarized by &lt;a href="http://www.amazon.com/gp/pdp/profile/A22J15XA2EQDRI/ref=cm_cr_auth/102-8710606-1594548?ie=UTF8"&gt;&lt;b&gt;Alexander Bunkenburg&lt;/b&gt;&lt;/a&gt; in &lt;a href="http://www.amazon.com/gp/cdp/member-reviews/A22J15XA2EQDRI/ref=cm_pdp_profile_reviews/102-8710606-1594548?ie=UTF8"&gt;&lt;b&gt;this review&lt;/b&gt;&lt;/a&gt; on Amazon.com: &lt;blockquote&gt;This book concentrates almost exclusively on sending fewer bytes from the server to the browser. It gives a large collection of tricks how to write shorter html, xhtml, css, and JavaScript. Some of these tricks are useful. Others however go against standards, and some seriously go against maintainability. I'd be reluctant to give this book to my team. One may be tempted into shaving off bytes, spending a big effort and yet producing unmaintainable code.&lt;/blockquote&gt; The problems that can result from deliberately violating standards are highlighted by &lt;a href="http://www.amazon.com/gp/pdp/profile/A2L7OS23U5ZBMS/ref=cm_cr_auth/102-8710606-1594548?ie=UTF8"&gt;&lt;b&gt;David Rose&lt;/b&gt;&lt;/a&gt; in another &lt;a href="http://www.amazon.com/gp/cdp/member-reviews/A2L7OS23U5ZBMS/ref=cm_pdp_profile_reviews/102-8710606-1594548?ie=UTF8"&gt;&lt;b&gt; Amazon review&lt;/b&gt;&lt;/a&gt;: &lt;blockquote&gt;In today's world, where "standards based" coding is becoming more prevalent and adherence to the W3C standards for HTML coding is being recommended, this book just grated on me. While there is a great deal of great information, there are also a large number of "gotchas" to watch out for as well.&lt;br /&gt;&lt;br /&gt;The book proposes to use HTML tags without their corresponding closing tags, not to use required elements whenever possible, avoid using quotes in HTML tags, and many other ways of creating "non-valid" code. This will "optimize" your code a bit more by reducing the characters in it, but it will also create problems for you in the future. &lt;br /&gt;&lt;br /&gt;In summary, while the book does give a lot of good information, it often steers you away from standard code. If you are unsure what is considered "standard" and required for creating valid XHTML/CSS, you are best served skipping this book as it will teach you to create invalid code.&lt;/blockquote&gt; Bunkenburg's review also touches on my second area of concern -- completeness. Any book about speeding up Web site performance should (in my view) at least mention all the important topics, to let the reader know what options exist. Some important topics that receive little or no coverage in &lt;em&gt;Speed Up Your Site&lt;/em&gt; are: &lt;ul&gt; &lt;li&gt;&lt;b&gt;Page Types&lt;/b&gt;: All pages are not created equal, and users' tolerance for delays changes depending on where they are in their interaction with a site. So a single page design approach cannot be applied to all pages.&lt;br /&gt;&lt;li&gt;&lt;b&gt;Maximize content reuse&lt;/b&gt;: A common mistake as sites grow is to use many different names (URLs) for the same thing, reducing the efficiency of browser caching. &lt;br /&gt;&lt;li&gt;&lt;b&gt;Ratio of HTML base to content&lt;/b&gt;: There is a significant difference between the way browsers handle the base (or index) portion of the page, and referenced content elements, which can affect page download time.&lt;br /&gt;&lt;li&gt;&lt;b&gt;Image resizing&lt;/b&gt;: For efficient page rendering, it helps to specify HTML HEIGHT and WIDTH tags for all embedded images. And for download speed, avoid resizing images in the browser. &lt;br /&gt;&lt;li&gt;&lt;b&gt;Performance of SSL&lt;/b&gt;: All online business sites use encryption, and pages that use SSL encryption incur significant overheads. This is an issue that demands a separate section in any book about site performance.&lt;br /&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://en.wikipedia.org/wiki/Content_Delivery_Network"&gt;Content Delivery Networks&lt;/a&gt; (CDNs)&lt;/b&gt;: &lt;a href="http://www.akamai.com/en/html/about/company_history.html"&gt;&lt;b&gt;Akamai&lt;/b&gt;&lt;/a&gt; went public in 1999, and was widely used by 2002. Mirror Image, Cable and Wireless (formerly Digital Island), and Speedera also offered CDN services in 2002. How can any book about speeding up your site not even mention this technology? &lt;/ul&gt; In fairness to King, any discussion of the book's coverage should point out the following disclaimer, which appears in its Introduction: &lt;blockquote&gt;Although the primary emphasis is on optimizing client-side technologies, this book also covers server-side techniques and compression to squeeze the maximum performance out of your site. These are all techniques that most designers and authors can control. Instead of focusing on esoteric server-side tuning limited to system administrators, this book focuses on optimizing the content that you deliver. For a server-oriented look at performance, see &lt;em&gt;Web Performance Tuning&lt;/em&gt;, by Patrick Killelea.&lt;/blockquote&gt; But most of the omissions I listed are not related to server-side tuning, and of the two that are (SSL and CDNs), only SSL is discussed by Patrick Killelea, and his only recommendation is to use an SSL accelerator card. And in 2002, CDN technology could hardly be considered "esoteric", especially in a book which, to quote its author, is "not for beginners". &lt;br /&gt;&lt;br /&gt;There is a lot more to be said on most the above topics, and in future posts I will expand upon them.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tags:&lt;/b&gt; &lt;a href="http://technorati.com/tag/Andrew+King" rel="tag"&gt;Andrew King&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Speed+up+your+site" rel="tag"&gt;Speed up your site&lt;/a&gt;, &lt;a href="http://technorati.com/tag/performance" rel="tag"&gt;performance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+site+optimization" rel="tag"&gt;Web site optimization&lt;/a&gt;, &lt;a href="http://technorati.com/tag/page+design" rel="tag"&gt;page design&lt;/a&gt;, &lt;a href="http://technorati.com/tag/site+design" rel="tag"&gt;site design&lt;/a&gt;, &lt;a href="http://technorati.com/tag/service+level" rel="tag"&gt;service level&lt;/a&gt;, &lt;a href="http://technorati.com/tag/SLM" rel="tag"&gt;SLM&lt;/a&gt;, &lt;a href="http://technorati.com/tag/optimization" rel="tag"&gt;optimization&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+optimization" rel="tag"&gt;Web optimization&lt;/a&gt;, &lt;a href="http://technorati.com/tag/tuning" rel="tag"&gt;tuning&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+tuning" rel="tag"&gt;Web tuning&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-115623348953426761?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/115623348953426761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=115623348953426761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/115623348953426761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/115623348953426761'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/08/web-performance-engineering-3.html' title='Web Performance Engineering [3]'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-115576409557439867</id><published>2006-08-18T07:01:00.000Z</published><updated>2006-08-18T15:47:21.536Z</updated><title type='text'>Web Performance Engineering [2]</title><content type='html'>&lt;em&gt;Today I'm going to look at another list of &lt;a href="http://www.oreillynet.com/pub/a/javascript/2002/06/27/web_tuning.html"&gt;&lt;b&gt;Top Ten Web Performance Tuning Tips&lt;/b&gt;&lt;/a&gt;, following up on &lt;a href="http://performancematters.blogspot.com/2006/08/web-performance-engineering-1.html"&gt;&lt;b&gt;my promise&lt;/b&gt;&lt;/a&gt; to review Web site and application performance advice.&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/WebPTCover.gif"&gt;&lt;img style="float:right; margin:0 0 5px 10px;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/200/WebPTCover.gif" border="0" alt="" /&gt;&lt;/a&gt; Today's list of tuning tips was created by &lt;a href="http://www.oreillynet.com/pub/au/563"&gt;&lt;b&gt;Patrick Killelea&lt;/b&gt;&lt;/a&gt;, the author  of &lt;a href="http://www.oreilly.com/catalog/webpt2/"&gt;&lt;b&gt;Web Performance Tuning&lt;/b&gt;&lt;/a&gt;, first published by O'Reilly in 1998, then revised in 2002. When the second edition came out, Patrick also updated his 1998 top ten list, presumably to reflect changes in the rapidly maturing Internet and Web environment. But O'Reilly still publishes &lt;a href="http://www.oreillynet.com/pub/a/oreilly/web/news/webperf_1098.html"&gt;&lt;b&gt;the 1998 list&lt;/b&gt;&lt;/a&gt; alongside the 2002 list without any further explanation, even though just four recommendations appear on both lists! &lt;br /&gt;&lt;br /&gt;I see this as evidence that publishers are a lot more interested in selling a book than they are in the usefulness of its content. So let's blame O'Reilly and give Patrick the benefit of the doubt here, and focus on his latest list only. Abbreviating his recommendations, they are: &lt;blockquote&gt; 1. Check for compliance with standards&lt;br /&gt;2. Minimize use of JavaScript and style sheets&lt;br /&gt;3. Turn off the Web server's reverse DNS lookups&lt;br /&gt;4. Try out a free analysis tool (to find bottlenecks)&lt;br /&gt;5. Use simple servlets or CGI&lt;br /&gt;6. Get more memory&lt;br /&gt;7. Index your database tables well&lt;br /&gt;8. Make fewer database queries&lt;br /&gt;9. Look for packet loss and retransmission&lt;br /&gt;10. Monitor your Web site's performance &lt;/blockquote&gt;  When someone publishes a top ten list, I expect it to include the ten most important and useful recommendations -- especially when its author has written the most comprehensive book available on the subject. In this case, even allowing for the maturing of the Web since 2002, I have no idea how Patrick could have come up with this list. I have three problems with it -- what's in it, what's not in it, and its order. Today I will tackle mainly the first area; here are some brief thoughts about each of his recommendations: &lt;ol&gt; &lt;blockquote&gt;&lt;li&gt;&lt;b&gt;Check for standards compliance by using Weblint or other HTML checking tools.&lt;/b&gt;&lt;br&gt;Content that conforms to the HTML 4.0 standard will load faster and work in every browser because the browser then knows what to expect. Note that Microsoft-based tools create content that does not even use the standard ASCII character set, but instead uses many proprietary Microsoft characters that will display in Netscape as question marks and can slow down rendering.&lt;/blockquote&gt; Complying with standards is always a good thing of course, but it's rarely a performance issue. And how can a browser compatibility problem be rated the top &lt;em&gt;performance&lt;/em&gt; guideline? In the 458-page book it merits just 37 words, headed &lt;em&gt;Watch out for Composition Tools with a Bias&lt;/em&gt;.  Beware of biased guidelines, I say.&lt;br /&gt;&lt;blockquote&gt;&lt;li&gt;&lt;b&gt;Minimize the use of JavaScript and style sheets.&lt;/b&gt;&lt;br&gt;JavaScript is a major source of incompatibility, browser hangs, and pop-up advertising. Style sheets require separate downloads before the page can be displayed. There are some nice features to both JavaScript and style sheets, but at a big cost. Life is better without them.&lt;/blockquote&gt; Wrongheaded, even in 2002. Today this advice is ridiculous -- JavaScript and CSS are core features of most Web sites. How can O'Reilly even keep this on their site?&lt;br /&gt;&lt;blockquote&gt;&lt;li&gt;&lt;b&gt;Turn off reverse DNS lookups in the Web server.&lt;/b&gt;&lt;br&gt;If left on, reverse DNS will log a client's machine name rather than IP address, but at a large performance cost. It is better left off. You can always run log analysis tools which look up the names later.&lt;/blockquote&gt; Outdated, even in 2002. This was good advice &lt;a href="http://www.webmonkey.com/webmonkey/97/49/index3a_page3.html?tw=backend"&gt;&lt;b&gt;in 1997&lt;/b&gt;&lt;/a&gt;: &lt;em&gt;Prior to Apache 1.3, HostnameLookups defaulted to On. This adds latency to every request because it requires a DNS lookup to finish before the request is completed. In Apache 1.3, this setting defaults to Off.&lt;/em&gt; This should still appear on a much longer checklist, because security concerns might prompt someone to turn on HostnameLookups. But it doesn't belong at #3 in the top ten. &lt;blockquote&gt;&lt;li&gt;&lt;b&gt;Try out a free analysis tool.&lt;/b&gt;&lt;br&gt;I've provided a free analysis tool at &lt;a href="http://patrick.net/"&gt;&lt;b&gt;my Web site&lt;/b&gt;&lt;/a&gt; that can tell you whether or not your bottleneck is in DNS, or because of connection time or content size, or is on the server side. Work on improving the slowest part first.&lt;/blockquote&gt; The core idea here -- improving the slowest part first -- is a great recommendation; it should have been at the top of the list. It's in the book too, on page 163. On the other hand, the free tool has now been replaced (check the link) by a graph of local house prices. After some digging, I found that Patrick does still have &lt;a href="http://patrick.net/software/"&gt;&lt;b&gt;a page about his book&lt;/b&gt;&lt;/a&gt;, which also contains tons of links to software tools, so it would take a while to figure which one he meant. But this kind of Web research doesn't have to be a treasure hunt -- how hard would it be rewrite the guideline and get O'Reilly to update their site?  &lt;br /&gt;&lt;blockquote&gt;&lt;li&gt;&lt;b&gt;Use simple servlets or CGI.&lt;/b&gt;&lt;br&gt;Use simple servlets, CGI, or your Web server's API rather than any distributed object schemes like CORBA or EJB. Distributed object schemes are intended to improve a programmer's code-writing productivity, but they do so at an unacceptable cost in performance for end-users.&lt;/blockquote&gt; This is reasonable advice, although the examples need updating -- CGI is legacy technology now, and newer application services like ASP.NET and low level APIs like ISAPI, NSAPI, Apache extensions, etc. are faster. But the central idea is this: When a site handles a lot of business transactions, back-end communication overheads add up fast, and in the worst examples, become the bottleneck that forces you to spread the load across more servers. So anything you can do to minimize the resources consumed per transaction will cut service times and increase server capacity. And probably save money in the process, too -- money that could be spent on the next item.  &lt;br /&gt;&lt;blockquote&gt;&lt;li&gt;&lt;b&gt;Get more memory.&lt;/b&gt;&lt;br&gt;Your Web server, middleware, and database all will probably do better with more memory, if they still use their hard disks frequently. Hard disks are literally about a million times slower than memory, so you should buy more memory until the disks are phased out.&lt;/blockquote&gt; Absolutely! You'll never be able to throw away your disks, but a key goal of tuning should be to find ways to use them less. Prioritize your hardware resources from fastest to slowest -- memory, processor, disks, LAN, Internet -- and try to reduce use of the slower ones by moving work to the faster ones.&lt;br /&gt;&lt;blockquote&gt;&lt;li&gt;&lt;b&gt;Index your database tables well.&lt;/b&gt;&lt;br&gt;Spectacular improvements are possible if you are inadvertently doing full-table scans on every hit of a particular URL. Indexes allow you to go directly to the data you need.&lt;/blockquote&gt; As opposed to indexing them badly, I suppose. This tuning guideline certainly does not apply to the Web exclusively, it's important whenever databases are used. But it's probably worth repeating in this context, in case anyone creating Web applications thinks that databases use magic to find things. By the way, you can also get &lt;em&gt;spectacular improvements&lt;/em&gt; by replacing incompetent programmers and improving their poor designs. But I'd strongly recommend not hiring them in the first place.&lt;br /&gt;&lt;blockquote&gt;&lt;li&gt;&lt;b&gt;Make fewer database queries.&lt;/b&gt;&lt;br&gt;If you can cache content in your middleware or servlets, do it. Making connections to a database and using those database connections is typically a bottleneck for performance.&lt;/blockquote&gt; Right! And if you can send less content to the browser, do that too. In fact, &lt;em&gt;doing less work&lt;/em&gt; is always a sure way to improve performance. That's a general rule everyone should know, so general that I would not even include it in this list. I consider it part of a tuning framework -- a systematic way to approach &lt;em&gt;any&lt;/em&gt; tuning project, not just speeding up Web applications.&lt;br /&gt;&lt;blockquote&gt;&lt;li&gt;&lt;b&gt;Look for packet loss and retransmission.&lt;/b&gt;&lt;br&gt;There are many network snooping and monitoring tools to help you do this. Intermittent slowness is often due to packets being lost or corrupted. This is because a time-out period needs to pass before the packet is retransmitted.&lt;/blockquote&gt; This is useful advice, as far as it goes -- noisy connections can ruin your response times. But the guideline should really suggest what to do about the problem, if you have it, and that's a subject for a future post. And I'm not sure if it will make my top ten list either, I'll have to wait and see what else I come up with.&lt;br /&gt;&lt;blockquote&gt;&lt;li&gt;&lt;b&gt;Set up monitoring and automated graphing of your Web site's performance.&lt;/b&gt;&lt;br&gt;This information is free online in Chapter 4 of the second edition of Web Performance Tuning.&lt;/blockquote&gt; Indeed! Measurements usually beat guesswork and clairvoyance. You've probably heard the popular saying that &lt;em&gt;you can't manage what you don't measure&lt;/em&gt;, and I've already spent more than enough time &lt;a href="http://performancematters.blogspot.com/2006/03/deep-thoughts-on-management.html"&gt;&lt;b&gt;researching it&lt;/b&gt;&lt;/a&gt;. All the same, it's not really a tuning guideline. I'd call it a performance management principle, so I don't think it actually belongs in this list at all. &lt;/ol&gt; So, to sum up my audit of Patrick's list of ten guidelines, I vote to reject two altogether (#1 and #2), downgrade one (#3) to a priority well outside my top ten, accept four (#4, #5, #6, and #7), restate two (#8 and #10) as general principles that don't belong on this list, and reserve judgment on one (#9). &lt;br /&gt;&lt;br /&gt;That opens up 5 or 6 slots for the things that Patrick missed -- but what should they be? I will tackle that subject in a follow-up post.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://technorati.com/tag/Killelea" rel="tag"&gt;Killelea&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Patrick+Killelea" rel="tag"&gt;Patrick Killelea&lt;/a&gt;, &lt;a href="http://technorati.com/tag/O'Reilly" rel="tag"&gt;O'Reilly&lt;/a&gt;, &lt;a href="http://technorati.com/tag/performance" rel="tag"&gt;performance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+performance" rel="tag"&gt;Web performance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/page+design" rel="tag"&gt;page design&lt;/a&gt;, &lt;a href="http://technorati.com/tag/site+design" rel="tag"&gt;site design&lt;/a&gt;, &lt;a href="http://technorati.com/tag/service+level" rel="tag"&gt;service level&lt;/a&gt;, &lt;a href="http://technorati.com/tag/SLM" rel="tag"&gt;SLM&lt;/a&gt;, &lt;a href="http://technorati.com/tag/optimization" rel="tag"&gt;optimization&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+optimization" rel="tag"&gt;Web optimization&lt;/a&gt;, &lt;a href="http://technorati.com/tag/tuning" rel="tag"&gt;tuning&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+tuning" rel="tag"&gt;Web tuning&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-115576409557439867?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/115576409557439867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=115576409557439867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/115576409557439867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/115576409557439867'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/08/web-performance-engineering-2.html' title='Web Performance Engineering [2]'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-115579571202330146</id><published>2006-08-17T05:35:00.000Z</published><updated>2006-08-18T20:21:35.706Z</updated><title type='text'>Baseball and the Price of Gas</title><content type='html'>This is only tangentially related to the usual subjects I cover in this blog, but it certainly relates to the way I approach research and blogging. I am always doing research online, and during summer evenings and weekends that activity is often accompanied by the day's radio broadcast of the &lt;a href="http://oakland.athletics.mlb.com/"&gt;&lt;b&gt;Oakland A's&lt;/b&gt;&lt;/a&gt; baseball game -- the best baseball team here in the San Francisco Bay Area, by any objective standard.&lt;br /&gt;&lt;br /&gt;Tonight was no different, and A's broadcaster Robert Buan caught my attention when he opened the post-game show. He pointed out that in winning tonight, the A's have secured their biggest lead in their division since September 30, 1992. As a fan of the team, this is interesting; to everyone else it's probably instantly forgettable. But more intriguing was what he actually said -- in the very first sentence of the program. He opened his show with this statement: &lt;br /&gt;&lt;br /&gt;&lt;em&gt;According to a reliable authority, wikipedia.com, the last time the A's had a lead of six and a half games in the American League West, gas was selling for $1.38.&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;I couldn't help reflecting on how much the Web is changing the way &lt;em&gt;everyone&lt;/em&gt; approaches information and research!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-115579571202330146?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/115579571202330146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=115579571202330146' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/115579571202330146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/115579571202330146'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/08/baseball-and-price-of-gas.html' title='Baseball and the Price of Gas'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-115560554959082647</id><published>2006-08-15T17:45:00.000Z</published><updated>2006-08-22T09:05:01.856Z</updated><title type='text'>Reporting Web Application Responsiveness</title><content type='html'>In a previous post, I discussed some complications of &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-6.html"&gt;&lt;strong&gt;measuring Rich Internet Applications&lt;/strong&gt;&lt;/a&gt; (RIAs). In particular, I concluded that … &lt;blockquote&gt;… to report useful measurements of the user experience of response times, instead of relying on the definition of physical Web pages to drive the subdivision of application response times, we must break the application into what we might call &lt;em&gt;logical pages&lt;/em&gt;. To do this, a measurement tool must recognize meaningful application &lt;em&gt;milestones&lt;/em&gt; or &lt;em&gt;markers&lt;/em&gt; that signal logical boundaries of interest for reporting, and thus subdivide the application so that we can identify and report response times by logical page.&lt;/blockquote&gt; Today I am going to look &lt;em&gt;inside&lt;/em&gt; the logical page, and consider what happens when the application responds to a user action. I have previously written about the stages of this process &lt;a href="http://performancematters.blogspot.com/2005/10/web-site-response-time-model.html"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;, and in &lt;a href="http://www.keynote.com/downloads/whitepapers/ecommerce_response_time.pdf"&gt;&lt;strong&gt;this paper&lt;/strong&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Two Standard Service Level Metrics&lt;/strong&gt;&lt;br /&gt;Because Web pages are constructed using many separately downloaded components, low level monitoring tools can collect a ton of data about the communications activity triggered by a user interface action. And for diagnostic and tuning purposes, it is always useful to measure each separate component of the download process. But for most service level monitoring, this low level data can usually be summarized in just two important metrics: &lt;em&gt;initial response time&lt;/em&gt; and &lt;em&gt;page download time&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;From the perspective of a typical user, these metrics represent two distinct events in the page download experience. After 'clicking' on a page, the first measures the apparent pause until the site begins to respond, while the second measures the time for that response to download. &lt;br /&gt;&lt;br /&gt;The elapsed time between these two events can be large enough to affect the way pages are designed. Because pages containing many images take a while to download over slower connections, such pages are normally laid out so that the most popular links are displayed early in the page download process, allowing a user to navigate to another part of the site without having to wait for the all the page content to complete.&lt;br /&gt;&lt;br /&gt;But while &lt;em&gt;initial response time&lt;/em&gt; and &lt;em&gt;page download time&lt;/em&gt; provide a good indication of the user’s experience of a &lt;em&gt;traditional&lt;/em&gt; Web application, they may be less useful for some &lt;em&gt;RIAs&lt;/em&gt;. In these applications, the time to complete a page download might include additional asynchronous activity that does not affect the user’s experience of the current page, such as fetching additional content (like executable script files, application data, images, or even streams) for future use within the application.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;An Additional Metric for RIAs&lt;/strong&gt;&lt;br /&gt;This suggests that, while the two existing metrics are still useful, a standard scheme for measuring and reporting RIA responsiveness probably needs to also include a metric that represents the time from user interface action until an intermediate event, one that we might call &lt;em&gt;page display complete&lt;/em&gt;. This metric would reflect the time it takes to download everything needed to complete the display of the current page.&lt;br /&gt; &lt;br /&gt;Even that definition is ambiguous, because it may not be obvious when some pages are 'completely displayed'. I see two issues here. First, what about parts of the page outside the display window, that won’t be visible until the user scrolls? Let’s deal with that by assuming the user has a screen of unlimited size, so that the entire page could be visible without scrolling. &lt;br /&gt;&lt;br /&gt;Second, what if a page includes a streamed video, or a series of images that are displayed in sequence, each replacing the previous one? On reflection, I conclude that the &lt;em&gt;'page display complete'&lt;/em&gt; event should occur when the complete display is &lt;em&gt;first&lt;/em&gt; visible -- in my examples, when the video &lt;em&gt;begins&lt;/em&gt; playing, or the &lt;em&gt;first&lt;/em&gt; image is displayed. That's because measuring to the &lt;em&gt;last&lt;/em&gt; view of the display would make this metric a lot less useful as a measure of a user's experience of responsiveness. And nowhere between those two extremes offers any possibility of generality across applications.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Summarizing What’s Needed&lt;/strong&gt;&lt;br /&gt;So now I have defined three distinct metrics that seem to have fairly universal applicability when measuring the responsiveness of RIAs: &lt;blockquote&gt;&lt;strong&gt;Initial response time&lt;/strong&gt;&lt;br /&gt;The elapsed time from a user interface action (a mouse click, or any other user action that triggers a download process) until the browser places the page in a state that permits a user to perform another action (technically, the user is &lt;em&gt;unblocked&lt;/em&gt;). We could also say that this is the time until the new page first becomes &lt;em&gt;usable&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Page display time&lt;/strong&gt;&lt;br /&gt;The elapsed time from a user interface action until the complete resulting page is first displayed, or could be first displayed if the screen were large enough.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Page download time&lt;/strong&gt;&lt;br /&gt;The elapsed time from a user interface action until the complete resulting page and all associated content elements have been downloaded. This time includes all secondary or background downloads triggered by the user's action, whether or not they are required for the current page display.&lt;/blockquote&gt; These definitions provide only &lt;em&gt;a rough statement of requirements&lt;/em&gt; for RIA measurement -- none is technically precise. In practice, any attempt to implement any one of these requirements could present problems for some applications, browsers, or measurement tools, and I will write about some of those complications in a future post. But I think it is useful to identify these generally applicable goals for measuring and reporting on the responsiveness of Rich Internet Applications.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://technorati.com/tag/RIA" rel="tag"&gt;RIA&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Rich+Internet+Application" rel="tag"&gt;Rich Internet Application&lt;/a&gt;, &lt;a href="http://technorati.com/tag/measurement" rel="tag"&gt;measurement&lt;/a&gt;, &lt;a href="http://technorati.com/tag/service+level" rel="tag"&gt;service level&lt;/a&gt;, &lt;a href="http://technorati.com/tag/SLM" rel="tag"&gt;SLM&lt;/a&gt;, &lt;a href="http://technorati.com/tag/page+download" rel="tag"&gt;page download&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+application" rel="tag"&gt;Web application&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Webapp" rel="tag"&gt;Webapp&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-115560554959082647?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/115560554959082647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=115560554959082647' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/115560554959082647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/115560554959082647'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/08/reporting-web-application.html' title='Reporting Web Application Responsiveness'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-115560113273899239</id><published>2006-08-15T00:12:00.000Z</published><updated>2006-12-14T02:09:16.976Z</updated><title type='text'>Web Performance Engineering [1]</title><content type='html'>&lt;em&gt;This post is the first in a new series on how to build Web pages, sites and applications that perform well -- by design. I will be combining my own observations with online research and recommendations on best practices contributed by my colleague Ben Rushlo. Ben makes his living measuring Web site performance and giving companies advice on how to improve the performance of their sites and applications.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Despite the crucial contribution of performance to online application effectiveness, good advice on the subject is surprisingly scarce on the Web, and even scarcer in books about Web design. Although you do sometimes find small sections (rarely chapters) of such books devoted to performance, their content is usually weak and almost never a systematic treatment of the issues. I won't bore you with proof, but I do mention one example below.&lt;br /&gt;&lt;br /&gt;On the other hand, the exceptions are certainly worth noting. Recently I found an excellent discussion of &lt;a href="http://alexander.kirk.at/2006/02/02/10-steps-to-a-faster-web-site/"&gt;&lt;b&gt;10 Realistic Steps to a Faster Web Site&lt;/b&gt;&lt;/a&gt;, posted in February 2006 by Alexander Kirk, a Web application programmer in Vienna, Austria. I mention his profession because in my experience, a lot of advice about performance written by programmers completely ignores the central rule of all performance optimization -- &lt;em&gt;to speed anything up, remove the biggest bottleneck&lt;/em&gt;. &lt;br /&gt;&lt;br /&gt;Applying just this one rule repeatedly (think about it) will always produce the best results. And in the world of distributed systems, the biggest bottlenecks will almost always be related to the way an application uses a network, not to the way a computer (client or server) processes some program code. In other words, the application's logic is usually far more important than the way a programmer coded it. &lt;br /&gt;&lt;br /&gt;Kirk obviously understands this. After &lt;a href="http://alexander.kirk.at/2006/01/03/49/"&gt;&lt;b&gt;complaining&lt;/b&gt;&lt;/a&gt; about an example of &lt;a href="http://bravenewword.typepad.com/brave_new_word/2005/11/web_developers_.html"&gt;&lt;b&gt;misguided performance advice&lt;/b&gt;&lt;/a&gt; (read the comments), he presents his view of a &lt;a href="http://alexander.kirk.at/2006/02/02/10-steps-to-a-faster-web-site/"&gt;&lt;b&gt;systematic approach&lt;/b&gt;&lt;/a&gt; to Web application performance analysis. I will not attempt to summarize it beyond simply listing the outline, which is: &lt;blockquote&gt;1. Determine the bottleneck&lt;br /&gt;1.1. File Size&lt;br /&gt;1.2. Latency&lt;br /&gt;2. Reducing the file size&lt;br /&gt;3. Check what’s causing a high latency&lt;br /&gt;3.1. Is it the network latency?&lt;br /&gt;3.2. Does it take too long to generate the page?&lt;br /&gt;3.3. Is it the rendering performance?&lt;br /&gt;4. Determine the lagging component(s)&lt;br /&gt;5. Enable a Compiler Cache&lt;br /&gt;6. Look at the DB Queries&lt;br /&gt;7. Send the correct Modification Data&lt;br /&gt;8. Consider Component Caching (advanced)&lt;br /&gt;9. Reducing the Server Load&lt;br /&gt;9.1. Use a Reverse Proxy (needs access to the server)&lt;br /&gt;9.2. Take a lightweight HTTP Server (needs access to the server)&lt;br /&gt;10. Server Scaling (extreme technique)&lt;/blockquote&gt; Kirk's discussion does omit a few topics (subjects for future posts in this series) that I think are important, but this is an excellent starting point. While his wording implies a &lt;em&gt;reactive&lt;/em&gt; approach to his subject matter (writing about &lt;em&gt;tuning&lt;/em&gt; or &lt;em&gt;improving&lt;/em&gt; the performance an existing site), most of his guidelines relate to best practices in site design and engineering. So there is no reason why they should not be implemented &lt;em&gt;proactively&lt;/em&gt;, without waiting for problems to surface.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://technorati.com/tag/Web+performance" rel="tag"&gt;Web performance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/page+design" rel="tag"&gt;page design&lt;/a&gt;, &lt;a href="http://technorati.com/tag/site+design" rel="tag"&gt;site design&lt;/a&gt;, &lt;a href="http://technorati.com/tag/service+level" rel="tag"&gt;service level&lt;/a&gt;, &lt;a href="http://technorati.com/tag/SLM" rel="tag"&gt;SLM&lt;/a&gt;, &lt;a href="http://technorati.com/tag/optimization" rel="tag"&gt;optimization&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+optimization" rel="tag"&gt;Web optimization&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-115560113273899239?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/115560113273899239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=115560113273899239' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/115560113273899239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/115560113273899239'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/08/web-performance-engineering-1.html' title='Web Performance Engineering [1]'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-115363590713099217</id><published>2006-07-23T06:23:00.000Z</published><updated>2006-08-12T01:02:47.623Z</updated><title type='text'>Rich Internet Applications: an update</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/RIA%20WP%20image.gif"&gt;&lt;img style="FLOAT: right; MARGIN: 0px 0px 5px 5px; CURSOR: hand" alt="RIA White Paper" src="http://photos1.blogger.com/blogger/7699/1738/200/RIA%20WP%20image.png" border="0" /&gt;&lt;/a&gt;Blogging has taken a backseat to other activities for a couple of months, so I have some &lt;em&gt;Performance Matters&lt;/em&gt; to report.&lt;br /&gt;&lt;br /&gt;Following publication of the &lt;a href="http://performancematters.blogspot.com/2006/04/managing-rich-internet-applications-7.html"&gt;&lt;strong&gt;seventh&lt;/strong&gt;&lt;/a&gt; in my earlier series of posts about managing Rich Internet Applications (RIAs), I reworked most of that material into a single paper. After some delays to reformat the content and redraw the diagrams, it is now available an an &lt;em&gt;Industry Brief&lt;/em&gt;, which you can download from the &lt;a href="http://www.keynote.com/resources/resource_library.html"&gt;&lt;strong&gt;Keynote resource library&lt;/strong&gt;&lt;/a&gt;. The title is &lt;em&gt;Rich Internet Applications: Design, Measurement, and Management Challenges&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Although I referenced Wikipedia when introducing the subject of RIAs, and retained those references in the paper, I did not feel that the current contents of Wikipedia did a very good job of explaining RIAs. In my &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-2.html"&gt;&lt;strong&gt;second post&lt;/strong&gt;&lt;/a&gt; I described how I had met &lt;a href="http://tinyurl.com/nshnd"&gt;&lt;b&gt;Aleksandar Šušnjar&lt;/b&gt;&lt;/a&gt; online after reading &lt;a href="http://tinyurl.com/o3gwt"&gt;&lt;b&gt;his contributions&lt;/b&gt;&lt;/a&gt; to the discussion of RIAs in Wikipedia. I wrote that Aleks had: &lt;blockquote&gt;... shared insights gained from his experience building a product first released in 2002 ... In delivering desktop capabilities via the Web, it clearly predated much of today's thinking about the purpose of RIAs and how to build them. &lt;br&gt;&lt;br&gt; Naturally, Aleks also discovered some potential pitfalls an RIA designer might run into, which I will be mentioning in later posts. Regrettably, many of his insightful contributions to Wikipedia (which can still be found in its history pages) were subsequently removed by other contributors who lacked either his intimate knowledge of the technology or his historical perspective. Rather than waging Wikipedia edit wars, which for a hot topic can continue interminably, he has simply posted &lt;a href="http://tinyurl.com/lcfk4"&gt;&lt;b&gt;his own page about RIA and AJAX&lt;/b&gt;&lt;/a&gt;.&lt;/blockquote&gt; Despite Aleks' experiences, having made the effort to understand and summarize the SLM challenges posed by RIAs as coherently as I could, I felt it was time to try my hand at editing Wikipedia. So I have tackled the Wikipedia RIA page; I suspect that this entry may not be quite as "hot" as the Ajax entry, where Aleks was posting. So today (at least) you can find my handiwork throughout the section that &lt;a href="http://en.wikipedia.org/wiki/Rich_Internet_Application#Comparison_to_standard_web_applications"&gt;&lt;strong&gt;compares RIAs with traditional Web applications&lt;/strong&gt;&lt;/a&gt;, including (not surprisingly) the entire section on &lt;a href="http://en.wikipedia.org/wiki/Rich_Internet_Application#Management_complications"&gt;&lt;strong&gt;management complications&lt;/strong&gt;&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Tomorrow may be another story. After all, the Wikipedia editor carries the clear warning: &lt;strong&gt;If you don't want your writing to be edited mercilessly or redistributed by others, do not submit it&lt;/strong&gt;. So please feel free to improve on my efforts -- I know what to expect!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://technorati.com/tag/RIA" rel="tag"&gt;RIA&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Rich+Internet+Application" rel="tag"&gt;Rich Internet Application&lt;/a&gt;, &lt;a href="http://technorati.com/tag/management" rel="tag"&gt;management&lt;/a&gt;, &lt;a href="http://technorati.com/tag/wikipedia" rel="tag"&gt;wikipedia&lt;/a&gt;, &lt;a href="http://technorati.com/tag/service+level" rel="tag"&gt;service level&lt;/a&gt;, &lt;a href="http://technorati.com/tag/SLM" rel="tag"&gt;SLM&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Web+application" rel="tag"&gt;Web application&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Webapp" rel="tag"&gt;Webapp&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-115363590713099217?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/115363590713099217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=115363590713099217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/115363590713099217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/115363590713099217'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/07/rich-internet-applications-update.html' title='Rich Internet Applications: an update'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-114659843692463973</id><published>2006-05-02T19:32:00.000Z</published><updated>2006-07-07T21:32:24.396Z</updated><title type='text'>Insights from Interop 2006</title><content type='html'>In my last post I promised that if I get any new insights worth sharing this week while I'm at &lt;a href="http://www.interop.com/"&gt;&lt;b&gt;Interop 2006&lt;/b&gt;&lt;/a&gt;, I'll write about them. Well, here's the first installment, which consistes of just three items. I'm supposed to be at the Keynote booth on the show floor soon, so this will be short, because it's quite a hike to get there. &lt;br /&gt;&lt;br /&gt;I'm staying at the Luxor, a hotel cleverly designed to resemble an Egyptian pyramid. Egyptian motifs abound. To reach the Conference Center in the Mandalay Bay hotel, which is next door, you can take a cab, a shuttle bus, or ride on a tram. But I usually walk. I hike about half a mile through a network of corridors cleverly disguised as places to spend money -- two casinos, a shopping mall, theaters and entertainment centers, restaurants, etc. I know I need to exercise more, so this a token effort.&lt;br /&gt;&lt;br /&gt;Back to the insights. Yesterday afternoon I attended the Application Performance Day. Peter Sevcik of &lt;a href="http://www.netforecast.com/"&gt;&lt;b&gt;NetForecast&lt;/b&gt;&lt;/a&gt; presented a very thorough analysis of &lt;em&gt;Performance Improvement Solutions&lt;/em&gt;, covering QoS, Compression, CDN's and other Acceleration technologies. He also provided a sheet of references, some of which I will publish when I have more time. Two insightful comments I wrote down were: &lt;ul&gt; &lt;li&gt;&lt;em&gt;Fast delivery of sites results in slow delivery of pages.&lt;/em&gt; We all know that when the development process does not include time to think about performance, the results are not optimal. I thought Peter's simple rule captured this issue in a memorable way. &lt;li&gt;&lt;em&gt;Most developers build applications in a LAN-based environment, and don't insert a WAN simulator to test their performance.&lt;/em&gt; Another well-known problem nicely summarized. If you don't actually test your application in the production environment, or something that resembles it, you will surely run into performance problems in the real world.&lt;/ul&gt; Which brings me to my third item. Last night I dreamt I was one of a small group of people lugging a grand piano from the Luxor to the conference center. But instead of taking the inside route, we were outside on the street. And every time we came to a gap in the sidewalk, several of us had to lift the piano over the kerbs. This was becoming hard work, and so at one point Steve Jobs, who owned the piano, wanted to leave it where it was. But John Chambers (CEO of Cisco Systems), who seemed to be supervising the move, said "No Steve -- we can't just leave it here, we have to deliver it." &lt;br /&gt;&lt;br /&gt;Now I'm not sure what lessons (if any) I should draw from this dream. It certainly seems to be a metaphor for many of the discussions going on here about how to deliver large payloads to remote destinations via less than ideal routes!  Maybe John Chambers actually offered some more concrete suggestions during his Interop keynote speech this morning; I was still in my hotel room moving the piano at that time. &lt;br /&gt;&lt;br /&gt;Now I'm going to mingle with the crowds and find out if Interop can make me smarter today.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-114659843692463973?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/114659843692463973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=114659843692463973' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114659843692463973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114659843692463973'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/05/insights-from-interop-2006.html' title='Insights from Interop 2006'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-114656192729064964</id><published>2006-05-02T09:24:00.000Z</published><updated>2006-05-02T09:44:19.116Z</updated><title type='text'>Alistair Croll on Ajax</title><content type='html'>Because of my particular interest in software performance &lt;a href="http://en.wikipedia.org/wiki/Optimization_(computer_science)"&gt;&lt;b&gt;optimization&lt;/b&gt;&lt;/a&gt; and &lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;&lt;b&gt;SLM&lt;/b&gt;&lt;/a&gt;, I often search the Web to see what people are writing about performance. And even though there are always new things to find, it seems to be getting harder to locate them. &lt;br /&gt;&lt;br /&gt;One reason is that until recently, anyone writing about the &lt;em&gt;performance&lt;/em&gt; of computer systems or applications was discussing SLM topics like speed, availability, optimization, capacity planning, or load testing. But in the last few years, as the Web has made information systems and business systems synonymous, the term &lt;em&gt;performance&lt;/em&gt; has gradually taken on a much broader meaning. Now to locate the interesting links, I have to include technical keywords that are designed to filter out unwanted information about business success.&lt;br /&gt;&lt;br /&gt;So when I do find something worth reading, I assume it's a good idea to make a note of it, to save someone else the trouble. I have already included the most useful references in my previous posts about the performance of &lt;a href="http://performancematters.blogspot.com/2006/04/managing-rich-internet-applications-7.html"&gt;&lt;b&gt;Rich Internet Applications (RIAs)&lt;/b&gt;&lt;/a&gt;, but yesterday I found this excellent blog post by Alistair Croll of Coradiant on &lt;a href="http://www.bitcurrent.com/?p=105"&gt;&lt;b&gt;the impact of AJAX on web operations&lt;/b&gt;&lt;/a&gt;. From there, I also located his related presentation on &lt;a href="http://www.bitcurrent.com/documents/AJAX%20and%20networks.zip"&gt;&lt;b&gt;Ajax and Networks&lt;/b&gt;&lt;/a&gt; to Interop in December 2005. &lt;br /&gt;&lt;br /&gt;Finding this material was a complete coincidence, in that I happen to be attending &lt;a href="http://www.interop.com/"&gt;&lt;b&gt;Interop 2006&lt;/b&gt;&lt;/a&gt; in Las Vegas this week, yet I found that link independently. But it was a good very thing to know about, because on Wednesday I am speaking at the &lt;a href="http://www.interop.com/lasvegas/event-highlights/free-sessions.php"&gt;&lt;b&gt;WebOps Summit&lt;/b&gt;&lt;/a&gt; (scroll down to Wednesday for details), which is chaired by none other than ... Alistair Croll. And I have actually devoted the last third of my talk on &lt;em&gt;Best Practices&lt;/em&gt; to the emerging RIA measurement issues I discussed &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-6.html"&gt;&lt;b&gt;here&lt;/b&gt;&lt;/a&gt;. Even though I have been researching and writing about the performance implications of Ajax and RIA's in general, and scheduling this Interop presentation with Alistair, I had still missed this connection.&lt;br /&gt;&lt;br /&gt;This illustrates just how hard it is these days to stay on top of &lt;em&gt;any&lt;/em&gt; topic being discussed online. So I hope this post will help &lt;em&gt;you&lt;/em&gt; in that regard. And if I make any new connections worth sharing this week, I'll be writing about them when I get a chance. The cover of the conference guides say &lt;em&gt;Interop Makes You Smart&lt;/em&gt;, so I'm hoping that works on me. Those marketing slogans are always true, aren't they?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-114656192729064964?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/114656192729064964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=114656192729064964' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114656192729064964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114656192729064964'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/05/alistair-croll-on-ajax.html' title='Alistair Croll on Ajax'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-114522570111772705</id><published>2006-04-16T22:13:00.000Z</published><updated>2006-04-17T03:42:08.066Z</updated><title type='text'>Software Engineering Matters</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Pisa.jpg"&gt;&lt;img style="float:left; margin:3px 10px 0 0; cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/320/Pisa.jpg" border="0" alt="Inadequate attention to engineering creates problems later" /&gt;&lt;/a&gt; With the obvious exception of a few bloggers like Markos Moulitsas Zúniga, whose blog &lt;a href="http://www.dailykos.com/"&gt;&lt;b&gt;Daily Kos&lt;/b&gt;&lt;/a&gt; receives over a million &lt;a href="http://truthlaidbear.com/TrafficRanking.php"&gt;&lt;b&gt;visits per day&lt;/b&gt;&lt;/a&gt;, I think most bloggers are happy just to know that &lt;em&gt;someone&lt;/em&gt; cares enough to read what they write. In my own case, having spent my career working on software performance, I learned long ago that only a small fraction of the population is actually interested in &lt;em&gt;Performance Matters&lt;/em&gt;. So I don't expect a lot of feedback.&lt;br /&gt;&lt;br /&gt;All the same it's nice to hear from a reader occasionally, and yesterday was one of those days -- I received a comment from &lt;a href="http://damith.net/"&gt;&lt;b&gt;Damith C. Rajapakse&lt;/b&gt;&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Curious about why a post on &lt;em&gt;Waterfall Methods&lt;/em&gt; would be the one to generate a response, I did some digging. For readers who would like to hear about &lt;em&gt;interesting stuff for the serious software engineer&lt;/em&gt;, Damith's blog -- &lt;a href="http://damith.blogspot.com/"&gt;&lt;b&gt;Another Day in Mythical Man Month&lt;/b&gt;&lt;/a&gt; -- is worth a look. In particular, his recent post on &lt;a href="http://damith.blogspot.com/2006/02/maintaining-future-web-applications.html"&gt;&lt;b&gt;maintaining future web applications&lt;/b&gt;&lt;/a&gt; (subtitled 'it's time to brace ourselves') is very relevant to my current focus on Rich Internet Applications. Damith notes that while ... &lt;blockquote&gt;rapid development of Web apps is receiving the lion’s share of attention, maintainability of Web apps (is) hardly receiving a thought.&lt;/blockquote&gt; He warns about three trends that are likely to make Web applications hard to maintain: &lt;ul&gt;&lt;li&gt;The rush towards visual programming &lt;li&gt;Overuse of frameworks &lt;li&gt;Overdoing that 'AJAX ' thing&lt;/ul&gt; While it's good just to know that someone is reading what I write, it's even better when they have something useful to contribute to the discussion. And in this case I agree completely with Damith's perspective on the issues. Ten years ago, on the very first page of the introduction to my book about client/server performance, I wrote: &lt;blockquote&gt;In today's world of visual programming, rapid development, and out-of-the-box solutions ... performance is one area of software design that is frequently misunderstood, forgotten, ignored, or postponed, often with disastrous results.&lt;/blockquote&gt; The same can be said of maintainability -- which, like performance, is always less interesting to software developers than creating new application function. That is why your software development process must ensure that characteristics like performance and maintainability are designed and engineered into applications from the beginning. In other words, it is important to realize that good &lt;a href="http://en.wikipedia.org/wiki/Software_engineering"&gt;&lt;b&gt;Software Engineering&lt;/b&gt;&lt;/a&gt; involves a lot &lt;a href="http://www.cs.utexas.edu/~sahilt/research/SEMyths.html"&gt;&lt;b&gt;more than just programming&lt;/b&gt;&lt;/a&gt; and testing your code. According to  Wikipedia, it is ... &lt;blockquote&gt;... the practice of creating and maintaining software applications by applying technologies and practices from engineering, computer science, project management, application domains and other fields... Like traditional engineering disciplines, it deals with issues of cost and reliability ... &lt;/blockquote&gt; As I have noted previously, the complexity of Rich Internet Applications makes it essential to actually practice rigorous software engineering, and not just crank out code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-114522570111772705?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/114522570111772705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=114522570111772705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114522570111772705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114522570111772705'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/04/software-engineering-matters.html' title='Software Engineering Matters'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-114516468334374248</id><published>2006-04-16T05:17:00.000Z</published><updated>2006-04-16T18:51:53.706Z</updated><title type='text'>Waterfall Methods: Past and Ever-Present</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Waterfall%202006.jpg"&gt;&lt;img style="float:left; margin:3px 10px 0 0; cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/400/Waterfall%202006.jpg" border="0" alt="Waterfall 2006 Conference" /&gt;&lt;/a&gt;In my previous post, I commented that adopting a &lt;a href="http://en.wikipedia.org/wiki/Waterfall_model"&gt;&lt;b&gt;waterfall development methodology&lt;/b&gt;&lt;/a&gt; was not going to work well when developing Rich Internet Applications, because more agile methods were needed. While writing the post, I did a bit of research into the literature about Waterfall methods, a concept I clearly recall encountering for the first time in 1978 or '79 soon after I joined IBM's DB2 development team in the &lt;a href="http://www.research.ibm.com/journal/sj/171/ibmsj1701C.pdf"&gt;&lt;b&gt;Santa Teresa Lab&lt;/b&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;My own introduction to the Waterfall method was in a talk about its limitations. So it was interesting to read &lt;a href="http://tarmo.fi/blog/2005/09/09/dont-draw-diagrams-of-wrong-practices-or-why-people-still-believe-in-the-waterfall-model/"&gt;&lt;b&gt;Tarmo’s psycho and techno blog&lt;/b&gt;&lt;/a&gt; explaining that the very first description of the model by Winston W. Royce in 1970 was also as a counterexample. This point of view is amplified by Conrad Weisert, who claims that in fact &lt;a href="http://www.idinews.com/waterfall.html"&gt;&lt;b&gt;there's no such thing&lt;/b&gt;&lt;/a&gt; as a Waterfall Model!&lt;br /&gt;&lt;br /&gt;But despite the fact that (maybe) it should not exist, the Waterfall model has taken root. This is evident from the fact that it merits a place in &lt;a href="http://www.ncycles.com/e_whi_Methodologies.htm"&gt;&lt;b&gt;methodology comparisons&lt;/b&gt;&lt;/a&gt; and &lt;a href="http://www.business-esolutions.com/islm.htm"&gt;&lt;b&gt;analyses&lt;/b&gt;&lt;/a&gt;. What's more, despite the many rumors of its demise, especially in the face of today's need for more agile methods, researchers have discovered that Waterfall methods &lt;a href="http://www.acmqueue.com/modules.php?name=Content&amp;pa=showpage&amp;pid=110"&gt;&lt;b&gt;refuse to die&lt;/b&gt;&lt;/a&gt;: &lt;blockquote&gt; ... in a survey of almost 200 practitioners, accounting for several thousands of projects over the past five years, the dominant process model reported was the Waterfall, with more than a third claiming its use.&lt;/blockquote&gt; Indeed, perhaps the ultimate tribute to the sheer persistence of the Waterfall approach in everyday development practice is the fact that the agile development community recently promoted the &lt;a href="http://www.waterfall2006.com/"&gt;&lt;b&gt;Waterfall 2006 Conference&lt;/b&gt;&lt;/a&gt;. Even if you couldn't attend, I recommend reviewing the agenda and the session descriptions carefully, just to see what you missed. I don't know if or when more documentation will be published, but I'm sure it will be worth waiting for.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-114516468334374248?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/114516468334374248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=114516468334374248' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114516468334374248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114516468334374248'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/04/waterfall-methods-past-and-ever.html' title='Waterfall Methods: Past and Ever-Present'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-114465312162535236</id><published>2006-04-10T07:11:00.000Z</published><updated>2006-04-12T06:58:11.220Z</updated><title type='text'>Managing Rich Internet Applications [7]</title><content type='html'>&lt;em&gt;This is the seventh post in a series devoted to the challenges of Service Level Management (SLM) for Rich Internet Applications (RIAs). In these applications, some processing is transferred to the Web client while some remains on the application server. Previous posts &lt;a href="http://performancematters.blogspot.com/2006/02/managing-rich-internet-applications-1.html"&gt;&lt;b&gt;introduced the subject&lt;/b&gt;&lt;/a&gt; and the &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-2.html"&gt;&lt;b&gt;SLM topics&lt;/b&gt;&lt;/a&gt; I plan to address, reviewed &lt;b&gt;&lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-3_06.html"&gt;RIA technologies&lt;/a&gt;&lt;/b&gt;, introduced &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-4.html"&gt;&lt;b&gt;The RIA Behavior Model&lt;/b&gt;&lt;/a&gt;, and &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-5.html"&gt;&lt;b&gt;introduced&lt;/b&gt;&lt;/a&gt; and discussed &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-6.html"&gt;&lt;b&gt;RIA measurement challenges&lt;/b&gt;&lt;/a&gt;&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;RIA Usability and the Site Development Process&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Having discussed the measurement challenges posed by RIAs, I intend next to consider the demands that RIA development may make of SLM processes that have been designed and fine-tuned to manage traditional Web applications. I covered some of this ground in a Webinar on &lt;a href="http://www.keynote.com/news_events/webinars/060222.html"&gt;&lt;b&gt;How to Overcome the Challenges of Rich Internet Applications&lt;/b&gt;&lt;/a&gt;. So in this post I will lay out the general framework of that material, using the illustrative figures I created for the Webinar.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Usability_as_ARCU.0.jpg"&gt;&lt;img style="float:right; margin:3px 0 3px 10px;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/320/Usability_as_ARCU.0.jpg" border="0" alt="Typical customer's experience of usability: availability, responsiveness, clarity, and utility." /&gt;&lt;/a&gt; In previous posts I have &lt;a href="http://performancematters.blogspot.com/2005/10/web-usability-simple-framework.html"&gt;&lt;b&gt;introduced&lt;/b&gt;&lt;/a&gt; and &lt;a href="http://performancematters.blogspot.com/2005/11/dimensions-of-usability.html"&gt;&lt;b&gt;discussed&lt;/b&gt;&lt;/a&gt; a simple four-part framework for thinking about Web Site Usability. I divided usability into four dimensions, each of which is essential to the ultimate success of any site -- &lt;em&gt;Availability&lt;/em&gt;, &lt;em&gt;Responsiveness&lt;/em&gt;, &lt;em&gt;Clarity&lt;/em&gt;, and &lt;em&gt;Utility&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;The graphic presents the four essential qualities in the order of their significance, at least for all first-time visitors to a site. &lt;br /&gt;&lt;br /&gt;Interestingly, companies developing Web sites or eBusiness applications tend to approach these four aspects in exactly the reverse order, as shown in the next figure.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Usability_as_UCRA.0.jpg"&gt;&lt;img style="float:right; margin: 3px 0 3px 10px; text-align:left;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/320/Usability_as_UCRA.0.jpg" border="0" alt="Typical usability concerns during site development: utility, clarity, responsiveness, and availability" /&gt;&lt;/a&gt; A business goal leads to a design process, which in turn results in an application being built and then rolled out into production. And at each point along the way, people do their best to make the outcome a success. But is that enough? &lt;br /&gt;&lt;br /&gt;Well, if you take this approach you may get lucky.  But to be safe you really have to take a more systematic approach to &lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;&lt;b&gt;Service Level Management&lt;/b&gt;&lt;/a&gt;, like &lt;a href="http://performancematters.blogspot.com/2005/10/performance-dj-vu-all-over-again.html"&gt;&lt;b&gt;ITSO&lt;/b&gt;&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;[&lt;em&gt;On this subject, it is hard for me to be brief, because 10 years ago I actually wrote a &lt;a href="http://www.amazon.com/gp/product/0471162698/002-4402859-7230460?v=glance&amp;n=283155"&gt;&lt;b&gt;750-page book&lt;/b&gt;&lt;/a&gt; about it. But here goes!&lt;/em&gt;] I have always believed that you cannot separate issues of software performance from the software development life cycle (SDLC). The best way to ensure acceptable performance is to follow the discipline of Software Perfrmance Engineering -- to build in the desired level of performance, just as a mechanical engineer would. The next figure attempts to sum up this idea. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Usability_in_SDLC%20%5B1%5D.jpg"&gt;&lt;img style="float:right; margin:3px 0 3px 10px;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/320/Usability_in_SDLC%20%5B1%5D.jpg" border="0" alt="Building usability into a site throughought the software development life cycle." /&gt;&lt;/a&gt;  I think everyone can agree that there is an application development life cycle – applications have to be designed, developed, tested, and deployed. People may argue about the details, but for the purposes of this discussion we can set aside those religious debates about methodologies. All I care about here is that each stage of your development process -– whatever it is -- must include a deliberate focus on performance (or SLM), alongside other aspects of site usability. &lt;br /&gt;&lt;br /&gt;If you want an application to achieve certain levels of service, don’t expect that to just happen on its own.  You have to agree on your objectives, then design, develop, and test your application with those objectives firmly in mind, and measure and manage the application to make sure you are actually achieving your objectives. Of course, there’s nothing particularly radical or new about this idea, but the added complexity of RIA’s increases the risk of failure if we don’t actually follow these well-established best practices.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The RIA Development Process&lt;/b&gt;&lt;br /&gt;If you want to implement a really usable Rich Internet Application, you’re probably going to need to beef up your site development processes to get everyone on the same page. That's because up to now the Web Usability (with a capital 'U') profession has concentrated on the dimension I call &lt;em&gt;Clarity&lt;/em&gt;. &lt;br /&gt;&lt;br /&gt;Their exclusive focus on Web page design and Information Architecture was possible only because the traditional structure of a Web applications was so constrained by the limitations of the Web browser technology they had at their disposal. When all Web applications implemented the same simple thin-client model, they did not have to worry too much about application complexity.&lt;br /&gt;&lt;br /&gt;But as we evolve to building RIAs with a separate client-side engine, the site development process must deal with the kinds of complex issues that arise during the design of &lt;em&gt;distributed applications&lt;/em&gt;. In the past, Web designers have not had to deal with anything as technical as this. They certainly can’t buy a book on 'Web Usability' and read about these kinds of issues.&lt;br /&gt;&lt;br /&gt;Confirming this perspective, I recently  heard &lt;a href="http://www.zimbra.com/about/management_team.html"&gt;&lt;b&gt;Scott Dietzen, President and CTO of Zimbra&lt;/b&gt;&lt;/a&gt; speaking about Ajax at an &lt;a href="http://www.vlab.org/Htdocs/204.cfm?eventID=61"&gt;&lt;b&gt;MIT/Stanford VLAB&lt;/b&gt;&lt;/a&gt; meeting. To illustrate his statements that 'Ajax is still hard' and 'You can't crank out a good Ajax application quickly' he revealed that Zimbra has had to interview 40 JavaScript developers for every one they have hired. This is telling evidence of the difference between traditional Web applications and RIAs.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Usability_and_Departments.jpg"&gt;&lt;img style="float:right; margin: 3px 0 3px 10px; cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/320/Usability_and_Departments.jpg" border="0" alt="The politics of application development." /&gt;&lt;/a&gt; And you really do have to work hard to get everyone on the same page, because typically the people in the various participating departments usually don’t have a clear picture of just how much it takes to build a successful Web application. &lt;br /&gt;&lt;br /&gt;As illustrated here, they naturally focus first on their own problems and challenges. The graphic is meant to be a bit tongue in cheek, but it does reflect the political realities of application development. &lt;br /&gt;&lt;br /&gt;Several groups contribute to the success of any site, and each group thinks that their contribution is the most important! Apart maybe from those who work in IT, who tend to complain that they could deliver much better service levels if only the developers would hand them more robust and stable applications to manage. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Usability_as_Equals_2.jpg"&gt;&lt;img style="float:right; margin:3px 0 3px 10px; cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/200/Usability_as_Equals_2.jpg" border="0" alt="The four dimensions of usability are equally essential." /&gt;&lt;/a&gt;These attitudes are not just the result of people having an inflated sense of their own importance. Most people honestly don’t understand just how much work the other players have to do. &lt;br /&gt;&lt;br /&gt;This is already true today, and with the added compexity introduced by Rich Internet Applications everyone will have even more to think about. This is likely to increase their isolation from the other participants, unless the development process requires close cooperation.&lt;br /&gt;&lt;br /&gt;So the first lessons your development processes must drive home are that &lt;em&gt;all participants play an equally vital role in delivering a usable application&lt;/em&gt;, because &lt;em&gt;all four dimensions of usability are equally vital to the success of the application&lt;/em&gt;. &lt;br /&gt;&lt;br /&gt;&lt;b style="float:left"&gt;The Importance of Being Agile&lt;/b&gt;&lt;br /&gt;Building successful RIAs will also require more communication. We’ve been talking about the importance of SLM within the life cycle. But the problem with describing the software life cycle using a list activities like the one in the third illustration above (introducing the development life cycle) is that such lists tend to imply a step-by-step process –- a &lt;a href="http://en.wikipedia.org/wiki/Waterfall_model"&gt;&lt;b&gt;waterfall methodology&lt;/b&gt;&lt;/a&gt; –- in which we must complete one activity before moving on to the next. That approach to the development process is certainly not going to be an effective way to develop Rich Internet Applications.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/RIA%20Reference%20Model%20v2.2.png"&gt;&lt;img style="float:right; margin:3px 0 3px 10px; cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/400/RIA%20Reference%20Model%20v2.1.jpg" border="0" alt="The RIA Behavior Reference Model"&gt;&lt;/a&gt; Previously I introduced the &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-4.html"&gt;&lt;b&gt;RIA Behavior Model&lt;/b&gt;&lt;/a&gt; shown here. Consider in particular the grey boxes along the top, representing the application's &lt;em&gt;design&lt;/em&gt; and &lt;em&gt;usage environment&lt;/em&gt;, or &lt;em&gt;context&lt;/em&gt;. As I wrote at the time: &lt;blockquote&gt;A user's satisfaction with any application depends on ... how well the &lt;em&gt;application design&lt;/em&gt; matches &lt;em&gt;their&lt;/em&gt; needs at the time, &lt;em&gt;their&lt;/em&gt; way of thinking, and &lt;em&gt;their&lt;/em&gt; behavior when they are using it.&lt;br /&gt;&lt;br /&gt;Their experience of response time depends on the combined behaviors of the client and server components of the application, which in turn depend on the &lt;em&gt;application design&lt;/em&gt;, the underlying server &lt;em&gt;infrastructure design&lt;/em&gt;, and of course the user's Internet &lt;em&gt;connection speed&lt;/em&gt;. The most effective RIA will be one whose creators took into account these factors at each stage of its development life cycle, and who created the necessary management processes to ensure its success when in production.&lt;/blockquote&gt; Now imagine trying to focus on any one of the four aspects of usability without paying attention to the others. It can't be done. Application &lt;em&gt;utility&lt;/em&gt; is tied to &lt;em&gt;user behavior&lt;/em&gt;, which is driven by the &lt;em&gt;clarity&lt;/em&gt; of the site, the design of the client-side engine, and the &lt;em&gt;responsiveness&lt;/em&gt; of interactions between the client engine and the server components. And the design and implementation of those components will ultimately also determine application &lt;em&gt;availability&lt;/em&gt;. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Usability_as_Agile.jpg"&gt;&lt;img style="float:right; margin:3px 0 3px 10px; cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/320/Usability_as_Agile.jpg" border="0" alt="Keeping all four dimensions of usability in focus throughout the life cycle." /&gt;&lt;/a&gt; Since the four dimensions of usability are so intertwined, I conclude that to ensure a successful outcome, we must adopt a development process that keeps all four usability goals in focus, all the way through the life cycle. This approach is called &lt;a href="http://en.wikipedia.org/wiki/Agile_software_development"&gt;&lt;b&gt;agile software development&lt;/b&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Agile methods use an iterative approach to design, development and testing that keeps all the different participants ('stakeholders') involved -- marketing or business owners, Web designers, application developers, and the IT staff who understand what it takes to manage a site in production. They all have to communicate and share their different areas of expertise throughout the process. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Customer_Centered_Design.jpg"&gt;&lt;img style="float:right; margin:3px 0 3px 10px; cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/320/Customer_Centered_Design.jpg" border="0" alt="An example of a customer-centered design methodology" /&gt;&lt;/a&gt; In the Web design literature, methods similar to this have sometimes been referred to as &lt;em&gt;customer-centered design&lt;/em&gt;. For example, that terminology is used in &lt;a href="http://performancematters.blogspot.com/2005/11/web-usability-books-3.html"&gt;&lt;b&gt;The Design of Sites&lt;/b&gt;&lt;/a&gt; by Doug van Duyne et al (see &lt;a href="http://www.awprofessional.com/articles/article.asp?p=29037&amp;rl=1"&gt;&lt;b&gt;Chapter 1&lt;/b&gt;&lt;/a&gt;). However, &lt;a href="http://www.hp.com/hpbooks/prentice/ptr_0130479624.html"&gt;&lt;b&gt;Customer-Centered Design: A New Approach To Web Usability&lt;/b&gt;&lt;/a&gt; by Kreta Chandler and Karen Hyatt, while interesting (see &lt;a href="http://www.phptr.com/articles/article.asp?p=30343"&gt;&lt;b&gt;Chapter 1&lt;/b&gt;&lt;/a&gt;), does not have much to say about the development process.&lt;br /&gt;&lt;br /&gt;My graphic here is based on Chapter 5 of 'The Design of Sites', entitled 'Processes for Developing Customer-Centered Sites'. That book, having been published in 2003, is not about RIAs. Nor does it mention agile development per se, which is hardly surprising considering that the &lt;a href="http://www.agilemanifesto.org/principles.html"&gt;&lt;b&gt;agile manifesto&lt;/b&gt;&lt;/a&gt; was crafted during the time when van Duyne et al were writing their manuscript.&lt;br /&gt;&lt;br /&gt;However, it does suggest the kind of iterative approach to the development process that I believe is essential when developing RIAs. Chapter 5 concludes: &lt;blockquote&gt;The principles and techniques of customer-centered design and iterative prototyping are embedded in every stage. Many firms have similar processes, though the stages and deliverables might have slightly different names.&lt;/blockquote&gt; Another book I have recommended previously, &lt;a href="http://performancematters.blogspot.com/2005/11/web-usability-books-4.html"&gt;&lt;b&gt;Usability for the Web&lt;/b&gt;&lt;/a&gt; by Tom Brinck, Darren Gergle, and Scott D. Wood, is structured around the major stages of an iterative development process. In Chapter 1 they write:&lt;blockquote&gt;At each stage we want to cycle between refining our design and evaluating our latest refinement, iterating until we've achieved a level of usability that we're satisfied with before continuing to the next stage. Evaluation at each stage allows us to incorporate user and client feedback loops to optimize the design. &lt;br /&gt;&lt;br /&gt;At each evaluation, we determine whether our design is adequate for continuing on. We do this by establishing &lt;em&gt;benchmarks&lt;/em&gt;, or target usability goals.&lt;/blockquote&gt; These ideas did not emerge for the first time with the advent of the Rich Internet Application -- they are merely descriptions of good development practices. But the added complexity of the RIA model makes it essential that we actually put these kinds of methods into practice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-114465312162535236?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/114465312162535236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=114465312162535236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114465312162535236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114465312162535236'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/04/managing-rich-internet-applications-7.html' title='Managing Rich Internet Applications [7]'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-114331411343047828</id><published>2006-03-25T19:14:00.000Z</published><updated>2006-12-14T05:33:57.750Z</updated><title type='text'>Managing Rich Internet Applications [6]</title><content type='html'>&lt;em&gt;This is the sixth post in a series devoted to the challenges of Service Level Management (SLM) for Rich Internet Applications (RIAs). In these applications, some processing is transferred to the Web client while some remains on the application server. Previous posts &lt;a href="http://performancematters.blogspot.com/2006/02/managing-rich-internet-applications-1.html"&gt;&lt;b&gt;introduced the subject&lt;/b&gt;&lt;/a&gt; and the &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-2.html"&gt;&lt;b&gt;SLM topics&lt;/b&gt;&lt;/a&gt; I plan to address, reviewed &lt;b&gt;&lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-3_06.html"&gt;RIA technologies&lt;/a&gt;&lt;/b&gt;, introduced &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-4.html"&gt;&lt;b&gt;The RIA Behavior Model&lt;/b&gt;&lt;/a&gt;&lt;/em&gt;, and introduced the &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-5.html"&gt;&lt;b&gt;application measurement&lt;/b&gt;&lt;/a&gt; topic.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Measuring RIA Responsiveness: Complications&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;To explain the challenges of measuring Rich Internet Applications, I will begin by reviewing three significant complications introduced by RIAs. From this discussion, I will draw conclusions about how measuring RIAs will differ from measuring traditional Web applications. &lt;a name="Variety"&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;First Complication: &lt;em&gt;Variety of Possible Behaviors&lt;/em&gt;&lt;/b&gt;&lt;br /&gt;To make meaningful statements about an application's performance, you must first define what you need to measure. Typically you must measure common application usage patterns (or 'scenarios'), or patterns that are important by reason of their business value. When an application uses only a standard browser, its behavior is simple, known, and predictable, limiting the number of interesting usage scenarios to be measured.&lt;br /&gt;&lt;br /&gt;Adding a client-side engine separates user interface actions from server requests and responses, giving application designers many more options. It allows developers to build an application that uses creative, clever ways to transfer display elements and portions of the processing to the client. The custom application behaviors encoded in the client-side engine make the result more complex and its usage less predictable than a traditional browser-based application. This increases the number of possible usage patterns, complicating the task of determining the important scenarios and measuring their performance.&lt;br /&gt;&lt;br /&gt;Having many more design and implementation options also creates new opportunities for developers to make performance-related mistakes. They can (accidentally or deliberately) implement "chatty" client/server communication styles, which under some workload conditions may perform poorly. Even with thorough testing, some of these problems may remain undiscovered until after the application is deployed. A systematic SLM process must include measurement capabilities that provide a way to identify, investigate, and fix these types of problems. &lt;a name="Concurrency"&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Second Complication: &lt;em&gt;Concurrent Activity&lt;/em&gt;&lt;/b&gt;&lt;br /&gt;There are two reasons why it takes a while to download a Web page comprised of 50 separate content elements, no matter how fast your connection. First &lt;a href="http://en.wikipedia.org/wiki/Http"&gt;&lt;b&gt;HTTP&lt;/b&gt;&lt;/a&gt; limits the rate at which clients can request objects from servers, then &lt;a href="http://en.wikipedia.org/wiki/Transmission_Control_Protocol"&gt;&lt;b&gt;TCP&lt;/b&gt;&lt;/a&gt; limits the rate at which the data packets can deliver those objects from server to client. In particular, although the HTTP 1.1 standard allows clients to establish persistent connections with servers, &lt;a href="http://www.faqs.org/rfcs/rfc2616.html"&gt;&lt;b&gt;RFC2616&lt;/b&gt;&lt;/a&gt; defining the standard restricts the number of parallel connections the client (usually a browser) can use: &lt;blockquote&gt;&lt;em&gt;[Section 8.1.4]&lt;/em&gt; Clients that use persistent connections SHOULD limit the number of simultaneous connections that they maintain to a given server. A single-user client SHOULD NOT maintain more than 2 connections with any server or proxy. ... These guidelines are intended to improve HTTP response times and avoid congestion. &lt;/blockquote&gt; Avoiding bottlenecks is a desirable goal in all computer systems, and so the Internet protocols are designed to protect shared network and server resources, no matter how selfishly their users might behave. But flow controls may not always be needed. Consider the metering lights that permit only two cars onto the highway every 30 seconds. During the rush hour they can smooth the flow of traffic and reduce freeway congestion, but if left on at other times, they would delay drivers for no reason. Similarly, when there is plenty of available bandwidth and no server congestion, the limit of two connections per domain is just a governor that restricts the potential rate of data transfer from server to client. &lt;br /&gt;&lt;br /&gt;Nonetheless, modern browsers (including IE) do adhere to this guideline. And it is safest to do so, because DoS logic in some proxy servers might reject connections that do not obey the RFC2616 standard. For a lively discussion of IE behavior and the meaning of 'SHOULD' in the RFC, see this &lt;a href="http://blogs.msdn.com/ie/archive/2005/04/11/407189.aspx"&gt;&lt;b&gt;msdn blog&lt;/b&gt;&lt;/a&gt;, which also points out a relatively simple technique any Web site designer can use to circumvent this limitation, if they feel it is important enough:&lt;blockquote&gt;Savvy web developers can take this connection limit into account and deliver their data from multiple domains, since the browser will open up to two connections per domain.&lt;/blockquote&gt; Although this solution may be fast enough for many applications, most Ajax developers are looking for clever ways to make the client even more responsive. And because Ajax offers almost unlimited application design possibilities, today there is little agreement on the best ways to achieve that goal. This debate was well summarized by Jep Castelein in &lt;a href="http://richui.blogspot.com/2005/09/ajax-latency-problems-myth-or-reality.html"&gt;&lt;b&gt;AJAX Latency problems: myth or reality?&lt;/b&gt;&lt;/a&gt;, a discussion that includes the important reminder that 'IE will have a maximum of 2 simultaneous connections &lt;em&gt;(per domain, actually -- C.L.)&lt;/em&gt;, whether you use XMLHttpRequest or not'. In other words, Ajax implementations are not above the law of HTTP. &lt;br /&gt;&lt;br /&gt;Even so, a primary objective of many RIA designs is to work around the two-connection obstacle to improve responsiveness for the user. The resulting implementations will use many different techniques to communicate with one or more servers. As one data point, consider the opinion of &lt;a href="http://www.allinthehead.com/about/"&gt;&lt;b&gt;Drew McClellan&lt;/b&gt;&lt;/a&gt;, who surely qualifies as &lt;a href="http://www.webstandards.org/about/members/drewm/"&gt;&lt;b&gt;an expert&lt;/b&gt;&lt;/a&gt; in developing Web applications. In his tutorial about JavaScript and the XMLHttpRequest object -- &lt;a href="http://www.xml.com/pub/a/2005/02/09/xml-http-request.html"&gt;&lt;b&gt;Very Dynamic Web Interfaces&lt;/b&gt;&lt;/a&gt; -- Drew concludes that &lt;em&gt;the real challenge here is not figuring out how to make the code work but thinking of interesting ways in which it can be utilized&lt;/em&gt;. &lt;br /&gt;&lt;br /&gt;Such freedom to improvise inevitably complicates measurement -- especially when requests originating from what appear to be separate units of work on a client are really all part of a single logical application. It is easy to sit on a server and measure the traffic, or the demands placed on various server-side resources. And this kind of measurement has its uses, especially when load testing or investigating bottlenecks. But the biggest challenge when measuring applications is correlating those seemingly separate pieces of information with a particular application activity, task, or phase. The more complex the client/server relationship, especially when it involves concurrent interactions, the trickier it becomes for measurement and analysis tools to perform that correlation properly. &lt;a name="Comet"&gt; &lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Third Complication: &lt;em&gt;Asynchronous and Synchronous Communications&lt;/em&gt;&lt;/b&gt;&lt;br /&gt;An earlier post discussed &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-3_06.html"&gt;&lt;b&gt;RIA technologies&lt;/b&gt;&lt;/a&gt;. It described how Flash and Ajax use client-side engines that can be programmed to communicate asynchronously with server(s), independent of a user's actions. This notion is captured in name 'Ajax', in which the initial 'A' stands for 'Asynchronous', and &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-3_06.html#Figure2"&gt;&lt;b&gt;Figure 2&lt;/b&gt;&lt;/a&gt; in that post was taken from Jesse James Garrett's &lt;a href="http://adaptivepath.com/publications/essays/archives/000385.php"&gt;&lt;b&gt;seminal article on Ajax&lt;/b&gt;&lt;/a&gt;. Although Garrett's figure does show how an engine enables asynchronous application behaviors, and differs from a traditional Web app, it does not illustrate the full range of possibilities, which I discussed further in &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-4.html#Engine"&gt;&lt;b&gt;RIA post #4&lt;/b&gt;&lt;/a&gt;. In general, a user action within a Rich Internet Application can trigger zero, one, or many server requests.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Ajax%20and%20Comet.jpg"&gt;&lt;img style="float:left; margin:3px 10px 0 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/200/Ajax%20and%20Comet.jpg" border="0" alt="" /&gt;&lt;/a&gt; Also, most discussions of RIA architecture or technology focus on how asynchronous &lt;em&gt;application behaviors&lt;/em&gt; can improve usability. But they don't question the fact that &lt;em&gt;communication&lt;/em&gt; between browser and server is still synchronous. That is, communication is always initiated by the browser (or the client-side engine operating as an extension of the browser), and follows the standard synchronous HTTP request and response protocol. But in a recent blog post and presentation, Alex Russell of &lt;a href="http://dojotoolkit.org/"&gt;&lt;b&gt;dojo&lt;/b&gt;&lt;/a&gt; proposed the name &lt;a href="http://alex.dojotoolkit.org/?p=545"&gt;&lt;b&gt;Comet&lt;/b&gt;&lt;/a&gt; for a collection of clever techniques that exploit HTTP persistent connections to implement a 'push' model of communication. &lt;br /&gt;&lt;br /&gt;He used an adaptation of Garrett's original Ajax figure to show how Comet extends the Ajax model; this smaller version comes from &lt;a href="http://blog.brains4all.com/brainblog/archives/2006/03/comet.html"&gt;&lt;b&gt;brainblog&lt;/b&gt;&lt;/a&gt;: &lt;br /&gt;&lt;img style="display:block; text-align:center; margin:10px 0 0 0; cursor:pointer; cursor:hand; width:489px" src="http://blog.brains4all.com/brainblog/archives/Comet.png" border="0" alt="The Comet Communication Model"&gt; &lt;br /&gt;Using the Comet techniques, a server uses long-lived persistent connections to send updates to many clients, without even receiving a request (a 'poll') from the client. According to Russell: &lt;blockquote&gt;As is illustrated above, Comet applications can deliver data to the client at any time, not only in response to user input. The data is delivered over a single, previously-opened connection. This approach reduces the latency for data delivery significantly.&lt;br /&gt;&lt;br /&gt;The architecture relies on a view of data which is event driven on both sides of the HTTP connection. Engineers familiar with SOA or message oriented middleware will find this diagram to be amazingly familiar. The only substantive change is that the endpoint is the browser.&lt;br /&gt;&lt;br /&gt;While Comet is similar to Ajax in that it's asynchronous, applications that implement the Comet style can communicate state changes with almost negligible latency. This makes it suitable for many types of monitoring and multi-user collaboration applications which would otherwise be difficult or impossible to handle in a browser without plugins. &lt;/blockquote&gt; Like Ajax, Comet is not a new technology, but a new name for some clever ways to implement an &lt;a href="http://www.wired.com/wired/archive/5.03/ff_push.html"&gt;&lt;b&gt;old&lt;/b&gt;&lt;/a&gt; communication style using standard Web protocols. But as happened with Ajax in 2005, the new name has triggered a lot of interest among developers -- for evidence, just search on 'Ajax', 'Comet', and 'Web' (the last term should eliminate most links to &lt;a href="http://en.wikipedia.org/wiki/Ajax_the_Great"&gt;&lt;b&gt;Greek legends&lt;/b&gt;&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Ajax_Amsterdam"&gt;&lt;b&gt;soccer legends&lt;/b&gt;&lt;/a&gt;, and legendary cleaning products). Especially useful are Russell's slides from his talk (&lt;a href="http://alex.dojotoolkit.org/wp-content/LowLatencyData.pdf"&gt;&lt;b&gt;Comet: Low Latency Data For Browsers&lt;/b&gt;&lt;/a&gt;) at the recent O'Reilly &lt;a href="http://conferences.oreillynet.com/etech/"&gt;&lt;b&gt;ETech Conference&lt;/b&gt;&lt;/a&gt;, and Phil Windley's excellent &lt;a href="http://www.windley.com/archives/2006/03/alex_russell_on.shtml"&gt;&lt;b&gt;write-up&lt;/b&gt;&lt;/a&gt; of the talk.&lt;br /&gt;&lt;br /&gt;The complexity of a push architecture is justified only for applications that manage highly volatile shared data. But when it &lt;em&gt;is&lt;/em&gt; implemented, it creates an entirely new set of measurement challenges. If information pushed to the client does help the user to work faster, its benefits will be reflected in normal measurements of application responsiveness. But you can't use normal responsiveness metrics to evaluate a server-initiated activity that simply updates information a user is already working with. &lt;br /&gt;&lt;br /&gt;New metrics must be devised. Depending on the application, we may need to measure the currency or staleness of information available to the user, or maybe the percentage of times a user's action is invalidated by a newly received context update from the server. This kind of "hiccup" metric is conceptually similar to the frequency of rebuffering incidents, one measure of streaming quality. Server capacity will also be a major issue requiring careful design and load testing. These are new SLM challenges facing anyone who decides to implement the Comet approach. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Measuring RIA Responsiveness: Conclusions&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;While discussing the three major complications introduced by RIAs, I have already noted some consequences: measurements may become harder to specify, more difficult to correlate, and may even require the invention of new metrics. But I have been saving the punch-line until the end. I will now discuss my three most important and far-reaching conclusions about measuring RIAs, each of which involves a significant change from the way Web applications are measured today. These changes deal with the issues of &lt;em&gt;what&lt;/em&gt;, &lt;em&gt;where&lt;/em&gt;, and &lt;em&gt;how&lt;/em&gt; to measure. &lt;a name="Milestones"&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;RIAs: What to Measure?&lt;/b&gt;&lt;br /&gt;The short answer? Not individual Web pages. First and foremost, because the asynchronous aspects of the RIA model undermine two fundamental assumptions about Web applications and what to measure: &lt;ul&gt;&lt;li&gt;We can no longer think of a Web application as comprising a series of Web pages. &lt;li&gt;We can no longer assume that the time it takes to complete a Web page download corresponds to something a user perceives as important. &lt;/ul&gt; In fact, when a client-side engine can be programmed to continually download new content, or a server-side engine can keep pushing new content to the browser over a connectionn that never closes, some page downloads may never complete.&lt;br /&gt;&lt;br /&gt;Therefore to report useful measurements of the user experience of response times, instead of relying on the definition of physical Web pages to drive the subdivision of application response times, we must break the application into what we might call &lt;em&gt;'logical pages'&lt;/em&gt;. To do this, a measurement tool must recognize meaningful application &lt;em&gt;milestones&lt;/em&gt; or &lt;em&gt;markers&lt;/em&gt; that signal logical boundaries of interest for reporting, and thus subdivide the application so that we can identify and report response times by logical page. &lt;br /&gt;&lt;br /&gt;Because (as I noted earlier) it is usually hard to correlate seemingly separate pieces of measurement data after the fact, I conclude that these milestones will have to be identified before measurement takes place. They could be key events or downloads that always occur naturally within the application. Or they could require proactive instrumentation, for example using little downloadable content elements that developers deliberately imbed at logical boundaries in the application's flow, to enable its subsequent measurement.&lt;br /&gt;&lt;br /&gt;The former method places the burden on those setting up measurements to first identify application-specific milestones. The latter frees the measurement tool from the need to know anything about the application, but places the burden on application developers to instrument their code by inserting markers at key points. &lt;a name="Comparing"&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Comparing Apples and Oranges?&lt;/b&gt;&lt;br /&gt;Second, when setting out to measure a RIA, you must think carefully about the purpose of the measurement, especially if the RIA is replacing a traditional Web application, or being compared with one. You must not let the traditional Web approach to a business task determine what measurements are taken. Aleks Šušnjar (see &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-2.html"&gt;&lt;b&gt;post [2]&lt;/b&gt;&lt;/a&gt; in this series) provided the following insights: &lt;blockquote&gt;We can't compare apples and oranges by measuring either an apple or an orange. We need to approach measurement as if we were comparing two applications built by different developers -- one a traditional Webapp and the other a client/server app with a completely different UI. &lt;br /&gt;&lt;br /&gt;In this situation, we cannot measure only at the level of single Web pages or server interactions. Finding that &lt;em&gt;it takes so many milliseconds to get a server response for request-type X&lt;/em&gt; is meaningless if that client/server interaction does not occur in both versions of the application. &lt;br /&gt;&lt;br /&gt;In my experience, a typical example concerned how long it took to upload or download a document. But those metrics were sometimes irrelevant, depending on the application context. So to make really useful performance comparisons, we had to approach the problem at a higher level -- for example, 'how long does it take to move a document from folder A to folder B?' In a traditional Web app that task would likely require multiple clicks on separate pages, whereas with an RIA/Ajax implementation, we could do it with a single drag and drop. &lt;br /&gt;&lt;br /&gt;So to make valid comparisons, we had to measure and compare the net effect of two rather different aspects of performance -- one concerning only the computer (how many operations of type X can a machine perform per hour), the other involving human performance (how many documents can an employee move per hour). But both affected the overall conclusion. Generalizing, I would say that: &lt;ul&gt; &lt;li&gt;The server that has to generate additional HTML for multiple responses in a traditional Web app will likely use many more processor cycles than the one supporting an RIA/Ajax implementation, where all the user interactions are handled on the client and the server just has to provide a service at the end. &lt;li&gt;If the designer takes care to avoid 'chatty' client/server communications, network utilization will probably also be significantly lower in the second case, further improving server performance. &lt;li&gt;Finally, if the client-side interface is well designed, a RIA should allow users to think and work faster. &lt;/ul&gt; In the final analysis, all these components of application performance must be weighed.&lt;/blockquote&gt; Aleks' insights come from his own experience developing a Rich Internet Application -- for more details see &lt;a href="http://tinyurl.com/lcfk4"&gt;&lt;b&gt;his Wikipedia page&lt;/b&gt;&lt;/a&gt; about RIA and AJAX. &lt;a name="Passive"&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;RIAs: Where to Measure?&lt;/b&gt;&lt;br /&gt;You might think that to measure a user's experience of responsiveness, you would have to use a tool that collects measurements from the user's workstation, or at least from a measurement computer that is programmed to generate synthetic actions that imitate the behavior of a typical user. Surprisingly, this is not actually the case for traditional Web applications. &lt;br /&gt;&lt;br /&gt;While synthetic measurements require computers to mimic both a user's actions and their geographical location, software that collects passive measurements of real user actions can in fact reside either on the client machine or on a machine that is close to the server, usually just behind the firewall -- just so long as that machine can observe the flow of network traffic at the TCP and HTTP levels. Because of the synchronous and predictable nature of these protocols, a measurement tool that can read and interpret the flow of packets can actually deduce the user's experience of response time by tracking HTTP message traffic and the lower-level timings of TCP data packets and (crucially) TCP acknowledgements. &lt;br /&gt;&lt;br /&gt;Such a tool is called a packet sniffer, or protocol analyzer. Packet sniffing has a bad name in some quarters, being associated with malicious snooping by hackers. But in the right hands, it is a legitimate analysis technique used by some Web measurement tools to deduce client-side performance without actually installing any components, hardware or software, anywhere near the users.&lt;br /&gt;&lt;br /&gt;Unfortunately for these tools, the growth of RIAs will make it progressively more difficult to exploit this clever approach. The RIA Behavior Reference Model (&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/RIA%20Reference%20Model%20v2.2.png"&gt;&lt;b&gt;this figure&lt;/b&gt;&lt;/a&gt;) I introduced previously makes it clear that RIAs -- even without the further complications introduced by a Comet push architecture severely limit the power of the packet sniffing approach. That's because we can no longer characterize response time as the time to complete the synchronous round trip of:  &lt;br /&gt;&lt;br /&gt;Click(C) =&gt; Browser(B) =&gt; Request(Q) =&gt; Server(S) =&gt; Response(R) =&gt; Display(D)&lt;br /&gt;&lt;br /&gt;Instead the client-side engine in the RIA architecture breaks apart this cycle into two separate cycles operating asynchronously:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The user-client cycle:&lt;/b&gt; Click(C) =&gt; Engine(E) =&gt; Display(D) &lt;em&gt;-- [CED, for short]&lt;/em&gt;&lt;br /&gt;&lt;b&gt;The client-server cycle:&lt;/b&gt; Request(Q) =&gt; Server(S) =&gt; Response(R) &lt;em&gt;-- [QSR, for short]&lt;/em&gt;&lt;br /&gt;   &lt;br /&gt;Another way of describing these cycles might be as 'foreground' (CED) and 'background' (QSR). Both cycles are important, because neither stands alone; it is their relationship that defines application behavior. But that relationship depends only on the application design, which cannot (in general) be inferred by a measurement tool, especially one that can observe only one of the two cycles.&lt;br /&gt;&lt;br /&gt;I conclude therefore that to measure RIAs, tools will have to reside on the client machine, where they can see both the level of responsiveness experienced by the browser (the QSR cycle) and the user's experience of responsiveness (the CED cycle). Granted, QSR cycles can still be monitored by the traditional packet sniffing methods, but tracking them will permit only limited inferences to be made about the CED cycle, which is separately managed by the client-side engine. &lt;br /&gt;&lt;br /&gt;One might imagine that tracking the times of certain previously identified 'marker' objects within the QSR stream could solve this problem, especially since I already concluded (above) that marker objects will be needed to delimit the logical pages of RIAs. But in order to be able to draw conclusions about CED times by seeing those markers in the QSR stream, a measurement tool must impose a lot of constraints on the design of the client-side engine. An engine that implemented truly asynchronous behaviors (such as anticipatory buffering) would make it difficult or impossible to assess the user's actual experience without a measurement presence on the client side to observe the CED cycle. &lt;br /&gt;&lt;br /&gt;Either that, or the marker objects would themselves need to be active scripts that triggered timing events that were somehow transmitted to the server (in a manner similar to &lt;a href="http://www.opengroup.org/management/arm/"&gt;&lt;b&gt;ARM&lt;/b&gt;&lt;/a&gt;), rather than simply being passive milestones. But once again, this approach is tantamount to placing a measurement capability on the client. (Indeed, in the context of RIAs, dynamically distributing little measurement scripts that function as extensions to the client-side engine would be a natural approach). I therefore conclude that an approach comprising only passive listening on the server side will be insufficient to measure RIA responsiveness. &lt;a name="UserActions"&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;RIAs: How to Measure?&lt;/b&gt;&lt;br /&gt;We have seen that RIAs will affect &lt;em&gt;where&lt;/em&gt; a &lt;em&gt;passive&lt;/em&gt; measurement tool can be used. &lt;em&gt;Active&lt;/em&gt; measurement tools, because their modus operandi is to simulate the user's behavior, are not affected by this issue -- since they mimic the client, they naturally reside there. For these measurement tools, the issue raised by RIAs is &lt;em&gt;how closely a user's behavior needs to be emulated&lt;/em&gt;. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;User Actions:&lt;/b&gt; First, note that RIAs can generate back-end traffic in response to any user action, and not only when the user clicks. For example, the &lt;a href="http://maps.google.com/"&gt;&lt;b&gt;Google maps&lt;/b&gt;&lt;/a&gt; application can trigger preloading of adjacent map segments based on the direction of a user's cursor movement within the map display. Therefore to measure RIA responsiveness, an active measurement tool must simulate the &lt;em&gt;user's&lt;/em&gt; actions, not the &lt;em&gt;engine's&lt;/em&gt; actions. This further explains &lt;em&gt;why&lt;/em&gt; active tools &lt;em&gt;must&lt;/em&gt; reside at the client.&lt;br /&gt;&lt;br /&gt;In other words, using the terminology introduced earlier, active measurement tools must drive the CED cycle, not the QSR cycle. The former involves driving the client-side engine to obtain its backend behavior; the latter would require the tool user to supply a complete script of the engine's behavior to the active measurement tool. The latter involves more work and is inherently more difficult and mistake prone, and therefore much less useful. &lt;a name="ThinkTime"&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Think Times:&lt;/b&gt; Second, an active measurement tool must properly reflect then fact that a client-side engine may be doing useful work in the background, while a user is reading the previous response or deciding what to do next. It may, for example, be prefetching content in anticipation of the user's next action. Therefore the time a user devotes to these activities -- jointly represented as 'think time' in the RIA Behavior Model -- may affect their perception of the application's responsiveness. &lt;br /&gt;&lt;br /&gt;For passive measurements of real user traffic, this is not a problem, because their measurement data always includes the effects of the users' actual think times. But for traditional Web apps, synthetic measurement tools have not needed to simulate think times by pausing between simulated actions, because introducing such delays would not have altered the result. When measuring an RIA however, setting think time to zero (as is typically done today) could have the effect of eliminating or minimizing potential background preloading activity, thus maximizing the perceived response times of later user actions. &lt;br /&gt;&lt;br /&gt;And because the engine's behavior during think time varies by application, a measurement tool cannot simply measure content download times then introduce simulated think times during the reporting phase. Combining individual component measurements after the fact to produce a realistic estimate of user experience would be like trying to construct a &lt;a href="http://en.wikipedia.org/wiki/PERT"&gt;&lt;b&gt;PERT chart&lt;/b&gt;&lt;/a&gt; for a volatile project when you are not sure you know all the tasks and also cannot be sure about all their interdependencies -- in other words, impossible.&lt;br /&gt;&lt;br /&gt;While people familiar with the project could probably construct the chart and draw conclusions about the project's duration, a general-purpose tool cannot. But in software performance and analysis work, the most difficult and error-prone aspect is combining low level measurements to draw conclusions about user-related metrics like transaction response time. So most users of application measurement tools want to be told the bottom line, namely the user experience, not just the underlying component times. &lt;br /&gt;&lt;br /&gt;Therefore I conclude that to reflect a user's experience, an active measurement tool will have to simulate user think times &lt;em&gt;during the measurement process&lt;/em&gt;. Using realistic think times (as the best load testing tools already do today) will produce the most realistic measure of the response times a user perceives during a particular application use case.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;br /&gt;Since this has been a long post I will now summarize my conclusions, with links back to the discussion behind each: &lt;ul&gt; &lt;li&gt;&lt;a href="#Variety"&gt;&lt;b&gt;The variety&lt;/b&gt;&lt;/a&gt; of possible RIA behaviors creates new opportunities for developers to make performance-related mistakes, requiring more systematic approaches to measurement. &lt;li&gt;&lt;a href="#Concurrency"&gt;&lt;b&gt;Concurrent&lt;/b&gt;&lt;/a&gt; client/server interactions make it difficult for measurement and analysis tools to correlate seemingly separate pieces of data with a particular application activity. &lt;li&gt;&lt;a href="#Comet"&gt;&lt;b&gt;RIA push models&lt;/b&gt;&lt;/a&gt; (like 'Comet') will require the invention of new metrics to measure effectiveness. &lt;li&gt;&lt;a href="#Milestones"&gt;&lt;b&gt; Milestones&lt;/b&gt;&lt;/a&gt; must be specified in advance to allow measurement tools to group RIA measurements into 'logical pages' or tasks. &lt;li&gt;&lt;a href="#Comparing"&gt;&lt;b&gt;To compare&lt;/b&gt;&lt;/a&gt; the performance of a RIA with a traditional Webapp, you must measure equally important activities within each. &lt;li&gt;&lt;a href="#Passive"&gt;&lt;b&gt;Passive monitoring &lt;/b&gt;&lt;/a&gt;of server requests will be insufficient to determine a user's perception of RIA responsiveness. &lt;li&gt;Active measurement tools must &lt;a href="#UserActions"&gt;&lt;b&gt;simulate user actions&lt;/b&gt;&lt;/a&gt;, not just engine actions, to measure RIA responsiveness. &lt;li&gt;Active measurement tools must &lt;a href="#ThinkTime"&gt;&lt;b&gt;simulate user think times&lt;/b&gt;&lt;/a&gt; during the measurement process, to reflect a user's experience accurately. &lt;/ul&gt; &lt;b&gt;Next ...&lt;/b&gt;&lt;br /&gt;This completes (for now) my analysis of the challenges of measuring RIAs; any further ideas will have to wait until future posts. Next I will consider how the introduction of RIAs may affect SLM processes that were designed and fine-tuned to manage traditional Web applications.&lt;em&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-114331411343047828?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/114331411343047828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=114331411343047828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114331411343047828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114331411343047828'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-6.html' title='Managing Rich Internet Applications [6]'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-114258460453407623</id><published>2006-03-17T08:32:00.000Z</published><updated>2006-03-17T20:29:42.806Z</updated><title type='text'>Managing Rich Internet Applications [5]</title><content type='html'>&lt;em&gt;This is the fifth post in a series devoted to the challenges of Service Level Management (SLM) for Rich Internet Applications (RIAs). In these applications, some processing is transferred to the Web client while some remains on the application server. Previous posts &lt;a href="http://performancematters.blogspot.com/2006/02/managing-rich-internet-applications-1.html"&gt;&lt;b&gt;introduced the subject&lt;/b&gt;&lt;/a&gt; and the &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-2.html"&gt;&lt;b&gt;SLM topics&lt;/b&gt;&lt;/a&gt; I plan to address, reviewed &lt;b&gt;&lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-3_06.html"&gt;RIA technologies&lt;/a&gt;&lt;/b&gt;, and introduced &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-4.html"&gt;&lt;b&gt;The RIA Behavior Model&lt;/b&gt;&lt;/a&gt;&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Measuring RIA Responsiveness: Introduction&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Having been sidetracked by my &lt;a href="http://performancematters.blogspot.com/2006/03/deep-thoughts-on-management.html"&gt;&lt;b&gt;interesting but futile search&lt;/b&gt;&lt;/a&gt; for the origin of the saying &lt;em&gt;'you can't manage what you can't measure'&lt;/em&gt;, I am now almost ready to examine some of the challenges of measuring Rich Internet Applications. But first I must spell out the motivations for measuring an application, and explain why the choice of an &lt;em&gt;active&lt;/em&gt; or &lt;em&gt;passive&lt;/em&gt; measurement methodology is of only secondary importance to this discussion.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Why Measure Applications?&lt;/b&gt;&lt;br /&gt;Reasons for measuring application performance fall into two classes, one client-centric, the other server-centric. They are: &lt;oL&gt;&lt;li&gt;MEASUREMENT: Determining how quickly the users can achieve their goals: &lt;ul&gt;&lt;br /&gt;&lt;li&gt;(a) Verifying that the application meets its service level objectives&lt;br /&gt;&lt;li&gt;(b) Detecting abnormal application behavior (typically, slow response) &lt;br /&gt;&lt;li&gt;(c) Identifying bottlenecks in application components &lt;br /&gt;&lt;li&gt;(d) Comparing builds, versions, or releases of an application &lt;br /&gt;&lt;li&gt;(e) Comparing two applications (e.g. our app vs. competitor's version) &lt;/ul&gt;&lt;br /&gt;&lt;li&gt;LOAD TESTING: Determining how a system behaves under increasing load:&lt;br /&gt;&lt;ul&gt; &lt;br /&gt;&lt;li&gt;(a) Verifying that the system will be able to handle the projected traffic &lt;br /&gt;&lt;li&gt;(b) Determining how many users a given server environment can handle &lt;br /&gt;&lt;li&gt;(c) Predicting bottleneck components as workload levels grow&lt;br /&gt;&lt;li&gt;(d) Comparing builds, versions, or releases of an application &lt;br /&gt;&lt;li&gt;(e) Identifying components that fail after extended use &lt;/ul&gt; &lt;/ol&gt;As I have indicated, activities in the first class are conventionally called 'measurement', while those in the second are referred to as 'load testing', or simply 'testing'. So although both classes require us to address many common measurement problems, I will simplify my description of these problems by using the conventional terminology to distinguish the two classes of activties.  &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Active vs. Passive Measurement&lt;/b&gt;&lt;br /&gt;A few years ago I edited a version of the &lt;em&gt;Network Measurement FAQ&lt;/em&gt; originally produced by a &lt;a href="http://www.caida.org/home/"&gt;&lt;b&gt;CAIDA&lt;/b&gt;&lt;/a&gt; working group, for publication by &lt;a href="http://www.cmg.org/"&gt;&lt;b&gt;CMG&lt;/b&gt;&lt;/a&gt;. The online FAQ seems to have gone into hiding, but you can still download the CMG paper, &lt;a href="http://www.avoka.com/resources/keynote/Fundamentals_of_Internet_Measurement_A_Tutorial.pdf"&gt;&lt;b&gt;Fundamentals of Internet Measurement: A Tutorial&lt;/b&gt;&lt;/a&gt;. Although it is about network measurement, a couple of paragraphs introduce the concepts of active and passive measurements:&lt;blockquote&gt; &lt;b&gt;Passive measurements&lt;/b&gt; are carried out by observing normal network traffic, so they do not perturb the network. They are commonly used to measure traffic flows, i.e. counting the number of packets and bytes travelling through routers or links between specified sources and destinations. &lt;br&gt;&lt;br&gt; &lt;b&gt;Active measurements&lt;/b&gt;, on the other hand, are performed by sending test traffic into the network. For example, one might measure a network's maximum carrying capacity by sending packets through it and increasing the sending rate until the network is saturated. Clearly one needs to be aware that active measurements impose extra traffic onto a network and can distort its behavior in the process, thereby affecting measurement results. &lt;/blockquote&gt; When measuring Web applications, similar definitions and concerns apply, except at the level of application traffic and the server infrastuctures that deliver applications. While load testing requires an active measurement approach, application responsiveness can be measured using either active or passive methods. &lt;br /&gt;&lt;br /&gt;However, no matter which is used, the passive and active measurement approaches differ only in the way application traffic is &lt;em&gt;generated&lt;/em&gt; -- both still require mechanisms to &lt;em&gt;measure&lt;/em&gt; that traffic. Passive measurements must capture the behavior and experience of &lt;em&gt;real&lt;/em&gt; application users, while active measurements must do the same for &lt;em&gt;synthetic&lt;/em&gt; users, that is, computers mimicing the behavior of real users.&lt;br /&gt;&lt;br /&gt;This is fortunate, because to discuss the pros and cons of real and synthetic monitoring would require a major blog post. In fact I gave a short presentation on that topic at Interop last year, which would provide the structure required. But for now I will simply note that both real and synthetic application users have to be measured, and RIAs present many common measurement challenges, which I will be describing in my next post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-114258460453407623?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/114258460453407623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=114258460453407623' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114258460453407623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114258460453407623'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-5.html' title='Managing Rich Internet Applications [5]'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-114237306326873370</id><published>2006-03-14T21:48:00.000Z</published><updated>2006-12-06T22:56:42.583Z</updated><title type='text'>Deep Thoughts on Management</title><content type='html'>Since I am writing a series of posts about &lt;em&gt;managing&lt;/em&gt; Rich Internet Applications, and working on a post about the difficulties of &lt;em&gt;measuring&lt;/em&gt; them, I thought I should begin with the popular management aphorism that &lt;em&gt;you can't manage what you can't measure&lt;/em&gt;. Well, was that ever a diversion! Everyone is familiar with this saying, but interestingly, despite a ton of digging on the Web, the precise origin of this saying remains obscure (at least, to me). &lt;br /&gt;&lt;br /&gt;Perhaps because of my training in statistics, I had always assumed it was just a simplification of a famous statement by &lt;a href="http://en.wikipedia.org/wiki/William_Thomson,_1st_Baron_Kelvin"&gt;&lt;b&gt;Lord Kelvin&lt;/b&gt;&lt;/a&gt;, often &lt;a href="http://ourworld.compuserve.com/homepages/Rainer_Wuerlaender/statquot.htm#citation"&gt;&lt;b&gt;cited&lt;/b&gt;&lt;/a&gt; by statisticians: &lt;blockquote&gt;When you can measure what you are speaking about and express it in numbers, you know something about it; but when you cannot measure it, when you cannot express it in numbers, your knowledge is of a meager and unsatisfactory kind. It may be the beginning of knowledge, but you have scarcely advanced to the stage of science.&lt;/blockquote&gt; Unfortunately, there does not seem to be a lot of support for my assumption. Instead, my Web searches have revealed that the statement &lt;em&gt;'you can't manage what you can't measure'&lt;/em&gt; is most often attributed either to the pioneer of quality control, &lt;a href="http://en.wikipedia.org/wiki/W._Edwards_Deming"&gt;&lt;b&gt;W. Edwards Deming&lt;/b&gt;&lt;/a&gt;, or to 'the father of modern management', &lt;a href="http://www.peter-drucker.com/"&gt;&lt;b&gt;Peter Drucker&lt;/b&gt;&lt;/a&gt;. Moreover, neither of these popular attributions seems to be correct.&lt;br /&gt;&lt;br /&gt;In Deming's case, one of his most well-known statements is almost the exact &lt;em&gt;opposite&lt;/em&gt;, namely that management must take account of many things that &lt;em&gt;cannot be&lt;/em&gt; measured, and that running a company on visible figures alone was one of the &lt;a href="http://curiouscat.com/management/sevendeadlydiseases.cfm"&gt;&lt;b&gt;seven deadly diseases of management&lt;/b&gt;&lt;/a&gt;. All the same, I'm sure Deming, given his interest in quality control, would have also agreed that things which &lt;em&gt;can be&lt;/em&gt; measured &lt;em&gt;should be&lt;/em&gt; measured, And all SLM processes are &lt;a href="http://performancematters.blogspot.com/2005/10/abcs-of-measurement-data.html"&gt;&lt;b&gt;based on measurements&lt;/b&gt;&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Attribution to Peter Drucker also seems to be a misconception, since it does not appear either in the &lt;a href="http://en.wikiquote.org/wiki/Peter_Drucker"&gt;&lt;b&gt;wikiquote list&lt;/b&gt;&lt;/a&gt; of quotes from Drucker, or in other &lt;a href="http://www.brainyquote.com/quotes/authors/p/peter_f_drucker.html"&gt;&lt;b&gt;extensive lists&lt;/b&gt;&lt;/a&gt; of his well-known sayings. But doing this research reminded me of the many insightful statements Drucker actually &lt;em&gt;did&lt;/em&gt; make, including: &lt;ul&gt; &lt;li&gt;Management is doing things right; leadership is doing the right things. &lt;li&gt;There is nothing so useless as doing efficiently that which should not be done at all. &lt;li&gt;A manager's task is to make the strengths of people effective and their weakness irrelevant--and that applies fully as much to the manager's boss as it applies to the manager's subordinates. &lt;li&gt;Management is so much more than exercising rank and privilege, ... it is much more than "making deals." Management affects people and their lives. &lt;li&gt;Rank does not confer privilege or give power. It imposes responsibility. &lt;li&gt;Executives owe it to the organization and to their fellow workers not to tolerate nonperforming individuals in important jobs. &lt;li&gt;Most of what we call management consists of making it difficult for people to get their work done. &lt;li&gt; The most efficient way to produce anything is to bring together under one management as many as possible of the activities needed to turn out the product. &lt;li&gt;Increasingly, politics is not about "who gets what, when, how" but about values, each of them considered to be absolute. Politics is about "the right to life"...It is about the environment. It is about gaining equality for groups alleged to be oppressed...None of these issues is economic. All are fundamentally moral. &lt;li&gt;What's absolutely unforgivable is the financial benefit top management people get for laying off people. There is no excuse for it. No justification. This is morally and socially unforgivable, and we will pay a heavy price for it. &lt;li&gt;Unless commitment is made, there are only promises and hopes... but no plans. &lt;li&gt;The best way to predict the future is to create it. &lt;/ul&gt;This post is an example of what happens when I do research on the Web -- I find a lot of interesting information I was not even looking for. So this post became a diversion about the management insights of Edward Deming and Peter Drucker, and in my next one I will get back to the subject of measuring RIAs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-114237306326873370?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/114237306326873370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=114237306326873370' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114237306326873370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114237306326873370'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/03/deep-thoughts-on-management.html' title='Deep Thoughts on Management'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-114196931886424009</id><published>2006-03-10T05:25:00.000Z</published><updated>2006-03-24T23:24:29.376Z</updated><title type='text'>Managing Rich Internet Applications [4]</title><content type='html'>&lt;em&gt;This is the fourth post in a series devoted to the challenges of Service Level Management (SLM) for Rich Internet Applications (RIAs). In these applications, some processing is transferred to the Web client while some remains on the application server. Previous posts &lt;a href="http://performancematters.blogspot.com/2006/02/managing-rich-internet-applications-1.html"&gt;&lt;b&gt;introduced&lt;/b&gt;&lt;/a&gt; the subject, listed &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-2.html"&gt;&lt;b&gt;topics&lt;/b&gt;&lt;/a&gt; I plan to address, and reviewed &lt;b&gt;&lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-3_06.html"&gt;RIA technologies&lt;/a&gt;&lt;/b&gt;.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The RIA Behavior Model&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In an earlier post I discussed the idea of using a &lt;a href="http://performancematters.blogspot.com/2005/10/value-of-reference-models.html"&gt;&lt;b&gt;reference model&lt;/b&gt;&lt;/a&gt; to establish a shared &lt;em&gt;frame of reference&lt;/em&gt;, or &lt;em&gt;conceptual framework&lt;/em&gt;, to structure subsequent discussions of a subject. Today I introduce a new reference model -- The RIA Behavior Model -- illustrated by the diagram below. &lt;br /&gt;&lt;br /&gt;I intend this model to represent the principal elements of the behavior of RIAs, elements that must be considered in any discussion of RIA performance and management. Note however that I am not attempting to address the complex human forces that &lt;em&gt;determine&lt;/em&gt; perceptual, cognitive, and motor behaviors. I am merely seeking to represent a few generalized &lt;em&gt;behavioral outcomes&lt;/em&gt; that are relevant in the context of an interaction between a human user and a Rich Internet Application.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/RIA%20Reference%20Model%20v2.2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/400/RIA%20Reference%20Model%20v2.1.jpg" border="0" alt="RIA Reference Model"&gt;&lt;/a&gt;&lt;br /&gt;As you can see, this model embraces more concepts than the two figures created by Jesse Garrett &lt;a href="http://adaptivepath.com/publications/essays/archives/000385.php"&gt;&lt;b&gt;to introduce Ajax&lt;/b&gt;&lt;/a&gt;, which I included in my previous post. Those figures are ideal for explaining the differences between traditional Web applications and RIAs. But to discuss how the combination of a Rich Internet Application and a user will actually &lt;b&gt;behave&lt;/b&gt;, I have included several more elements that interact to determine behavior, which I will now describe. &lt;br /&gt;&lt;br /&gt;At the highest level, the model comprises three major aspects (indicated by the color coding in the figure), each of which influences application performance: &lt;ol&gt;&lt;li&gt;The application's design and usage environment, or context (upper row, grey) &lt;li&gt;The user's expectations and behavior (lower left, blue) &lt;li&gt;The application's behavior when used (lower right, yellow) &lt;/ol&gt; &lt;b&gt;Browser/Server Interaction&lt;/b&gt;&lt;br /&gt;If we consider a Web browser to be the simplest form of &lt;em&gt;client engine&lt;/em&gt;, then the solid black arrows trace the flow of a traditional Web page download. The user &lt;em&gt;clicks&lt;/em&gt; on a link in their browser, the browser sends &lt;em&gt;requests&lt;/em&gt; to one or more &lt;em&gt;servers&lt;/em&gt;. Servers &lt;em&gt;respond to client requests&lt;/em&gt;, and when there is enough of the requested &lt;em&gt;content on the client&lt;/em&gt; (in the browser cache), the browser renders it ('paints' the screen), and the user can &lt;em&gt;view&lt;/em&gt; it. The &lt;em&gt;user's experience of response time&lt;/em&gt; is the elapsed time of the entire process, 'from click to paint'.&lt;br /&gt;&lt;br /&gt;Even a single Web page download will normally involve many round trips between client (browser) and server, because most Web pages are an assemblage of content elements such as CSS files, script files, and embedded images, each of which is separately downloaded by the browser. &lt;br /&gt;&lt;br /&gt;In the traditional synchronous Web application, illustrated in the upper half of Garrett's &lt;em&gt;Figure 2&lt;/em&gt;, this process is repeated several times. Because applications usually require an exchange of information, at least one of the &lt;em&gt;requests&lt;/em&gt; the browser sends to the server will normally be an HTTP POST (as opposed to the much more common HTTP GET request), to upload some data a user has entered into a form. Consider, for example, shopping at amazon.com as a return visitor. At minimum, even if the application recognizes you from a cookie, you must enter your password again to confirm your identity. But after that, the site already has all your personal information, and you can complete your transaction just by clicking on the right buttons on each page as it is presented to you.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Server-Side Elements&lt;/b&gt;&lt;br /&gt;We are all familiar with this kind of Web application and its behavior. But unless you are responsible for site management or performance, you may be less aware of some of the other server-side elements of the model. Servers must field requests concurrently from many &lt;em&gt;users&lt;/em&gt;. No matter how powerful the server, every concurrent user consumes their small share of the server's resources: &lt;em&gt;memory&lt;/em&gt;, &lt;em&gt;processor&lt;/em&gt;, and &lt;em&gt;database&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Web servers can respond rapidly to stateless requests for information from many concurrent users, making catalog browsing a relatively fast and efficient activity. But when a user's action (such as clicking the 'add item to shopping cart' button) requires the server to update something, more of those server resources are consumed. So the number of concurrent transactions -- server interactions that update a customer's stored information -- plays a vital role in determining server performance. &lt;br /&gt;&lt;br /&gt;In the model, the grey arrows and the boxes labeled &lt;em&gt;Users&lt;/em&gt; and &lt;em&gt;Transactions&lt;/em&gt; represent the fact that server performance is strongly influenced by these two concurrency factors. Servers typically perform uniformly well up to a certain concurrency level, but above that level ('the knee of the curve') transaction performance quickly degrades, as one of the underlying resources becomes a bottleneck. Because of this characteristic, seemingly small design changes in an application or in the infrastructure serving the application may, if they extend the duration of transactions, have a significant effect on the user's experience of response time. &lt;a name="Engine"&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Adding a Client-Side Engine&lt;/b&gt;&lt;br /&gt;Adding a client-side engine does not prevent an application from implementing the traditional synchronous design described above. But RIAs aim to improve the user's experience, and a client-side engine allows the application designer to consider many additional possibilities, such as:&lt;ul&gt;&lt;li&gt;Prefetching of content to client &lt;li&gt;Lazy loading of content &lt;li&gt;Just In Time fetching of content &lt;li&gt;Client-side validation of user input &lt;li&gt;Client-side only responses to user input &lt;li&gt;Batching of server inputs on the client &lt;li&gt;Offloading of server function to client machines&lt;/ul&gt; If any of these techniques are employed, the resulting application will inevitably be more complex than the traditional synchronous application. The challenge of SLM is to ensure that a more complex design actually does produce a more responsive user experience, because -- despite the optimistic claims being made for Ajax and Flash -- there are no guarantees.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Improving the User Experience&lt;/b&gt;&lt;br /&gt;For example, a common method of accelerating client-side response is to anticipate the user's next action(s) and program the engine to &lt;em&gt;preload&lt;/em&gt; (or &lt;em&gt;prefetch&lt;/em&gt;) some content 'in the background', while the user is thinking. Depending on their think time, when the user clicks, part or all of the desired response can be already available on the client. This technique has long been used in client/server systems to improve client responsiveness; a version (called &lt;a href="http://www.mozilla.org/projects/netlib/Link_Prefetching_FAQ.html"&gt;&lt;b&gt;Link Prefetching&lt;/b&gt;&lt;/a&gt;) is implemented by Mozilla browsers.&lt;br /&gt;&lt;br /&gt;Preloading will certainly create a more responsive experience -- if the user actually follows the anticipated path through the application. But what if they don't? Then the client engine has made extra server requests that turned out to be unnecessary, and it still has to react to the user's input with yet more server requests. So the design has placed extra load on the servers, for no benefit. &lt;br /&gt;&lt;br /&gt;The extra load serving these 'background' requests, on behalf of what may be hundreds or even thousands of clients running the preloading application, can slow down a server's responses to requests that users are actually waiting for. Slower responses lengthen transaction times, which drives up the number of concurrent users, clogging up the servers even more, and further slowing down responses. It's a vicious circle.&lt;br /&gt;&lt;br /&gt;Even if the application serves some users quickly, those whose usage patterns do not match the profile the application designer had in mind will probably not receive such good service, and (in the worst case) may &lt;em&gt;abandon&lt;/em&gt; transactions before completing them. Apart from the lost opportunity to serve a customer, abandonment usually also wastes scarce server resources, because the allocations earmarked for now-abandoned transactions languish unused until finally freed by some type of timeout mechanism.&lt;br /&gt;&lt;br /&gt;People who design and test back-end systems already know that behavioral variables like &lt;em&gt;user think-time distributions&lt;/em&gt; and &lt;em&gt;abandonment rates per page&lt;/em&gt; have a significant influence on the capacity and responsiveness of servers under load. Today, RIAs (as indicated by the dotted lines in the diagram) give application designers the flexibility to create application designs that attempt to take account of such behavioral variables. But a consequence is that RIAs also magnify the risk of failure should the designer miscalculate: a simple design applied well beats a clever design misapplied.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The Application Environment&lt;/b&gt;&lt;br /&gt;This brings us to the crucial importance of the design and usage environment, represented by the grey boxes in the model. A user's satisfaction with any application depends on their &lt;em&gt;usage context and environment&lt;/em&gt;; in other words, how well the &lt;em&gt;application design&lt;/em&gt; matches &lt;em&gt;their&lt;/em&gt; needs at the time, &lt;em&gt;their&lt;/em&gt; way of thinking, and &lt;em&gt;their&lt;/em&gt; behavior when they are using it. &lt;br /&gt;&lt;br /&gt;Their experience of response time depends on the combined behaviors of the client and server components of the application, which in turn depend on the &lt;em&gt;application design&lt;/em&gt;, the underlying server &lt;em&gt;infrastructure design&lt;/em&gt;, and of course the user's Internet &lt;em&gt;connection speed&lt;/em&gt;. The most effective RIA will be one whose creators took into account these factors at each stage of its development life cycle, and who created the necessary management processes to ensure its success when in production. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Future Posts&lt;/b&gt;&lt;br /&gt;Using &lt;em&gt;The RIA Behavior Model&lt;/em&gt; as one starting point, future posts will discuss how to build robust and responsive RIAs, and explore some of the technical and management challenges they pose, especially in the area of response time measurement. If I can organize my thoughts sufficiently to keep the writer's block at bay, I expect my next post to focus on that topic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-114196931886424009?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/114196931886424009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=114196931886424009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114196931886424009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114196931886424009'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-4.html' title='Managing Rich Internet Applications [4]'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-114170740627857037</id><published>2006-03-07T04:56:00.000Z</published><updated>2006-03-24T23:00:37.056Z</updated><title type='text'>Managing Rich Internet Applications [3]</title><content type='html'>&lt;em&gt;This is the third post in a series devoted to the challenges of Service Level Management (SLM) for Rich Internet Applications (RIAs). In these applications, some processing is transferred to the Web client while some remains on the application server. Previous posts &lt;a href="http://performancematters.blogspot.com/2006/02/managing-rich-internet-applications-1.html"&gt;&lt;b&gt;introduced&lt;/b&gt;&lt;/a&gt; the subject, and listed the &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-2.html"&gt;&lt;b&gt;topics&lt;/b&gt;&lt;/a&gt; I plan to address.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;RIA Technologies&lt;/b&gt;&lt;br /&gt;Before diving into the management issues posed by Rich Internet Applications, I will introduce the two principal technologies used to implement RIAs -- Ajax and Flash -- and provide a few links I have found useful. &lt;br /&gt;&lt;br /&gt;I am going to begin with &lt;a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29"&gt;&lt;b&gt;Ajax&lt;/b&gt;&lt;/a&gt;, because the &lt;a href="http://adaptivepath.com/publications/essays/archives/000385.php"&gt;&lt;b&gt;seminal article&lt;/b&gt;&lt;/a&gt; defining the term "Ajax," Jesse James Garrett provides such a clear introduction to the subject. After explaining that ... &lt;blockquote&gt;Ajax isn’t a technology. It’s really several technologies, each flourishing in its own right, coming together in powerful new ways. Ajax incorporates:&lt;ul&gt;&lt;li&gt;standards-based presentation using XHTML and CSS;&lt;br /&gt;&lt;li&gt;dynamic display and interaction using the Document Object Model; &lt;br /&gt;&lt;li&gt;data interchange and manipulation using XML and XSLT; &lt;br /&gt;&lt;li&gt;asynchronous data retrieval using XMLHttpRequest; &lt;br /&gt;&lt;li&gt;and JavaScript binding everything together.&lt;/ul&gt;&lt;/blockquote&gt;... he uses two figures that reveal the essential differences between a classic Web application and one implemented using Ajax: &lt;a name="Figure1"&gt; &lt;/a&gt; &lt;blockquote&gt;The classic web application model works like this: Most user actions in the interface trigger an HTTP request back to a web server. The server does some processing — retrieving data, crunching numbers, talking to various legacy systems — and then returns an HTML page to the client... This approach makes a lot of technical sense, but it doesn’t make for a great user experience. While the server is doing its thing, what’s the user doing? That’s right, waiting. And at every step in a task, the user waits some more. &lt;br&gt; &lt;br&gt;Obviously, if we were designing the Web from scratch for applications, we wouldn’t make users wait around. Once an interface is loaded, why should the user interaction come to a halt every time the application needs something from the server? In fact, why should the user see the application go to the server at all?&lt;/blockquote&gt; Figure 1 illustrates how Ajax is different: &lt;blockquote&gt; &lt;img style="display:block; margin:10px 0 0 0; text-align:center;cursor:pointer; cursor:hand;width: 475px;" src="http://adaptivepath.com/images/publications/essays/ajax-fig1_small.png" border="0" alt="Traditional and Ajax Application Models"&gt; &lt;br /&gt;&lt;em&gt;Figure 1: The traditional model for web applications (left) compared to the Ajax model (right).&lt;/em&gt; &lt;/blockquote&gt; While this diagram refers to Ajax technology, its structure describes RIAs in general. Garrett explains that the RIA model: &lt;blockquote&gt;... eliminates the start-stop-start-stop nature of interaction on the Web by introducing an intermediary — an Ajax engine — between the user and the server. ... At the start of the session, the browser loads an Ajax engine — written in JavaScript and usually tucked away in a hidden frame. This engine is responsible for both rendering the interface the user sees and communicating with the server on the user’s behalf".&lt;/blockquote&gt; &lt;a name="Figure2"&gt; &lt;/a&gt; Figure 2 (below) illustrates how the addition of a client-side engine ... "allows the user’s interaction with the application to happen asynchronously — independent of communication with the server". &lt;blockquote&gt; &lt;img style="display:block; text-align:center; margin:10px 0 0 0; cursor:pointer; cursor:hand; width:475px;" src="http://adaptivepath.com/images/publications/essays/ajax-fig2_small.png" border="0" alt="Synchronous and Asynchronous Client/Server Communications"&gt;&lt;br /&gt;&lt;em&gt;Figure 2: The synchronous interaction pattern of a traditional web application (top) compared with the asynchronous pattern of an Ajax application (bottom)&lt;/em&gt; &lt;/blockquote&gt; In the best case, a client-side engine can mean that users spend less time waiting for the server to respond. Like all writers making the case for Ajax and RIAs, Garrett assumes that this architecture guarantees a more responsive user experience -- but the reality is more complicated. In practice, an RIA's responsiveness will depend on several factors that I will be exploring in this series of posts.&lt;br /&gt;&lt;br /&gt;For more detailed discussion of the history of RIAs and Ajax, I recommend Aleksandar Šušnjar's Wikipedia page about &lt;a href="http://tinyurl.com/lcfk4"&gt;&lt;b&gt;RIA and AJAX&lt;/b&gt;&lt;/a&gt;. For more technical details, see these &lt;a href="http://www.sitepoint.com/"&gt;&lt;b&gt;Sitepoint&lt;/b&gt;&lt;/a&gt; articles:&lt;ul&gt; &lt;li&gt;&lt;a href="http://www.sitepoint.com/article/take-command-ajax"&gt;&lt;em&gt;Take Command with AJAX&lt;/em&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.sitepoint.com/article/remote-scripting-ajax"&gt;&lt;em&gt;AJAX: Usable Interactivity with Remote Scripting&lt;/em&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.sitepoint.com/article/painless-javascript-prototype"&gt;&lt;em&gt;Painless JavaScript Using Prototype&lt;/em&gt;&lt;/a&gt;&lt;/ul&gt; &lt;b&gt;What about Flash?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;You may feel I should have started with &lt;a href="http://en.wikipedia.org/wiki/Macromedia_Flash"&gt;&lt;b&gt;Flash&lt;/b&gt;&lt;/a&gt;, because it came first, but opinion is divided on that point. It is true that Macromedia announced their Flash MX product line in 2002 (see &lt;a href="http://www.macromedia.com/devnet/studio/whitepapers/rich_internet_apps.pdf"&gt;&lt;b&gt;Developing Rich Internet Applications with Macromedia MX&lt;/b&gt;&lt;/a&gt; for a good summary), whereas the term Ajax was coined only in February 2005. However, the underlying RIA techniques have been in use for much longer. For example, on his Wikipedia page Aleks cites the pioneering work of the now defunct company, Desktop.com. In 1999, &lt;a href="http://davenet.scripting.com/1999/10/04/sunIsOk"&gt;&lt;b&gt;Dave Winer&lt;/b&gt;&lt;/a&gt;  wrote in his blog:&lt;blockquote&gt;Want a vision of where the Web is headed? Check out Desktop.Com. Launched in beta a couple of weeks ago, this stunning site changed my point of view on what can be accomplished with JavaScript, ActiveX and whatever other kinds of mysterious code-doo-dads they're using... Desktop.Com says the Web is a desktop, just like the desktops on the Mac and Windows. Icons down the left edge of the browser window, menus at the top of the window, double-click to open a directory, double-click to edit a file.&lt;em&gt; -- Dave Winer&lt;/em&gt; &lt;/blockquote&gt; If you need to compare Ajax and Flash, here are four links you may find interesting:&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ajaxinfo.com/default~viewart~8.htm"&gt;&lt;em&gt;Weighing the alternatives&lt;br /&gt;&lt;/em&gt;&lt;/a&gt;&lt;li&gt;&lt;a href="http://www.jonathanboutelle.com/mt/archives/2005/03/flash_rias_vs_j.html"&gt;&lt;em&gt;Flash RIAs vs. Javascript RIAs&lt;/em&gt;&lt;/a&gt;&lt;li&gt;&lt;a href="http://dotone.login.ae/article/ajax-vs-flash-round-1-arena-web20-fight"&gt;&lt;em&gt;Ajax vs Flash, Round 1&lt;/em&gt;&lt;/a&gt; and &lt;a href="http://dotone.login.ae/article/ajax-vs-flash-round-2-arena-web20-fight"&gt;&lt;em&gt;Round 2&lt;/em&gt;&lt;/a&gt;&lt;/ul&gt; Any search engine will turn up plenty more material on this subject, and I will return to it when discussing aspects of RIA measurement and management.&lt;br /&gt;&lt;br /&gt;You can download many reports and papers about Flash and RIAs from the Adobe (formerly Macromedia) Web site -- for example, &lt;a href="http://www.macromedia.com/software/flashremoting/whitepapers/"&gt;&lt;b&gt;these&lt;/b&gt;&lt;/a&gt;. Not included in that list is one of the most readable introductions to &lt;a href="http://www.macromedia.com/platform/whitepapers/idc_impact_of_rias.pdf"&gt;&lt;b&gt;Rich Internet Applications&lt;/b&gt;&lt;/a&gt;, a 2003 paper sponsored by Macromedia and Intel and written by &lt;a href="http://www.superconference.info/sc2005_joshua_duhl.html"&gt;&lt;b&gt;Joshua Duhl of IDC&lt;/b&gt;&lt;/a&gt;, an excellent writer who I once worked with (in the early 90's) at ONTOS, a Boston-based Object DB company.  Another former colleague from Boston, &lt;a href="http://www.supplyworks.com/company/team.asp"&gt;&lt;b&gt;Alan Sarasohn&lt;/b&gt;&lt;/a&gt;, used to claim that the computer industry is run by just 300 people, but they keep moving around. I'm starting to believe him!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-114170740627857037?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/114170740627857037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=114170740627857037' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114170740627857037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114170740627857037'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-3_06.html' title='Managing Rich Internet Applications [3]'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-114128769508790283</id><published>2006-03-02T08:20:00.000Z</published><updated>2006-03-06T23:52:58.293Z</updated><title type='text'>Managing Rich Internet Applications [2]</title><content type='html'>&lt;em&gt;This is the second post in a series devoted to the challenges of Service Level Management (SLM) for Rich Internet Applications (RIAs). In these applications, some processing is transferred to the Web client while some remains on the application server&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;In the &lt;a href="http://performancematters.blogspot.com/2006/02/managing-rich-internet-applications-1.html"&gt;first post&lt;/a&gt; in this series, I introduced the concept of a Rich Internet Application, and asserted that anyone planning to deploy RIA technology &lt;em&gt;must be prepared to invest more in design, development, testing and management to make it successful&lt;/em&gt;. By that I meant that deploying an RIA successfully will demand more resources -- skills, tools, process, time, and (of course) money -- than would be required to deploy a more traditional version of a Web-based application in which all application logic is executed on the server.&lt;br /&gt;&lt;br /&gt;I have reached this conclusion after studying this subject for the last three months, in the light of my prior experience in the field of software performance management. Factors leading to this conclusion include: &lt;ul&gt;&lt;li&gt;the nature of much of the technology being promoted for building RIAs today (primitive) &lt;li&gt;the stage of evolution of this new application architecture (early) &lt;li&gt;the toolsets available to support RIA developers (incomplete), and &lt;li&gt;the experiences of others developing RIAs (hard work).&lt;/li&gt;&lt;/ul&gt;This comment by &lt;a href="http://www.baselinemag.com/article2/0,1540,1887817,00.asp"&gt;&lt;b&gt;Todd Spangler in Baseline Magazine&lt;/b&gt;&lt;/a&gt; neatly sums up the situation today: &lt;blockquote&gt;Creating an Ajax application from scratch is like having to build a brick wall but first having to figure out how to create the bricks.&lt;/blockquote&gt;This reminds me of the days when I used to program in IBM Assembler -- funny how life in the world of computing seems to repeat itself every few years! (And I'll have more to say about that later). But while this is all fascinating stuff, it is not my primary focus; it is just the starting point for the SLM topics I want to discuss. So although I will devote some space to reviewing the state of RIA technology, I will try to keep those posts concise and provide useful links. If you want more, a few searches will turn up tons of reference material.&lt;br /&gt;&lt;br /&gt;The questions I plan to explore in more depth in this series are: &lt;ul&gt;&lt;li&gt;Why are RIAs so much more difficult to design, develop, and manage? &lt;li&gt;How do you measure an RIA user's experience of response time? &lt;li&gt;How do you test whether an RIA will perform acceptably in the production environment? &lt;li&gt;How do you break apart the time it takes to complete a business transaction using an RIA into meaningful components? &lt;li&gt;How do you monitor the performance of an RIA in the production environment, and alert when its behavior is abnormal? &lt;li&gt;What kinds of development and systems management processes will maximize the chances of implementing an RIA successfully?&lt;/li&gt;&lt;/ul&gt;Before I get into any of these details, I'd like to acknowledge the contributions of two people who have helped shed light on these issues. This first is Victor Pavlov, a principal engineer and colleague at Keynote, who &lt;a href="http://www.sitepoint.com/article/xmlxslt-driven-website-net"&gt;&lt;b&gt;knows Web technology&lt;/b&gt;&lt;/a&gt; inside out, and can figure out how to measure anything. I am lucky that when I am noodling on a tricky question, I can sometimes run into Victor at the coffee machine.&lt;br /&gt;&lt;br /&gt;The second is &lt;a href="http://tinyurl.com/nshnd"&gt;&lt;b&gt;Aleksandar Šušnjar&lt;/b&gt;&lt;/a&gt;, who I met online after reading &lt;a href="http://tinyurl.com/o3gwt"&gt;&lt;b&gt;his contributions&lt;/b&gt;&lt;/a&gt; to the discussion of RIAs in Wikipedia, where he shared insights gained from his experience building a product first released in 2002 by his company, Hummingbird. This product, DM Webtop (later renamed DM Web Server) is a component of their &lt;a href="http://mimage.hummingbird.com/alt_content/binary/pdf/collateral/ds/he04/dm_datasheet.pdf"&gt;&lt;b&gt;Enterprise Document Management&lt;/b&gt;&lt;/a&gt; suite. In delivering desktop capabilities via the Web, it clearly predated much of today's thinking about the purpose of RIAs and how to build them.&lt;br /&gt;&lt;br /&gt;Naturally, Aleks also discovered some potential pitfalls an RIA designer might run into, which I will be mentioning in later posts. Regrettably, many of his insightful contributions to Wikipedia (which can still be found in its history pages) were subsequently removed by other contributors who lacked either his intimate knowledge of the technology or his historical perspective. Rather than waging Wikipedia edit wars, which for a hot topic can continue interminably, he has simply posted &lt;a href="http://tinyurl.com/lcfk4"&gt;&lt;b&gt;his own page about RIA and AJAX&lt;/b&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I am not surprised by these events, because I have found that the computing world tends to attract people who have little sense of history. This explains why it is forever reinventing the wheel, repeating yesterday's mistakes, and tripping over previously solved problems. Rich Internet Applications are a case in point. Mainframe (thin client) computing was replaced by the client/server (fat client) model, which in turn was displaced by the Web-based (thin client) applications. Now the emergence of RIAs signals a return to the fat client model again. The only difference between the client/server and RIA models is that instead of &lt;a href="http://en.wikipedia.org/wiki/Sneakernet"&gt;&lt;b&gt;Sneakernets&lt;/b&gt;&lt;/a&gt; and static installation protocols, Internet and Web technologies now provide an almost universally available platform for distributing function to client desktops dynamically. But many of the over-optimistic claims being made for RIA technology today mirror those popular 15-20 years ago, when everyone was jumping on the client/server bandwagon and predicting the imminent demise of the mainframe -- which, by the way, never happened.&lt;br /&gt;&lt;br /&gt;So I'll end by reminding you of the famous saying of philosopher &lt;a href="http://en.wikipedia.org/wiki/George_Santayana"&gt;&lt;b&gt;George Santayana&lt;/b&gt;&lt;/a&gt;: &lt;em&gt;Those who cannot remember the past are condemned to repeat it&lt;/em&gt;. One of my goals in this series of posts about RIAs is to keep you from that fate, so I'm glad to be collaborating with people like Victor and Aleks whose common sense is grounded in a strong sense of history!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-114128769508790283?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/114128769508790283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=114128769508790283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114128769508790283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114128769508790283'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-2.html' title='Managing Rich Internet Applications [2]'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-114119841344307313</id><published>2006-03-01T07:30:00.000Z</published><updated>2006-03-02T09:37:39.473Z</updated><title type='text'>Managing Rich Internet Applications [1]</title><content type='html'>After a few months to collect my thoughts, I have at last conquered my writer's block. Today I begin a series of posts on the topic of Managing Rich Internet Applications. The term &lt;em&gt;Rich Internet Application&lt;/em&gt;, which I will often abbreviate to &lt;em&gt;RIA&lt;/em&gt; for convenience, refers a Web-based application that &lt;a href="http://en.wikipedia.org/wiki/Rich_Internet_Application"&gt;&lt;b&gt;Wikipedia defines&lt;/b&gt;&lt;/a&gt; as &lt;em&gt;"a cross between web applications and traditional desktop applications, transferring some of the processing to a web client and keeping (some of) the processing on the application server"&lt;/em&gt;. RIAs are most often implemented using either the Flash or JavaScript technologies, although the client-side processing could also be coded as a Java application or applet.&lt;br /&gt;&lt;br /&gt;Wikipedia provides a useful, though brief, introduction to this subject; I will provide more references in future posts. Greatly complicating any coherent analysis of RIA technology is the massive amount of hype surrounding both &lt;a href="http://en.wikipedia.org/wiki/Web_2"&gt;&lt;b&gt;Web 2.0&lt;/b&gt;&lt;/a&gt; (a superset of RIA) and &lt;a href="http://en.wikipedia.org/wiki/AJAX"&gt;&lt;b&gt;Ajax&lt;/b&gt;&lt;/a&gt; (a subset of RIA). I will also discuss these relationships in more detail in a future post.&lt;br /&gt;&lt;br /&gt;Regular readers (if any should chance to return after my long absence!) will know that I will be focusing on &lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;&lt;b&gt;service level management&lt;/b&gt;&lt;/a&gt;, and that I will be situating those service level issues within a wider context of &lt;a href="http://performancematters.blogspot.com/2005/10/web-usability-simple-framework.html"&gt;&lt;b&gt;application usability&lt;/b&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is a broad topic, yet (as far as I can tell) a little explored one. I have been researching this subject area for almost 3 months now, and although you can find literally thousands of opinions and analyses of Ajax, RIAs, and Web 2.0 on the Web, very little of it deals with questions of performance management or SLM. So I'm not sure how many posts it will take before I run out of interesting things to write about. I suppose this may be considered to be an advantage of specializing in a field that most people take for granted. However, if you are planning to implement a Rich Internet Application, it would be a big mistake to take its performance for granted.&lt;br /&gt;&lt;br /&gt;That was the theme of an introductory article I wrote recently for eCommerce Times, entitled &lt;a href="http://www.ecommercetimes.com/story/48889.html"&gt;&lt;b&gt;Web Applications: Richer or Poorer?&lt;/b&gt;&lt;/a&gt; That article is a good place to start; it will give you a brief overview of the subject matter I plan to cover here in later posts, and introduce my world view. A key conclusion was that &lt;em&gt;companies that decide to employ the technology must be prepared to invest more in design, development, testing and management to make it successful&lt;/em&gt;. In future posts I will justify and elaborate on that statement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-114119841344307313?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/114119841344307313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=114119841344307313' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114119841344307313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/114119841344307313'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2006/02/managing-rich-internet-applications-1.html' title='Managing Rich Internet Applications [1]'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113211275400263754</id><published>2005-11-16T08:01:00.000Z</published><updated>2006-12-12T12:29:42.096Z</updated><title type='text'>Climbing the SLM Maturity Ladder</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Gartner%20IT%20Maturity%20Model%20lg.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/400/Gartner%20IT%20Maturity%20Model%20lg.jpg" border="0" alt="IT Management Process Maturity Model by Gartner Research" /&gt;&lt;/a&gt;Last week, one of my posts introduced &lt;a href="http://performancematters.blogspot.com/2005/11/armstrong-on-it-business-alignment.html"&gt;&lt;strong&gt;Peter Armstrong's paper&lt;/strong&gt;&lt;/a&gt; about IT-Business alignment. BMC has just published a new whitepaper by Peter -- &lt;a href="http://www.bmc.com/USA/Communities/attachments/BMC_IWP_Maturity.pdf"&gt;&lt;strong&gt;Taking IT to the Next Level&lt;/strong&gt;&lt;/a&gt; -- about the challenges IT organizations face as they evolve from a cost center to a creator of business value.&lt;br /&gt;&lt;br /&gt;Peter uses the Gartner IT Management Process Maturity Model, pictured above, to represent the five possible maturity levels of IT organizations. This is an excellent way for companies to measure their progress in implementing systematic &lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;&lt;strong&gt;Service Level Management (SLM)&lt;/strong&gt;&lt;/a&gt; processes. In his whitepaper, Peter is focusing on climbing the ladder from Level 3 (&lt;em&gt;Proactive&lt;/em&gt;) to Levels 4 (&lt;em&gt;Service&lt;/em&gt;) and 5 (&lt;em&gt;Value&lt;/em&gt;). &lt;br /&gt;&lt;br /&gt;It occurs to me that a Maturity Model may be the corporate equivalent of a Twelve-Step Program -- to get better you must first admit you have a problem. That's why so many companies are still stuck at Level 1 (&lt;em&gt;Chaotic&lt;/em&gt;), while others who are forever coping with the problem of the day at Level 2 (&lt;em&gt;Reactive&lt;/em&gt;) would be really happy to establish to firm foothold at Level 3!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113211275400263754?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113211275400263754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113211275400263754' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113211275400263754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113211275400263754'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/11/climbing-slm-maturity-ladder.html' title='Climbing the SLM Maturity Ladder'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113204485868692567</id><published>2005-11-15T09:00:00.000Z</published><updated>2005-11-15T09:52:28.233Z</updated><title type='text'>Web Usability Books [4]</title><content type='html'>Today I am continuing my review of Web Usability books, from the perspective (&lt;a href="http://performancematters.blogspot.com/2005/11/web-usability-books-1.html"&gt;&lt;strong&gt;described here&lt;/strong&gt;&lt;/a&gt;) of someone who believes that &lt;em&gt;Performance Matters&lt;/em&gt;:&lt;br /&gt;&lt;br /&gt;4. &lt;a href="http://books.elsevier.com/us/mk/us/subindex.asp?isbn=1558606580&amp;country=United+States&amp;amp;amp;community=mk&amp;ref=&amp;amp;mscssid=Q7FR0KR3T0JF8HWVGWR5MA88QKSC5MNE"&gt;&lt;strong&gt;Usability for the Web&lt;/strong&gt;&lt;/a&gt; by &lt;a href="http://simplytom.com/"&gt;&lt;strong&gt;Tom Brinck&lt;/strong&gt;&lt;/a&gt;, &lt;a href="http://www.cs.cmu.edu/~dgergle/"&gt;&lt;strong&gt;Darren Gergle&lt;/strong&gt;&lt;/a&gt;, and &lt;a href="http://www.soartech.com/company.scientists.wood.php"&gt;&lt;strong&gt;Scott D. Wood&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Brinck%20UFTW%20cover.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="Usability for the Web (book cover)" src="http://photos1.blogger.com/blogger/7699/1738/200/Brinck%20UFTW%20cover.jpg" border="0" /&gt;&lt;/a&gt; Subtitled &lt;em&gt;Designing Web Sites That Work&lt;/em&gt;, this book is about managing the design process, with the term design being used in its widest sense. In the introduction, the authors define &lt;em&gt;Usability&lt;/em&gt; as the product of several design goals: functionally correct, efficient to use, easy to learn, easy to remember, error tolerant, and subjectively pleasing. &lt;br /&gt;&lt;br /&gt;I particularly like the emphasis on &lt;em&gt;the process&lt;/em&gt; of producing and maintaining a Web site. While &lt;a href="http://performancematters.blogspot.com/2005/11/web-usability-books-3.html"&gt;&lt;strong&gt;The Design of Sites&lt;/strong&gt;&lt;/a&gt; contains an introductory chapter summarizing the steps of the development process, here those steps are used as the central organizing principle for the book. On his own site, lead author &lt;a href="http://simplytom.com/web.txl"&gt;&lt;strong&gt;Tom Brinck&lt;/strong&gt;&lt;/a&gt; explains why:&lt;blockquote&gt;Darren, Scott, and I were all involved in the genesis of &lt;a href="http://www.diamondbullet.com/"&gt;&lt;strong&gt;Diamond Bullet Design&lt;/strong&gt;&lt;/a&gt;, a web design company founded in 1996 with the goal of bringing usability to the web, and together we worked out how a web design and development process should reflect usability at every stage, while making this a feasible process within the business constraints of actual development.&lt;/blockquote&gt; The book's introduction continues:&lt;blockquote&gt;To ensure high usability on our own Web projects, we defined a development process that incorporates proven techniques from software and usability engineering, graphic design, project management, and other disciplines. The process had to be practical and lean. It had to allow us to work on multiple projects of varying sizes with fixed budgets. It had to help us keep track of the details that can kill usability and destroy profitability. &lt;em&gt;This book is about that process&lt;/em&gt;.&lt;/blockquote&gt;Tom's site provides some more detail:&lt;blockquote&gt;&lt;em&gt;Usability for the Web&lt;/em&gt; provides a comprehensive approach to the web design process, with a devotion to the principles of usability. The book is intended for web professionals and students of web design, with a practical focus. &lt;br /&gt;&lt;br /&gt;The book is organized into 6 sections, according to the activities of the design process: Requirements Analysis, Conceptual Design, Mockups and Prototypes, Production, Launch, and Evaluation. We view Evaluation as an ongoing activity throughout the process, which is integrated at every step. Detailed chapters cover topics such as defining the target audience and target platform, user needs analysis, task analysis, information architecture, visual design, writing, software development incorporating usability, quality assurance, user testing, and usability inspection.&lt;br /&gt;&lt;br /&gt;Numerous forms and checklists are included that are straightforward to apply in real-world design situations. These forms are designed to create a reliable, complete, and repeatable design methodology.&lt;/blockquote&gt;The publisher, Morgan Kaufmann, lists the target readership for this book as Web site designers and developers, Web site project managers, usability specialists and information architects, user interface designers, and graphic designers. While any of these readers may want yet more detail about their specialty, this book does provide almost 500 pages of carefully selected, well organized, well written, and attractively presented material. Indeed, the book itself is a fine testament to the integrity of Tom Brinck's stated &lt;a href="http://simplytom.com/philosophy.txl"&gt;&lt;strong&gt;Usability Philosophy&lt;/strong&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Finally, for those interested in &lt;em&gt;Performance Matters&lt;/em&gt;, the authors devote a full chapter to &lt;em&gt;Usability in Software Development&lt;/em&gt;. This includes a statement about the crucial importance of &lt;em&gt;Response Time&lt;/em&gt;, a short discussion of what contributes to it, and a sidebar on &lt;em&gt;Why Software Engineers are Critical for Usability&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Granted, one 24-page chapter cannot cover the subject of performance properly. But this is the only book on usability I have ever seen that explains &lt;em&gt;3-Tiered Architectures&lt;/em&gt;, and how to map the flow of control and data through those tiers using &lt;em&gt;static design diagrams&lt;/em&gt; and &lt;em&gt;dynamic request traces&lt;/em&gt;. And its discussion of &lt;em&gt;latency diagrams&lt;/em&gt; highlights the need for a systematic way of analyzing where the time goes, like the one I wrote about in an earlier post on &lt;a href="http://performancematters.blogspot.com/2005/10/web-site-response-time-model.html"&gt;&lt;strong&gt;The Web Site Response Time Model&lt;/strong&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;After reading the &lt;a href="http://simplytom.com/story.txl"&gt;&lt;strong&gt;story &lt;/strong&gt;&lt;/a&gt; of Tom Brinck's diverse background (Apple, Stanford MS in Computer Science, Toshiba, Bellcore, Michigan MA in Psychology, founder of Diamond Bullet Design), it is easy to understand why his ideas about usability and his book are so balanced and well rounded. &lt;br /&gt;&lt;br /&gt;Thoroughly recommended!&lt;br /&gt;&lt;br /&gt;&lt;p align="right"&gt;[Next book review: &lt;em&gt;Speed Up Your Site&lt;/em&gt; ...]&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113204485868692567?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113204485868692567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113204485868692567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113204485868692567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113204485868692567'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/11/web-usability-books-4.html' title='Web Usability Books [4]'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113203432483125760</id><published>2005-11-15T06:00:00.000Z</published><updated>2005-11-15T06:13:03.376Z</updated><title type='text'>Web Usability Books [3]</title><content type='html'>Today I am continuing my review of Web Usability books, from the perspective (&lt;a href="http://performancematters.blogspot.com/2005/11/web-usability-books-1.html"&gt;&lt;strong&gt;described here&lt;/strong&gt;&lt;/a&gt;) of someone who believes that &lt;em&gt;Performance Matters&lt;/em&gt;: &lt;br /&gt;&lt;br /&gt;3. &lt;a href="http://www.designofsites.com/"&gt;&lt;strong&gt;The Design of Sites&lt;/strong&gt;&lt;/a&gt; by &lt;a href="http://www.designofsites.com/about_us/index.htm"&gt;&lt;strong&gt;Douglas K. Van Duyne, James A. Landay and Jason I. Hong&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Doug%20Van%20Duyne%20DOS%20cover.gif"&gt;&lt;img style="float:left; margin:0 10px 3px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/200/Doug%20Van%20Duyne%20DOS%20cover.gif" border="0" alt="The Design of Sites (book cover)" /&gt;&lt;/a&gt;As its title suggests, this book is written for anyone involved in the design of a Web site. In the preface and on their site the authors say: &lt;em&gt;Its focus is tilted more toward Web design professionals, such as interaction designers, usability engineers, information architects, and visual designers&lt;/em&gt;. Since the book comprises over 800 pages of densely-packed design advice, its main audience is pretty clear.&lt;br /&gt;&lt;br /&gt;But the authors claim that it is &lt;em&gt;a resource for anyone on a Web development team, from business executives to advertising managers to software developers to content editors&lt;/em&gt;. Its value to this wider audience is well explained by Mike Tarrani in his "spotight" review of the book on &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/020172149X/104-0582018-1671165?v=glance"&gt;&lt;strong&gt;Amazon&lt;/strong&gt;&lt;/a&gt;, so I will intersperse Mike's comments below: &lt;blockquote&gt;&lt;em&gt;Tarrani&lt;/em&gt; ... Nearly every book on user interface and site design I've read is aimed at the professional designer who understands the nuances of color, fonts and graphics elements, as well as aesthetics in general. Many of the subtle points are lost on the non professional. &lt;/blockquote&gt;The first 100 pages (Part I) are devoted to &lt;em&gt;Foundations of Web Site Design&lt;/em&gt;, and include chapters on Knowing Your Customers, Involving Customers with Iterative Design, and the Site Development Process. The authors describe the last of these as ... &lt;em&gt;a rough guide to designing, implementing, and maintaining a Web site&lt;/em&gt;. I concur -- it is a useful summary of the major stages, but no more than that. The real meat of the book is Part II, which comprises 517 pages. Here, 91 &lt;a href="http://en.wikipedia.org/wiki/Design_pattern_(computer_science)"&gt;&lt;strong&gt;Design Patterns&lt;/strong&gt;&lt;/a&gt; are organized into 12 pattern groups (A-L), and illustrated with examples of real Web sites. &lt;blockquote&gt;&lt;em&gt;Tarrani&lt;/em&gt; ... It leads you through each example, showing you how a particular design or design concept works and why. This is akin to the Rosetta Stone for the non-professional designer because the authors do not assume any talent of skills in design, and subtle points are highlighted and clearly explained. Because of this approach I finally understood concepts that had eluded me in the past. &lt;br /&gt;&lt;br /&gt;In addition to the clear explanations that distill design into patterns, the book is lavishly illustrated, using copious full color examples and a structured format that gives the background, frames the problem and provides a solution to each of the 12 design goals. &lt;/blockquote&gt;Not everyone agrees, of course. If you study the Amazon reviews, you'll find a few that rate the patterns as shallow, incomplete, or out-dated. But that is inevitable given the authors' approach -- a book like this can never be complete or up-to-date, because the technology and people's use of it is a continually moving target. In fact, the authors state this in their introduction to Part II. In my view, they made a valiant attempt to classify important Web design patterns, and the great majority of reviewers do find a lot of value in the result. &lt;blockquote&gt;&lt;em&gt;Tarrani&lt;/em&gt; ... Material in the appendices is also invaluable, including advice on running usability evaluation, and associated plan outlines and forms. For a development group this is an extra bonus that will make it easier to incorporate the principles in this book into a quality process that gives customer-focused usability the same weight as technical quality criteria.&lt;br /&gt;&lt;br /&gt;I'm so enthusiastic about this book that I've recommended to the company for which I work that a copy of this book be provided to each of our developers who are programming wizards, but who stumble when it comes to the user interface. &lt;/blockquote&gt; My own special interest in &lt;em&gt;Performance Matters&lt;/em&gt; is served by the last pattern group, &lt;em&gt;Speeding Up Your Site&lt;/em&gt;, which comprises five patterns: Low Numbers of Files, Fast Downloading Images, Separate Tables, HTML Power, Reusable Images. While these are not original or surprising, they certainly do address some of the most common page design problems that can affect performance.  &lt;br /&gt;&lt;br /&gt;&lt;p align=right&gt;[Next book review: &lt;em&gt;Usability For The Web&lt;/em&gt; ...]&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113203432483125760?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113203432483125760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113203432483125760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113203432483125760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113203432483125760'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/11/web-usability-books-3.html' title='Web Usability Books [3]'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113169190900096719</id><published>2005-11-11T08:01:00.000Z</published><updated>2005-11-11T19:00:31.880Z</updated><title type='text'>Web Usability Books [2]</title><content type='html'>Today I am continuing my review of Web Usability books, from the perspective (&lt;a href="http://performancematters.blogspot.com/2005/11/web-usability-books-1.html"&gt;&lt;strong&gt;described here&lt;/strong&gt;&lt;/a&gt;) of someone who believes that &lt;em&gt;Performance Matters&lt;/em&gt;: &lt;br /&gt;&lt;br /&gt;2. &lt;a href="http://www.useit.com/jakob/webusability/"&gt;&lt;strong&gt;Designing Web Usability : The Practice of Simplicity&lt;/strong&gt;&lt;/a&gt; by &lt;a href="http://www.useit.com/jakob/"&gt;&lt;strong&gt;Jakob Nielsen&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Jakob%20Nielsen%20DWU%20cover.gif"&gt;&lt;img style="float:left; margin:0 10px 3px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/200/Jakob%20Nielsen%20DWU%20cover.gif" border="0" alt="Designing Web Usability (book cover)" /&gt;&lt;/a&gt;Jakob Nielsen is a famous usability guru. He writes, speaks, and consults on Web site design and usability, and his 1999 book is a classic. It is surely &lt;em&gt;the&lt;/em&gt; best-seller on this subject, having been translated into 21 languages. According to the New Riders Press &lt;a href="http://peachpit.staging.informit.mttech.com/title/156205810X"&gt;&lt;strong&gt;publisher's introduction&lt;/strong&gt;&lt;/a&gt; &lt;em&gt;over 250,000 Internet professionals around the world have turned to this landmark book&lt;/em&gt;. Nielsen's site lists plenty of good reviews, this one from &lt;a href="http://www.businessweek.com/bwdaily/dnflash/mar2000/nf00302e.htm"&gt;&lt;strong&gt;BusinessWeek&lt;/strong&gt;&lt;/a&gt; being just one example:&lt;blockquote&gt;&lt;strong&gt;KEEP IT SIMPLE.&lt;/strong&gt; Nielsen ... is a usability engineer and Web-design consultant given to strongly held ideas and sweeping statements, like &lt;em&gt;fast response times are the most important criterion for Web pages&lt;/em&gt;. His certitude might be insufferable if he weren't right so much of the time.&lt;br /&gt;&lt;br /&gt;The basic principles of good design, according to Nielsen, are very simple: If your pages don't load quickly, your customers won't wait. If customers can't find what they want, they won't buy it. If your pages are confusing or hard to read, customers will look elsewhere.&lt;br /&gt;&lt;br /&gt;But while easy to state, such general principles are very hard to implement. Here &lt;em&gt;Designing Web Usability&lt;/em&gt; shines, with hundreds of screen shots of actual Web pages, successful and unsuccessful, with a narrative that highlights just what their designers did right or wrong. You'll probably find plenty to disagree with in Nielsen's conclusions. But you whether you're a designer or someone with responsibility for your company's online presence, you'll come away from the book with a much deeper understanding of how to use the Web as an effective sales and communications tool.&lt;/blockquote&gt;Yet, as BusinessWeek hinted, Jakob and his book generate strong opinions both pro and con. The book's subtitle, &lt;em&gt;The Practice of Simplicity&lt;/em&gt;, sums up his world view, and also accounts for much of the controversy. Jakob writes in his book's &lt;a href="http://www.useit.com/jakob/webusability/preface_7.html"&gt;&lt;strong&gt;preface&lt;/strong&gt;&lt;/a&gt;:&lt;blockquote&gt;I wrote this book with two clear goals. The highest-level goal was to improve quality of life by reasserting humanity's mastery of technology. On a day-to-day basis, you may think of usability as a way to increase sales (for public websites) or productivity (for intranets), but in the aggregate, if we make websites and intranets easy to use, we will increase users' quality of life by eliminating a lot of frustration and the feeling of inadequacy that follows every time you are stumped by a computer. &lt;br /&gt;&lt;br /&gt;My more immediate goal was to promote a new philosophy of web design: simplicity. When the book was originally published, this was a controversial goal and I was often in the distinct minority at industry conferences. Eyeballs ruled the day and it didn't matter much whether users could actually accomplish anything. I am now happy to declare victory. Usability has become accepted as an important component of almost all professional web design projects, partly as a result of the success of this book, but mainly because it works.&lt;/blockquote&gt;On the second page of Chapter 1, Jakob writes:&lt;blockquote&gt;&lt;strong&gt;Art Versus Engineering:&lt;/strong&gt; There are essentially two basic approaches to design: the artistic ideal of expressing yourself and the engineering ideal of solving a problem for a customer. This book is firmly on the side of engineering. While I acknowledge that there is a need for art, fun, and a general good time on the Web, I believe that the main goal of most Web projects should be to make it easy for customers to perform useful tasks.&lt;/blockquote&gt; As you can imagine, I am in violent agreement with this viewpoint! However, Jakob's approach to Usability comes in for plenty of criticism from his own profession. To see why, you need only browse &lt;a href="http://www.useit.com/"&gt;&lt;strong&gt;Jakob's web site&lt;/strong&gt;&lt;/a&gt;. People like me who use the Web primarily to find information, and who value responsiveness, don't mind the way it looks, as long we can find what we are looking for. But most designers and graphic artists, who value aesthetics, hate the rather primitive appearance of Jakob's site -- and as a result probably feel justified in ignoring his advice. &lt;br /&gt;&lt;br /&gt;For examples of their views, scan the &lt;a href="http://www.amazon.com/gp/product/156205810X/104-0582018-1671165?v=glance&amp;n=283155&amp;v=glance"&gt;&lt;strong&gt;Amazon book reviews&lt;/strong&gt;&lt;/a&gt;. A blog post, on &lt;a href="http://experiencedynamics.blogs.com/site_search_usability/2004/04/how_usable_is_j.html"&gt;&lt;strong&gt;How Usable is Jakob Nielsen?&lt;/strong&gt;&lt;/a&gt; by usability professional &lt;a href="http://www.experiencedynamics.com/about_us/team/"&gt;&lt;strong&gt;Frank Spillers&lt;/strong&gt;&lt;/a&gt;, which is referenced in Jakob's &lt;a href="http://en.wikipedia.org/wiki/Jakob_Nielsen_(usability_consultant)"&gt;&lt;strong&gt;Wikipedia&lt;/strong&gt;&lt;/a&gt; entry, provides a good summary of the anti-Nielsen viewpoint. And Spillers' company, Experience Dynamics, has a simple, responsive, &lt;strong&gt;and&lt;/strong&gt; &lt;a href="http://www.experiencedynamics.com/"&gt;&lt;strong&gt;nicer-looking site&lt;/strong&gt;&lt;/a&gt;, too!&lt;br /&gt;&lt;br /&gt;Having said that, this is a book review and not an assessment of Jakob Nielsen's place in the pantheon of Web designers -- if there were an actual &lt;a href="http://en.wikipedia.org/wiki/Pantheon%2C_Rome"&gt;&lt;strong&gt;Pantheon&lt;/strong&gt;&lt;/a&gt; for these modern-day gods, he would surely have a place. &lt;br /&gt;&lt;br /&gt;Jakob makes no pretense of offering advice on how to construct a site, saying ... &lt;em&gt;this is not a book about HTML or how to draw an icon or other Web implementation technology&lt;/em&gt;. But he does devote 9 pages of his chapter on &lt;em&gt;Page Design&lt;/em&gt; to discussions of the importance of fast and predictable response times, quoting Robert B. Miller's classic 1968 research paper on Human-Computer Interaction, which I wrote about &lt;a href="http://performancematters.blogspot.com/2005/10/miller-response-time-test.html"&gt;&lt;strong&gt;previously&lt;/strong&gt;&lt;/a&gt;. So I recommend this book, not just because of its classic status, but for the emphasis Jakob places on the &lt;em&gt;Responsiveness&lt;/em&gt; dimension of Usability.&lt;br /&gt;&lt;p align=right&gt;[Next book review: &lt;em&gt;The Design of Sites&lt;/em&gt; ...]&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113169190900096719?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113169190900096719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113169190900096719' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113169190900096719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113169190900096719'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/11/web-usability-books-2.html' title='Web Usability Books [2]'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113165700309344571</id><published>2005-11-10T21:09:00.000Z</published><updated>2005-11-11T18:59:34.226Z</updated><title type='text'>Web Usability Books [1]</title><content type='html'>I have twice promised to recommend books on Web Usability, so it's about time I got on with it. I have organized the books I like on a scale from simplest to most comprehensive. Today I will review the first, and simplest, of my recommendations. &lt;br /&gt;&lt;br /&gt;Before we start I have to point out that I am &lt;em&gt;not an expert&lt;/em&gt; in the subjects these authors devote most of their pages to, which I have labeled &lt;em&gt;Clarity&lt;/em&gt; in my four-dimension usability model. My particular interest in writing these reviews is not primarily in the authors' expertise in the &lt;em&gt;Clarity&lt;/em&gt; dimension, but in the extent to which they also acknowledge or discuss the dimensions of &lt;em&gt;Availability&lt;/em&gt;, &lt;em&gt;Responsiveness&lt;/em&gt;, and &lt;em&gt;Utility&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;[To understand what I mean by that, you must first read at least yesterday's post on &lt;a href="http://performancematters.blogspot.com/2005/11/dimensions-of-usability.html"&gt;&lt;strong&gt;The Dimensions of Usability&lt;/strong&gt;&lt;/a&gt;. The previous post, where I introduced this model, was &lt;a href="http://performancematters.blogspot.com/2005/10/web-usability-simple-framework.html"&gt;&lt;strong&gt;Web Usability: A Simple Framework&lt;/strong&gt;&lt;/a&gt;.] &lt;br /&gt;&lt;br /&gt;That is not to say that I am completely ignorant about their subject matter, either. I own a copy of each book I will discuss. I did my homework before buying them. I have spent time studying them. So I don't have a problem in offering my observations about their content. It's just that I do not have to use a lot of this material on a day-to-day basis in the course of my job. So think of my reviews as &lt;em&gt;Web Usability books for people who don't already specialize in it&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. Don't Make Me Think&lt;/strong&gt;, by &lt;a href="http://www.sensible.com/about.html"&gt;&lt;strong&gt;Steve Krug&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/SteveKrug%20DMTT%20cover.jpg"&gt;&lt;img style="float:left; margin:0 10px 3px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/200/SteveKrug%20DMTT%20cover.jpg" border="0" alt="Steve Krug: Don't Make Me Think" /&gt;&lt;/a&gt;Subtitled &lt;em&gt;A Common Sense Approach to Web Usability&lt;/em&gt;, this is an excellent introduction to the subject. It is widely praised for its simple approach -- in fact, it's hard to find a bad review of this book anywhere, starting with over 250 reviews on &lt;a href="http://www.amazon.com/gp/product/0789723107/103-4257798-8723066?v=glance&amp;n=283155&amp;s=books&amp;v=glance"&gt;&lt;strong&gt;Amazon&lt;/strong&gt;&lt;/a&gt;. At under 200 pages, the worst criticisms are from people who think it should be longer. Published by New Riders, the style and mix of text and illustrations is similar to the &lt;a href="http://www.peachpit.com/series/series.asp?st=44085"&gt;&lt;strong&gt;Visual QuickStart Guide Books&lt;/strong&gt;&lt;/a&gt; from Peachpit Press. If you like those, you'll probably like this. The first edition that everyone likes was published in 2000, but you can see from Steve's site that he has a 2nd edition just out. I have ordered it but not seen it yet. Apparently it is updated, and is about 30 pages (and three chapters) longer. If you're buying a copy from Amazon anyway, you can double the author's royalty by ordering it &lt;a href="http://www.sensible.com/buythebook.html"&gt;&lt;strong&gt;though his site&lt;/strong&gt;&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Finally, as you might have guessed from its title, this book is all about site &lt;em&gt;Clarity&lt;/em&gt;. It doesn't have anything to say about &lt;em&gt;Availability&lt;/em&gt;, &lt;em&gt;Responsiveness&lt;/em&gt;, or &lt;em&gt;Utility&lt;/em&gt;.&lt;br /&gt;&lt;p align=right&gt;[Next book review: &lt;em&gt;Designing Web Usability&lt;/em&gt; ...]&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113165700309344571?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113165700309344571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113165700309344571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113165700309344571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113165700309344571'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/11/web-usability-books-1.html' title='Web Usability Books [1]'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113158953407784328</id><published>2005-11-10T02:30:00.000Z</published><updated>2005-11-10T02:25:34.096Z</updated><title type='text'>The Dimensions of Usability</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Usability%20Model%20Small%204.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/400/Usability%20Model%20Small%204.jpg" border="0" alt="Dimensions of Usability" /&gt;&lt;/a&gt;Whenever specialists attach technical meanings to everyday words, they tend to create confusion and make their profession harder to penetrate. Some professions are masters of this. If you heard the words &lt;em&gt;party&lt;/em&gt;, &lt;em&gt;service&lt;/em&gt;, and &lt;em&gt;cases&lt;/em&gt; in a sentence you might be looking forward to a celebration -- unless they were spoken by your lawyer.&lt;br /&gt;&lt;br /&gt;In the world of information systems, &lt;em&gt;Usability&lt;/em&gt; is a case in point. &lt;em&gt;Model&lt;/em&gt; is another -- especially since it can be a noun, a verb, or an adjective. All the same, today I am going to use a model to help me discuss the concept of usability!&lt;br /&gt;&lt;br /&gt;In a previous post, I presented a framework for thinking about &lt;a href="http://performancematters.blogspot.com/2005/10/web-usability-simple-framework.html"&gt;&lt;strong&gt;Web Site Usability&lt;/strong&gt;&lt;/a&gt;. I divided usability into four dimensions, each of which is essential to the ultimate success of any site -- &lt;em&gt;Availability&lt;/em&gt;, &lt;em&gt;Responsiveness&lt;/em&gt;, &lt;em&gt;Clarity&lt;/em&gt;, and &lt;em&gt;Utility&lt;/em&gt;. The graphic illustrates the four dimensions of usability, and its layout reveals some further characteristics (&lt;em&gt;Technical &lt;/em&gt;or &lt;em&gt;Functional&lt;/em&gt;, &lt;em&gt;Core&lt;/em&gt; or &lt;em&gt;Refinement) &lt;/em&gt;of the four dimensions. This further classification scheme is not strictly essential to an appreciation of the underlying four-dimension model, but may be helpful when thinking about differences among the four aspects.&lt;br /&gt;&lt;br /&gt;Horizontally, the &lt;em&gt;Functional&lt;/em&gt; dimensions pertain to the purpose of a site and how it is used, the &lt;em&gt;Technical&lt;/em&gt; ones concern its construction and delivery. Vertically, the dimensions I have labeled as &lt;em&gt;Core&lt;/em&gt; represent the essential implementation of a site's function or of its delivery, the ones labeled as &lt;em&gt;Refinement&lt;/em&gt; represent the form (or quality) of that implementation. For the architecturally minded reader, this distinction follows the classic saying of architect &lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Louis_Sullivan"&gt;Louis Henri Sullivan&lt;/a&gt;&lt;/strong&gt; that &lt;em&gt;Form ever follows function&lt;/em&gt;. For the engineering-minded, the practical implication is this -- why worry about responsiveness if your site is not available consistently, and why work on refining the user interface if the site does not deliver the function the user needs?&lt;br /&gt;&lt;br /&gt;Having said that, in practice people do recognize the need to address all four dimensions of usability, and tend to think about them about independently, and to work on them in parallel. This turns out to be both good and bad. It's good because it allows specialists in each of the four areas to focus on what they do best. Typically this means that:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Business experts provide the content or specify the behaviors that are the site's purpose (&lt;strong&gt;Utility&lt;/strong&gt;).&lt;br /&gt;&lt;li&gt;Design and Usability specialists make it easy for customers to navigate the site (&lt;strong&gt;Clarity&lt;/strong&gt;).&lt;br /&gt;&lt;li&gt;Site developers build the site in ways that determine download speed (&lt;strong&gt;Responsiveness&lt;/strong&gt;).&lt;br /&gt;&lt;li&gt;IT staff manage the systems that keep the site up and running (&lt;strong&gt;Availability&lt;/strong&gt;).&lt;/li&gt;&lt;/ul&gt;But this division of labor also has a drawback -- it encourages &lt;em&gt;Web Usability&lt;/em&gt; professionals to focus almost exclusively on what I call &lt;em&gt;clarity&lt;/em&gt;. In fact, they have expended far more energy on internal debates about issues such as &lt;a href="http://www.alistapart.com/articles/marsvenus/"&gt;&lt;strong&gt;design vs. usability&lt;/strong&gt;&lt;/a&gt; than on incorporating a focus on the other dimensions.&lt;br /&gt;&lt;br /&gt;In one sense, I am objecting to something that is simply a matter of semantics. The English language meaning of &lt;a href="http://www.m-w.com/cgi-bin/dictionary?book=Dictionary&amp;va=usable"&gt;&lt;strong&gt;usable&lt;/strong&gt;&lt;/a&gt; (with a small 'u') is more inclusive than the professional definition favored by &lt;a href="http://en.wikipedia.org/wiki/Usability"&gt;&lt;strong&gt;Usability&lt;/strong&gt;&lt;/a&gt; experts (with a capital 'U'). As my opening paragraph implied, it may be confusing, but I can't expect an entire profession to redefine itself just because I don't like their choice of terminology! But given this difference in scope, it is interesting to see that the International Organization for Standardization (ISO) actually does define usability in a way that seems (on the face of it) to be &lt;em&gt;closer to the viewpoint of a business&lt;/em&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=16883&amp;amp;ICS1=13&amp;ICS2=180&amp;amp;ICS3="&gt;&lt;strong&gt;ISO 9241-11: Guidance on Usability (1998)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Usability is the extent to which a product can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;This standard (which is part of the &lt;a href="http://www.userfocus.co.uk/resources/iso9241/intro.html"&gt;&lt;strong&gt;ISO 9241 series&lt;/strong&gt;&lt;/a&gt;) provides the definition of usability that is used in subsequent related ergonomic standards.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;ISO 9241-11 explains how to identify the information that it is necessary to take into account when specifying or evaluating usability in terms of measures of user performance and satisfaction. Guidance is given on how to describe the context of use of the product and the measures of usability in an explicit way. It includes an explanation of how the usability of a product can be specified and evaluated as part of a quality system, for example one that conforms to ISO 9001.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;It also explains how measures of user performance and satisfaction can be used to measure how any component of a work system affects the quality of the whole work system in use.&lt;/li&gt;&lt;/blockquote&gt;Ultimately, what really matters to the business owner is their site's &lt;em&gt;utility -- &lt;/em&gt;the degree to which customers can&lt;em&gt; achieve specified goals with effectiveness, efficiency and satisfaction&lt;/em&gt;. And unless you address all four dimensions of usability, you will not accomplish that. Rather you will drive away all but your most loyal customers, and those who are forced to use your site for other business reasons. Those who have choices will &lt;em&gt;not&lt;/em&gt; be satisfied. They will abandon your site and find other ways to get the job done.&lt;br /&gt;&lt;br /&gt;At least where Web sites are concerned, the Usability profession has defined its role more narrowly. Most articles and books on &lt;em&gt;Web Usability&lt;/em&gt; focus on the (many) aspects of &lt;em&gt;clarity&lt;/em&gt;, and make only passing references to the importance of the other three dimensions. In my opinion, if writers and teachers would adopt the rather broader scope of the ISO definition (and that of the English dictionary), it would help to promote a more holistic Web site development process, and lessen the chance of the other dimensions being downplayed.&lt;br /&gt;&lt;br /&gt;Some authors have done better at this than others. Tomorrow I will review a few books by leading authors on Web Usability, in the light of the four-dimensional &lt;em&gt;Usability Model&lt;/em&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113158953407784328?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113158953407784328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113158953407784328' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113158953407784328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113158953407784328'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/11/dimensions-of-usability.html' title='The Dimensions of Usability'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113124242721419272</id><published>2005-11-08T08:01:00.000Z</published><updated>2007-02-23T00:39:10.712Z</updated><title type='text'>Armstrong on IT-Business Alignment</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Peter%20Armstrong%20v1.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/320/Peter%20Armstrong%20v1.jpg" border="0" alt="Peter Armstrong" /&gt;&lt;/a&gt;If you research &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/11/business-case-for-slm.html"&gt;the business case for SLM&lt;/a&gt;&lt;/strong&gt; on the Web, eventually you're sure find yourself reading something published by &lt;strong&gt;&lt;a href="http://www.nextslm.org/"&gt;NextSLM.org&lt;/a&gt;&lt;/strong&gt;, a site sponsored by BMC Software. One contributor is a former colleague of mine, &lt;strong&gt;&lt;a href="http://talk.bmc.com/blogs/blog-parmstrong/pa-bio/"&gt;Peter Armstrong&lt;/a&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Peter and I started our careers at IBM UK in the 70's as SE's supporting &lt;a href="http://www-306.ibm.com/software/data/ims/"&gt;&lt;strong&gt;IMS&lt;/strong&gt;&lt;/a&gt; customers. Although information technology has evolved a bit since then, our interests apparently have not diverged much. Peter now writes a blog called &lt;a href="http://talk.bmc.com/blogs/blog-parmstrong/peter-armstrong/"&gt;&lt;strong&gt;Adopting a Service (Management) Mentality&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; which focuses on &lt;em&gt;the increasingly important domain of how business and information technology need to work together --&lt;strong&gt; &lt;/strong&gt;&lt;/em&gt;the area he is responsible for at BMC.&lt;br /&gt;&lt;br /&gt;Buried in the archives of the NextSLM site is an essay by Peter entitled &lt;a href="http://www.nextslm.org/armstrong1.shtml"&gt;&lt;strong&gt;Why IT and Business Need to Talk: Two Nations Separated by a Common Language?&lt;/strong&gt;&lt;/a&gt; I will extract some key paragraphs, adding my own emphasis in each section. Written (as best as I can tell) in 2003, it is peppered with stories of IT and business &lt;em&gt;not&lt;/em&gt; communicating, for example: &lt;blockquote&gt;Your IT department has spent days gathering all the information on server availability, and come to the board meeting ready to prove that they have been delivering 99.99% availability for the last week and cannot understand why anybody is complaining. Unfortunately the application is being used by online options traders who need a response time of less than 12 seconds in which to make a trade. &lt;strong&gt;Availability is meaningless to them without performance.&lt;/strong&gt; &lt;/blockquote&gt;Peter sets out to &lt;em&gt;explain why IT and business have to learn a common language&lt;/em&gt;. He writes about the cultural and historical reasons for the divide between the two sides, and the challenges they face in achieving the much-desired state of &lt;em&gt;alignment&lt;/em&gt;. Being familiar with how IT works, he observes that: &lt;blockquote&gt;&lt;p&gt;Many IT departments focus on the technology and delivery of availability of platforms, databases and applications. But although all of these are important, it is how these elements interact to provide a business service that is the key issue. It is vital that the IT department understands not only the technology but also the way that the technology interacts to deliver service ...&lt;br /&gt;&lt;br /&gt;IT needs to understand that its sole function in life is to enable the business to run better. This means that it is either helping to reduce costs, and/or it is helping you increase revenues ... &lt;/p&gt;&lt;p&gt;However, the IT department is between a rock and a hard place as they are being told to reduce costs, and by far the most important factor is actually quality of service. But when budgets are restricted, it is also the one factor that often gets pushed down the list of selection criteria. &lt;strong&gt;Some managers see low cost and high quality of service as being mutually exclusive but this need not to be the case.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;This article claims to be the first of two parts, but its &lt;strong&gt;&lt;a href="http://www.newnextslm.org/armstrong2.shtml"&gt;link&lt;/a&gt;&lt;/strong&gt; to the second part -- &lt;em&gt;How Good is My Service&lt;/em&gt; -- is broken. But Google found me &lt;a href="http://documents.bmc.com/products/documents/69/59/26959/26959.pdf"&gt;&lt;strong&gt;this PDF&lt;/strong&gt;&lt;/a&gt;, which seems to contain the original essay before it was split into parts. In the second half, Peter discusses several aspects of SLM. Looking first at Web sites, Peter highlights how vital it is that companies doing business online understand their customers' point of view. Someone needs to ask: &lt;blockquote&gt;&lt;li&gt;Who is using your IT systems? Why are they using them? What are you trying to sell them?&lt;/li&gt;&lt;li&gt;Is it easy to contact you if they have problems? Is the data up-to-date?&lt;/li&gt; &lt;li&gt;Are the systems available (and this includes performance)?&lt;/li&gt; &lt;li&gt;What are the availability and performance requirements (some systems perform better than required, which is a waste of money)?&lt;/li&gt; &lt;li&gt;Do you have Service Level Agreements (SLAs) in place and are you measuring against them?&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Are you measuring from the end-user point of view or from your own point of view?&lt;/strong&gt;&lt;/li&gt;&lt;/blockquote&gt;Turning his attention to service management and the nature of SLA's, Peter writes: &lt;blockquote&gt;The cornerstone of any managed services contract is the &lt;em&gt;service level agreement&lt;/em&gt;. This is meant to be the yardstick that measures the performance of the &lt;em&gt;service provider&lt;/em&gt;, but unless the agreement is written and reported on with measurable and meaningful values it can lead to very difficult situations ...&lt;br /&gt;&lt;br /&gt;I was visiting a major customer last year, whose IT operations are outsourced to one of the major outsourcing companies. The contract is, of course, couched in terms of CPU &lt;em&gt;(processor resources)&lt;/em&gt; used, number of housekeeping jobs run, number of tape mounts etc. -- totally and utterly wrong in my opinion. The bank wants a service -- how the outsourcer actually implements it technically should be of no concern as long as it is safe, reliable and conforms to the business SLAs ...&lt;br /&gt;&lt;br /&gt;Reporting is another critical area that can get overlooked. A good IT department will not only provide good service but also prove it by providing meaningful reports. These reports should relate directly to the service being provided to the customer and also show the value that the IT department is bringing to the equation. &lt;strong&gt;They should be couched in language that the business people can understand -- Oracle availability is meaningless, ability to print invoices on time is significant&lt;/strong&gt;.&lt;/blockquote&gt; Like me, Peter is a strong advocate of measurement tools, which should be deployed within a systematic SLM framework such as ITIL. [Since we work for companies that sell tools and services, you might be inclined to discount our views. But I'm sure Peter would agree with me that this is a "chicken and egg" situation -- we work for tool vendors because we believe in the value of their tools and services, and not &lt;em&gt;vice versa&lt;/em&gt;.] Peter writes: &lt;blockquote&gt;At a technical level the key issue is how the IT department actually proposes to manage the environment. The use of industry-leading solutions and best-practice methodologies should be common to all good &lt;em&gt;service providers&lt;/em&gt;, but they are surprisingly often absent.&lt;br /&gt;&lt;br /&gt;Some IT departments see tools merely as a way of reducing their cost of operation by reducing the number of people required to manage the environment. However, the use of tools to manage technology can greatly increase the availability and performance of the infrastructure. By exploiting the functionality within the toolset and applying that functionality to best-practice standards such as ITIL, the business -- and ultimately the customer -- receives the benefits.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Through implementation of sensible IT processes, combined with business-related tools and methodologies, the advantage to the business is the true and correct exploitation of the IT investment. This is why the two parties need to learn to talk to one another.&lt;/strong&gt;&lt;/blockquote&gt; It is clear that Peter's thinking has subsequently found its way into BMC's more sanitized (and glossier) marketing materials on this topic, like his whitepaper on &lt;a href="http://bmc.com/USA/Communities/attachments/BMC_BusinesPerspec_SwingIntoBSM.pdf"&gt;&lt;strong&gt;Seven Strategies for Enabling IT to Activate the Business&lt;/strong&gt;&lt;/a&gt;, and this corporate strategy brochure on &lt;a href="http://www.bmc.com/USA/Corporate/BSM/attachments/16542_RTV_BMC_Update2.pdf"&gt; &lt;strong&gt;Business Service Management&lt;/strong&gt;&lt;/a&gt;. But Peter's original essay reveals better the strength of his personal belief in the importance of SLM to the business. &lt;br /&gt;&lt;br /&gt;I share that belief, and endorse his conclusions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113124242721419272?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.nextslm.org/armstrong1.shtml' title='Armstrong on IT-Business Alignment'/><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113124242721419272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113124242721419272' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113124242721419272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113124242721419272'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/11/armstrong-on-it-business-alignment.html' title='Armstrong on IT-Business Alignment'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113116996210870504</id><published>2005-11-07T08:01:00.000Z</published><updated>2006-12-04T15:15:33.050Z</updated><title type='text'>SLM: Learning from Dot-coms</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Pets_com_Sock_Puppet.0.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7699/1738/200/Pets_com_Sock_Puppet.0.jpg" border="0" alt="The Pets.com Sock Puppet" /&gt;&lt;/a&gt;In life, wisdom is generally thought to come with age. But in business, years of experience do not always lead to best practices. This often seems to be the case when it comes to the systematic application of performance management or &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;service level management&lt;/a&gt;&lt;/strong&gt; (SLM) practices.&lt;br /&gt;&lt;br /&gt;Lately I've been working on the business value of SLM. In particular, I've been focusing on how to establish the value of SLM activities devoted to improving the availability and responsiveness of Web sites and e-business applications. In the process I've been speaking to several companies about how they approach this question.&lt;br /&gt;&lt;br /&gt;Personally, as I said in my previous post, &lt;em&gt;I'm convinced that there is always a good &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/11/business-case-for-slm.html"&gt;business case for SLM&lt;/a&gt;&lt;/strong&gt;, if it's implemented properly&lt;/em&gt;. But I've spent many years advancing this proposition, so my opinion probably does not count for much. For any advocate, what matters more is the listener's own predisposition. In this case, regardless of how strongly a company seems to be embracing e-business approaches, their history and culture can still affect their readiness to embrace and justify SLM programs to support that business.&lt;br /&gt;&lt;br /&gt;It's now more than five years since the &lt;a href="http://en.wikipedia.org/wiki/Dot-com"&gt;&lt;strong&gt;dot-com bubble&lt;/strong&gt;&lt;/a&gt; burst in 2000, wiping out billions of dollars that had been invested in speculative Web businesses. The survivors may have picked a better idea for an online business, but more importantly, they knew how to make a profit running that business. Those who did not quickly joined the ranks of eToys, Pets.com, Webvan, and hundreds of other long-forgotten companies.&lt;br /&gt;&lt;br /&gt;At successful e-business companies, because business is conducted entirely over the Web, the value chain connecting &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/performance-dj-vu-all-over-again.html"&gt;SLM process&lt;/a&gt;&lt;/strong&gt; to &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/web-usability-simple-framework.html"&gt;site usability&lt;/a&gt;&lt;/strong&gt; to &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/delight-satisfy-or-frustrate.html"&gt;customer satisfaction&lt;/a&gt;&lt;/strong&gt; to revenue and profits is an ever-present fact of life. At older companies, where e-business components are now being added to existing offline businesses, the corporate culture is not nearly as attuned to that e-business value chain.&lt;br /&gt;&lt;br /&gt;Years of investment in IT infrastructure and applications were designed primarily to deliver the back-office systems that supported "bricks and mortar" businesses. Back-office systems are used by company employees, not customers. Although poorly performing applications may annoy employees, and even lower their productivity, it's usually safe to assume that they do not drive away business.&lt;br /&gt;&lt;br /&gt;But when the company starts adopting e-business, those old assumptions must change. Older companies must learn what successful dot-coms must already know -- SLM is important, because it affects the bottom line.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Performance matters!&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113116996210870504?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113116996210870504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113116996210870504' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113116996210870504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113116996210870504'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/11/slm-learning-from-dot-coms.html' title='SLM: Learning from Dot-coms'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113105182413277359</id><published>2005-11-04T08:15:00.000Z</published><updated>2006-12-11T20:57:03.433Z</updated><title type='text'>The Business Case for SLM</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/SLM%20ROI%20model.0.png"&gt;&lt;img style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="SLM ROI Framework" src="http://photos1.blogger.com/blogger/7699/1738/320/SLM%20ROI%20model.png" border="0" /&gt;&lt;/a&gt;These days everyone has an opinion about &lt;em&gt;aligning IT with the business&lt;/em&gt;. If you think I'm exaggerating, just Google that phrase and read a few of the 800+ references you get back. You will quickly see that this subject generates very strong feelings, the trajectory of which depends largely on whether the writer views the world through the prism of IT or the business.&lt;br /&gt;&lt;br /&gt;Bob Evans summed up the strength of these feelings very well in the first sentence of his amusing Information Week column, &lt;strong&gt;&lt;a href="http://informationweek.com/story/showArticle.jhtml?articleID=164902751"&gt;A Trip To The Cafeteria--With The CFO!&lt;/a&gt;&lt;/strong&gt; Contentious issues abound -- squeezing more productivity out of already overworked IT employees, cutting technology spending, the pros and cons of outsourcing, getting the business to understand what it takes to keep up with technological advances, not to mention Sarbox regulations. Or sometimes, just getting the business to settle on a direction, any direction -- N? E? NE? NNE? -- so that IT alignment can begin!&lt;br /&gt;&lt;br /&gt;To express opinions hastily on this subject would be like chasing butterflies into a minefield. Fortunately, I can sidestep that minefield. The issue at the core of the debate is the value obtained by a business in return for its investment in IT. And no matter what your opinion about the politics of IT/business alignment, investing in &lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;&lt;strong&gt;Service Level Management (SLM)&lt;/strong&gt;&lt;/a&gt; is always worthwhile.&lt;br /&gt;&lt;br /&gt;SLM is not a passing IT fad to be adopted then discarded like the latest technical buzzword. It is an essential way to maintain and improve the quality and effectiveness of your business. And when your business is online, implementing a systematic SLM program can -- as suggested in the graphic above -- benefit both revenues and costs.&lt;br /&gt;&lt;br /&gt;This is not a recent revelation, triggered by the debate about IT and business alignment. In 1998 I wrote an article on &lt;a href="http://www.naspa.com/pdf/98/10-pdf/T9810001.pdf"&gt;&lt;strong&gt;Controlling Application Performance: What Every CIO Should Know&lt;/strong&gt;&lt;/a&gt;, which began ...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;CIOs face complicated issues of data center infrastructure, a portfolio of widely differing application workloads, and rapidly changing business requirements. Strategically, CIOs need to react quickly to competition. Tactically, they must create common processes across business units to make collection and dissemination of information simpler and to slash the cost of new applications.&lt;br /&gt;&lt;br /&gt;Compared with these concerns, application performance lacks glamour. Nevertheless, &lt;em&gt;a systematic program of performance monitoring and tuning almost always produces surprising cost savings for large companies.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;CIO sponsorship is vital for such a program to succeed. In the first place, only the CIO can negotiate the transfer of funds between the capital equipment, salary, and software budgets. Second, management prioritization and employee motivation are required to convince lower-level managers and technical professionals of the importance of application performance. The CIO can provide the necessary emphasis.&lt;/blockquote&gt;That article emphasized the cost savings achievable through application tuning, and little has changed since 1998 in that respect. In today's world of e-business, equally important opportunities also exist for system and application tuning efforts to increase revenues, by making an online business more available and more responsive to customers.&lt;br /&gt;&lt;br /&gt;CIO sponsorship is still an essential first step to success with SLM, for the same reasons as before. As a CIO seeking to better align IT with the business (whatever that means this week), a proposal to beef up your SLM processes may seem at first to be just another expense to be placed under the cost-cutting microscope. Proponents of SLM programs should welcome such scrutiny. When the applications to be managed are important to the business, opportunities always exist for significant cost savings, revenue increases, or both. I would be willing to bet that the initial investment will more than pay off over time, in applications that help the business by serving customers better.&lt;br /&gt;&lt;br /&gt;In fact, I'm convinced that there is always a good business case for SLM, if it's implemented properly. Future posts will consider some of the areas where SLM pays off, and ways of calculating the ROI of SLM investments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113105182413277359?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113105182413277359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113105182413277359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113105182413277359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113105182413277359'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/11/business-case-for-slm.html' title='The Business Case for SLM'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113098146195520815</id><published>2005-11-03T08:01:00.000Z</published><updated>2005-11-03T07:06:09.546Z</updated><title type='text'>Keeping a Public (Site) Healthy</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/TurningPointPMS.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="Four Keys by Turning Point" src="http://photos1.blogger.com/blogger/7699/1738/400/TurningPointPMS.jpg" border="0" /&gt;&lt;/a&gt;Browsing the Web can lead to useful insights, even when you don't find what you're looking for. Today I was searching for information about an aspect of Web site performance management. As often happens, Google returned many links to pages where the term &lt;em&gt;performance management&lt;/em&gt; was used in contexts having nothing to do with managing Web applications.&lt;br /&gt;&lt;br /&gt;On one site, Turning Point, the graphic shown here immediately caught my eye. It was so obviously relevant to my world of application performance management that I studied it for a while before noticing that &lt;strong&gt;&lt;a href="http://www.turningpointprogram.org/Pages/about.html"&gt;Turning Point&lt;/a&gt;&lt;/strong&gt; ... &lt;em&gt;is an initiative of The Robert Wood Johnson Foundation and the W.K. Kellogg Foundation. Its mission is to transform and strengthen the public health system in the United States by making it more community-based and collaborative.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;This sounds like a worthwhile cause, but in a profession whose technical, management, and political challenges I know little about. Nevertheless, the site's &lt;strong&gt;&lt;a href="http://www.turningpointprogram.org/Pages/perfmgt.html"&gt;definition&lt;/a&gt;&lt;/strong&gt; of performance management, and its description of the four key components illustrated in the diagram, written for the world of &lt;em&gt;public health&lt;/em&gt;, apply equally well to the task of managing your &lt;em&gt;Web site health&lt;/em&gt;!&lt;br /&gt;&lt;br /&gt;To demonstrate the parallels, the following paragraphs are quoted directly from the Turning Point site, except that I have made some minor edits:&lt;br /&gt;&lt;blockquote&gt;&lt;strong&gt;Performance management&lt;/strong&gt; is the practice of actively using performance data to improve &lt;del&gt;the public's&lt;/del&gt; your site's health. This practice involves strategic use of performance measures and standards to establish performance targets and goals, to prioritize and allocate resources, to inform managers about needed adjustments or changes in policy or program directions to meet goals, to frame reports on the success in meeting performance goals, and to improve the quality of &lt;del&gt;public health&lt;/del&gt; &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;SLM&lt;/a&gt;&lt;/strong&gt; practice.&lt;br /&gt;&lt;br /&gt;Performance Management components include: &lt;ol&gt;&lt;li&gt;&lt;b&gt;Performance Standards:&lt;/b&gt; establishment of organizational or system performance standards, targets and goals and relevant indicators to improve &lt;del&gt;public health&lt;/del&gt; SLM practice.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Performance Measures:&lt;/b&gt; application and use of performance indicators and measures.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Reporting of Progress:&lt;/b&gt; documentation and reporting of progress in meeting standards and targets and sharing of such information through feedback.&lt;br /&gt;&lt;li&gt;&lt;b&gt;Quality Improvement:&lt;/b&gt; establishment of a program or process to manage change and achieve quality improvement in &lt;del&gt;public health&lt;/del&gt; SLM policies, programs or infrastructure based on performance standards, measurements and reports.&lt;/li&gt;&lt;/ol&gt;A Performance Management System is the continuous use of all the above practices so that they are integrated into the organization's core operations. Performance management can be carried out at multiple levels, including the &lt;del&gt;program&lt;/del&gt; application, &lt;del&gt;organization&lt;/del&gt; Web site, &lt;del&gt;community&lt;/del&gt; line of business, and &lt;del&gt;state&lt;/del&gt; corporate levels.&lt;br /&gt;&lt;/blockquote&gt;It seems that whatever your professional focus, you can always find parallels in other fields. Those &lt;em&gt;technical details&lt;/em&gt; you've been wrestling with to speed up your Web site may not be a hot topic of conversation at your next dinner party. On the other hand, &lt;em&gt;the process&lt;/em&gt; of performance improvement seems to be a concept everyone can relate to.&lt;br /&gt;&lt;br /&gt;If you chose your words really carefully, people may not even realize you manage a Web site. Just tell them you're a health specialist -- maybe the diagram above will help with your explanation. It worked on me!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113098146195520815?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113098146195520815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113098146195520815' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113098146195520815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113098146195520815'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/11/keeping-public-site-healthy.html' title='Keeping a Public (Site) Healthy'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113082695785231011</id><published>2005-11-02T08:30:00.000Z</published><updated>2005-11-02T16:38:47.570Z</updated><title type='text'>Keeping it on the Road</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Breakdown.0.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="Breakdown" src="http://photos1.blogger.com/blogger/7699/1738/400/Breakdown.jpg" border="0" /&gt;&lt;/a&gt;Yesterday I introduced the subjects of time series and &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/11/probability-rain-in-spain.html"&gt;probability&lt;/a&gt;&lt;/strong&gt;. Today I want to show how they apply to one aspect of &lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;&lt;strong&gt;service level management&lt;/strong&gt;&lt;/a&gt; -- working with service availability data, which you are probably collecting from several different measurement tools.&lt;br /&gt;&lt;br /&gt;Suppose you need to improve the availability of a critical e-business application. And let's assume you have collected historical availability statistics, or estimates you are comfortable with using, for all components of your Web environment. You'll need these for the devices and services you control yourself, and for those you don't, like your ISP and its connection to the Internet. Hopefully, many of those numbers will be close to 100%. But if you are having service quality problems, at least some of those availability scores must not be good enough.&lt;br /&gt;&lt;br /&gt;Barring catastrophic outages that bring down an entire data center, the components that support your Web applications generally operate independently of one another. That is, Web server crashes are unrelated to database server problems, which are not affected by a back-end application service being down. So if you know the availability of each one separately, it's intuitively clear that you should be able to derive an estimate for the availability of the whole interconnected system, for a given application. In other words, you can estimate of &lt;em&gt;the level of application availability a customer experiences&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Here's how you can use the &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/web-site-availability-model.html"&gt;Web Site Availability Model&lt;/a&gt;&lt;/strong&gt; to do that:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Based on my conceptual diagram, create a spreadsheet model listing all your services, where each row of your sheet corresponds to a service that's used to deliver your Web site or Web-based applications.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Check that the target application does not depend on any unlisted services. This would be most likely to happen in the bottom row, called &lt;em&gt;Application Services&lt;/em&gt;, because what goes in that row will vary from one application to another.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;For each separate page of the target application, set aside one column of an availability model.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In each column, highlight only the cells that correspond to services needed to serve that page. These cells are the only ones you will use in this instance of the model. Not every service listed is required for the delivery of every page. Simple applications may require only a small subset of the services you manage.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In each row of your completed model, record the percentage of down time (100% minus availability) of each service &lt;em&gt;in the first cell&lt;/em&gt; where that service is used (highlighted). At this point, the spreadsheet is already a useful document that can help refine your focus and tackle the biggest problems.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Summing the percentages in each column will now give you the probability that your application will fail on any particular page. A customer may be equally upset if your home page is down, the product catalog is down, or the checkout process times out. But to improve overall application availability, you need to know which pages face the most problems.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Summing the column totals for whole model will tell you the overall chance of an application failure.&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;How's the Weather in Your Data Center?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Although it may not be immediately obvious, the above method assumes that your devices and services behave a lot like the weather in California (to use the example I described &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/11/probability-rain-in-spain.html"&gt;yesterday&lt;/a&gt;&lt;/strong&gt;). Just substitute &lt;em&gt;up&lt;/em&gt; and &lt;em&gt;down&lt;/em&gt; for &lt;em&gt;sunshine&lt;/em&gt; and &lt;em&gt;rain&lt;/em&gt;! Service outages do not happen for a single instant, then go away. Normally a service is 100% available, but when it goes down (becoming 0% available), it is stays down for some time.&lt;br /&gt;&lt;br /&gt;Therefore, the proposed method assumes that if a service is available the first time it's needed by any page of an application, it will remain available for all subsequent pages. Making this assumption greatly simplifies the challenge of aggregating device and service availability data from disparate sources.&lt;/p&gt;&lt;p&gt;If on the other hand you have reason to believe that an underlying service behaves independently from page to page of a Web transaction, the weather analogy breaks down. In that case, you have a bit more work to do to complete the cells of your availability model. First you must count the number of pages of the transaction that use the service, then you must compute the probability that &lt;em&gt;none of those pages will fail&lt;/em&gt; when using the service.&lt;br /&gt;&lt;br /&gt;This situation is what statisticians call a sequence of &lt;em&gt;independent trials, &lt;/em&gt;like successive rolls of a dice. For n pages, the probability of no failures is &lt;em&gt;service availability raised to the power n&lt;/em&gt;. For example, if a service is 90% available overall, the probability that two pages will succeed in using that service is (.9)(.9) = .81, three pages (.9)(.9)(.9) = .729, and so on. Subtracting that result from 100% gives you the percentage of down time for that service, during your application. Now proceed as in steps 5-7 above -- enter this result in the first highlighted cell (the first page requiring the service), sum the component unavailability data by page, and sum the columns to derive the overall probability of an application outage.&lt;br /&gt;&lt;br /&gt;Note that all the possibilities for a service failure have once again been recorded in the first column (page) that uses the service, which does not matter if you are focused only on overall application availability. If you really want to estimate the probability of a particular page failing, you will have to spread the probability of failure across all the pages that use the service. This requires computing the conditional probabilities of each page failing, given that its predecessors did not. That, as they say in the textbooks, is left as an exercise for the reader.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Details, details, ...&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Astute readers may have noted that my suggested method glosses over a couple of important details: &lt;/p&gt;&lt;ol&gt;&lt;li&gt;If you use a group of parallel servers (for example, with load balancing), you should treat the group as a single logical service in this model. The customer does not care whether one of those servers is up or down, if they can still obtain service from another server in the group. Of course, that is one reason why you are using parallel servers -- the goal is to achieve 100% availability for this service, regardless of whether an individual server is up or down.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In practice, customers may take different paths through your applications, where those paths (&lt;em&gt;usage scenarios&lt;/em&gt; or &lt;em&gt;use cases&lt;/em&gt;) require different sets of devices and services. If service availability differs significantly based on application usage, you should treat each scenario a separate application, or add &lt;em&gt;weights&lt;/em&gt; to your model. Then you can combine the different use cases and come up with an overall availability estimate for the application. How you deal with this kind of detail will depend on your purpose in using the model.&lt;/li&gt;&lt;/ol&gt;Finally, my aim has not been to provide a rigorous exposition of data center forecasting as an application of probability theory. And I am aware that a probability is a quantity between 0 and 1, whereas percentages run from 0 to 100%. But for descriptive clarity, it seems easier and more natural to use the terminology interchangeably. But if you are actually doing the calculations, be sure to pick one or the other and not to mix them!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113082695785231011?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113082695785231011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113082695785231011' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113082695785231011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113082695785231011'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/11/keeping-it-on-road.html' title='Keeping it on the Road'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113063250076783271</id><published>2005-11-01T09:00:00.000Z</published><updated>2006-12-08T20:48:43.440Z</updated><title type='text'>Probability: The Rain in Spain ...</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/badWeather.jpg"&gt;&lt;img style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" height="170" alt="Bad Weather" src="http://photos1.blogger.com/blogger/7699/1738/1600/badWeather.jpg" width="226" border="0" /&gt;&lt;/a&gt;Today I was going to write about probability theory, statistical independence, and correlation, and their importance when analyzing performance data. But I know those subjects have a tendency to induce severe attacks of fear and loathing. So instead I'm going to talk about the weather -- specifically about the difference between British and Californian weather.&lt;br /&gt;&lt;br /&gt;When I came to the US, having previously experienced only the notorious changeability of British weather, I was quite surprised to discover that Californians enjoyed almost the exact opposite.&lt;br /&gt;&lt;br /&gt;You may have heard the song &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/B00000092X/104-1218538-0232761?v=glance"&gt;&lt;strong&gt;It Never Rains in Southern California&lt;/strong&gt;&lt;/a&gt; (but man it pours). And if it's sunny today, chances are good it will be sunny again tomorrow -- and probably for the rest of the week too! But during the winter months in &lt;a href="http://www.mp3tunes.com/album_details.php?album_id=33829"&gt;&lt;strong&gt;Northern California&lt;/strong&gt;&lt;/a&gt; it often rains for several days. And when it's raining, expect the rain to continue for a few days.&lt;br /&gt;&lt;br /&gt;A friend of mine used to joke that the talents of weather forecasters were wasted here. British weather forecasters are equally redundant, but for the opposite reason; it's almost impossible for them to get it right. To cope with this, they have evolved umpteen ways to say &lt;em&gt;unpredictable&lt;/em&gt; -- sunshine with occasional showers, cloudy with sunny intervals, overcast but brightening later, and so on.&lt;br /&gt;&lt;br /&gt;Maybe you're wondering why I am telling you this, since you probably already know why &lt;a href="http://www.webfitz.com/lyrics/Lyrics/1963/291963.html"&gt;&lt;strong&gt;Surfin' USA&lt;/strong&gt;&lt;/a&gt; is a lot better known than &lt;a href="http://www.bbc.co.uk/devon/surfing/surfing_features/2005/surfs_up_exhibition.shtml"&gt;&lt;strong&gt;Surfin' UK&lt;/strong&gt;&lt;/a&gt;. Or maybe you've figured out that my sudden interest in the weather is really just a cover for my original purpose of discussing probability theory. So let me explain.&lt;br /&gt;&lt;br /&gt;Consider any weather-related variable that's measured daily, like hours of sunshine, or inches of rain. The technical term for this set of measurements is a &lt;em&gt;time series&lt;/em&gt;. Suppose you want to analyze such a time series and use it as a basis for forecasting tomorrow's weather (and assume for purposes of this example that no other meteorological data exists). If the two conditions you care about are rain (R) and sun (S), then you can do a lot better than simply calculating the long-term probability of rain, which a statistician writes as p(R).&lt;br /&gt;&lt;br /&gt;That naive approach might be OK for forecasting the weather in Britain. But not in California, where a forecaster needs to consider &lt;em&gt;conditional probabilities&lt;/em&gt; -- the probability of an outcome &lt;em&gt;given what we already know&lt;/em&gt;, which is written p(&lt;em&gt;outcome&lt;/em&gt;&amp;#124;&lt;em&gt;condition&lt;/em&gt;). If it's raining in California today, what really matters are the conditional probabilities of rain tomorrow [p(R&amp;#124;R)] and sun tomorrow [p(S&amp;#124;R)].&lt;br /&gt;&lt;br /&gt;For a time series, these kinds of conditional probabilities depend upon a statistical property of the series called &lt;a href="http://en.wikipedia.org/wiki/Statistical_independence"&gt;&lt;strong&gt;independence&lt;/strong&gt;&lt;/a&gt;, and its opposite, &lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Autocorrelation"&gt;autocorrelation&lt;/a&gt;&lt;/strong&gt;. When the results of successive measurements are independent, knowing the history does not help you to forecast future outcomes. This is the challenge facing the BBC's weather forecaster, whose &lt;a href="http://www.ancientstones.co.uk/prepared.php"&gt;&lt;strong&gt;unpredictable weather&lt;/strong&gt;&lt;/a&gt; is such that p(R&amp;#124;R) = p(R&amp;#124;S) = p(R).&lt;br /&gt;&lt;br /&gt;But for the weather forecaster in &lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Sacramento,_California"&gt;Sacramento&lt;/a&gt;&lt;/strong&gt;, California, prior knowledge is crucial. During a typical year it rains on 58 days, so p(R), the probability of rain on any given day, is 58/365 or 0.158. However, those 58 days are not randomly spread across the year. Like the Aspens in Colorado, they come in clusters. So if it's raining today, the probability of rain tomorrow [p(R&amp;#124;R)] is significantly greater than 0.158, because for Sacramento weather, the time series is autocorrelated.&lt;br /&gt;&lt;br /&gt;So ... this has been today's science lesson from your Web Weather station. Tune in again tomorrow, and I will explain how understanding the statistics of weather forecasting can also help you forecast your Web site availability. And you thought those weather forecasters on the nightly news were just there for comic relief!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113063250076783271?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113063250076783271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113063250076783271' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113063250076783271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113063250076783271'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/11/probability-rain-in-spain.html' title='Probability: The Rain in Spain ...'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113046977622358844</id><published>2005-10-31T22:00:00.000Z</published><updated>2005-11-03T06:46:00.800Z</updated><title type='text'>The Value of Reference Models</title><content type='html'>A &lt;em&gt;reference model&lt;/em&gt; establishes a shared foundation -- a &lt;em&gt;frame of reference&lt;/em&gt;, or &lt;em&gt;conceptual framework --&lt;/em&gt; that can then be used to structure subsequent discussions of a subject. For more details, the best resource I could locate online is this discussion of the &lt;a href="http://www.oasis-open.org/committees/soa-rm/faq.php"&gt;&lt;strong&gt;OASIS SOA Reference Model&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; Its focus is different from ours, but it contains some good general points, including:&lt;blockquote&gt;A reference model is an abstract framework for understanding significant relationships among the entities of some environment.&lt;br /&gt;&lt;br /&gt;A reference model is based on a small number of unifying concepts and may be used as a basis for education and explaining standards to a non-specialist.&lt;br /&gt;&lt;br /&gt;A reference model is not directly tied to any standards, technologies or other concrete implementation details, but it does seek to provide a common semantics that can be used unambiguously across and between different implementations.&lt;/blockquote&gt;In my two previous posts, I presented reference models for Web application &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/web-site-availability-model.html"&gt;availability&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/web-site-response-time-model.html"&gt;response time&lt;/a&gt;&lt;/strong&gt;. These models enumerate the major components that determine the performance of any e-business application. This emphasis on identifying the contributing factors reveals another essential characteristic of all reference models -- the need for a model to be &lt;em&gt;complete&lt;/em&gt;. Reference models for Web applications will be of limited use unless they offer a way to identify &lt;em&gt;all the components&lt;/em&gt; the affect the availability or responsiveness of &lt;em&gt;any Web-based application&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;Apart from their value as teaching tools, I see many potential uses for these reference models, no matter what aspect of &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;SLM&lt;/a&gt;&lt;/strong&gt; you need to focus on. By showing how the performance of the whole application is determined by the performance of its component parts, they can suggest: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;ways to determine the design goals and service level objectives (SLOs) for components&lt;/li&gt;&lt;br /&gt;&lt;li&gt;the degree to which competing design ideas might improve performance&lt;/li&gt;&lt;br /&gt;&lt;li&gt;frameworks for designing a performance monitoring program&lt;/li&gt;&lt;br /&gt;&lt;li&gt;methods for predicting or summarizing overall availability or response times&lt;/li&gt;&lt;br /&gt;&lt;li&gt;where to focus remediation efforts, identifying component(s) most in need of improvement&lt;/li&gt;&lt;br /&gt;&lt;li&gt;ways to systematically evaluate and compare competing sites&lt;/li&gt;&lt;br /&gt;&lt;li&gt;frameworks for comparing the likely impacts of different technology choices &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;For example, the &lt;strong&gt;&lt;a href="http://www.keynote.com/downloads/whitepapers/ecommerce_response_time.pdf"&gt;CMG paper&lt;/a&gt;&lt;/strong&gt; in which I first published the response-time reference model &lt;em&gt;discusses examples of how e-commerce application response times can be improved in three ways: by reducing the overall number of components, by speeding up individual components, and by moving some components off the synchronous response time path&lt;/em&gt;. &lt;/p&gt;Of course, a reference model will only take you so far. Because of their level, these models are designed only to break apart application availability and response time into their major components, not to reveal everything that goes on "under the covers." For that level of understanding, each component must be further dissected, as I did when discussing the components of Web response time in the CMG paper.&lt;br /&gt;&lt;br /&gt;But a reference model is usually a very good place to start from, no matter what your particular focus.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113046977622358844?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113046977622358844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113046977622358844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113046977622358844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113046977622358844'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/10/value-of-reference-models.html' title='The Value of Reference Models'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113056818321754961</id><published>2005-10-29T06:45:00.000Z</published><updated>2005-10-30T18:53:09.316Z</updated><title type='text'>Sharpening the Saw</title><content type='html'>If you've read &lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/The_Seven_Habits_of_Highly_Effective_People"&gt;The Seven Habits Of Highly Effective People&lt;/a&gt;&lt;/strong&gt; by &lt;a href="http://en.wikipedia.org/wiki/Stephen_Covey"&gt;&lt;strong&gt;Steven R. Covey&lt;/strong&gt;&lt;/a&gt;, then you may remember that the seventh habit is &lt;em&gt;Sharpening the Saw&lt;/em&gt;. The idea is that you should always allocate some time for personal &lt;strong&gt;&lt;a href="http://www.profitadvisors.com/7thhabit.shtml"&gt;renewal&lt;/a&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Because I find my work interesting, or make it so by treating new tasks as a challenge to be mastered, I have a tendency to forget about the seventh habit. But today a colleague reminded me about this, asking if my blog was fun or work related. Of course, my response was "it's both" -- and it is. But this exchange got me thinking that I did need to sharpen the saw from time to time. My own performance matters too.&lt;br /&gt;&lt;br /&gt;I have therefore decided that from now on I will publish the blog only from Monday to Friday, and take the weekends off. Even if I do spend time writing over the weekend, I'll save the posts for publication during the week. It's not as if I'm going to be covering news that can't wait for a couple of days. So if you take time off to sharpen your own saws, you won't be missing anything.&lt;br /&gt;&lt;br /&gt;Have a great weekend!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113056818321754961?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113056818321754961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113056818321754961' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113056818321754961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113056818321754961'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/10/sharpening-saw.html' title='Sharpening the Saw'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113045587720657382</id><published>2005-10-29T02:00:00.000Z</published><updated>2005-10-30T20:39:57.643Z</updated><title type='text'>The Web Site Response Time Model</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/ResponeTime%20Model.1.png"&gt;&lt;img style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/7699/1738/400/ResponeTime%20Model.1.png" border="0" /&gt;&lt;/a&gt; Yesterday I introduced a reference model for &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/web-site-availability-model.html"&gt;Web site availability&lt;/a&gt;&lt;/strong&gt;, and promised to write more about its uses today. But I have since decided to first introduce the equivalent model for Web site response-time. Then I will compare and contrast the uses of the two models, because -- although similar -- their application is not identical.&lt;br /&gt;&lt;br /&gt;The response time reference model illustrated by the diagram is a slightly updated version of the one described in a paper (&lt;a href="http://www.keynote.com/downloads/whitepapers/ecommerce_response_time.pdf"&gt;&lt;strong&gt;E-Commerce Response Time: A Reference Model&lt;/strong&gt;&lt;/a&gt;) I presented at the &lt;strong&gt;&lt;a href="http://www.cmg.org/conference/conference.html"&gt;CMG conference&lt;/a&gt;&lt;/strong&gt; in 2000.&lt;br /&gt;&lt;br /&gt;A quick comparison with yesterday's post will show that the two models are very similar in structure. (And in appearance, thanks to my use of cut and paste to create the diagrams!) The two reference models have a similar &lt;em&gt;purpose&lt;/em&gt;, and function at a similar &lt;em&gt;level&lt;/em&gt; -- concepts discussed on page 2 of the 2000 paper:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Purpose:&lt;/strong&gt; Each model proposes a way to subdivide a single quantity (Web application &lt;em&gt;availability&lt;/em&gt; or &lt;em&gt;response time&lt;/em&gt; as experienced by a site user) into its underlying components. That subdivision is essential because -- to produce the overall result a user experiences -- each of those contributing components must be separately designed, built, monitored, and managed.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Level:&lt;/strong&gt; The two models share a common horizontal dimension. As the 2000 paper says: &lt;em&gt;In an e-commerce application, each business transaction is implemented by means of a sequence of Web pages&lt;/em&gt;. And their vertical dimensions serve the same purpose: &lt;em&gt;To partition ... the process by which a single Web page is served&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Because of differences in the nature of &lt;em&gt;availability&lt;/em&gt; and &lt;em&gt;response time&lt;/em&gt;, the vertical dimensions of the two frameworks are different, and their cells have slightly different meanings and uses. Yesterday I explained that in the availability model, cells represent &lt;em&gt;distinct components&lt;/em&gt; of the Web infrastructure that must all work together to deliver a Web-based application to a customer. In the response time model, the cells represent &lt;em&gt;distinct stages&lt;/em&gt; that together comprise that delivery process.&lt;br /&gt;&lt;br /&gt;So the first (and simplest) use of these models is simply to identify, for any Web-based application, which cells contribute to availability and response-time. The next use is to record or predict &lt;em&gt;the magnitude of those contributions&lt;/em&gt;. This is where the differences between the two quantities become most apparent:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Response Time:&lt;/strong&gt; Response time components are simple to work with. The sum of the cells in each column is the total time a user spends interacting with that page, and the overall sum for a completed matrix is the time it takes to complete a task using that application.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Availability:&lt;/strong&gt; If we want to adopt a similar approach to the response-time framework, we see immediately that we must use the cells to record &lt;em&gt;unavailability&lt;/em&gt;, because we want to aggregate each component's contribution to the overall time the site or application is down.&lt;br /&gt;&lt;br /&gt;But if we were to record the percentage unavailability of a component in &lt;em&gt;every&lt;/em&gt; column where it is used, we would still run into problems because we would be counting the same overall percentage more than once. For example, imagine a Web server that is down 25% of the time. If we were to record an outage contribution of 25% for four or more pages of a Web transaction, and add these contributions, we would obtain an overall unavailability score in excess of 100%, which is impossible.&lt;br /&gt;&lt;br /&gt;How do we fix that? If instead we record the outage percentage (or time) for a component &lt;em&gt;in only the first column in which that cell is used&lt;/em&gt;, we avoid the problem of double-counting. [There is a sound technical justification for this method, which I will describe in a future post]. And because availability percentages are usually close to 100% (outage times are relatively short), we can usually add up all the cells in a model to produce a reasonable and useful upper bound (worst case) estimate of overall unavailability.&lt;br /&gt;&lt;br /&gt;Admittedly, the various components typically incur problems independently of one another, so that in practice some outages may overlap. Overlapping component outages would make the true overall outage time (or percentage) less than the worst case estimate we obtain by simply adding the cells. But as long as all component availability rates are high, the error will be a minor one that we can live with if it makes the availability framework easy to use.&lt;br /&gt;&lt;br /&gt;Uses of these frameworks will be my next topic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113045587720657382?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113045587720657382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113045587720657382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113045587720657382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113045587720657382'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/10/web-site-response-time-model.html' title='The Web Site Response Time Model'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113045581486080914</id><published>2005-10-27T23:29:00.000Z</published><updated>2005-10-29T22:30:05.200Z</updated><title type='text'>The Web Site Availability Model</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/Availability%20Model.png"&gt;&lt;img style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand; alt: " src="http://photos1.blogger.com/blogger/7699/1738/400/Availability%20Model.png" border="0" /&gt;&lt;/a&gt;I am a &lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Mathematics"&gt;mathematician&lt;/a&gt;&lt;/strong&gt; at heart, and all mathematical conclusions are derived by &lt;em&gt;deductive reasoning&lt;/em&gt; from a set of an initial set of assumptions (&lt;em&gt;postulates&lt;/em&gt; or &lt;em&gt;axioms&lt;/em&gt;). So it is natural for me to want to establish a clear foundation on which to build any discussion of performance matters.&lt;br /&gt;&lt;br /&gt;To discuss matters of performance and &lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;&lt;strong&gt;SLM&lt;/strong&gt;&lt;/a&gt;, we need to establish two kinds of frameworks: one for performance &lt;em&gt;quantities&lt;/em&gt; (the things we must measure and manage), and another for the &lt;em&gt;processes&lt;/em&gt; through which we conduct our measurement and management activities.&lt;br /&gt;&lt;br /&gt;Up to now, I have been focusing largely on SLM process frameworks (like &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/performance-dj-vu-all-over-again.html"&gt;ITSO&lt;/a&gt;&lt;/strong&gt;), and process details like how to select competitive response-time &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/delight-satisfy-or-frustrate.html"&gt;objectives&lt;/a&gt;&lt;/strong&gt; for your site and how to &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/application-performance-index_19.html"&gt;report&lt;/a&gt;&lt;/strong&gt; on them. Yesterday's framework dealt with how to &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/abcs-of-measurement-data.html"&gt;use&lt;/a&gt;&lt;/strong&gt; performance data, not with the data itself or how to collect it.&lt;br /&gt;&lt;br /&gt;Today I am turning to the quantities that comprise performance. In my simple &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/web-usability-simple-framework.html"&gt;Web usability framework&lt;/a&gt;&lt;/strong&gt;, I noted that customers have two basic needs -- Availability and Responsiveness. I am now going to expand upon those two aspects of performance, beginning today with a framework (or reference model) for thinking about site availability.&lt;br /&gt;&lt;br /&gt;The model is illustrated by the diagram above. It is a matrix whose row and column labels are fairly self-explanatory, I think. Its cells represent common Web infrastructure components that must all work together to deliver a Web-based application to a customer. Not every page of every site will require every cell -- for example, displaying your site's home page may require only the top four cells in the first column. For more complex eBusiness applications, more of the cells will needed.&lt;br /&gt;&lt;br /&gt;I developed this reference model in June 2005, while working on a presentation. I had previously created a similar one for response-time (&lt;a href="http://www.keynote.com/downloads/whitepapers/ecommerce_response_time.pdf"&gt;E-Commerce Response Time: A Reference Model&lt;/a&gt; -- a topic for a forthcoming post), and I saw that my approach could also work for availability. At the time I could not find anything like it on the Web. Then last week I stumbled across an excellent paper, &lt;a href="http://www.nextslm.org/fishman.html"&gt;&lt;strong&gt;Application Availability:An Approach to Measurement&lt;/strong&gt;&lt;/a&gt; by David M. Fishman, originally published in 2000. It includes a diagram (&lt;em&gt;Figure 2. Service Decomposition&lt;/em&gt;) similar to the first column of mine, and the following discussion:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;... a Web-based application can be decomposed into a set of measurement points for service-level indicators. A user or client of the application performing a transaction depends on all the lower-level layers to complete a transaction. &lt;/p&gt;&lt;p&gt;In this case, a user or client (i.e., a human or a browser) establishes a connection with a Web server over a network. The Web server connects with the application server, which processes business logic. The business logic in the application server connects to the DBMS for data retrieval as appropriate. And, of course, the DBMS runs on the operating system; it is only as available as the operating environment on which it executes. &lt;/p&gt;&lt;p&gt;Service availability can be measured or tracked only as a subset of the complete, end-to-end stack. With a design that allocates sufficient independence between layers, it's possible to speak of the availability of a series or set of services, each of which is a subset of the user's requirement to be up and running from end to end.&lt;/p&gt;&lt;/blockquote&gt;This is a very clear explanation of the ultimate point of an availability reference model: to deliver any service successfully to the customer, &lt;em&gt;every cell that is needed must be available&lt;/em&gt;. So the reference model helps you understand better the diverse components that you must manage, to achieve your overall availability objectives. I will expand on this tomorrow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113045581486080914?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113045581486080914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113045581486080914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113045581486080914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113045581486080914'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/10/web-site-availability-model.html' title='The Web Site Availability Model'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113035204720416919</id><published>2005-10-27T04:30:00.000Z</published><updated>2005-10-27T20:23:17.500Z</updated><title type='text'>The ABC's of Measurement Data</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/ABCDEFG%20of%20data2.GIF"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/7699/1738/400/ABCDEFG%20of%20data1.GIF" border="0" /&gt;&lt;/a&gt;In previous posts I have focused mainly on &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/delight-satisfy-or-frustrate.html"&gt;setting response time objectives&lt;/a&gt;&lt;/strong&gt; as an aspect of &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/web-usability-simple-framework.html"&gt;site usability&lt;/a&gt;&lt;/strong&gt;, and on the &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;Service Level Management&lt;/a&gt;&lt;/strong&gt; process. I turn now to some discussions of performance measurements, and how to get the maximum value from them.&lt;br /&gt;&lt;br /&gt;In my experience, companies usually have lots of measurement tools. Granted, some of them do sit on the shelf unused, but many are in use -- some even collecting data continuously. Despite all this data gathering, the value obtained from the data is often a lot less than it might be.&lt;br /&gt;&lt;br /&gt;Today I will describe a framework, illustrated on the left, for addressing this concern. This diagram does not represent a &lt;em&gt;process&lt;/em&gt;, but rather a conceptual framework. It comprises seven potential ways of exploiting performance data, each one involving a greater level of sophistication than its predecessor. As a &lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Mnemonic"&gt;mnemonic&lt;/a&gt;&lt;/strong&gt;, the names of the levels bear the initials A-G. (A stroke of luck, aided by careful selection of terminolgy).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Aggregate:&lt;/strong&gt; The essential starting point. Raw data has its uses -- you need individual data points to investigate exceptions, and &lt;a href="http://www.stats.gla.ac.uk/steps/glossary/presenting_data.html#scat"&gt;&lt;strong&gt;scatter plots&lt;/strong&gt;&lt;/a&gt; do reveal some patterns. But most uses for performance data demand summary statistics. Availability percentages, and the Apdex metric (a &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/application-performance-index_19.html"&gt;new way&lt;/a&gt;&lt;/strong&gt; to report response times) are just two examples of many. All performance analysis tools, except those specifically intended only for detailed tracing, support this level.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Broadcast:&lt;/strong&gt; Once your tools have summarized the data, &lt;em&gt;it does absolutely no good unless it is sent to someone who looks at it&lt;/em&gt;. It's amazing how many so-called performance monitoring systems break down here -- data is collected, summarized, then filed away, never to be looked at. In the 70's it could be found in a pile of computer printouts collecting dust behind someone's desk, today it's in a file somewhere on the network. That does no good. &lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Stewart_Brand"&gt;Stewart Brand&lt;/a&gt;&lt;/strong&gt; coined the famous phrase &lt;em&gt;information wants to be free. &lt;/em&gt;My corollary is &lt;em&gt;information about performance wants to be seen!&lt;/em&gt; It needs to come out of the server closet and be put on display in a dashboard, where it can be useful.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chart:&lt;/strong&gt; If a picture is worth a thousand words, then a chart is worth a thousand spreadsheet cells. A well-chosen set of charts and graphs can help you see the patterns in your aggregate statistics, turning your data into information. Spotting a pattern in a table of numbers is as difficult as spotting &lt;strong&gt;&lt;a href="http://www.coolmen.ch/hund/waldo.htm"&gt;Waldo&lt;/a&gt;&lt;/strong&gt; in a maze of comic-book kids.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Diagnose:&lt;/strong&gt; Patterns (whether found manually or by a tool) are the key to detecting problems (&lt;em&gt;alerting&lt;/em&gt;), isolating in which major component of your application or infrastructure those problems lie (&lt;em&gt;triage&lt;/em&gt;), and finally discovering (&lt;em&gt;diagnosing&lt;/em&gt;) their causes. Over time, tuning your charts can get you through this process faster. In practice, there are very few truly new problems, but we have a tendency to fix and forget, so they come back to bite us. Hold post-mortems, and refine your process.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Evaluate:&lt;/strong&gt; In polite society, maybe c&lt;em&gt;omparisons are odious&lt;/em&gt; -- or &lt;em&gt;odorous, &lt;/em&gt;depending upon &lt;a href="http://www.phrases.org.uk/meanings/Comparisons%20are%20odious.html"&gt;&lt;strong&gt;who&lt;/strong&gt;&lt;/a&gt; you are quoting. But in the world of SLM, comparisons, far from being undesirable, are essential. Reasonable objectives will be defined by the prevailing &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/wysiwyg-or-no-site-is-island.html"&gt;Web environment&lt;/a&gt;&lt;/strong&gt; and your competition, and the essence of performance management is to continually evaluate your site against those objectives. Ultimately, user comparisons will help determine your site's &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/delight-satisfy-or-frustrate.html"&gt;success or failure&lt;/a&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Forecast:&lt;/strong&gt; Projecting future performance is vital component of SLM, otherwise you will be forever dealing with surprises and crises. And understanding your systems' and applications' performance today is the &lt;em&gt;only&lt;/em&gt; starting point for projecting how they will behave under load tomorrow. Or during the holiday season. Or when marketing launches that big product promotion. This is an aspect of SLM that my colleague and team member Donald Foss will surely be writing about here, when he gets a spare moment. (With the holidays on the horizon, he's busy these days helping his customers predict their future performance).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Guide:&lt;/strong&gt; Many details must come together to create the ideal world of &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/performance-dj-vu-all-over-again.html"&gt;ITSO&lt;/a&gt;&lt;/strong&gt;, in which you &lt;em&gt;consistently meet IT service levels while minimizing infrastructure costs and mitigating risks&lt;/em&gt;. Not the least of these will be the catalog of best practices you develop for yourself, in the course of measuring and understanding what makes your Web applications tick. These should be captured, documented, and institutionalized in your development processes, so that the hard-earned performance lessons of the past become guidance for the future. This is how the very best companies get the top -- and stay there. Look for my colleague and team member Ben Rushlo to share some of his experiences in this area soon.&lt;br /&gt;&lt;br /&gt;I hope this taxonomy and short overview of the uses of performance data is useful. And if you do not learn anything new about performance, at least maybe some of the incidental references will be interesting. Finally, if you really think my scheme needs more letters, please write and tell me what they are. I may be an old dog, but now that I'm getting the hang of blogging, I'm ready to learn some new tricks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113035204720416919?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113035204720416919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113035204720416919' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113035204720416919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113035204720416919'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/10/abcs-of-measurement-data.html' title='The ABC&apos;s of Measurement Data'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113027874439000871</id><published>2005-10-26T03:00:00.000Z</published><updated>2005-10-27T09:22:06.686Z</updated><title type='text'>Performance: Déjà Vu All Over Again</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7699/1738/1600/ITIL%20process.gif"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="Teamquest ITSO Process" src="http://photos1.blogger.com/blogger/7699/1738/400/ITIL%20process.gif" border="0" /&gt;&lt;/a&gt;A few days ago, an email from &lt;a href="http://www.teamquest.com/"&gt;&lt;strong&gt;TeamQuest&lt;/strong&gt;&lt;/a&gt; offered me a &lt;a href="http://www.teamquest.com/pdfs/whitepaper/capacity-management.pdf"&gt;&lt;strong&gt;whitepaper&lt;/strong&gt;&lt;/a&gt; on &lt;em&gt;The Renaissance of Performance &amp;amp; Capacity Management in the 21st Century&lt;/em&gt;. The email points out that anyone involved in IT for a reasonable amount of time understands that the IT industry is cyclical and says that &lt;em&gt;a data center renaissance is coming full circle&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;This got my attention, and not only because it is redundant (&lt;em&gt;coming full circle&lt;/em&gt; implies &lt;em&gt;rebirth&lt;/em&gt;, the meaning of &lt;em&gt;renaissance&lt;/em&gt;). But we've learned to live with worse, especially in direct mail. Anyway, what makes this particular life-cycle so interesting to me is that I have actually participated in it at every stage. Here is my "cliff notes" version of TeamQuest's history of Capacity Planning:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Early 70s:&lt;/strong&gt; Mainframes were almost the entire IT industry. The hardware manufacturers generated reliable income streams by persuading IT departments to upgrade the entire machine when the CPU hit 70% utilisation. An IT manager typically did not have the tools, the credibility, or the courage to dispute a vendor's recommendation.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Late 70s:&lt;/strong&gt; Performance and capacity management products allowed IT departments to better understand their mainframe systems. Companies also started relating IT to the business, by subdividing performance metrics into workloads based around applications.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The 80s:&lt;/strong&gt; The new distributed era forced companies to install performance software just to keep up with new technology.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Early 90s:&lt;/strong&gt; Capacity management provided the means for testing machine consolidation and disaster recovery scenarios as well as its traditional predictive “what-if?” capabilities. Companies created capacity management departments, software was in abundance and it seemed that performance and capacity management had finally come of age.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mid 90s onwards:&lt;/strong&gt; The Web gave birth to eCommerce, and IT became synonymous with the business. Companies now cared more about IT performance than ever before. Hardware was cheap, so money and hardware were thrown at performance problems in a frantic bid to make them go away. Not surprisingly, this rarely worked, and as a result, IT departments have been losing credibility.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Today:&lt;/strong&gt; We have come full circle. An over abundance of hardware and a general lack of understanding as to how it affects performance means that performance and capacity management is now more important than it has ever been.&lt;br /&gt;&lt;br /&gt;This is a pretty good summary of what I have seen happen over the course of my career as a performance specialist. So what's the whitepaper's punch line? It comes in two parts, actually. The first is the need for companies to adopt the approach of IT Service Optimization (&lt;strong&gt;&lt;a href="http://www.teamquest.com/datacenter/itso/process.shtml"&gt;ITSO&lt;/a&gt;&lt;/strong&gt;), the five-step TeamQuest process shown in the chart. The goal of ITSO is to consistently meet IT service levels while minimizing infrastructure costs and mitigating risks.&lt;br /&gt;&lt;br /&gt;While ITSO is a proprietary label, the principles TeamQuest is promoting are aligned with the &lt;strong&gt;&lt;a href="http://www.itil.co.uk/faqs.htm"&gt;ITIL&lt;/a&gt;&lt;/strong&gt; industry standard and the &lt;strong&gt;&lt;a href="http://www.itsmfusa.org/mc/page.do?sitePageId=3013"&gt;ITSMF&lt;/a&gt;&lt;/strong&gt; organization. These initiatives are designed to address the issues I described in my earlier post on &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;SLM&lt;/a&gt;.&lt;/strong&gt; This entire subject is a familiar one -- it occupies three chapters and 115 pages in my &lt;strong&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0471162698/002-6973345-0041649?v=glance"&gt;book&lt;/a&gt;&lt;/strong&gt;, and I will be writing about it again in future posts (which will include reference to the second half of TeamQuest's conclusions).&lt;br /&gt;&lt;br /&gt;For old hands in this industry, the idea of things 'coming full circle' is always interesting. Not always to be welcomed, but often so. Why? Because rebirth confers instant expertise -- we can reuse our hard-bought experience. The imagination races at the prospect! We will be asked to tackle problems we have already solved, to figure out the answers to questions when we have already seen the exam paper.&lt;br /&gt;&lt;br /&gt;Or, foes who defeated us the last time are returning for another round, and this time we will out-fox them. As in Bill Murray's &lt;em&gt;Groundhog Day, &lt;/em&gt;if you re-live the worst day of your life enough times, eventually you will get it right. A few of us have been in IT for long enough to relate to this personally. Bring on the renaissance, we're ready!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113027874439000871?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113027874439000871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113027874439000871' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113027874439000871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113027874439000871'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/10/performance-dj-vu-all-over-again.html' title='Performance: Déjà Vu All Over Again'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-113006257897431070</id><published>2005-10-24T18:40:00.000Z</published><updated>2005-10-24T18:38:17.970Z</updated><title type='text'>Delight, Satisfy, or Frustrate?</title><content type='html'>&lt;p&gt;My recent posts have discussed the relationships among user expectations, site responsiveness, and user satisfaction. To sum up the conclusions of all the research I have seen (and done) into Web download times, Web users’ tolerance for delays depends on several factors, including their expectations, site feedback, the complexity of a task, its importance, and the relevance (utility) of the information being provided by the site. But their perception of a site’s quality and credibility diminishes as its download times increase.&lt;br /&gt;&lt;br /&gt;Today I am going to shift my attention to performance management. For an eCommerce company embarking on a program of &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;Service Level Management (SLM)&lt;/a&gt;&lt;/strong&gt;, what are the implications of all this research? How should you set response time objectives? Here are my conclusions: &lt;ul&gt;&lt;br /&gt;&lt;li&gt;Treat Miller’s thresholds as a design framework to be kept in mind (more on this below).&lt;br /&gt;&lt;li&gt;Forget about Bickford's 8-second rule! Web norms have progressed since 1997.&lt;br /&gt;&lt;li&gt;What really matters are the service levels your customers expect. You can &lt;em&gt;delight&lt;/em&gt; them, &lt;em&gt;satisfy&lt;/em&gt; them, or &lt;em&gt;frustrate&lt;/em&gt; them by delivering levels of responsiveness that they perceive to be &lt;em&gt;fast&lt;/em&gt;, &lt;em&gt;reasonable&lt;/em&gt;, or &lt;em&gt;slow&lt;/em&gt; respectively.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Writing about the role of &lt;strong&gt;&lt;a href="http://www.uie.com/articles/evolution_trumps_usability/"&gt;evolution&lt;/a&gt;&lt;/strong&gt; in site design, Jared Spool observed: &lt;blockquote&gt;"For most types of sites, there are existing models already out there. Someone who wants to produce a new site with pharmaceutical information, for example, can find dozens of existing pharmaceutical sites. A small investment in studying how users interact with existing sites can reveal a lot about what works for your users on their tasks. You could easily develop an understanding of the &lt;em&gt;best practices&lt;/em&gt; and, from that, produce your own guidelines".&lt;/blockquote&gt;&lt;br /&gt;The same applies to your users' perceptions of performance, and how those should determine the objectives you set for your site. Because those perceptions will have been set by other Web sites (including your competition), the performance of comparable online services delivered by other sites in your market segment should be your starting point. You can never go wrong by measuring your competitors and striving to match them.&lt;br /&gt;&lt;br /&gt;For example, Keynote's Public Services division publishes weekly &lt;strong&gt;&lt;a href="http://www.keynote.com/solutions/mm_public_services.html"&gt;indexes&lt;/a&gt;&lt;/strong&gt; of Web site performance for several industry verticals. Many companies in these markets monitor these indexes as an important benchmark of the competitive climate, and of their own site’s quality.&lt;br /&gt;&lt;br /&gt;Some leading companies have taken this approach several steps further, setting up comprehensive measurement, tracking, and reporting programs for their most important Web initiatives, and letting their measurements of the competition drive their own service level objectives. One company even recalibrated the annual performance objectives and bonuses of IT and development staff, based on their ability to match competitors’ performance. And it works! The company improved from last to first place in its industry by following this SLM strategy consistently over a 3-year period.&lt;br /&gt;&lt;br /&gt;So if matching the competition is everything, how are Miller’s thresholds relevant? I see them as absolute standards within which you will frame your relative (competitive) objectives. Although you should aim to compete, you can relax a bit more if you are already close to meeting Miller's guidelines. For example, if your competitors can find widgets in 4 seconds, your site's 8-seconds response is too slow. But if they take one second and your site takes two, you are doing OK -- focus your tuning efforts on another online application that needs help. For additional perspective on this subject, I recommend reading this 2002 exchange in Business Communications Review between &lt;strong&gt;&lt;a href="http://www.bcr.com/bcrmag/2002/07/p08.php"&gt;Peter Sevcik&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="http://www.bcr.com/bcrmag/2002/11/p46.php"&gt;Peter Christy&lt;/a&gt;&lt;/strong&gt;. &lt;br /&gt;&lt;br /&gt;A related aspect is the nature of the service your site is providing, in response to the user's input. Miller proposed that ideally all computer responses should occur within two seconds. But in practice, it is reasonable to absolve some complex interactions from this 2 second target, if you are sure that the customer would not expect the response in 2 seconds. Credit card validation is a good example. If in doubt, be guided by what other sites can achieve for a comparable function. The subject of Web "norms" for various types of interaction is one that I plan to revisit here. It is already being discussed in the context of the &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/application-performance-index_19.html"&gt;Apdex&lt;/a&gt;&lt;/strong&gt; approach to setting objectives and reporting response times.&lt;br /&gt;&lt;br /&gt;To sum up, &lt;em&gt;performance matters!&lt;/em&gt; It affects your bottom line, if you are doing business online. And to win at eCommerce, you cannot be content just to match your competition at every turn. Look at the situation from their point of view. Their customers’ expectations will also be based on the prevailing Web climate. So if your site is faster, the competition can no longer &lt;em&gt;delight&lt;/em&gt; their users with their responsiveness – the best they can do is &lt;em&gt;satisfy&lt;/em&gt; them. This gives your site an edge in the usability stakes, which a competitor must now try to compensate for by doing better in some other aspect of their site. If they don't, and remain noticeably slower for an extended period, eventually some of their customers will become &lt;em&gt;frustrated&lt;/em&gt;, and switch to your service. &lt;br /&gt;&lt;br /&gt;So having a faster site gives you a competitive advantage. This is where the money you have invested in your SLM program really pays off. I've been working in this area recently, and in future posts I will be writing more about the value of SLM, and how to calculate return on investment (ROI).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-113006257897431070?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/113006257897431070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=113006257897431070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113006257897431070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/113006257897431070'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/10/delight-satisfy-or-frustrate.html' title='Delight, Satisfy, or Frustrate?'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-112962520726505308</id><published>2005-10-23T21:30:00.000Z</published><updated>2005-11-03T06:41:41.606Z</updated><title type='text'>WYSIWYG, or No Site is an Island</title><content type='html'>When writing about &lt;strong&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/miller-response-time-test.html"&gt;Human-Computer Interaction&lt;/a&gt;&lt;/strong&gt; (HCI), I discussed Robert B. Miller's classic research into computer responsiveness and its relevance today to questions of Web site design and site usability. For one response to Miller's findings (by providing more &lt;em&gt;percent-done indicators&lt;/em&gt; and &lt;em&gt;busy cursors&lt;/em&gt;) see Jakob Nielsen's &lt;strong&gt;&lt;a href="http://www.useit.com/papers/responsetime.html"&gt;Web site&lt;/a&gt;&lt;/strong&gt; and his book, &lt;strong&gt;&lt;a href="http://www.useit.com/jakob/webusability/"&gt;Designing Web Usability&lt;/a&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;But Miller's three thresholds are far from the whole story. Some digging on Google will reveal that in the last 10 years, scientists around the world have investigated the effects of page download time differences on Web users. Why did these researchers , who were usually aware of (and often referenced) the earlier results of Miller and Bickford, feel the need to conduct new studies focused on the Web? Was it because the Web was reaching a new population with no previous experience of mainframes or hypertext systems? I don’t think this is a sufficient explanation, because Miller’s results are still applicable. I believe it was because they understood that people’s ultimate experience of, and response to, any computer interaction depends most of all on their prior expectations.&lt;br /&gt;&lt;br /&gt;In his &lt;em&gt;Law of the Internet User Experience&lt;/em&gt;, Nielsen pointed out that &lt;i&gt;Users spend most of their time on other sites&lt;/i&gt;. In July 2000 he concluded that this fact, together with others, would lead to the &lt;strong&gt;&lt;a href="http://www.useit.com/alertbox/20000723.html"&gt;End of Web Design&lt;/a&gt;&lt;/strong&gt; -- meaning that Web site &lt;i&gt;designs&lt;/i&gt; would converge. Five years later, it is clear that his controversial conclusion has not really come to pass.&lt;br /&gt;&lt;br /&gt;While some common idioms and &lt;strong&gt;&lt;a href="http://www.designofsites.com/"&gt;design patterns&lt;/a&gt;&lt;/strong&gt; have emerged, most would agree that site designs still vary widely. In fact, in September 2004 we find Nielsen himself comparing the Web to &lt;em&gt;an anthill built by ants on LSD&lt;/em&gt;. Writing about &lt;strong&gt;&lt;a href="http://www.useit.com/alertbox/20040913.html"&gt;The Need for Web Design Standards&lt;/a&gt;&lt;/strong&gt;, he observes that while &lt;em&gt;users expect 77% of the simpler Web design elements to behave in a certain way, ... confusion reigns for many higher-level design issues&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;I believe a key reason for this state of affairs is the presence of what &lt;strong&gt;&lt;a href="http://www.uie.com/about/consultants/"&gt;Jared Spool&lt;/a&gt;&lt;/strong&gt; labels &lt;strong&gt;&lt;a href="http://www.uie.com/articles/evolution_trumps_usability/"&gt;design evolution&lt;/a&gt;&lt;/strong&gt;, as sites adapt to observed user behavior. Evolution promotes both diversity, as novel traits emerge to take advantage of environmental niches,  and convergence, as less efficient species tend to become extinct. Jared's conclusions about design evolution touch on both aspects:&lt;blockquote&gt;A small investment in studying how users interact with existing sites can reveal a lot about what works for your users on their tasks. You could easily develop an understanding of the 'best practices' and, from that, produce your own guidelines. [&lt;em&gt;Convergence&lt;/em&gt;]&lt;br /&gt;&lt;br /&gt;Because you will generate your guidelines by directly observing your users, these guidelines are far more likely to be of value than generalized guidelines produced from sites that have little or nothing to do with your work. Evolution has produced these sites and you can identify which have won the 'survival of the fittest' competition. [&lt;em&gt;Diversity&lt;/em&gt;]&lt;/blockquote&gt;In nature, the attribute of speed evolves in only one direction, because faster individuals more often capure their prey and escape predators. On the Web, human nature, specifically our impatience, drives up individual site performance. One consequence of Jakob's Law that he did not write about is that users' expectations of site performance must inevitably converge, because they are set by their experience of &lt;i&gt;other sites&lt;/i&gt;. As sites get faster, people expect faster sites, and are less tolerant of slower ones.&lt;br /&gt;&lt;br /&gt;While Miller’s findings identified some important (and largely invariant) behavioral thresholds that apply to all human-computer interactions, an individual person's satisfaction with their interaction with a Web site will always be determined by more than those thresholds alone. The key additional ingredient is their prior experience of the Web environment as a whole, which sets their expectations and provides the context in which they can judge subsequent online interactions.&lt;br /&gt;&lt;br /&gt;Nielsen's latest candidate for the scrap heap is the old acronym &lt;b&gt;&lt;a href="http://www.useit.com/alertbox/wysiwyg.html"&gt;WYSIWIG&lt;/a&gt;&lt;/b&gt;. So maybe it's OK to recycle it with a new twist: As a Web user, &lt;i&gt;what you suppose is what you got&lt;/i&gt;. Or, as John Donne might have adapted his metaphors for today's interconnected world:&lt;br /&gt;&lt;blockquote&gt;&lt;em&gt;No site is an island, entire of itself&lt;br /&gt;Every site is a piece of the Web, a part of the environment&lt;/em&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-112962520726505308?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/112962520726505308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=112962520726505308' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112962520726505308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112962520726505308'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/10/wysiwyg-or-no-site-is-island.html' title='WYSIWYG, or No Site is an Island'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-112962509143176004</id><published>2005-10-22T23:20:00.000Z</published><updated>2005-10-23T09:19:28.966Z</updated><title type='text'>The Miller Response-Time Test</title><content type='html'>In the field of &lt;strong&gt;&lt;a href="http://en.wikipedia.org/wikiHuman-computer_interaction"&gt;Human-Computer Interaction&lt;/a&gt;&lt;/strong&gt;, HCI for short, one crucial and much-studied aspect is the speed of the computer's response to various kinds of user inputs. Although a few of these studies do get quoted in discussions of Web site design and Web usability, most books and articles on these topics devote very little space to this aspect.&lt;br /&gt;&lt;br /&gt;One of the best summaries appears in Andrew B. King's book &lt;strong&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0735713243/ref=nosim/websiteoptimi-20/104-6473405-2435110"&gt;Speed up Your Site&lt;/a&gt;&lt;/strong&gt;, which opens with the simple observation that &lt;em&gt;People hate to wait&lt;/em&gt;. His first chapter (&lt;strong&gt;&lt;a href="http://www.websiteoptimization.com/speed/1/"&gt;Response Time: Eight Seconds, Plus or Minus Two&lt;/a&gt;&lt;/strong&gt;) includes a brief history of HCI research into the influence of computer response time on user satisfaction (or frustration), and an overview of its relevance to Web site usability.&lt;br /&gt;&lt;br /&gt;In the early days of the Web, Service Level Management meant little more than keeping your site up and running. Then came the 8-second rule of Web page download time, as people began focusing on the need to build and maintain a consistently responsive Web presence. This rule originated in research results presented by Peter Bickford in his paper &lt;em&gt;Worth the Wait?&lt;/em&gt;, published by Netscape in 1997.&lt;br /&gt;&lt;br /&gt;For a while, Bickford’s paper was widely quoted whenever Web site performance was discussed, and the 8-second statistic soon took on a life of its own as a universal rule of Web site design. Bickford’s actual results however were more variable that this simple “rule” might suggest. Only half the test subjects abandoned after 8.5 seconds, and site feedback (like animated cursors or progress bars) kept them around for much longer.&lt;br /&gt;&lt;br /&gt;Interestingly, the 8-second rule was by no means the first widely accepted rule in the field of human computer interface design:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;In the world of hypertext systems (which predate the Web and HTML by about 25 years), &lt;a href="http://www.eastgate.com/HypertextNow/archives/Akscyn.html"&gt;&lt;strong&gt;Akscyn’s Law&lt;/strong&gt;&lt;/a&gt; was well established prior to the first Hypertext Conference in 1987. It states: “Hypertext systems should take about 1/4 second to move from one place to another. If the delay is longer, people may be distracted; if the delay is much longer, people will stop using the system”.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;As long ago as 1968, when all computers were mainframes, Robert B. Miller’s classic paper on &lt;em&gt;Response Time in Man-Computer Conversational Transactions&lt;/em&gt; described three threshold levels of human attention. A response time of one tenth of a second is viewed as instantaneous, a response within 1 second is fast enough for users to feel they are interacting freely with the information, and response times must stay below 10 seconds to keep the user’s attention focused on the dialog (note that this is similar to Bickford’s findings). Miller also concluded that a consistent 2 second response would be ideal.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Many researchers have investigated the subject of Web responsiveness since Bickford, but no new universal rules have emerged. This is no surprise, because Miller’s findings were a direct result of how people’s brains operate, and they applied to any human interactions with machines. Changing the machine from a mainframe terminal to a Web site has not changed people’s brains.&lt;br /&gt;&lt;br /&gt;So how does the Web experience today measure up to Miller's norms? Jakob Nielsen has been writing about this aspect of Web usability for over 10 years, and although he is still pessimistic about Internet technology in general (see &lt;strong&gt;&lt;a href="http://www.useit.com/alertbox/9703a.html"&gt;The Need for Speed&lt;/a&gt;&lt;/strong&gt;) the very best and most popular sites are actually doing OK these days. The home page download times of the top 10 or so sites in &lt;a href="http://www.keynote.com/solutions/performance_indices/business_index/business_40.html"&gt;&lt;strong&gt;The Keynote Business 40&lt;/strong&gt;&lt;/a&gt; index do achieve Miller’s 1-second threshold (for users with a high-speed connection). Many more pages achieve Miller’s 2-second guideline.&lt;br /&gt;&lt;br /&gt;But it’s still safe to say that the vast majority does not yet pass the &lt;i&gt;Miller Response-Time Test&lt;/i&gt; of computer usability. So if your site's pages are slower, then you still have some work to do before you can feel assured that their design is ideally suited for human-computer interaction. Dogs maybe, but not humans.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-112962509143176004?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/112962509143176004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=112962509143176004' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112962509143176004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112962509143176004'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/10/miller-response-time-test.html' title='The Miller Response-Time Test'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-112976664777790187</id><published>2005-10-21T18:55:00.000Z</published><updated>2005-10-22T09:48:24.160Z</updated><title type='text'>Performance Matters for VoIP</title><content type='html'>In his earlier post on &lt;a href="http://performancematters.blogspot.com/2005/10/web-usability-simple-framework.html"&gt;&lt;b&gt;Web Usability: A Simple Framework&lt;/b&gt;&lt;/a&gt;, Chris Loosley considers what requirements web sites must fulfill to satisfy users. The simple framework he proposes breaks down the principles of Web Usability into four distinct areas: &lt;i&gt;Availability&lt;/i&gt;, &lt;i&gt;Responsiveness&lt;/i&gt;, &lt;i&gt;Clarity&lt;/i&gt;, and &lt;i&gt;Utility&lt;/i&gt;. To attract and retain users, Web sites must satisfy these four needs.  &lt;br /&gt;&lt;br /&gt;As the VoIP industry rapidly grows and expands, it too needs to address issues of usability in order to attract and retain new customers.  Performance matters when it comes to VoIP usability, and to succeed in the marketplace a VoIP service offering must satisfy the same basic needs as a Web site: &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Availability&lt;/strong&gt; is an obvious requirement. The traditional telcos have set very high expectations for the market. Using a phone on the Public Switched Telephone Network (PSTN), users expect to be able to get dial tone and place a call 99.999% of the time.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Responsiveness&lt;/strong&gt; is a critical performance factor in VoIP service satisfaction. Every VoIP call has a certain amount of delay, measured in milliseconds, for the audio to travel over the virtual circuit between phones. Excessive delay causes conversational disruption that can quickly lead to user dissatisfaction.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Clarity&lt;/strong&gt; in phone calls is also an important performance factor. As Chris describes it, clarity describes a service that is "simple and natural to use." A "simple and natural to use" VoIP call is one in which the audio sounds clear and natural. Calls need to avoid audio defects that get in the way of understanding the speaker on the other end of the line.&lt;br /&gt;&lt;br /&gt;Once the other three needs are met, the quality of &lt;strong&gt;Utility&lt;/strong&gt; addresses whether or not the VoIP service actually delivers the value, features, and customer service that the customer looks for. Is international dialing easy to do? Does the voicemail system meet the customers' needs? Is the billing process accurate and easy to understand?&lt;br /&gt;&lt;br /&gt;Customer satisfaction in VoIP systems involves the same &lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;&lt;b&gt;Service Level Management&lt;/b&gt;&lt;/a&gt; requirements that web sites must meet. Of the four qualities described above, three -- Availability, Responsiveness, and Clarity -- fall under Service Level Management. This is different from Web Usability, where Clarity is a more qualitative aspect of the total customer experience. For VoIP, great strides have been made in converting the qualitative assessment of how clear a call sounds to the human ear into a quantitative measurement that can be automated and managed as a service level performance metric.&lt;br /&gt;&lt;br /&gt;Although VoIP service performance is measured differently from Web site performance, providers of VoIP services have just as much at stake in managing their service level performance.  VoIP service level measurement and management are rich topics that I plan to cover in future posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-112976664777790187?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/112976664777790187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=112976664777790187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112976664777790187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112976664777790187'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/10/performance-matters-for-voip.html' title='Performance Matters for VoIP'/><author><name>Kenneth E. Harker</name><uri>http://www.blogger.com/profile/12043331918818541375</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-112978214491660493</id><published>2005-10-20T04:21:00.000Z</published><updated>2005-10-20T19:22:33.916Z</updated><title type='text'>The Application Performance Index</title><content type='html'>Yesterday I introduced the subject of &lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;&lt;b&gt;Service Level Management&lt;/b&gt;&lt;/a&gt;, or SLM. To manage application service levels effectively, and satisfy your customers, you must monitor and report on availability and response times. So if you collect 10,000 measurements, what's the best way to report them?&lt;br /&gt;&lt;br /&gt;Availability percentages are the easy part; they tell a story that everyone can understand. If 5 of your measurements failed, then your availability for that period was 99.95%. All you have to do is report the overall percentage for management tracking purposes, and perhaps summarize the causes of the 5 errors for technical staff to follow up and see if those kinds of errors can be reduced or eliminated in future.&lt;br /&gt;&lt;br /&gt;Aggregate response time statistics are not nearly as self-explanatory. Assuming that you have set response objectives for that application, statistics like average response times (or even averages with standard deviations or confidence intervals, for the statistically minded) do do not really show how well you are meeting your goals and satisfying your customers. While technicians may have the time to discover important patterns from frequency distributions and scatter plots, managers need a quick way to understand the bottom line.&lt;br /&gt;&lt;br /&gt;This is especially true of Internet measurements, whose distributions can be so skewed that their average does not represent the “middle” of the data. In practice, a few really slow measurements can push up the average, so that as many as 85% of all measurements may actually have been faster than the average. This presents a challenge, especially if you have set different response objectives for many pages of your Web applications, and those pages exhibit different response-time distributions. Reporting that "average response time was 3.7 seconds" is not very informative. &lt;br /&gt;&lt;br /&gt;How then should you summarize and report page response times? Until recently, there was no accepted way to reduce response-time data to a common scale that would immediately show managers the level of success being achieved through their SLM efforts. &lt;a href="http://www.apdex.org/"&gt;&lt;b&gt;Apdex&lt;/b&gt;&lt;/a&gt;, short for Application Performance Index, is a new open standard that seeks to address this problem. An alliance of &lt;a href="http://www.apdex.org/default.aspx?c=members"&gt;&lt;b&gt;companies&lt;/b&gt;&lt;/a&gt; whose business is measuring performance has defined the Apdex metric, a user satisfaction score that can be easily derived from any set of response time measurements, once a response time goal has been set. &lt;br /&gt;&lt;br /&gt;The Apdex &lt;a href="http://www.apdex.org/default.aspx?c=specs"&gt;&lt;b&gt;specification&lt;/b&gt;&lt;/a&gt; defines three zones of responsiveness: &lt;i&gt;Satisfied&lt;/i&gt;, &lt;i&gt;Tolerating&lt;/i&gt;, and &lt;i&gt;Frustrated&lt;/i&gt;. The satisfaction threshold (T) is your response objective, and the frustration threshold (F) is always set to 4T. This simple rule is justified by the empirical findings of usability research, which will be a topic for a future post. The Apdex metric is computed by counting the satisfied samples plus half the tolerating samples (and none of the frustrated samples), and dividing by the total sample count. &lt;br /&gt;&lt;br /&gt;The result is a number between 0 and 1, where 0 means no users were satisfied, and 1 means all users were satisfied. For example, if there are 100 samples with a target time of 3 seconds, where 60 are below 3 seconds, 30 are between 3 and 12 seconds, and the remaining 10 are above 12 seconds, the Apdex score is (60+30/2)/100, or 0.75. This result can be reported in one of two standard formats: 0.75[3.0], or 0.75 with a subscript of 3.0. The key point is that any display or report of an Apdex metric &lt;i&gt;always includes the value of the target T that was used&lt;/i&gt;. &lt;br /&gt;&lt;br /&gt;So if you achieve an Apdex score of 1.0 by setting yourself the easy target of 25 seconds, your reports must show 1.0[25]. But if you use more appropriate Apdex thresholds that truly reflect the level of service you want your customers to experience, then your Apdex score will tell you how successful you are in reaching your own goals.&lt;br /&gt;&lt;br /&gt;I believe the Apdex approach is a really good idea, and I will be discussing it further in future posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-112978214491660493?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/112978214491660493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=112978214491660493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112978214491660493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112978214491660493'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/10/application-performance-index_19.html' title='The Application Performance Index'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-112967470196709577</id><published>2005-10-18T22:31:00.000Z</published><updated>2005-10-20T00:49:30.023Z</updated><title type='text'>Service Level Management (SLM)</title><content type='html'>Building and maintaining first class e-business applications demands a systematic commitment to delivering levels of quality that can be measured and managed. Companies must address many inter-related issues, including: &lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;What level of performance do our customers really expect? &lt;/li&gt;&lt;br /&gt;&lt;li&gt;How can we match, even stay ahead of, the competition? &lt;/li&gt;&lt;br /&gt;&lt;li&gt;How will we prepare for our next big sales event (or season)? &lt;/li&gt;&lt;br /&gt;&lt;li&gt;How will we measure site and application responsiveness? &lt;/li&gt;&lt;br /&gt;&lt;li&gt;How will we know when our customers experience a drop in service levels? &lt;/li&gt;&lt;br /&gt;&lt;li&gt;How do we diagnose and fix problems quickly? &lt;/li&gt;&lt;br /&gt;&lt;li&gt;How will we monitor, quantify, and report on our success? &lt;/li&gt; &lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;The management and technical activities required to tackle these issues are collectively called Service Level Management, or SLM for short. To implement SLM successfully, many people with diverse skills and responsibilities must contribute, because SLM touches every aspect of the application lifecycle -- site design, database design, application programming and testing, systems management, and networking.&lt;br /&gt;&lt;br /&gt;This is a broad topic, every aspect of which I will probably be writing about here at one time or another. Having worked for years in the world of software and application performance, I tend to use the terms &lt;i&gt;Service Level Management&lt;/i&gt; and &lt;i&gt;Performance Management&lt;/i&gt; interchangeably. But these days, people without that background are more likely to interpret the word "performance" as a reference to &lt;i&gt;Business Performance&lt;/i&gt;, or &lt;a href="http://en.wikipedia.org/wiki/Business_performance_management"&gt;&lt;b&gt;BPM&lt;/b&gt;&lt;/a&gt; for short. So unless the meaning is clear from the context, I will try to remember to use the SLM terminology.&lt;br /&gt;&lt;br /&gt;If you would like to read a book about SLM for the Web, I recommend &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/158705079X/qid=1129520675/sr=8-1/ref=sr_8_xs_ap_i1_xgl14/002-1562714-5063248?v=glance&amp;s=books&amp;amp;n=507846"&gt;&lt;b&gt;Practical Service Level Management: Delivering High-Quality Web-Based Services by John McConnell and Eric Siegel&lt;/b&gt;&lt;/a&gt;. As a friend and former colleague of Eric's, I am a little biased. But I think the Amazon reader reviews speak for themselves.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-112967470196709577?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.amazon.com/exec/obidos/tg/detail/-/158705079X/qid=1129520675/sr=8-1/ref=sr_8_xs_ap_i1_xgl14/002-1562714-5063248?v=glance&amp;s=books&amp;n=507846' title='Service Level Management (SLM)'/><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/112967470196709577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=112967470196709577' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112967470196709577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112967470196709577'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html' title='Service Level Management (SLM)'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-112961450739311288</id><published>2005-10-18T05:47:00.000Z</published><updated>2005-10-18T17:00:33.416Z</updated><title type='text'>Web Usability: A Simple Framework</title><content type='html'>Web Usability is a big topic. I just Googled "Web Usability" and got 2,350,000 hits. "Web Usability Guidelines" is slightly more manageable, with only 598 hits. There is even a widely referenced &lt;a href="http://www.tri.sbc.com/hfweb/scapin/Scapin.html"&gt;&lt;b&gt;research paper&lt;/b&gt;&lt;/a&gt; devoted to &lt;i&gt;A Framework for Organizing Web Usability Guidelines&lt;/i&gt;. &lt;br /&gt;&lt;br /&gt;[This reminds me of a saying I learned as a college student: "Those who can, do. Those who can't, teach. And those who can't teach, teach the teachers." Maybe if I scour Google for long enough, I'll find a framework for organizing Web usability frameworks. But I digress.]&lt;br /&gt;&lt;br /&gt;I own several books on Web Usability, and I've looked at a far greater number of books and Web sites at one time or another. It's not hard to find long reading lists like &lt;a href="http://www.amazon.com/exec/obidos/tg/guides/guide-display/-/1JAP2NQPHD0U0/ref=cm_bg_dp_m_1/002-1562714-5063248"&gt;&lt;b&gt;this one&lt;/b&gt;&lt;/a&gt; by Paul D. Hibbitts. This appears to be a good list -- but who has time for that much reading? I will try to assemble a much shorter list of recommendations for a future post. &lt;br /&gt;&lt;br /&gt;Despite (or maybe because of) the widespread attention to this topic, there are many ways to slice the usability pie, and each author seems to offer a different taxonomy. But all the best books do have one thing in common: their weight! No matter who you read, they give you a lot of guidelines to follow. In fact, far too many for my liking.&lt;br /&gt;&lt;br /&gt;Being a simple-minded mathematician at heart, I am always looking for those few principles that will provide a sufficient foundation for most of what I need to remember. So, since I'm mostly interested in the role that site performance plays in determining usability, here is my own simple framework. I believe that to satisfy customers, a Web site must fulfill four distinct needs:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Availability:&lt;/b&gt; A site that’s unreachable, for any reason, is useless.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Responsiveness:&lt;/b&gt; Having reached the site, pages that download slowly are likely to drive customers to try an alternate site.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Clarity:&lt;/b&gt; If the site is sufficiently responsive to keep the customer's attention, other design qualities come into play. It must be simple and natural to use – easy to learn, predictable, and consistent.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Utility:&lt;/b&gt; Last comes utility -- does the site actually deliver the information or service the customer was looking for in the first place?&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Until a customer has established a reason to stay on a site, I believe this framework presents the four essential qualities in order of their significance, and therefore applies to all first-time visitors. Familiarity with the site can alter a customer’s priorities, but only a prior knowledge of some unique utility not obtainable from other sites can overcome frustrating slowness or poorly designed navigation features.&lt;br /&gt;&lt;br /&gt;For my purposes, this is enough detail. For the time being, at least, adopting this simple framework saves me from having to attend &lt;a href="http://www.nngroup.com/events/tutorials/usability.html"&gt;&lt;b&gt;Jakob Nielsen's tutorial&lt;/b&gt;&lt;/a&gt; to learn &lt;i&gt;Which of the more than 1,200 documented Web usability guidelines are most important?&lt;/i&gt; But I would hazard a guess that about 85% of those guidelines, and those proposed by other Usability experts, fall under my heading of &lt;i&gt;Clarity&lt;/i&gt;. &lt;br /&gt;&lt;br /&gt;On the other hand, I don't believe that issues of &lt;i&gt;Clarity&lt;/i&gt; represent anything like 85% of the challenges to be overcome to make a site truly usable. Such an assumption would not give enough weight to the challenges presented by the other three areas. It would also downplay the dynamic nature of the Web experience and the interplay between these four factors as sites, and users' expectations of sites, &lt;a href="http://www.uie.com/articles/evolution_trumps_usability/"&gt;&lt;b&gt;evolve&lt;/b&gt;&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;In particular, I believe that anyone responsible for setting site performance goals needs to understand how customers' expectations are likely to be modified by their experience of a site, and of the Web in general. And understanding what customers expect is the essential first step in providing a satisfying Web experience. &lt;br /&gt;&lt;br /&gt;Eventually I plan to tackle this subject at the next level of detail. But first I may need to read a few more of the books on Paul Hibbitts' list!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-112961450739311288?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/112961450739311288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=112961450739311288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112961450739311288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112961450739311288'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/10/web-usability-simple-framework.html' title='Web Usability: A Simple Framework'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-112949916204642341</id><published>2005-10-16T21:10:00.000Z</published><updated>2005-10-17T04:29:35.070Z</updated><title type='text'>When is Your Web Site Fast Enough?</title><content type='html'>When your business is your Web site, and site responsiveness affects customer satisfaction, how much to budget for improving site performance becomes an important business decision.&lt;br /&gt;&lt;br /&gt;Companies doing business on the Web must manage both site availability and site responsiveness.  It's relatively easy to justify spending money to ensure site reliability; when customers can’t reach your site, you're losing business. And even if you can’t assign a precise dollar cost to every outage, at least everyone understands why the ultimate goal is 100% availability, and why a 10% downtime record is likely to be ten times more damaging to the business than 1%.&lt;br /&gt;&lt;br /&gt;A cost/benefit analysis of responsiveness is a lot trickier; how much should you invest in speeding up your site? Faster may be better, but how fast do you really need your site to be? And even if you have set a target, what is the cost of missing it?  These are the harder questions facing eCommerce executives today. &lt;br /&gt;&lt;br /&gt;I wrote about this topic last week in eCommerce Times. The &lt;a href="http://www.ecommercetimes.com/story/46627.html"&gt;&lt;b&gt;article&lt;/b&gt;&lt;/a&gt; provides a short overview of a very important subject, which I plan to write more about in future posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-112949916204642341?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.ecommercetimes.com/story/46627.html' title='When is Your Web Site Fast Enough?'/><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/112949916204642341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=112949916204642341' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112949916204642341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112949916204642341'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/10/when-is-your-web-site-fast-enough.html' title='When is Your Web Site Fast Enough?'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-112949232000489071</id><published>2005-10-16T19:11:00.000Z</published><updated>2005-10-21T22:29:59.536Z</updated><title type='text'>Why Performance Matters</title><content type='html'>In trade magazines and newsletters, articles featuring the “Top Ten Rules” are a staple feature. So anyone with even a passing interest in Web site design has probably seen a few checklists devoted to site usability. In essence, these lists present ways to keep visitors on your site --rather than driving them away in frustration. These guidelines are important for every Web site, but become absolutely vital when doing business online. Over the past ten years I’ve read many such articles -- and I have been delighted to see that they almost always list the importance of &lt;i&gt;site responsiveness&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Why is this so pleasing? Well, having devoted most of my career to software performance engineering, I have always regarded performance as a fundamental cornerstone of software quality. But in the past, such concerns were often viewed as an arcane technical backwater. So it is gratifying to see that performance is now widely acknowledged as vital to Web site usability and customer satisfaction.&lt;br /&gt;&lt;br /&gt;Software performance is a very large subject; I know, because I once spent two years writing a book (&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0471162698/002-1562714-5063248?v=glance"&gt;&lt;b&gt;High-Performance Client/Server&lt;/b&gt;&lt;/a&gt;) about it. The book mainly describes timeless principles of performance engineering and how to approach distributed computing with performance in mind, but (since I wrote it during 1996 and 1997) the examples are a bit dated now. Its focus really needs updating to address the Web environment, but I don't think I'm going to find the time to do it. &lt;br /&gt;&lt;br /&gt;Publishing a blog seems to be a better plan. I aim to contribute an organizing framework and a regular supply of ideas. And I also hope to keep things interesting by attracting comments and contributions from others. As Web users, we all know that site performance does matter, so I will try to make this an interesting place to discuss &lt;i&gt;Performance Matters&lt;/i&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-112949232000489071?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.amazon.com/exec/obidos/tg/detail/-/0471162698/002-1562714-5063248?v=glance' title='Why Performance Matters'/><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/112949232000489071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=112949232000489071' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112949232000489071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112949232000489071'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/10/why-performance-matters.html' title='Why Performance Matters'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17912762.post-112975978338350949</id><published>2005-10-16T07:00:00.000Z</published><updated>2006-12-12T10:01:16.183Z</updated><title type='text'>Table of Contents</title><content type='html'>&lt;i&gt;[Last updated on 8/27/2006]&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Foundations&lt;/b&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/11/probability-rain-in-spain.html"&gt;Probability: The Rain in Spain ...&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2006/04/waterfall-methods-past-and-ever.html"&gt;Waterfall Methods: Past and Ever-Present&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2006/04/software-engineering-matters.html"&gt;Software Engineering Matters&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Performance as an Aspect of Usability&lt;/b&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/why-performance-matters.html"&gt;Why Performance Matters&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/web-usability-simple-framework.html"&gt;Web Usability: A Simple Framework&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/11/dimensions-of-usability.html"&gt;The Dimensions of Usability&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/performance-matters-for-voip.html"&gt;Performance Matters for VoIP&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Web Usability Books&lt;/b&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/11/web-usability-books-1.html"&gt; 1. Don't Make Me Think, by Steve Krug&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/11/web-usability-books-2.html"&gt;2. Designing Web Usability, by Jakob Nielsen&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/11/web-usability-books-3.html"&gt;3. The Design of Sites, by Douglas Van Duyne et al&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/11/web-usability-books-4.html"&gt;4. Usability For The Web, by Tom Brinck et al&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SLM Overview&lt;/b&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/service-level-management-slm_18.html"&gt;Service Level Management (SLM)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/11/keeping-public-site-healthy.html"&gt;Keeping a Public (Site) Healthy&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/performance-dj-vu-all-over-again.html"&gt;Performance: Deja Vu All Over Again&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/web-site-availability-model.html"&gt;The Web Site Availability Model&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/web-site-response-time-model.html"&gt;The Web Site Response Time Model&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/value-of-reference-models.html"&gt;The Value of Reference Models&lt;/a&gt;&lt;br /&gt;&lt;a name="RIA"&gt; &lt;/a&gt;&lt;br /&gt;&lt;b&gt;Managing Rich Internet Applications&lt;/b&gt;&lt;br /&gt;White Paper Series:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://performancematters.blogspot.com/2006/02/managing-rich-internet-applications-1.html"&gt;1. Introduction to RIAs&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-2.html"&gt;2. SLM Issues for RIAs &lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-3_06.html"&gt;3. RIA Technology&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-4.html"&gt;4. The RIA Behavior Model&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-5.html"&gt;5. Measuring RIA Responsiveness: Introduction&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://performancematters.blogspot.com/2006/03/managing-rich-internet-applications-6.html"&gt;6. Measuring RIA Responsiveness: Complications&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://performancematters.blogspot.com/2006/04/managing-rich-internet-applications-7.html"&gt;7. RIA Usability and the Site Development Process&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://performancematters.blogspot.com/2006/07/rich-internet-applications-update.html"&gt;Update: RIA White Paper and Wikipedia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2006/05/alistair-croll-on-ajax.html"&gt;Alistair Croll on Ajax&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2006/08/reporting-web-application.html"&gt;Reporting Web Application Responsiveness&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Web Performance Engineering: Building in Performance&lt;/b&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2006/08/web-performance-engineering-1.html"&gt;1. Ten Steps to a Faster Web Site, by Alexander Kirk&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2006/08/web-performance-engineering-2.html"&gt;2. Web Performance Tuning, by Patrick Killelea&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2006/08/web-performance-engineering-3.html"&gt;3. Speed Up Your Site, by Andrew B. King&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2006/08/web-performance-engineering-4.html"&gt;4. Deliver First Class Web Sites: 101 Essential Checklists, by Shirley Kaiser &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Setting Performance Objectives&lt;/b&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/when-is-your-web-site-fast-enough.html"&gt;When is Your Web Site Fast Enough?&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/miller-response-time-test.html"&gt;The Miller Response-Time Test&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/wysiwyg-or-no-site-is-island.html"&gt;WYSIWYG, or No Site is an Island&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/delight-satisfy-or-frustrate.html"&gt;Delight, Satisfy, or Frustrate?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Capacity Planning and Load Testing&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Measuring Performance&lt;/b&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2006/03/deep-thoughts-on-management.html"&gt;Deep Thoughts on Management&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2006/12/yahoo-on-web-page-performance.html"&gt;Yahoo! on Web Page Performance&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Detecting, Diagnosing, and Fixing Problems&lt;/b&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/11/keeping-it-on-road.html"&gt;Keeping it on the Road&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Reporting on Performance&lt;/b&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/abcs-of-measurement-data.html"&gt;The ABC's of Measurement Data&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/10/application-performance-index_19.html"&gt;The Application Performance Index&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SLM Cost/Benefit Analysis&lt;/b&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/11/business-case-for-slm.html"&gt;The Business Case for SLM&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/11/slm-learning-from-dot-coms.html"&gt;SLM: Learning from Dot-coms&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/11/armstrong-on-it-business-alignment.html"&gt;Armstrong on IT-Business Alignment&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2005/11/climbing-slm-maturity-ladder.html"&gt;Climbing The SLM Maturity Ladder&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Performance in the News&lt;/b&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2006/05/insights-from-interop-2006.html"&gt;Insights from Interop 2006&lt;/a&gt;&lt;br /&gt;&lt;a href="http://performancematters.blogspot.com/2006/08/are-online-retailers-ready-for.html"&gt;Are Online Retailers Ready for Business?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;small&gt;&lt;br /&gt;&lt;b&gt;Notes&lt;/b&gt;&lt;br /&gt;&lt;li&gt;This index will be updated to include references to all significant posts on performance subjects. Those posts may in turn have links to further posts on topics within their subject areas. &lt;li&gt;Although there is no editorial calendar, subject areas without links do suggest topics we hope to cover in future posts.&lt;br /&gt;&lt;/small&gt;&lt;/li&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17912762-112975978338350949?l=performancematters.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://performancematters.blogspot.com/feeds/112975978338350949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17912762&amp;postID=112975978338350949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112975978338350949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17912762/posts/default/112975978338350949'/><link rel='alternate' type='text/html' href='http://performancematters.blogspot.com/2005/10/table-of-contents.html' title='Table of Contents'/><author><name>Chris Loosley</name><uri>http://www.blogger.com/profile/04900264140519802564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/blogger/7699/1738/200/CRLphoto.jpg'/></author><thr:total>0</thr:total></entry></feed>
