<?xml version='1.0' encoding='windows-1252'?><?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'><id>tag:blogger.com,1999:blog-3412775</id><updated>2009-06-07T01:58:35.480-04:00</updated><title type='text'>Object Technology Jeff Sutherland</title><subtitle type='html'>&lt;img src="http://jeffsutherland.com/jeffclean.gif"&gt;&lt;br&gt;
On the web since 1995 with stuff technical leaders need to know.</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jeffsutherland.com/rss.xml'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>222</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3412775.post-1817426910972835597</id><published>2009-04-10T08:06:00.003-04:00</published><updated>2009-04-10T08:16:33.489-04:00</updated><title type='text'>Beyond Java: Ruby on Rails with Scala backend</title><content type='html'>&lt;div class="tc"&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://jeffsutherland.com/uploaded_images/scala-731952.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://jeffsutherland.com/uploaded_images/scala-731950.jpg" width="200" /&gt;&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0981531601?ie=UTF8&amp;amp;tag=jeffsutherlasobj&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0981531601"&gt;Programming in Scala&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0981531601?ie=UTF8&amp;amp;tag=jeffsutherlasobj&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0981531601"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;a href="http://www.artima.com/scalazine/articles/twitter_on_scala.html" target="blank"&gt;Twitter on Scala&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;A Conversation with Steve Jenson, Alex Payne, and Robey Pointer&lt;br /&gt;by Bill Venners&lt;br /&gt;April 3, 2009&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;br /&gt;&lt;i&gt;Three Twitter developers, Steve Jenson, Alex Payne, and Robey Pointer, talk with Bill Venners about their use of Scala in production at Twitter.&lt;/i&gt; &lt;br /&gt;&lt;br /&gt;Twitter is a fast growing website that provides a micro-blogging service. It began its life as a Ruby on Rails application, and still uses Ruby on Rails to deliver most user-facing web pages. But about a year ago they started replacing some of the back-end Ruby services with applications running on the JVM and written Scala. In this interview, three developers from Twitter—Steve Jenson, system engineer; Alex Payne, API lead; and Robey Pointer, member of the service team—sit down with Bill Venners to discuss Twitter's real-world use of Scala. They describe the production issues that led them to consider Scala in the first place, what issues they ran into using Scala in production, and how Scala affected their programming style.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-1817426910972835597?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/1817426910972835597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=1817426910972835597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/1817426910972835597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/1817426910972835597'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2009/04/beyond-java-ruby-on-rails-with-scala.html' title='Beyond Java: Ruby on Rails with Scala backend'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-2048723797077364184</id><published>2008-12-04T06:55:00.007-05:00</published><updated>2008-12-04T12:18:02.096-05:00</updated><title type='text'>ATT charges over $20000 for three days of Gmail in Iceland!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/ATTusbDSCN0252-786611.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://jeffsutherland.com/uploaded_images/ATTusbDSCN0252-785867.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The Darth Vader of USB Modems. ATT USB 881. It will suck all your money out of your wallet!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-style: italic;font-size:130%;" &gt;&lt;a href="http://digg.com/apple/ATT_charges_over_20000_for_three_days_of_Gmail_in_Iceland" target="blank"&gt;Digg this post!&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Evidently, deceptive business practices are the norm for ATT and the iPhone. William Gillis in San Diego is already &lt;a href="http://www.appleinsider.com/articles/08/12/03/apple_argues_only_a_fool_would_believe_its_iphone_3g_ads.html" target="blank"&gt;suing Apple for false advertising&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Is it OK for vendors to blatantly lie about their products? It is very difficult to introduce Agile practices based on truth, transparency, and trust when vendors are constantly lying.&lt;br /&gt;&lt;br /&gt;Evidently there are laws against this.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Prohibited Practices: Federal Communications Commission&lt;/span&gt;&lt;br /&gt;Overcharging or engaging in other unjust or discriminatory practices by telephone or telegraph companies. 47 U.S.C. §202(a)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Unfair or Deceptive Acts and Practices: Department of Commerce&lt;/span&gt;&lt;br /&gt;Engaging in unfair or deceptive acts or practices in or affecting interstate commerce.&lt;br /&gt;9/15 U.S.C. §45(a) (1)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Consumer Products - Packaging and Labeling&lt;/span&gt;&lt;br /&gt;Unfair or deceptive labeling of consumer commodities.&lt;br /&gt;15 U.S.C §1452(a), 1453&lt;br /&gt;Engaging in deceptive packaging, including misrepresentation of retail sale price.&lt;br /&gt;14/15 U.S.C. 1452(a); 16 C.F.R. 502&lt;br /&gt;&lt;br /&gt;------&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;a href="http://www.appleinsider.com/articles/08/12/03/apple_argues_only_a_fool_would_believe_its_iphone_3g_ads.html" target="blank"&gt;Apple argues only a fool would believe its iPhone 3G ads&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;By Sam Oliver&lt;br /&gt;Published: 04:10 PM EST&lt;br /&gt;&lt;br /&gt;Apple isn't lying in television ads that tout the iPhone 3G as twice as fast as its predecessor, but customers would have to be fools to take those claims at face value, the company argues.&lt;br /&gt;&lt;br /&gt;That's essentially Apple's legal response to a lawsuit filed by San Diego resident William Gillis back in September alleging that Apple and AT&amp;amp;T knowingly oversold the new iPhone alongside misleading ads that promised it would perform twice as fast as the original model.&lt;br /&gt;&lt;br /&gt;------&lt;br /&gt;&lt;br /&gt;When I recently purchased an iPhone, I told the sales guy I needed a USB modem for my Mac that worked globally as I spend 2-3 weeks a month in Europe. He said the ATT USBConnect 881 was an ideal choice as it worked in 177 countries, covered all of Europe and supported Global roaming. He didn't tell me if I used it in Iceland, I would have to buy an ATT corporate exec a Mercedes!&lt;br /&gt;&lt;br /&gt;While I was in Iceland recently, I got a call from ATT telling me to dispute an outrageous charge. They were billing me over $39000 for three days of Gmail usage in Iceland. After filing a complaint with the Better Business Bureau, ATT lowered the charge to $20000.&lt;br /&gt;&lt;br /&gt;So instead of buying an ATT executive a Mercedes for Christmas, they will settle for a Toyota Prius, all for using Gmail for three days. Maybe Google should get into this business!&lt;br /&gt;&lt;br /&gt;It turns out that ATT cannot notify you of outrageously high fees until after you have already used the modem. Their system doesn't support this!&lt;br /&gt;&lt;br /&gt;Needless to say, our corporate lawyers propose litigation if we cannot settle for a reasonable fee from ATT. I had a Vodafone USB modem in my bag that would have cost me less than $400 for the same usage in Iceland. Stupid me thought ATT would cost less. Duh!&lt;br /&gt;&lt;br /&gt;American Express has already refunded all money paid to ATT for this fiasco. Evidently they think the charges are a little unreasonable.&lt;br /&gt;&lt;br /&gt;Recent comments from others indicate there are many iPhone and ATT USB modem users out their who feel they have been mistreated. Is there anyone interested in joining a class action suit against ATT if they fail to resolve this issue in a reasonable way?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-2048723797077364184?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/2048723797077364184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=2048723797077364184' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/2048723797077364184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/2048723797077364184'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2008/12/att-charges-over-20000-for-three-days.html' title='ATT charges over $20000 for three days of Gmail in Iceland!'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-64399779969284308</id><published>2008-10-26T15:04:00.003-04:00</published><updated>2008-10-26T15:41:38.697-04:00</updated><title type='text'>Arduino: Open Source Hardware</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/arduino-730292.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 310px; height: 400px;" src="http://jeffsutherland.com/uploaded_images/arduino-730287.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;Build It. Share It. Profit. Can Open Source Hardware Work?&lt;/span&gt;&lt;br /&gt;By Clive Thompson Wired Magazine 10.20.08&lt;br /&gt;&lt;a href="http://www.wired.com/techbiz/startups/magazine/16-11/ff_openmanufacturing#" target="blank"&gt;A circuit board for the masses: the Arduino microcontroller.&lt;/a&gt;&lt;br /&gt;Photo: James Day&lt;br /&gt;&lt;br /&gt;Check this out," Massimo Banzi says. The burly, bearded engineer wanders over to inspect a chipmaking robot—a "pick and place" machine the size of a pizza oven. It hums with activity, grabbing teensy electronic parts and stabbing them into position on a circuit board like a hyperactive chicken pecking for seeds. We're standing in a one-room fabrication factory used by Arduino, the Italian firm that makes this circuit board, a hot commodity among DIY gadget-builders. The electronics factory is one of the most picturesque in existence, nestled in the medieval foothills of Milan, with birdsong floating in through the open doors and plenty of coffee breaks for the white-coated staff. But today Banzi is all business. He's showing off his operation to a group of potential customers from Arizona. Banzi scoops up one of the boards and points to the tiny map of Italy emblazoned on it. "See? Italian manufacturing quality!" he says, laughing. "That's why everyone likes us!" Indeed, 50,000 Arduino units have been sold worldwide since mass production began two years ago. Those are small numbers by Intel standards but large for a startup outfit in a highly specialized market. What's really remarkable, though, is Arduino's business model: The team has created a company based on giving everything away. On its Web site, it posts all its trade secrets for anyone to take—all the schematics, design files, and software for the Arduino board. Download them and you can manufacture an Arduino yourself; there are no patents. You can send the plans off to a Chinese factory, mass-produce the circuit boards, and sell them yourself — pocketing the profit without paying Banzi a penny in royalties. He won't sue you. Actually, he's sort of hoping you'll do it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-64399779969284308?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/64399779969284308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=64399779969284308' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/64399779969284308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/64399779969284308'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2008/10/aruduino-open-source-hardware.html' title='Arduino: Open Source Hardware'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-446899168171972648</id><published>2008-09-27T01:02:00.002-04:00</published><updated>2008-09-27T01:04:11.852-04:00</updated><title type='text'>Roots of Scrum: Object Technology</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/scrum/uploaded_images/Mythical_man-month-746412.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://jeffsutherland.com/scrum/uploaded_images/Mythical_man-month-746409.jpg" alt="" border="0" /&gt;&lt;/a&gt;Scrum was originally designed to support emerging object technology environments, which have now become the dominant paradigm in software development.  One of the goals was to get the organization of the team to reflect the potential flexibility of the software since software rigidity always reflects the organization that built it.  This is &lt;a href="http://www.melconway.com/law/index.html" target="blank"&gt;Conway's Law&lt;/a&gt;. &lt;a href="http://en.wikipedia.org/wiki/Fred_Brooks"&gt;Fred Brooks&lt;/a&gt; cited Mel Conway's 1968 Datamation paper in &lt;a href="http://en.wikipedia.org/wiki/The_Mythical_Man-Month" target="blank"&gt;The Mythical Man-Month&lt;/a&gt; and the name stuck. "Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure."&lt;br /&gt;&lt;br /&gt;Object-oriented languages have a small set of interoperating principles. Break any one of them in creating a language and many of the benefits of object technology evaporate.  A similar analogy could be made about Scrum.  So here is a candidate set of principles.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Inheritance&lt;/span&gt;&lt;br /&gt;It is easy to extend the Scrum pattern to fit the local environment without modifying the metaClass represented by the Scrum organizational pattern.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Polymorphism&lt;/span&gt;&lt;br /&gt;The same message sent to a different Sprint can produce a result dependent on the environment.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Encapsulation (information hiding)&lt;/span&gt;&lt;br /&gt;Work is packaged in increments. Scrum teams can scale by making a Scrum of Scrums look like a Scrum tream to another Scrum of Scrums. Using an object-oriented network to scale allows potentially unlimited scaling.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Emergent Design&lt;/span&gt;&lt;br /&gt;A small change can have a ripple effect that causes refactoring and a new design emerges.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Messaging&lt;/span&gt;&lt;br /&gt;OO is a messaging environment.  Constant high bandwidth communication works best.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Self-Organization&lt;/span&gt;&lt;br /&gt;There is typically no "control" object.  Behavior emerges from the interaction between objects in languages and between people in Scrums.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Aggregation&lt;/span&gt;&lt;br /&gt;Objects can be aggregated into components.  Components aggregate into an architecture.  Scrums can be aggregated into Scrums of Scrums orchestrated by a metaScrum. A metaClass creates the framework for all classes. The Scrum framework could be viewed as a metaClass laying out the minimal attributes of a Scrum and the relationship between components.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reflection&lt;/span&gt;&lt;br /&gt;Constant review and analysis at a meta-level leads to increased functionality and flexibility.  This is an extremely powerful feature missing from some languages, which tends to cripple them. It leads to the Retrospective in Scrum.&lt;br /&gt;&lt;br /&gt;All software implementations of objects use the metaClass of a specific language to create coherent structures. There were hundreds of people who created new objects languages and 99% of them failed in the market. These are like homegrown implementations of Agile. "We are doing Agile" has no meaning. It is like saying we are doing object technology. In the last decade we would look into the code of a C++ application and see nothing but old C procedures. There was often not a single object to be found. Today we see hierarchical organizations implementing hierarchical teams and calling it Agile. They can't help themselves. They have to change the organization first to get it right or Conway's Law assures that they will fail.&lt;br /&gt;&lt;br /&gt;Certain languages are structured to work together like JRuby with Java. This is analogous to Scrum and XP. Others like Java and C++ inherit features from a common ancestor but do not interbreed well. Those that take pieces of Agile languages and cobble them together get what you would expect - &lt;a href="http://en.wiktionary.org/wiki/a_camel_is_a_horse_designed_by_a_committee" target="blank"&gt;a horse designed by a committee&lt;/a&gt;. It can't run but maybe it can store water.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-446899168171972648?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/446899168171972648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=446899168171972648' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/446899168171972648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/446899168171972648'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2008/09/roots-of-scrum-object-technology_27.html' title='Roots of Scrum: Object Technology'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-1081476198818707367</id><published>2008-09-16T12:14:00.004-04:00</published><updated>2008-09-16T12:28:53.903-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cool tools'/><title type='text'>Cool Tools on the Web - DropBox, Code Collaborator, and Poodwaddle</title><content type='html'>There is no end of cool tools popping up on the web. Do you want to have file folders that automatically sync on every Windows, Mac, and Linux box that you own instantaneously and transparently - you need &lt;a href="http://getdropbox.com" target=blank&gt;DropBox&lt;/a&gt;. Or maybe you are having problems with code reviews and want to make them fun, easy, and totally automated - check out &lt;a href="http://www.smartbear.com/codecollab.php" target=blank&gt;Code Collaborator&lt;/a&gt;. Or maybe you just want to know the worldwide numbers in real time on the environment and health - see &lt;a href="http://poodwaddle.com" target=blank&gt;poodwaddle.com&lt;/a&gt; below:&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://www.poodwaddle.com/worldclock.swf" width="600" height="600" bgcolor="#ffffff" type="application/x-shockwave-flash" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-1081476198818707367?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/1081476198818707367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=1081476198818707367' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/1081476198818707367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/1081476198818707367'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2008/09/cool-tools-on-web-dropbox-code.html' title='Cool Tools on the Web - DropBox, Code Collaborator, and Poodwaddle'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-8289051850825737305</id><published>2008-09-14T02:49:00.004-04:00</published><updated>2008-09-14T03:40:53.389-04:00</updated><title type='text'>iPhone, ATT, T-Mobile and how to avoid getting ripped off</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/DSCN0192-721411.JPG"&gt;&lt;img style="cursor: pointer;" src="http://jeffsutherland.com/uploaded_images/DSCN0192-720741.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;My phones - ATT iPhone 3G, HTC T-Mobile Touch, Sony/Ericsson Walkman&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I spent over half my time for the last few years outside of the U.S. doing Scrum training and experimenting with mobile phones. There are lots of options and some of them can cut your costs by 98% compared to U.S. vendors. That's right, you can make local calls for 2% of the cost of a U.S. roaming cellphone. ATT and T-Mobile cash registers make a loud k-ching sound when you travel abroad and you may not know it but they sometimes think Canada is as far away as Europe.&lt;br /&gt;&lt;br /&gt;I couldn't resist getting the iPhone 3G to test out on my travels. The iPhone is a very cute and very expensive toy. I love it. Too bad I can't use it as I travel around the world. I spent a week in Canada last month and got charged $100 extra on top of my $100 monthly charge for using Gmail and Google maps. Pretty expensive map.&lt;br /&gt;&lt;br /&gt;ATT claims an award for "the best wireless network in the world." They must be drinking their own Koolaid. At Logan aiport in Boston the signal on the iPhone is so weak my wife can't hear me so I have to pull out my HTC T-Mobile phone which works fine. Same thing happened to me in Toronto. Also, my HTC T-Mobile has all the services of the ATT iPhone for $25.27 a month added to my wife's Blackberry bill as a second line. This includes no extra charge for international roaming data services.&lt;br /&gt;&lt;br /&gt;So for the price of spending a week in Canada with my iPhone, I could have eight T-Mobile phones added to my wife's account. I'm keeping my T-Mobile phone so I don't have to use my iPhone, particularly when traveling abroad which is about 2/3 of my time. Also, I have the TOM TOM GPS system on the HTC. I need a real GPS, not a fake GPS like the iPhone for many things although I really like Google maps on the iPhone.&lt;br /&gt;&lt;br /&gt;Now let's look at call charges. I'm in Denmark right now where phone charges are cheaper than most countries. Here is what a local call costs me:&lt;br /&gt;&lt;br /&gt;ATT iPhone - $1.29/minute&lt;br /&gt;T-Mobile - $0.99/minute&lt;br /&gt;Lebara Mobile - 9 ore = $0.017/minute&lt;br /&gt;&lt;br /&gt;Always get a local SIM for your phone. Buy a European phone if you need to. Otherwise you will be spending 100 times more for local calls. I might hack my iPhone to swap SIMS but I can already swap them in my T-Mobile phone so it is probably not worth it.&lt;br /&gt;&lt;br /&gt;A markup of 10000% is a little steep so maybe ATT could qualify as the biggest ripoff of cellular networks in the world, although other U.S. vendors are not far behind.&lt;br /&gt;&lt;br /&gt;But maybe they should be compared to major European vendors like Telenor, Orange, or Vodaphone and for their SIMs (I have several of them) I will get charged 20-30 cents a minute so maybe the ATT markup is only 500-600%. The iPhone is so cute it might be worth it as long as you don't travel more than a week a year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-8289051850825737305?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/8289051850825737305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=8289051850825737305' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/8289051850825737305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/8289051850825737305'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2008/09/iphone-att-t-mobile-and-how-to-avoid.html' title='iPhone, ATT, T-Mobile and how to avoid getting ripped off'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-2425617810245654657</id><published>2008-07-06T08:35:00.000-04:00</published><updated>2008-07-06T08:37:27.016-04:00</updated><title type='text'>Scrum and Fighter Aircraft</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://shock.military.com/Shock/videos.do?displayContent=170497&amp;amp;ESRC=dod.nl"&gt;&lt;img style="cursor: pointer;" src="http://jeffsutherland.com/scrum/uploaded_images/bugatti-759394.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In 1993 at Easel Corporation when we started the first Scrum, I thought the ScrumMaster needed to see how to land a Sprint on a date, just like landing a fighter aircraft at the end of the runway. If you are high on the glidepath in a fighter you can easy land in the middle of the runway and if it is wet or icy can slide off the end of the runway. At the end of every runway there are trees, a deep hole, or water. It is always bad.&lt;br /&gt;&lt;br /&gt;So the Burndown Chart along with the Scrum Emergency Procedure was developed. What do you do when bad things start to happen in a Sprint?&lt;br /&gt;&lt;br /&gt;More specifically, what do you do when an Agile system becomes unstable?&lt;br /&gt;&lt;br /&gt;But I digress. Jim Coplien just sent me a great video of an unstable Agile system, the latest Euro fighter. It takes 70 computers just to keep it flying and if they fail it stops flying.&lt;br /&gt;&lt;br /&gt;Here we see a race between a Bugatti and the fighter aircraft which reminds me of the time I flew F4 Phantoms in Europe in the air while I was driving a Porsche 911 on the ground. Here the Bugatti races the fighter to the end of the runway and back while the fighter takes off, flies straight up for a mile, then does a reverse loop in an attempt to beat the Bugatti back to the takeoff point.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://shock.military.com/Shock/videos.do?displayContent=170497&amp;amp;ESRC=dod.nl" target="blank"&gt;Click here for an exciting ride!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-2425617810245654657?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/2425617810245654657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=2425617810245654657' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/2425617810245654657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/2425617810245654657'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2008/07/scrum-and-fighter-aircraft.html' title='Scrum and Fighter Aircraft'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-4288769101979049657</id><published>2008-04-04T11:01:00.006-04:00</published><updated>2008-04-04T12:34:35.627-04:00</updated><title type='text'>HICSS 42 Call for Papers due 15 June 2008</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/HICSS42-745437.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/HICSS42-745437.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;It's time for you to get your most scintillating Agile theories&lt;br /&gt;together, write a kick-ass paper that could get published in the IEEE&lt;br /&gt;library and spend a week in beautiful Hawaii next January. Sound good?&lt;br /&gt;Then get writing!&lt;br /&gt;&lt;br /&gt;HICSS-42 CALL FOR PAPERS - due 15 June 2008&lt;br /&gt;&lt;a href="http://www.hicss.hawaii.edu/hicss_42/minitracks/st-asd.htm" target=blank&gt;http://www.hicss.hawaii.edu/hicss_42/minitracks/st-asd.htm&lt;/a&gt;&lt;br /&gt;January 5-8, 2009&lt;br /&gt;Hilton Waikoloa Village Resort&lt;br /&gt;Waikoloa, Big Island, Hawaii&lt;br /&gt;&lt;br /&gt;HICSS-42 offers a unique, highly interactive and professionally&lt;br /&gt;challenging environment that attendees find "very helpful -- lots of&lt;br /&gt;different perspectives and ideas as a result of discussion." HICSS&lt;br /&gt;sessions are comprised primarily of refereed paper presentations; the&lt;br /&gt;conference does not host vendor presentations. All papers are peer&lt;br /&gt;reviewed and accepted papers are published in the IEEE Digital Library.&lt;br /&gt;&lt;br /&gt;Software Technology Minitrack&lt;br /&gt;Agile Software Development: Lean, Distributed, and Scalable&lt;br /&gt;(Jeff Sutherland and Gabrielle Benefield)&lt;br /&gt;&lt;br /&gt;Agile software development processes have been influenced by best&lt;br /&gt;practices in Japanese industry, particularly by lean product&lt;br /&gt;development principles implemented at companies like Honda and Toyota,&lt;br /&gt;and knowledge management strategies developed by Takeuchi and Nonaka, now at the Hitotsubashi Business School in Japan, and Peter Senge at&lt;br /&gt;MIT. This Minitrack will focus on advancing the state of the art or&lt;br /&gt;presenting innovative ideas related to agile methods, individual&lt;br /&gt;practices and tools.&lt;br /&gt;&lt;br /&gt;Accepted papers will potentially enrich the body of knowledge and&lt;br /&gt;influence the framework of thought in the field by investigating Agile&lt;br /&gt;methods in a rigorous fashion.&lt;br /&gt;&lt;br /&gt;We are open to research papers on multiple aspects of agile methods,&lt;br /&gt;particularly those that bring best practices in knowledge management&lt;br /&gt;and lean development to scalable, distributed, and outsourced Scrum,&lt;br /&gt;eXtreme Programming (XP), and other agile practices. Topics include:&lt;br /&gt;&lt;br /&gt;1. Research on existing or new methodologies and approaches: informal&lt;br /&gt;modeling techniques and practices, adapting/trimming existing methods,&lt;br /&gt;and new product/project planning techniques&lt;br /&gt;2. Research on existing or new techniques or practices: pairing,&lt;br /&gt;war-rooms, test-first design, paper-based prototyping, early&lt;br /&gt;acceptance test driven development, exploratory testing, refactoring,&lt;br /&gt;or others.&lt;br /&gt;3. Research on special topics or tools: configuration and resource&lt;br /&gt;management, testing, project steering, user involvement, design for&lt;br /&gt;agility, virtual teams or others.&lt;br /&gt;4. Research on integrating ideas from other fields, e.g. interaction&lt;br /&gt;design, requirements engineering, cognitive science, organizational&lt;br /&gt;psychology, usability testing, software security, into agile processes.&lt;br /&gt;5. Research studies of development teams using ethnographic or social&lt;br /&gt;6. Research on agile software engineering economics.&lt;br /&gt;7. Quantitative and qualitative studies of agile methods, practices,&lt;br /&gt;and tools.&lt;br /&gt;8. Research on agile compliance and cost benefits within CMMI, ISO&lt;br /&gt;9000, and FDA certified development projects.&lt;br /&gt;&lt;br /&gt;Papers are particularly relevant when agile process implementations&lt;br /&gt;are shown to produce quantitative and qualitative benefits on&lt;br /&gt;distributed, outsourced, large, or standards compliant software&lt;br /&gt;development projects which have been previously been viewed&lt;br /&gt;(erroneously) as unsuited for agile development.&lt;br /&gt;&lt;br /&gt;To submit papers and read more about the conference please go to:&lt;br /&gt;&lt;a href="http://www.hicss.hawaii.edu/hicss_42/minitracks/st-asd.htm" target=blank&gt;http://www.hicss.hawaii.edu/hicss_42/minitracks/st-asd.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Jeff Sutherland&lt;br /&gt;Scrum, Inc.&lt;br /&gt;332 Congress St., 3rd Floor&lt;br /&gt;Boston, MA 02210&lt;br /&gt;&lt;br /&gt;Gabrielle Benefield&lt;br /&gt;Scrum Training Institute&lt;br /&gt;Mountain View,&lt;br /&gt;CA 94040&lt;br /&gt;Email: gabriellebenefield@yahoo.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-4288769101979049657?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/4288769101979049657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=4288769101979049657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/4288769101979049657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/4288769101979049657'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2008/04/hicss-42-call-for-papers-due-15-june.html' title='HICSS 42 Call for Papers due 15 June 2008'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-4553963718053145113</id><published>2008-02-02T15:05:00.002-05:00</published><updated>2008-03-21T15:35:09.702-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scrum organizational patterns jim coplien'/><title type='text'>Agility and Organizational Patterns</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/ScrumOrgPatterns-769264.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/ScrumOrgPatterns-769262.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;In the early days of what we now know as Agile processes, Mike Beedle was influenced by the online description of Scrum, implemented the process in his own company, and led the effort to drive Scrum through the Pattern Languages of Programming Design conferences. This made Scrum the first (and only) formal organizational pattern that describes a complete Agile process. One of the patterns books contains the Scrum pattern:&lt;br /&gt;&lt;br /&gt;M. Beedle, M. Devos, Y. Sharon, K. Schwaber, and J. Sutherland, "Scrum: A Pattern Language for Hyperproductive Software Development," in &lt;a href="http://astore.amazon.com/jeffsutherlasobj/detail/0201433044/105-0209728-4437246" target=blank&gt;Pattern Languages of Program Design. vol. 4&lt;/a&gt;, N. Harrison, Ed. Boston: Addison-Wesley, 1999, pp. 637-651.&lt;br /&gt;&lt;br /&gt;Recent work by Jim Coplien shows that Scrum is deceptively simply while compressing a complex array of organizational patterns in his book, "&lt;a href="http://astore.amazon.com/jeffsutherlasobj/detail/0131467409/104-6903857-9799930" target=blank&gt;Organizational Patterns in Agile Software Development.&lt;/a&gt;" Jim was surprised when he found that Scrum compresses at least 33 patterns from his book into a concept that can be explained in 2 minutes. It takes over 60 pages of rather dense text to describe these patterns.&lt;br /&gt;&lt;br /&gt;One of Scrum's design goals was to encapsulate best practices from 40 years of software development into a process that was simple enough for the average IT worker to use for development in less than 2 days of startup time. Jim's research shows that we did a good job of accomplishing that goal. You can download a copy of the complete Scrum pattern as it is part of a draft of "&lt;a href="http://jeffsutherland.com/scrum/scrumpapers.pdf" target=blank&gt;The Scrum Papers.&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jeffsutherland.com/scrum/20071029CoplienOrgPats.pdf" target=blank&gt;Click here for Jim's presentation on Scrum as a set of patterns.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-4553963718053145113?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/4553963718053145113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=4553963718053145113' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/4553963718053145113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/4553963718053145113'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2008/02/agility-and-organizational-patterns.html' title='Agility and Organizational Patterns'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-2382629699878191909</id><published>2008-01-08T14:55:00.000-05:00</published><updated>2008-01-08T17:29:48.810-05:00</updated><title type='text'>Agile Software Development: Lean, Distributed, and Scalable</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/HICSS2008_013-788547.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/HICSS2008_013-788132.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;HICSS 2008 Agile MiniTrack&lt;br /&gt;Co-Chairs: Jeff Sutherland and Hubert Smits&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;a href="http://www.hicss.hawaii.edu/hicss_41/apahome41.html" target=blank&gt;HICSS 41, January 7-10, 2008 - Hilton Waikoloa Village Resort&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;Waikoloa, Big Island, Hawaii&lt;br /&gt;&lt;br /&gt;If you are in Hawaii now, congratulations! If not, eat your heart out ...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ST 1 Thursday; Kona 3; 8:00 – 9:30&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This session has three papers. Authors will have 15 minutes for presentation and 15 minutes for discussion. Papers will be presented in the following order.&lt;br /&gt;&lt;br /&gt;Bridge Methods: Complementary Steps Integrating Agile Development Tools and Methods with Formal Process Methodologies&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Stephen J. Cohen and &lt;a href="mailto:wmoney@gwu.edu" target=blank&gt;William H. Money&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;Rolling Out Agile in a Large Enterprise&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Gabrielle Benefield&lt;/span&gt;&lt;br /&gt;Great Scrums Need Great Product Owners: Unbounded Collaboration and Collective Product Ownership (in competition for best paper)&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Ken H. Judy and Ilio Krumins-Beens&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ST 2 Thursday; Kona 3; 10:00 – 11:30&lt;/span&gt;'&lt;br /&gt;&lt;br /&gt;This session has four papers. Authors will have 15 minutes for presentation and 10 minutes for discussion.&lt;br /&gt;&lt;br /&gt;Effects of Agile Methods on Website Quality for Electronic Commerce&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;a href="mailto:dfrico@comcast.net" target=blank&gt;David F. Rico&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;A Case Study: Introducing eXtreme Programming in a US Government System Development Project&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Ann Fruhling, Patrick McDonald, and Christopher Dunbar&lt;/span&gt;&lt;br /&gt;Retrofitting Cyber Physical Systems for Survivability through External Coordination&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Kun Xiao, Shangping Ren, and Kevin Kwiat&lt;/span&gt;&lt;br /&gt;Scrum and CMMI Level 5: The Magic Potion for Code Warriors&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Jeff Sutherland, Carsten Ruseng Jakobsen, and Kent Johnson&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-2382629699878191909?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/2382629699878191909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=2382629699878191909' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/2382629699878191909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/2382629699878191909'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2008/01/agile-software-development-lean.html' title='Agile Software Development: Lean, Distributed, and Scalable'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-173970549475487915</id><published>2007-11-14T11:10:00.001-05:00</published><updated>2007-11-14T11:14:22.445-05:00</updated><title type='text'>Douglas Crockford on The State of Ajax</title><content type='html'>&lt;a href="http://jeffsutherland.com/uploaded_images/logo_artima_developer-773750.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/logo_artima_developer-773748.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;In a recent Yahoo YUI video, Yahoo's Douglas Crockford gives an overview of the state of &lt;a href="http://www.artima.com/forums/flat.jsp?forum=276&amp;thread=218594" target=blank&gt;Ajax application development on the Web&lt;/a&gt;, and points to ways in which the Web can improve. Advertisement &lt;br /&gt; &lt;br /&gt;Douglas Crockford, inventor of the JSON data exchange format, and Yahoo's chief DHTML evangelist, presents an overview of the State of Ajax and client-side Web development. Among the topics he discusses are Java, the flaws and benefits of JavaScript, why CSS should be replaced, why mashups are significant, and what can be done about Web technologies, such as HTML and JavaScript, that saw their last major updates in 1999.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-173970549475487915?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/173970549475487915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=173970549475487915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/173970549475487915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/173970549475487915'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2007/11/douglas-crockford-on-state-of-ajax.html' title='Douglas Crockford on The State of Ajax'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-7057012238227366198</id><published>2007-10-31T20:56:00.000-04:00</published><updated>2007-10-31T21:06:31.738-04:00</updated><title type='text'>Kleiner Perkins gets real on global warming</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/JohnDoerr-791573.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/JohnDoerr-791571.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;John Doerr gave a great talk on climate change at the recent TED conference. Check out "&lt;a href="http://www.ted.com/talks/view/id/128" target=blank&gt;Seeking salvation and profit in greentech&lt;/a&gt;."&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;John Doerr, a partner in famed VC firm Kleiner Perkins Caufield &amp; Byers, made upwards of $1 billion picking dot-com stars like Amazon, Google, Compaq and Netscape. (He also picked some flops, like Go Corporation and the scandal-ridden MyCFO.com.) He was famously quoted saying, "The Internet is the greatest legal creation of wealth in history," right before the dot-com crash.&lt;br /&gt;&lt;br /&gt;But now he's back, warning that carbon-dioxide-sputtering, gas-powered capitalism will destroy us all, and that going green may be the "biggest economic opportunity of the 21st century." So Kleiner Perkins has invested $200 million in so-called greentech, a combination of startups that are pioneering alternative energy, waste remediation and other schemes to prevent the coming environmental calamity. But Doerr is afraid that it might be too little, too late.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;"[John Doerr] is, by all accounts, the most influential venture capitalist of his generation."&lt;/span&gt; Fast Company&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-7057012238227366198?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/7057012238227366198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=7057012238227366198' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/7057012238227366198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/7057012238227366198'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2007/10/kleiner-perkins-gets-real-on-global.html' title='Kleiner Perkins gets real on global warming'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-4733995753437639723</id><published>2007-10-07T14:29:00.000-04:00</published><updated>2007-10-07T14:33:00.937-04:00</updated><title type='text'>Why Time Sheets are Lame ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/scrum/uploaded_images/HrsVsQuality-777338.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/scrum/uploaded_images/HrsVsQuality-777334.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;Programmer time vs. Quality Software Score. &lt;a href="http://www.joelonsoftware.com/articles/HighNotes.html" target=blank&gt;Totally uncorrelated!&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Actually time sheets are worse than lame:&lt;br /&gt;* they demotivate developers&lt;br /&gt;* 10-15% loss of productivity is the minimum&lt;br /&gt;* developers have to fake the time to fill them out properly&lt;br /&gt;* erroneous data is used for reporting and management makes bad decisions&lt;br /&gt;* customers are deceived&lt;br /&gt;* they have nothing to do with quality code production&lt;br /&gt;* they focus the whole organization on phony data instead of production&lt;br /&gt;&lt;br /&gt;Nevertheless, this is not enough for many managers to give up time sheets. Just like the waterfall process, there is a psychological dependency so strong, it is as if they are on drugs.&lt;br /&gt;&lt;br /&gt;However, the situation is even worse. Most management has completely wrong information in their head and thus continually make bad decisions. One of my students recently said to me, "You mean everything my manager told me is wrong!"&lt;br /&gt;&lt;br /&gt;Yes, Jose, everything your manager ever told you is wrong:&lt;br /&gt;* there is no correlation between developer time and software production&lt;br /&gt;* there is no correlation between time spent and quality of code&lt;br /&gt;* there is no relationship between "quality people" and code production&lt;br /&gt;&lt;br /&gt;The only correlation between developer time and quality production code is the quality story points measured as a deliverable for a specific team.&lt;br /&gt;&lt;br /&gt;Research over many years at Yale University provides some of the best data on this topic - see &lt;a href="http://www.joelonsoftware.com/articles/HighNotes.html" target=blank&gt;Joel on Software&lt;br /&gt;&lt;/a&gt;:&lt;br /&gt;* for a single project worst/best coding times are 1/10&lt;br /&gt;* across many projects worst/best coding times are 1/25&lt;br /&gt;* the ratios above are the same for the worst and best Yale students&lt;br /&gt;* the quality of the code produced is completely independent of time spent&lt;br /&gt;&lt;br /&gt;For some reason, many development managers makes decisions without any data at all on this issue and their assumptions are completely out of reality.&lt;br /&gt;&lt;br /&gt;Tom Poppendieck told me recently a competent manager actually did some research on his XP teams to see what number of hours per week produced the maximum amount of quality production code. After trying shorter weeks and overtime weeks, the best number of hours for teams to produce the most quality code was a 16 hour work week!&lt;br /&gt;&lt;br /&gt;Trust me, you need to dump those lame time sheets and get focused on real software production before an Agile competitor puts you out of business!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-4733995753437639723?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/4733995753437639723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=4733995753437639723' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/4733995753437639723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/4733995753437639723'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2007/10/why-time-sheets-are-lame.html' title='Why Time Sheets are Lame ...'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-1778444720783624799</id><published>2007-09-05T14:18:00.000-04:00</published><updated>2007-09-05T14:19:01.817-04:00</updated><title type='text'>Scrum and CMMI Level 5: A Magic Potion for Code Warriors</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/scrum/uploaded_images/logo_agile2007-741831.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/scrum/uploaded_images/logo_agile2007-741829.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;An earlier blog item commented on the dramatic advantages of using Scrum with CMMI, particularly with a CMMI Level 5 company. See &lt;a href="http://jeffsutherland.com/scrum/2006/11/scrum-supports-cmmi-level-5.html" target=blank&gt;Scrum supports CMMI Level 5&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;At the Agile 2007 Conference in Washington, D.C., an experience report was presented on the results of introducing Scrum into a CMMI Level 5 environment to replace waterfall projects for large defense and healthcare contracts. See &lt;a href="http://jeffsutherland.com/scrum/Sutherland-ScrumCMMI6pages.pdf" target=blank&gt;Scrum and CMMI Level 5: A Magic Potion for Code Warriors&lt;/a&gt;. The paper was written by:&lt;br /&gt;&lt;br /&gt;Jeff Sutherland, Ph.D. - Co-Creator of Scrum&lt;br /&gt;Carsten Jakobsen - Systematic Software Engineering Process Leader&lt;br /&gt;Kent Johnson - CMMI Level 5 Auditor&lt;br /&gt;&lt;br /&gt;Systematic Software Engineering is a company which executes the waterfall process better than almost all companies in the world, with an ontime, on budget delivery rate of over 95% with estimates within 10% of actuals. The Scrum results were extraordinary, similar to introducing a team of Toyota consultants into a manufacturing plant. This was the result of driving the Scrum implemenation by lean principles which assured a disciplined and measured introduction of Agile practice.&lt;br /&gt;&lt;br /&gt;- Productivity doubled in less than six months reducing total project costs by 50%. &lt;br /&gt;- Defects were reduced by 40% in all Scrum projects (despite the fact this company already had one of the lowest defect rates in the world.)&lt;br /&gt;- Planning costs were reduced by about 80%.&lt;br /&gt;- User satisfaction and developer satifaction were much higher than comparable waterfall implementations.&lt;br /&gt;- Projects were linearly scalable, something never seen before. The productivity of individual developers remains the same as the project increases in size.&lt;br /&gt;&lt;br /&gt;The data in this study is some of the best in the industry and puts to rest the argument about whether the waterfall is preferable in some cases. The waterfall will always be less productive with higher defects on any project compared to a well executed Scrum.&lt;br /&gt;&lt;br /&gt;Systematic Software engineering has revised its standard processes to use Scrum everywhere. See &lt;a href="http://jeffsutherland.com/scrum/Sutherland-ScrumCMMI6pages.pdf" target=blank&gt;Scrum and CMMI Level 5: A Magic Potion for Code Warriors&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-1778444720783624799?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/1778444720783624799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=1778444720783624799' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/1778444720783624799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/1778444720783624799'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2007/09/scrum-and-cmmi-level-5-magic-potion-for.html' title='Scrum and CMMI Level 5: A Magic Potion for Code Warriors'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-5420437852795247612</id><published>2007-08-20T19:31:00.000-04:00</published><updated>2007-08-20T19:38:54.352-04:00</updated><title type='text'>Agile 2007 Video Contest 1st Place: Developer Abuse</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;&lt;object height='350' width='425'&gt;&lt;param value='http://youtube.com/v/LYlhCGng5Mk' name='movie'/&gt;&lt;embed height='350' width='425' type='application/x-shockwave-flash' src='http://youtube.com/v/LYlhCGng5Mk'/&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;At the Google party at Agile 2007 we all voted (screamed) for the best Agile video advertisement. Developer Abuse won easily.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-5420437852795247612?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/5420437852795247612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=5420437852795247612' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/5420437852795247612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/5420437852795247612'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2007/08/agile-2007-video-contest-1st-place.html' title='Agile 2007 Video Contest 1st Place: Developer Abuse'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-6326382601971605848</id><published>2007-08-10T01:15:00.000-04:00</published><updated>2007-08-10T01:27:23.695-04:00</updated><title type='text'>Camp Scrum: A Powerful New Concept to Accelerate your Agile Program</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/SittingAround-714103.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/SittingAround-714099.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Looking for a powerful way forward into the world of &lt;a href="http://campscrum.com" target=blank&gt;Agile development&lt;/a&gt;? Whether you're just getting started or looking for ideas that can improve your current Agile implementation, you don't want to miss this opportunity to learn from the world's top experts in Scrum and Agile software development.&lt;br /&gt;&lt;br /&gt;Imagine having a whole week together with four of the most authoritative personalities in Agile software development today... Not only a week of seminars, but a week of living with the experts, and of informal discussions of everyday practical problems of project management... Imagine gaining deep insights into the fundamentals of Scrum and Agile that could make all the difference in the world on your current project... Imagine being able to discuss these issues with others like you who bring their experiences to this event... Then imagine it all taking place in a beautiful rural Swedish setting, surrounded by nature...&lt;br /&gt;&lt;br /&gt;If you can imagine this, you can imagine &lt;a href="http://campscrum.com" target=blank&gt;Camp Scrum&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-6326382601971605848?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/6326382601971605848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=6326382601971605848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/6326382601971605848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/6326382601971605848'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2007/08/camp-scrum-powerful-new-concept-to.html' title='Camp Scrum: A Powerful New Concept to Accelerate your Agile Program'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-635588959342750759</id><published>2007-06-09T02:34:00.000-04:00</published><updated>2007-08-10T00:49:00.320-04:00</updated><title type='text'>Hawaii International Conference on Soft ware Systems 2008: Call for Papers - due 15 June 2007</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/HICSS41-736120.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/HICSS41-736119.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Get your papers in by 15 June 2007 - don't miss Hawaii in January 2008!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://jeffsutherland.com/HICSS2008/index.html" target=blank&gt;Agile Software Development: Lean, Distributed, and Scalable&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;(Jeff Sutherland and Hubert Smits)&lt;br /&gt;&lt;br /&gt;Agile software development processes have been influenced by best practices in Japanese industry, particularly by lean product development principles implemented at companies like Honda and Toyota, and knowledge management strategies developed by Takeuchi and Nonaka, now at the Hitotsubashi Business School in Japan, and Peter Senge  at MIT. This Minitrack will focus on advancing the state of the art or presenting innovative ideas related to agile methods, individual practices and tools. Accepted papers will potentially enrich the body of knowledge and influence the framework of thought in the field by investigating Agile methods in a rigorous fashion.&lt;br /&gt;&lt;br /&gt;We are open to research papers on multiple aspects of agile methods, particularly those that bring best practices in knowledge management and lean development to scalable, distributed, and outsourced Scrum, eXtreme Programming (XP), and other agile practices. Topics include:&lt;br /&gt;&lt;br /&gt;Research on existing or new methodologies and approaches: informal modeling techniques and practices, adapting/trimming existing methods, and new product/project planning techniques&lt;br /&gt;     &lt;br /&gt;Research on existing or new techniques or practices: pairing, war-rooms, test-first design, paper-based prototyping, early acceptance test driven development, exploratory testing, refactoring, or others.&lt;br /&gt;&lt;br /&gt;Research on special topics or tools: configuration and resource management, testing, project steering, user involvement, design for agility, virtual teams or others.&lt;br /&gt;&lt;br /&gt;Research on integrating ideas from other fields, e.g. interaction design, requirements engineering, cognitive science, organizational psychology, usability testing, software security, into agile processes.&lt;br /&gt;&lt;br /&gt;Research studies of development teams using ethnographic or social research techniques.&lt;br /&gt;&lt;br /&gt;Research on agile software engineering economics.&lt;br /&gt;&lt;br /&gt;Quantitative and qualitative studies of agile methods, practices, and tools.&lt;br /&gt;&lt;br /&gt;Research on agile compliance and cost benefits within CMMI, ISO 9000, and FDA certified development projects.&lt;br /&gt;&lt;br /&gt;Papers are particularly relevant when agile process implementations are shown to produce quantitative and qualitative benefits on distributed, outsourced, large, or standards compliant software development projects which have been previously been viewed (erroneously) as unsuited for agile development.&lt;br /&gt;&lt;br /&gt;Jeff Sutherland (primary contact)&lt;br /&gt;Chief Technology Officer and Worldwide Scrum Consulting Practice Manager&lt;br /&gt;PatientKeeper Inc.&lt;br /&gt;275 Washington St., 2nd Floor&lt;br /&gt;Newton MA 02458&lt;br /&gt;Tel: (617) 987-0394&lt;br /&gt;Email: jeff.sutherland@computer.org&lt;br /&gt;&lt;br /&gt;Hubert Smits&lt;br /&gt;Services Dept&lt;br /&gt;Rally Software Development&lt;br /&gt;3333 Walnut Street&lt;br /&gt;Boulder, CO 80301&lt;br /&gt;Email: Hubert.Smits@rallydev.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-635588959342750759?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/635588959342750759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=635588959342750759' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/635588959342750759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/635588959342750759'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2007/06/hawaii-international-conference-on-soft.html' title='Hawaii International Conference on Soft ware Systems 2008: Call for Papers - due 15 June 2007'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-7043245551088969746</id><published>2007-06-05T09:38:00.001-04:00</published><updated>2007-06-23T02:26:14.673-04:00</updated><title type='text'>Graduation Time: MIT PhD Thesis uses cheap supercomputer</title><content type='html'>&lt;span style="font-weight:bold;"&gt;All at Once Computing&lt;/span&gt;&lt;br /&gt;.........|....................|..................|..................|..................|&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/HPPavilliona6030nsmall-714697.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/HPPavilliona6030nsmall-714695.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/HPPavilliona6030nsmall-714697.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/HPPavilliona6030nsmall-714695.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/HPPavilliona6030nsmall-714697.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/HPPavilliona6030nsmall-714695.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/HPPavilliona6030nsmall-714697.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/HPPavilliona6030nsmall-714695.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/HPPavilliona6030nsmall-714697.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/HPPavilliona6030nsmall-714695.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;.........|....................|..................|&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/HPPavilliona6030nsmall-714697.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/HPPavilliona6030nsmall-714695.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/HPPavilliona6030nsmall-714697.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/HPPavilliona6030nsmall-714695.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/HPPavilliona6030nsmall-714697.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/HPPavilliona6030nsmall-714695.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dr. Andrew Sutherland will be awarded his Ph.D. degree at MIT on &lt;a href="http://web.mit.edu/commencement/2007/schedule.html" target=blank&gt;7 June 2007&lt;/a&gt;. He needed a supercomputer to complete thesis thesis and his approach was to link eight HP a6030m dual processor AMD systems together to parallel process new mathematical techniques that will be useful for encryption. Breaking through a previous unsolved problem required developing algorithms that ran thousands of times faster than previous approachs. A calculation that required 15 days on a Sun Sparcstation4 now takes less than 3 seconds on a PC.&lt;br /&gt;&lt;br /&gt;I bought one of these inexpensive HP systems to test it out and is extremely fast, almost totally silent, and produces almost no heat compared to the Dell dual processor Intel system sitting next to it. I can see why Dell is "feeling the heat" from the competition. Suffice to say, this HP is blazingly fast compared to my &lt;a href="http://jeffsutherland.com/2006/11/water-cooled-laptop-boost-your.html" target=blank&gt;watercooled IBM Thinkpad T42&lt;/a&gt; which I have relegated to the dustbin of computing history. I'm thinking about buying a couple more of the HP systems. For the orginal price of my Dell workstation, I could have a eight system supercomputer lab.&lt;br /&gt;&lt;br /&gt;For those of you who are math geeks, here is the thesis abstract:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Order Computations in Generic Groups&lt;/span&gt;&lt;br /&gt;by Andrew V. Sutherland&lt;br /&gt;Submitted to the Department of Mathematics on May 16, 2007, in partial fulfillment of the requirements for the degree of DOCTOR OF PHILOSOPHY&lt;br /&gt;&lt;a href="http://theory.lcs.mit.edu/~cis/theses/sutherland-phd.pdf" target=blank&gt;For PDF of thesis click here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Abstract&lt;/span&gt;&lt;br /&gt;&lt;p&gt;We consider the problem of computing the order of an element in a generic group. This is known to require exponential time. The two standard algorithms, Pollard’s rho method and Shanks’ baby-steps giant-steps technique, both use &amp;#920; (&lt;i&gt;N&lt;/i&gt;&lt;sup&gt;1/2&lt;/sup&gt;) group operations to compute |?| = &lt;i&gt;N&lt;/i&gt;, and a lower bound of &amp;#937; (&lt;i&gt;N&lt;/i&gt;&lt;sup&gt;1/2&lt;/sup&gt;) has been conjectured. We disprove this conjecture, presenting a generic algorithm with complexity &lt;i&gt;o&lt;/i&gt; &lt;i&gt;N&lt;/i&gt;&lt;sup&gt;1/2&lt;/sup&gt;) in any group. The worst case occurs when &lt;i&gt;G&lt;/i&gt; is a cyclic group of (unknown) prime order, but for approximately half the integers &lt;i&gt;N&lt;/i&gt; &amp;#949; &amp;#91;0,&lt;i&gt;M&lt;/i&gt;&amp;#93;, the complexity is &lt;i&gt;O&lt;/i&gt; (&lt;i&gt;N&lt;/i&gt;&lt;sup&gt;1/3&lt;/sup&gt;).&lt;/p&gt;&lt;p&gt;We prove that a generic algorithm can perform any number of order computations in near linear time, plus the cost of a single order computation with &lt;i&gt;N&lt;/i&gt; = #955;(&lt;i&gt;G&lt;/i&gt;), where &amp;#955;(&lt;i&gt;G&lt;/i&gt;) is the group exponent (without knowledge of &amp;#955;(&lt;i&gt;G&lt;/i&gt;)). We show that in abelian groups, &amp;#955;(&lt;i&gt;G&lt;/i&gt;) can be computed for the same cost, and also consider some non-abelian cases. &lt;/p&gt;&lt;p&gt;We then use &amp;#955;(&lt;i&gt;G&lt;/i&gt;) to compute the structure of an abelian group. Given an &lt;i&gt;O&lt;/i&gt; (&lt;i&gt;N&lt;/i&gt;&lt;sup&gt;2-&amp;#949;&lt;/sup&gt;) bound on |&lt;i&gt;G&lt;/i&gt;| = &lt;i&gt;N&lt;/i&gt;, we can compute group structure in &lt;i&gt;o&lt;/i&gt; (&lt;i&gt;N&lt;/i&gt;&lt;sup&gt;1/2&lt;/sup&gt;) group operations for all but a small set of pathological cases. The complexity is essentially that of an order computation on a single random element. A lower bound of &amp;#937; &lt;i&gt;N&lt;/i&gt;&lt;sup&gt;1/2&lt;/sup&gt;) had been assumed, based on a similar bound for the discrete logarithm problem. &lt;/p&gt;&lt;p&gt;We apply these results to compute the ideal class groups of imaginary quadratic number fields, a standard test case for generic algorithms. The record class group computation by a generic algorithm, for discriminant ?4(1030 + 1), involved some 240 million group operations over the course of 15 days on a Sun SparcStation4. We accomplish the same task using 1/1000th the group operations, taking less than 3 seconds on a PC. Comparisons with non-generic algorithms for class group computation are also favorable in many cases. We successfully computed several class groups with discriminants containing more than 100 digits. These are believed to be the largest class groups ever computed.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-7043245551088969746?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/7043245551088969746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=7043245551088969746' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/7043245551088969746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/7043245551088969746'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2007/06/graduation-time-mit-phd-thesis-uses.html' title='Graduation Time: MIT PhD Thesis uses cheap supercomputer'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-2852274727873655173</id><published>2007-05-23T10:02:00.000-04:00</published><updated>2007-06-05T11:45:00.551-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum T-shirt'/><title type='text'>Scrum World Tour T-Shirt</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/scrum/uploaded_images/t_shirt_large-794865.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/scrum/uploaded_images/t_shirt_large-794825.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Thanks to Örjan Hillbom CPG we now have a Scrum World Tour T-Shirt produced by Trifork in Denmark. Örjan is a rock group/motorcycle gang video expert who attended a Certified ScrumMaster training by me and Jens Ostergaard in Copenhagen recently. He said Scrum really "rocks" and it is definitely "faster, better, cooler" and must have a world class T-shirt which he designed for free.&lt;br /&gt;&lt;br /&gt;A Type C Scrum Danish company produces really nice T-shirts so I asked them to produce this one. It costs about $30 plus a few dollars for shipping. &lt;a href="http://www.trifork.com/Default.asp?Action=Details&amp;Item=17" target=blank&gt;Get your Scrum World Tour T-Shirt at Trifork&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-2852274727873655173?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/2852274727873655173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=2852274727873655173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/2852274727873655173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/2852274727873655173'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2007/05/scrum-world-tour-t-shirt.html' title='Scrum World Tour T-Shirt'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-412169744937555861</id><published>2007-05-16T11:34:00.000-04:00</published><updated>2007-05-16T11:39:20.057-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA tools'/><title type='text'>Regenerative Build Tools</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/logo_artima_developer-712619.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/logo_artima_developer-712615.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Regenerative Build Tools&lt;/span&gt;&lt;br /&gt;by &lt;a href="http://www.artima.com/weblogs/viewpost.jsp?thread=205641" target=blank&gt;Michael Feathers&lt;/a&gt;, May 15, 2007&lt;br /&gt;&lt;br /&gt;    Summary&lt;br /&gt;    Dust off an old computer and put it to work. &lt;br /&gt;&lt;br /&gt;I think that when people look back at the way we program today, one of the things that they'll be amazed at is the fact that we have so much computing power but we don't do much with it.&lt;br /&gt;&lt;br /&gt;Seriously, how many computers do you have?  If you're like me you have a least a couple of stray ones sitting around the office, and they aren't doing anything.  What a waste.  And, it's only going to get worse as multicore processors become more prevalent.&lt;br /&gt;&lt;br /&gt;When I first heard of continuous integration, way back in the day, I misunderstood it.  I thought that some computer someplace was going to build my project continuously.  That is, regardless of whether I or anyone else had checked in.  Silly?  Perhaps. But, wasteful?  I don't think so, the computer is running anyway.  It might as well work.&lt;br /&gt;&lt;br /&gt;A while back, I visited a C++ team that had found a wonderful use for a spare computer.   They set it up to build continuously.  Then they  did something  fascinating. They created a script that went into their code and commented out  a single #include.  Then it built their project.  If the build and the tests passed, the script deleted the include.  If it didn't, the script uncommented the include and went on to the next one.  Yes, it took quite a while to march through the code, but with that build running continuously in the background, they were able to eliminate a large number of superfluous dependencies.  Their build got better.&lt;br /&gt;&lt;br /&gt;That script that they wrote is an example of something I call a regenerative build tool.  There are others.  Jester is a regenerative build tool which uses mutation testing to find problems.  It changes your code in subtle ways and runs your tests to see whether they still pass.  If they do, you either don't have the tests you need to have, or you could have code which is really doesn't contribute to your results at all -- zombie code.  Guantanamo is another regenerative build tool, a rather severe one.  It deletes all code that isn't covered by a set of tests.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-412169744937555861?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/412169744937555861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=412169744937555861' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/412169744937555861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/412169744937555861'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2007/05/regenerative-build-tools.html' title='Regenerative Build Tools'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-5584036236169513540</id><published>2007-04-13T14:01:00.000-04:00</published><updated>2007-04-13T14:02:19.039-04:00</updated><title type='text'>Deep Agile: A Dialogue Between Scrum and XP</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/scrum/uploaded_images/deepagile-769754.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/scrum/uploaded_images/deepagile-769746.jpg" border="0" alt="The Plan is the Problem" /&gt;&lt;/a&gt;&lt;span style="font-style:italic; border="0""&gt;&lt;a href="http://www.stsc.hill.af.mil/CrossTalk/2007/04/index.html" target=blank&gt;Photo from cover of Crosstalk, Apr 2007&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Spend two days with two signatories of the Agile Manifesto - Jeff Sutherland, Co-Creator of Scrum, and Ron Jeffries, XP author and consultant.&lt;br /&gt;&lt;br /&gt;You wouldn't want to miss a two day deep dive into Agile: Scrum, Extreme Programming(XP) and Lean steps to software development success. Not to mention how to get Scrum and XP working together ...&lt;br /&gt;&lt;br /&gt; When:  April 28 and 29th, 2007&lt;br /&gt; Where:  MIT Tang Center/E51-345, Cambridge, MA&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gbcacm.org/website/deepagile/" target=blank&gt;Register here&lt;/a&gt;. All proceeds go to the Boston chapter of the ACM.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-5584036236169513540?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/5584036236169513540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=5584036236169513540' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/5584036236169513540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/5584036236169513540'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2007/04/deep-agile-dialogue-between-scrum-and.html' title='Deep Agile: A Dialogue Between Scrum and XP'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-600526012807519253</id><published>2007-03-16T10:39:00.000-04:00</published><updated>2007-04-08T11:24:17.196-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>Scrum Montage</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/ScrumMonstageFlash-700774.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/ScrumMonstageFlash-700698.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://grant.robinson.name/projects/montage-a-google/" target=blank&gt;Montage-a-Google&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Montage-a-google is a simple web-based app that uses Google's image search to generate a large gridded montage of images based on keywords (search terms) entered by the user. Not only an interesting way of browsing the net, it can also be used to create desktop pictures or even posters.&lt;br /&gt;&lt;br /&gt;The Scrum montage was created by setting Scrum as the keyword for a Montage-a-Google search.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-600526012807519253?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/600526012807519253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=600526012807519253' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/600526012807519253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/600526012807519253'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2007/03/scrum-montage.html' title='Scrum Montage'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-8929401209597963771</id><published>2007-03-04T14:59:00.001-05:00</published><updated>2007-03-04T15:00:40.336-05:00</updated><title type='text'>Get an Experienced Developer on the Test Team</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/scrum/uploaded_images/artima-714381.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/scrum/uploaded_images/artima-711910.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;In 1993, at Easel Corporation, we went to the local university and hired their best Master of Computer Science graduate to join the test team and focus 100% on automation. This was one of the decisions that put the first Scrum into a hyperproductive state where we delivered software so fast, the management, sales, and marketing people asked us to slow down.&lt;br /&gt;&lt;br /&gt;Alberto Savoia proposes the same thing in his recent blog posting and his proposed job description is below. &lt;a href="http://www.artima.com/weblogs/viewpost.jsp?thread=196922" target=blank&gt;Click here to read the full post&lt;/a&gt; that makes the case for an experienced developer on the test team.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Agitating Thoughts &amp; Ideas&lt;br /&gt;Developer Testing Masters and Brain Surgeons&lt;/span&gt;&lt;br /&gt;by Alberto Savoia&lt;br /&gt;February 26, 2007&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Developer Testing Master&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is a high-visibility, high-impact, senior software development position, reporting to the VP of Software Engineering at Company ABC. The successful candidate will help our software engineering organization bridge the gap between development and QA by providing developers with the infrastructure, tools, training, and support necessary to be successful at developer/unit testing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Job Requirements:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[Should start with the organization’s standard requirements for non-junior software developers. Remember, this should not be an entry-level or junior position. This person has to be at least as good as other developers – ideally better than most of them since the DTM will often have to understand, clean-up, and make testable some of the un-testable code the other developers have created.]&lt;br /&gt;&lt;br /&gt;Must have demonstrated passion for, and experience in, developer testing. Should be extremely familiar with continuous integration and testing tools and frameworks (CruiseControl, xUnit, code-coverage tools, etc.)&lt;br /&gt;&lt;br /&gt;Must have leadership ability to evangelize, motivate, and train developers in the art and science of unit testing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Job Responsibilities&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Help to set-up a software development environment that enables continuous integration and testing. Environment must support automated hourly and nightly builds. The former must run smoke tests and the latter the full battery of developer tests. Might have to implement distributed testing framework to allow parallel test execution.&lt;br /&gt;&lt;br /&gt;Analyze the existing code base and recommend and/or implement re-designs and refactorings to make the code base testable.&lt;br /&gt;&lt;br /&gt;Extend and customize xUnit framework to standardize and simplify unit test writing for the other developers. Extend the “TestCase” class by creating “CompanyABCTestCase” and maintain the latter. Implement initial set of mocks, test fixtures, and other set-up methods to enable other developers to write true unit tests that don’t depend on external system resources.&lt;br /&gt;&lt;br /&gt;Create and deliver basic unit testing training material to educate all developers in the art and science of unit testing.&lt;br /&gt;&lt;br /&gt;Work with the team to decide on developer testing metrics and objectives. Create, maintain, and publish a developer-testing dashboard to track those objectives.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-8929401209597963771?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/8929401209597963771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=8929401209597963771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/8929401209597963771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/8929401209597963771'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2007/03/get-experienced-developer-on-test-team.html' title='Get an Experienced Developer on the Test Team'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-8115916862625372408</id><published>2007-02-26T15:36:00.000-05:00</published><updated>2007-02-26T15:47:37.030-05:00</updated><title type='text'>Ruby Implementations Shootout</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/rubyperformance-728038.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://jeffsutherland.com/uploaded_images/rubyperformance-716466.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.antoniocangiano.com/articles/2007/02/19/ruby-implementations-shootout-ruby-vs-yarv-vs-jruby-vs-gardens-point-ruby-net-vs-rubinius-vs-cardinal" target=blank&gt;Antonio Cangiano reported on Ruby benchmarks recently&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;Many brilliant developers are working on improving the current implementation of Ruby and on creating alternatives. I was curious about their current respective speeds, so I installed and ran some benchmarks for the most popular implementations. In this article, I’m sharing the results for the community to see...&lt;br /&gt;&lt;br /&gt;Benchmark Environment&lt;br /&gt;&lt;br /&gt;My tests were conducted on an AMD Athlon™ 64 3500+ processor, with 1 GB of RAM.&lt;br /&gt;&lt;br /&gt;The tested Ruby implementations were:&lt;br /&gt;&lt;br /&gt;    * Ruby 1.8.5-p12 stable on Linux;&lt;br /&gt;    * Ruby 1.8.5-p12 stable on Windows Vista;&lt;br /&gt;    * Ruby 1.9 on Linux;&lt;br /&gt;    * JRuby on Linux;&lt;br /&gt;    * Rubinius on Linux;&lt;br /&gt;    * Cardinal on Linux;&lt;br /&gt;    * Gardens Point Ruby .NET Beta 0.6 on Windows Vista;&lt;br /&gt;&lt;br /&gt;The operating system that was used for all – but Ruby.NET – is Ubuntu 6.10 (for x86). Ruby.NET currently runs on Microsoft Windows only, therefore I’ve used Vista with the .NET Framework 2.0 and have also run Ruby 1.8.5-p12 on Windows as a means of having a more direct comparison with Ruby.NET.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-8115916862625372408?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/8115916862625372408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=8115916862625372408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/8115916862625372408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/8115916862625372408'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2007/02/ruby-implementations-shootout.html' title='Ruby Implementations Shootout'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3412775.post-6576292720974589927</id><published>2006-11-30T15:58:00.000-05:00</published><updated>2006-11-30T16:36:15.881-05:00</updated><title type='text'>Bjarne Stroustrup, inventor of C++, on what's wrong with most software ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jeffsutherland.com/uploaded_images/logo_mit_tech_review-792255.gif" target=blank&gt;&lt;img style="cursor: pointer;" src="http://jeffsutherland.com/uploaded_images/logo_mit_tech_review-792149.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;The Problem with Programming&lt;/span&gt;&lt;br /&gt;By &lt;a href="http://www.technologyreview.com/read_article.aspx?id=17831&amp;ch=infotech"&gt;Jason Pontin, Tuesday, November 28, 2006&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the 1980s and 90s, Bjarne Stroustrup designed and implemented the C++ programming language, which popularized object-oriented programming and influenced numerous other programming languages, including Java.&lt;br /&gt;&lt;br /&gt;C++ remains the archetypal "high level" computer language (that is, one that preserves the features of natural, human language), and it is still used by millions of programmers. Many of the systems and applications of the PC and Internet eras were written in C++. For all that, the language remains controversial, largely because it is notoriously difficult to learn and use, and also because Stroustrup's design allows developers to make serious programming mistakes in the interest of preserving their freedom.&lt;br /&gt;&lt;br /&gt;Stroustrup, for many years a researcher at AT&amp;amp;T Bell Labs, is now a professor of computer science in the Department of Engineering, at Texas A&amp;M University, near Houston.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Technology Review: &lt;/span&gt;Why is most software so bad?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Bjarne Stroustrup:&lt;/span&gt; Some software is actually pretty good by any standards. Think of the Mars Rovers, Google, and the Human Genome Project. That's quality software! Fifteen years ago, most people, and especially most experts, would have said each of those examples was impossible. Our technological civilization depends on software, so if software had been as bad as its worst reputation, most of us would have been dead by now.&lt;br /&gt;&lt;br /&gt;On the other hand, looking at "average" pieces of code can make me cry. The structure is appalling, and the programmers clearly didn't think deeply about correctness, algorithms, data structures, or maintainability. Most people don't actually read code; they just see Internet Explorer "freeze."&lt;br /&gt;&lt;br /&gt;I think the real problem is that "we" (that is, we software developers) are in a permanent state of emergency, grasping at straws to get our work done. We perform many minor miracles through trial and error, excessive use of brute force, and lots and lots of testing, but--so often--it's not enough.&lt;br /&gt;&lt;br /&gt;Software developers have become adept at the difficult art of building reasonably reliable systems out of unreliable parts. The snag is that often we do not know exactly how we did it: a system just "sort of evolved" into something minimally acceptable. Personally, I prefer to know when a system will work, and why it will.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TR:&lt;/span&gt; How can we fix the mess we are in? ... &lt;a href="http://www.technologyreview.com/read_article.aspx?id=17831&amp;amp;ch=infotech" target=blank&gt;Click here to find out!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/3412775-6576292720974589927?l=jeffsutherland.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/6576292720974589927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3412775&amp;postID=6576292720974589927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/6576292720974589927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3412775/posts/default/6576292720974589927'/><link rel='alternate' type='text/html' href='http://jeffsutherland.com/2006/11/bjarne-stroustrup-inventor-of-c-on.html' title='Bjarne Stroustrup, inventor of C++, on what&apos;s wrong with most software ...'/><author><name>Jeff Sutherland</name><uri>http://www.blogger.com/profile/07761053439034726679</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>