<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <link href="http://martinfowler.com/feed.atom" rel="self"/>
  <link href="http://martinfowler.com"/>
  <id>http://martinfowler.com/feed.atom</id>
  <title>Martin Fowler</title>
  <subtitle>Master feed of news and updates from martinfowler.com</subtitle>
  <author>
    <name>Martin Fowler</name>
    <email>fowler@acm.org</email>
    <uri>http://martinfowler.com</uri>
  </author>
  <updated>2010-08-25T15:30:00-04:00</updated>
<entry>
    <title>InfoQ Interview with Paulo Caroli and me at Agile Brazil</title>
    <link href="http://martinfowler.com/snips/201008251530.html"/>
    <updated>2010-08-25T15:30:00-04:00</updated>
    <id>tag:martinfowler.com,2010-08-25:InfoQ-Interview-with-Paulo-Caroli-and-me-at-Agile-Brazil</id>
    <category term=""/>
    <content type="html">&lt;p&gt;In June I gave a talk at Agile Brazil. During the conference my colleague &lt;a href='http://caroli.org/'&gt;Paulo Caroli&lt;/a&gt; and I were grabbed to give &lt;a href='http://www.infoq.com/interviews/fowler-caroli-continuous-deployment'&gt;an interview for InfoQ Brazil&lt;/a&gt;. We touched on several topics: acceptance testing, polyglot programming, my DSL book, REST, and continuous delivery.&lt;/p&gt;</content>
  </entry><entry>
    <title>DSL copy-edited text in roughcut</title>
    <link href="http://martinfowler.com/snips/201008171756.html"/>
    <updated>2010-08-17T17:56:00-04:00</updated>
    <id>tag:martinfowler.com,2010-08-17:DSL-copy-edited-text-in-roughcut</id>
    <category term=""/>
    <content type="html">&lt;div class = 'img'&gt;&lt;img src = 'http://martinfowler.com/dsl.jpg' width = '163' height = '216'/&gt;&lt;/div&gt;&lt;p&gt;Over the last couple of months my &lt;a href='http://martinfowler.com/books.html#dsl'&gt;DSL book&lt;/a&gt; has been through production and will shortly head off to the printers. Part of this process is copy-editing, and I&amp;#8217;ve now updated the &lt;a href='http://my.safaribooksonline.com/9780132107549'&gt;rough-cut&lt;/a&gt; to use the copy-edited text. So now any typos you see in the rough-cut are genuine errors, thus I won&amp;#8217;t ignore them any more.&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;re interested in hearing more about DSLs, &lt;a href='http://www.nealford.com/'&gt;Neal Ford&lt;/a&gt; and I will be giving our &lt;a href='http://jaoo.dk/aarhus-2010/presentation/Domain%20Specific%20Languages'&gt;full-day tutorial&lt;/a&gt; on DSLs at &lt;a href='http://jaoo.dk/aarhus-2010'&gt;JAOO&lt;/a&gt; again this year. We&amp;#8217;re hoping the book will make its conference debut there as well.&lt;/p&gt;</content>
  </entry><entry>
    <title>Bliki: Agile2010</title>
    <link href="http://martinfowler.com/bliki/Agile2010.html"/>
    <updated>2010-08-16T13:49:00-04:00</updated>
    <id>http://martinfowler.com/bliki/Agile2010.html</id>
    <category term="agile"/>
    <content type="html">&lt;p&gt;Last week I attended the &lt;a href = 'http://agile2010.agilealliance.org/'&gt;Agile 2010&lt;/a&gt; conference in Orlando. Agile
  20xx is the major US agile-oriented conference whose roots go back
  to &lt;a href = 'http://c2.com/cgi-bin/wiki?XpUniverse'&gt;XP Universe&lt;/a&gt; and the &lt;a href = 'http://c2.com/cgi-bin/wiki?AgileDevelopmentConference'&gt;Agile Development Conference&lt;/a&gt;. I've not been a
  regular attender of the main agile conferences, but I did go last
  year as well. Rather than make an attempt at a consolidated description, here
  are a few scattered impressions.&lt;/p&gt;
&lt;div class = 'photo' style = 'width: 200px'&gt;&lt;img src = 'http://martinfowler.com/bliki/images/agile2010/testobsessed.jpg' height = '194px' width = '200px'&gt;&lt;/img&gt;
&lt;p&gt;Elizabeth Hendrickson (aka testobsessed)&lt;/p&gt;
&lt;/div&gt;
&lt;ul&gt;&lt;li&gt;Attendance was 1400, more than 2009, but around the same as
    2008. So although it has been hit by the Great Recession it's
    weathered it reasonably well.&lt;/li&gt;&lt;li&gt;I was delighted to see &lt;a href = 'http://testobsessed.com/'&gt;Elizabeth Hendrickson&lt;/a&gt; and &lt;a href = 'http://lunivore.com/'&gt;Liz Keogh&lt;/a&gt; win
    the &lt;a href = 'http://www.paskaward.org/'&gt;Gordon Pask award&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;My sense was that most people were relatively new to agile,
    which is in line with my sense in 2009.&lt;/li&gt;&lt;li&gt;There was a much higher proportion of women than I usually see
    at software conferences.&lt;/li&gt;&lt;li&gt;There were lots of talks going on, which felt overwhelming to
    me: 16 stages (tracks) with 214 talks. &lt;/li&gt;&lt;li&gt;I was pleased to see the tutorial on &lt;a href = 'http://continuousdelivery.com/'&gt;Continuous Delivery&lt;/a&gt;
    that Jez Humble gave with me seemed well-received. (We currently have it booked again for &lt;a href = 'http://qconsf.com/sf2010/presentation/Continuous+Delivery'&gt;QCon&lt;/a&gt;
    and &lt;a href = 'http://www.sigs-datacom.de/oop2011/oop2011.html'&gt;OOP&lt;/a&gt;.)&lt;/li&gt;&lt;li&gt;Most of the emphasis was on team collaboration and soft
    skills. This led to some &lt;a href = 'http://twitter.com/unclebobmartin/status/20939988297'&gt;criticism&lt;/a&gt; from people on the programming side.&lt;/li&gt;&lt;li&gt;My unscientific sample of talks I attended showed a higher
    proportion of badly presented talks than I would like.&lt;/li&gt;&lt;li&gt;It seems there's a movement to re-create &lt;a href = 'http://blog.coryfoy.com/2010/08/xpuniverse-2011/'&gt;XP Universe&lt;/a&gt; for next year.&lt;/li&gt;&lt;li&gt;I prefer a conference in a real city to one in a holiday
   resort.&lt;/li&gt;&lt;li&gt;This year marks ten years from the &lt;a href = 'http://martinfowler.com/articles/xp2000.html'&gt;first agile-oriented conference&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;The conference went smoothly - which is a testament to the hard
   work of all the organizers. This is particularly so since they had
   to deal with moving the conference after the flooding in
   Nashville. Thank You.&lt;/li&gt;&lt;/ul&gt;
&lt;div class = 'photo' style = 'width: 200px'&gt;&lt;img src = 'http://martinfowler.com/bliki/images/agile2010/lunivore.jpg' height = '194px' width = '200px'&gt;&lt;/img&gt;
&lt;p&gt;Liz Keogh (aka lunivore)&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I have mixed feelings about the complaints on the lack of
  programming topics. Certainly programming plays a central role in
  software development and attempts to marginalize it correlate well
  with dead-ends. But programming is part of a very interconnected
  system which involves lots of pieces - and making these
  interconnections work requires exactly these kinds of "soft and
  woolly" skills. There is a real tendency for programmers to look
  inward and obsess on technical issues rather than engaging with
  those outside programming. One of the things I like about XP is
  that it recognizes this: blending technical excellence with
  collaboration.&lt;/p&gt;&lt;p&gt;I would hate to see programming detached from the agilexx
  conference with programmers going to different events. There's a
  need for places where the intermingling can occur. The &lt;a href = 'http://jaoo.dk/'&gt;JAOO&lt;/a&gt; and &lt;a href = 'http://qconferences.com/'&gt;QCon&lt;/a&gt; conferences seem to do a very
  good job of this - as well as having a better quality control over
  the talks themselves. Their format isn't universal, and there's room
  for more options. Our crucial task is to engage in excellence in the
  programming side without cutting off the essential
  collaboration.&lt;/p&gt;</content>
  </entry><entry>
    <title>Australia in September</title>
    <link href="http://martinfowler.com/snips/201008050919.html"/>
    <updated>2010-08-05T09:19:00-04:00</updated>
    <id>tag:martinfowler.com,2010-08-05:Australia-in-September</id>
    <category term=""/>
    <content type="html">&lt;p&gt;Next month, I&amp;#8217;ll be making the long journey down to Australia to spend ten days or so in Melbourne. Thus far I have a couple of talks booked. The main reason is to give a keynote at &lt;a href='http://www.agileaustralia.com'&gt;Agile Australia&lt;/a&gt;. I&amp;#8217;ll also be speaking at &lt;a href='http://www.meetup.com/Agile-Alliance-Melbourne/calendar/14300519'&gt;Agile Melbourne&lt;/a&gt;. In both cases I&amp;#8217;ll be doing a &lt;a href='http://martinfowler.com/bliki/SuiteOfTalks.html'&gt;Suite of Talks&lt;/a&gt;, but I expect to pick mostly different topics for the two of them.&lt;/p&gt;</content>
  </entry><entry>
    <title>Continuous Delivery is Now Out</title>
    <link href="http://martinfowler.com/snips/201007301801.html"/>
    <updated>2010-07-30T18:01:00-04:00</updated>
    <id>tag:martinfowler.com,2010-07-30:Continuous-Delivery-is-Now-Out</id>
    <category term=""/>
    <content type="html">&lt;table&gt;

&lt;tr style='vertical-align: top'&gt;

&lt;td&gt;&lt;img src='http://martinfowler.com/continuousDelivery.jpg' height='216' width='163' /&gt;&lt;/td&gt;

&lt;td style='padding-left: 1em'&gt;

&lt;p&gt;Today I got my copy of &lt;a href='http://martinfowler.com/books.html#continuousDelivery'&gt;Continuous
Delivery&lt;/a&gt;, a book that I think is going to be probably the most
important technical book of 2010. It talks about the build and
deployment process: how to make it faster and less stressful. Almost
every client ThoughtWorks has had in the last decade would have
benefitted enormously from the techniques in this book, so I'm sure it
has a huge potential to improve software development.&lt;/p&gt;
&lt;p&gt;This week I've been working on the tutorial that Jez and I are
doing at &lt;a href='http://agile2010.agilealliance.org/'&gt;Agile
2010&lt;/a&gt;, and using my draft copy reinforced to me how useful a book
this is. Jez and I hope to be doing a number of talks on this material
over the next year or so - so keep an eye out for us. In particular we
will be doing a full day tutorial at &lt;a href='http://qconsf.com/sf2010/presentation/Continuous+Delivery'&gt;QCon San Francisco&lt;/a&gt;.&lt;/p&gt;

&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</content>
  </entry><entry>
    <title>Bliki: UtilityVsStrategicDichotomy</title>
    <link href="http://martinfowler.com/bliki/UtilityVsStrategicDichotomy.html"/>
    <updated>2010-07-29T09:58:00-04:00</updated>
    <id>http://martinfowler.com/bliki/UtilityVsStrategicDichotomy.html</id>
    <category term="agile"/>
    <content type="html">&lt;p&gt;One of the steady themes I've seen throughout my career is that
  of the nature and importance of software development. Recently a
  prospect told one of our salespeople that "software is like sewage
  pipes, I want it to work reliably and I don't want to know about the
  details". This is the kind of approach that Nicholas Carr talked
  about in &lt;a href = 'http://www.nicholasgcarr.com/articles/matter.html'&gt;IT Doesn't
  Matter&lt;/a&gt;.
  
  On a contrasting note we've done work for many businesses where IT
  has been a clearer strategic enabler to their business, allowing
  them to enter new markets or significantly increase their market
  share. So is IT a utility, like sewage pipes, or a strategic
  asset?&lt;/p&gt;&lt;img src = 'http://martinfowler.com/bliki/images/utilityVsStrategicDichotomy/sketch.png'&gt;&lt;/img&gt;&lt;p&gt; I take that the view is that it can be either, depending on the
  system. A classic example of a utility IT project is payroll,
  everyone needs it, but it's something that most people want to 'just
  work'.&lt;/p&gt;&lt;p&gt;So what is the distinguishing factor between utility and
  strategic projects? To my mind it's all about whether the underlying
  business function is a differentiator or not. If how you do this
  function is a crucial part of what makes you better than the
  competition, then the software that supports this function needs to
  be as good as you can make it. Note that this distinction isn't
  about the software, but the business function. As Ross Pettit &lt;a href = 'http://www.rosspettit.com/2010/07/separating-utility-from-value-add.html'&gt;puts
  it&lt;/a&gt; "This is not a separation of IT by the nature of the
  technology, but into what technology does for the host
  business". &lt;/p&gt;&lt;p&gt;The most important point about this dichotomy is to realize that
  there are two kinds of software projects and they need to be treated
  entirely differently. The way you staff, run, and budget a
  strategic project is entirely different to how you do a utility
  project. Too often people assume that what is good for one is good
  for the other - and trouble inevitably follows.&lt;/p&gt;&lt;p&gt;Another consequence is that only a few projects are
  strategic. The 80/20 rule applies, except it may be more like
  95/5. While certainly it's most common for people to not recognize
  the dichotomy at all, it's also common for people to think that too
  many projects are strategic.&lt;/p&gt;&lt;p&gt;One of the most important ways in which these efforts differ is
  where the risks lie. For utility projects the biggest risk is some
  kind of catastrophic error - you don't want the sewage pipe to
  break, or to miss payroll. So you need enough attention to make sure
  that doesn't happen, but other than that you want costs to be as low
  as possible. However with strategic projects, the biggest risk is
  not doing something before your competitors do. So you need to be
  able to react quickly. Cost is much less of an issue because the
  opportunity cost of not doing something is far greater than costs of
  software development itself.&lt;/p&gt;&lt;p&gt;This is not a static dichotomy. Business
  activities that are strategic can become a utility as time
  passes. Less often, a utility can become strategic if a company
  figures out how to make that activity a differentiator. (Apple did
  something like this with the design of personal computers.) &lt;/p&gt;&lt;p&gt;One way this dichotomy helps is in deciding between building
  custom software and installing a package. Since the definition of
  utility is that there's no differentiator, the obvious thing is to
  go with the package. For a strategic function you don't want the
  same software as your competitors because that would cripple your
  ability to differentiate.&lt;/p&gt;&lt;p&gt;Often people realize this and buy a package for a utility
  project, but then spend huge amounts of money customizing this -
  which is just as wasteful. My view is that for a utility function
  you buy the package and adjust your business process to match the
  software. Usually this is politically infeasible, so the workaround
  is to put a low grade software team to work on it. Provide enough
  care to avoid catastrophe, but otherwise you don't need a high-grade
  team.&lt;/p&gt;&lt;p&gt;Another way the dichotomy makes its influence felt is the role of
  agile methods. Most agilists tend to come from a strategic mindset,
  and the flexibility and rapid time-to-market that characterizes
  agile is crucial for strategic projects. For utility projects,
  however, the advantages of agile don't matter that much. I'm not
  sure whether using an agile approach for a utility project would be
  the wrong choice, but I am sure that it doesn't matter that much.&lt;/p&gt;&lt;p&gt;Like many classifications, there's a lot of grey in between. Yet
  this is one of those rare cases where I think there's a strong
  argument to turn up the contrast and force more binary thinking. As
  Ross commented in a discussion of a draft of this post: "'shades of
  grey' give license to pile things into the wrong category; things
  that are really utility will be given an inflated importance, rather
  than dispositioned as the utilities they really are." Forcing a
  binary decision, tilted to minimize what's in the strategic bucket,
  would help provide the focus that's often lacking in IT initiatives.&lt;/p&gt;&lt;p&gt;Ross goes so far as to argue that there
  shouldn't be a single IT department that's responsible for both
  utility and strategic work. The mindset and management attitudes
  that are needed for the two are just too different. It's like
  expecting the same people who design warehouses to design an arts
  museum.&lt;/p&gt;
&lt;h3&gt;To explore more...&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href = 'http://www.rosspettit.com/2010/07/separating-utility-from-value-add.html'&gt;Ross's
    article&lt;/a&gt; calls for a Glass-Stegall of IT
    departments.&lt;/li&gt;&lt;li&gt;Marc McNeil talks of projects as &lt;a href = 'http://www.dancingmango.com/blog/2010/07/14/tractor-bleedingedge/'&gt;Tractors, nuclear power plants and the bleeding edge&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Neal Ford points out that integration efforts, such as SOA,
    &lt;a href = 'http://memeagora.blogspot.com/2009/01/tactics-vs-strategy-soa-tarpit-of.html'&gt;can't be strategic&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;There is video of the talk &lt;a href = 'http://www.amplify.amp.com.au/videos?video=Martin%20Fowler%20-%20What%20if%20enterprise%20software%20was%20cheaper,%20faster,%20better%20AND%20COOL?'&gt;I gave on this theme&lt;/a&gt; for AMP last year.&lt;/li&gt;&lt;/ul&gt;</content>
  </entry><entry>
    <title>Pourquoi, pas comment</title>
    <link href="http://martinfowler.com/snips/201007151824.html"/>
    <updated>2010-07-15T18:24:00-04:00</updated>
    <id>tag:martinfowler.com,2010-07-15:Pourquoi--pas-comment</id>
    <category term=""/>
    <content type="html">&lt;p&gt;A couple of weeks ago I was in Paris with Neal Ford to speak at &lt;a href='http://universite-du-si.com/fr/conferences/6-paris-usi-2010'&gt;USI 2010&lt;/a&gt;. Our talk looked at some aspects of &lt;em&gt;why&lt;/em&gt; agile works. Rather than look at the techniques which is how agile does its thing, we looked more at some of the underlying forces - focusing on communication and feedback. The &lt;a href='http://universite-du-si.com/fr/conferences/6/sessions/909'&gt;video is now available&lt;/a&gt;. (The introduction is in French but the talk is in English. Sadly my French is barely sufficient to order at a restaurant.)&lt;/p&gt;</content>
  </entry><entry>
    <title>Bliki: TeamRoom</title>
    <link href="http://martinfowler.com/bliki/TeamRoom.html"/>
    <updated>2010-06-14T09:31:00-04:00</updated>
    <id>http://martinfowler.com/bliki/TeamRoom.html</id>
    <category term="agile"/>
    <content type="html">&lt;p&gt;A common thing you find in agile projects is that the development
  team sits in a single open team room. It was advocated early on in
  Extreme Programming and called out as one of primary practices in
  the second edition. Agilists favor a open team room as it promotes
  lots of informal and deep communication between people on the
  team.&lt;/p&gt;&lt;img src = 'http://martinfowler.com/bliki/images/teamRoom/teamRoomBeijing.jpg' height = '471' width = '800'&gt;&lt;/img&gt;
&lt;h3&gt;Why&lt;/h3&gt;
&lt;p&gt;Software development is an intense exercise in
    collaboration. An open space encourages regular conversations and
    interactions between people. You can see what everyone's doing and
    easily ask for help when you need to. Often you get serendipitous
    communication, where you overhear something that's really useful.&lt;/p&gt;&lt;p&gt;Hearing this, some people are concerned about noise, and would
    prefer private offices. In practice I find that teams don't find
    noise to be a serious issue. There's usually a hum of conversation
    going on, after all pair programming often accompanies this style
    of development. But the conversation isn't usually that
    distracting, particularly as you're focused on the conversation with
    your pair. I suspect the reason it's not that distracting is
    because the team has a common purpose around a collaborative
    activity. It isn't comparable to an open-plan office where
    everyone is doing something different.&lt;/p&gt;
&lt;h3&gt;Tips for a good Team Room&lt;/h3&gt;
&lt;p&gt;First make sure it is the right size for the team. While a team
    room should be open within itself, it should be closed to everyone
    else. In an ideal world you'd like flexible walls that can
    insulate one team from another, so an office consists of pods of
    teams. This is hard to do in practice. Our offices tend to be
    completely open, with little barriers between teams. This seems to
    work well-enough, although there are some complaints about the
    inter-team noise.&lt;/p&gt;&lt;p&gt;Pay attention to natural light. Humans are used to seeing the
    outside world, and all sorts of natural rhythms work off of
    light. So it's no surprise that people get very cranky if there
    isn't enough light about. I've spent plenty of days in enclosed
    conference rooms, and it certainly wears down my energy.&lt;/p&gt;&lt;p&gt;Provide enough space: about 50 square feet per person (4.5
    square meters for those on metric).&lt;/p&gt;&lt;p&gt;With the right kind of space the next key thing is to ensure
    that the team has control over that space. An important part of
    agile thinking is that the team is responsible for how it works,
    and how it organizes its space is part of that. Ideally you want a
    team to have complete control over their space, with freedom to
    configure it how they like and reconfigure it at will. Things
    should be done so it's easy to move things around, because during
    the project the team will need to change things as the project
    changes.&lt;/p&gt;
&lt;div class = 'photo' style = 'width: 400px'&gt;&lt;img src = 'http://martinfowler.com/bliki/images/teamRoom/desk.jpg' height = '290px' width = '400px'&gt;&lt;/img&gt;
&lt;p&gt;The purpose-built tables in our Beijing office have
    handy baskets for power and other cables.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;An immediate consequence of this is to ditch any kind of
    modular furniture that requires a facilities group to move more than
    an inch. Most teams I see use simple tables, and you can certainly
    go cheap here.&lt;/p&gt;&lt;p&gt;The biggest hassle is wires - primarily for power and network
    access. Ideally you want these underfloor or overhead so that
    people can easily route wires to the tables, wherever the tables
    happen to be.&lt;/p&gt;&lt;p&gt;The place to spend money on furniture is for good quality
    chairs. Programmers spend a lot of time sitting, and any physical
    damage due to poor posture will have a direct effect on the team's
    productivity - so don't stint here. It may be that some people
    will want strange chairs, such as balls or kneeling chairs. Do
    your best to accommodate them.&lt;/p&gt;&lt;p&gt;Some people are big fans of tables that can be adjusted between
    a sitting and standing height, as they find that standing for a
    while helps with back pain. These are harder to find, but worth
    looking into if your team members need it. Back pain is a common
    issue, but everyone's pain (and treatment) is different.&lt;/p&gt;&lt;p&gt;You'll need lots of wall space, as agilists love their &lt;a href = 'http://alistair.cockburn.us/Information+radiator'&gt;information
    radiators&lt;/a&gt;. You want plenty of room for story walls,
    architectural diagrams, whatever people want to stick on the
    wall. A good bit of this wall space should be whiteboards so
    people can draw something whenever the mood takes them. Include
    some wheeled whiteboards. Make sure there's a digital camera
    around so people can easily record what's on the board. Now that
    displays are so cheap, consider getting some just for wall
    displays - this is particularly handy for dynamic displays such as
    build status. I've seen one team have projectors trained on a wall
    with various kinds of information displays.&lt;/p&gt;&lt;p&gt;The traditional layout is to have people working around clumps
    of desks. This gives you regular eye contact with the rest of your
    team. However I've heard many people sing the praises of the
    &lt;a href = 'http://martinfowler.com/bliki/UPod.html'&gt;UPod&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;People will occasionally need some private space, so ensure
    there are one or two small conference rooms available, with
    telephones. These can be used for privacy or when there's a
    concern about distraction. A large meeting room that the team can
    gather in for meetings away from the working space is also
    handy. &lt;/p&gt;&lt;p&gt;I've always been a big proponent of lots of monitor
    space. Clever software with multiple virtual workspaces is a great
    feature, but nothing is faster than just moving your eyes. Every
    workstation should have a couple of 20 inch monitors as a bare
    minimum. My desk has a pair of 20 inch monitors for my Ubuntu
    machine and a 25 inch for my mac laptop. I don't think that's at
    all excessive.&lt;/p&gt;&lt;p&gt;Software development is inherently creative, so expect to see
    lots of baubly distractions. Toys are commonly found around our
    teams (as Neal Ford says: "every team needs a plastic
    kangaroo"). There are good cognitive reasons why this is valuable,
    it's all about keeping the brain stimulated and creative.&lt;/p&gt;&lt;p&gt;Similarly do provide easy access to snacks and drinks. This
    helps support informal, conversational breaks in the team
    area. It's hard to be creative when you have to pay for awful
    coffee.&lt;/p&gt;&lt;p&gt;If you're working with remote workers, make it easy to set up a
    video link. Indeed many teams like having permanent video links to
    any remote workers so you can always maintain that casual video
    contact.&lt;/p&gt;
&lt;h3&gt;Useful Links&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href = 'http://www.infoq.com/articles/agile-team-room-wishlist'&gt;InfoQ
      summary&lt;/a&gt; of things for a team room.&lt;/li&gt;&lt;li&gt;William Pietri describes a &lt;a href = 'http://www.scissor.com/resources/teamroom/'&gt;team room he's
      used.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Bill Wake's &lt;a href = 'http://www.xp123.com/xplor/room-gallery/index.shtml'&gt;gallery of
      team rooms and charts.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Rachel Davies's advice on &lt;a href = 'http://agilecoach.typepad.com/agile-coaching/2010/05/building-an-agile-environment.html'&gt;building
      an agile environment&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Joel Spolsky is perhaps the &lt;a href = 'http://www.joelonsoftware.com/items/2008/12/29.html'&gt;best illustration&lt;/a&gt; for using
      individual offices rather than a single team room.&lt;/li&gt;&lt;li&gt;Rajeev Singh's &lt;a href = 'http://bizvalu.blogspot.com/2007/10/open-space-configuration-dawn-of-new.html'&gt;thoughts&lt;/a&gt;
      on moving into this kind of team room at ThoughtWorks
      India.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;My thanks to my ThoughtWorks colleagues for helping compile
    this information.&lt;/p&gt;</content>
  </entry><entry>
    <title>Craigslist Scam</title>
    <link href="http://martinfowler.com/snips/201006081041.html"/>
    <updated>2010-06-08T10:41:00-04:00</updated>
    <id>tag:martinfowler.com,2010-06-08:Craigslist-Scam</id>
    <category term=""/>
    <content type="html">&lt;p&gt;Over the weekend I&amp;#8217;ve had a few emails from people in response to &lt;a href='http://www.craigslist.org/about/scams'&gt;scams on craigslist&lt;/a&gt;. The scammer has been posting fake job adverts, using my name, for a driver or personal assistant. In case someone checks here I thought I should make it clear that I have never made any postings on craigslist and any postings you see there with my name are false.&lt;/p&gt;</content>
  </entry><entry>
    <title>Bliki: iPad</title>
    <link href="http://martinfowler.com/bliki/iPad.html"/>
    <updated>2010-06-04T13:49:00-04:00</updated>
    <id>http://martinfowler.com/bliki/iPad.html</id>
    <category term="writing"/>
    <content type="html">&lt;p&gt;I've not seen myself as an iFanboy. I didn't get an iPhone for
  ages after it came out, and only got one because it was the only way
  to upgrade my data plan to 3G. I use a mac, but I also have an
  Ubuntu desktop. But I have got an iPad, and I think it's a
  significant product.&lt;/p&gt;&lt;img src = 'http://martinfowler.com/bliki/images/ipad.jpg' height = '300' width = '400'&gt;&lt;/img&gt;&lt;p&gt;I knew I wanted one right from the announcement. A while ago I
  used my desktop for work and kept my laptop floating about the
  house. I liked that arrangement as it allowed me to get away from my
  desk for reading the web and doing email. But now that I use
  Keynote, Aperture, and Omnigraffle I need to use my Mac with a big
  screen. So my laptop is stuck on my desktop while I'm at home. To
  compensate I bought a cheap laptop. But using a laptop like this was always
  kludgy. The clam shell is awkward when I'm reading rather than
  typing. The low battery life means I try to keep plugged in as
  much as I can. So a few weeks ago I splashed out.&lt;/p&gt;
&lt;h3&gt;The Good&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;The form factor and low weight makes it comfortable to use
      on a sofa.&lt;/li&gt;&lt;li&gt;There's enough battery life that I can forget about it as
      long as I charge it overnight.&lt;/li&gt;&lt;li&gt;The screen is gorgeous: bright, clear and sharp.&lt;/li&gt;&lt;li&gt;The touch UI is familiar (due to the iPhone) and works
      really well on a tablet device.&lt;/li&gt;&lt;li&gt;Reading books using the Kindle app works really well. I
      don't miss having a paper book and I appreciate the lighter
      weight.&lt;/li&gt;&lt;li&gt;Web surfing is mostly very good. I find myself using the
      news apps from BBC, New York Times and NPR a lot.&lt;/li&gt;&lt;li&gt;It's good for watching a movie. (The Netflix app could be
      really big here, although I haven't used it yet.) I appreciated
      the mix of reading and movie watching while flying back and
      forth to San Francisco in a middle seat; not to mention the fact
      that I used less than half my battery in the process.&lt;/li&gt;&lt;/ul&gt;
&lt;h3&gt;The Bad&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;I worry about the lock-in when buying an electronic book. So
      far I'm thinking Amazon is less likely to lock me into a
      specific platform than iBooks. But I do worry that I'll have
      lots of books that I can't read any more some day.&lt;/li&gt;&lt;li&gt;Web-app sites, such as Google's, often don't work too
      well. For regular use they make good use of the difference
      between hover and click - and this doesn't work with the
      iPad. This pushed me to get an app for reading my news feeds,
      even though I like Google Reader.&lt;/li&gt;&lt;li&gt;Like with my Android phone and the iPhone, it's awkward to
      sync some text or html files from my other computers to my
      iPad. This is annoying as I like sharing information this
      way. Dropbox may be the answer, we'll see.&lt;/li&gt;&lt;li&gt;Hotels with restrictive wifi are a real pain. I want to work
      on my laptop with wifi and use that nice Netflix app on my
      iPad. Paying for wifi is bad enough, being unable to use it on
      multiple devices is awful.&lt;/li&gt;&lt;li&gt;While it's ok to look at my inbox, the mail app doesn't work
      well for threaded discussions on mailing lists.&lt;/li&gt;&lt;li&gt;I would really like to be able to change the font size in
      the web browser.&lt;/li&gt;&lt;/ul&gt;
&lt;h3&gt;The Puzzling&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;Apple gets a lot of heat for being a curated software
      system, rather than the traditional open one. Given how much of
      my life I've lost to sorting out software incompatibilities I'm
      not sure whether to like curation of not. In any case the
      competition with Android and the like will prove
      interesting.&lt;/li&gt;&lt;/ul&gt;
&lt;h3&gt;The Bottom Line&lt;/h3&gt;
&lt;p&gt;After a few hours with the iPad, I realized that I was feeling
    a sensation I'd only remembered once before: back in 1995 when
    someone showed me the World Wide Web. There's no dramatic new
    technology, we've seen tablets before just as we'd seen hypertext
    before. But the overall package was game-changer. I don't know if
    the iPad will be The Device, but I do think that this kind of
    device will make huge difference to how we read and watch things
    in the future. I certainly need to work at making sure what I
    produce in the future is built with these kinds of devices in
    mind.&lt;/p&gt;</content>
  </entry><entry>
    <title>Brazil Visit</title>
    <link href="http://martinfowler.com/snips/201006030926.html"/>
    <updated>2010-06-03T09:26:00-04:00</updated>
    <id>tag:martinfowler.com,2010-06-03:Brazil-Visit</id>
    <category term=""/>
    <content type="html">&lt;p&gt;In a couple of weeks, I&amp;#8217;ll be making my first trip to Brazil (and South America). I&amp;#8217;ll arrive in Rio on Jun 13 and &lt;a href='http://www.thoughtworks.com/design-de-software-rio'&gt;give a talk&lt;/a&gt; there on the 14th. After that I&amp;#8217;ll head over to Porto Alegre and hang out at our office until &lt;a href='http://www.agilebrazil.com/2010/'&gt;Agile Brazil&lt;/a&gt;, where I&amp;#8217;ll be doing a Keynote. My Rio and Agile Brazil talks will be similar - in that I&amp;#8217;ll be doing a &lt;a href='http://martinfowler.com/bliki/SuiteOfTalks.html'&gt;suite of talks&lt;/a&gt;, although I&amp;#8217;ll probably not use the same suite in each place.&lt;/p&gt;</content>
  </entry><entry>
    <title>Continuous Delivery Book</title>
    <link href="http://martinfowler.com/snips/201006021426.html"/>
    <updated>2010-06-02T14:26:00-04:00</updated>
    <id>tag:martinfowler.com,2010-06-02:Continuous-Delivery-Book</id>
    <category term=""/>
    <content type="html">&lt;table&gt;

&lt;tr style='vertical-align: top'&gt;

&lt;td&gt;&lt;img src='http://martinfowler.com/continuousDelivery.jpg' height='216' width='163' /&gt;&lt;/td&gt;

&lt;td style='padding-left: 1em'&gt;

&lt;p&gt;My signature series is actually getting two new books, as well as my
DSL book, there is a probably more important book on &lt;a href='http://martinfowler.com/books.html#continuousDelivery'&gt;Continuous
Delivery&lt;/a&gt;. The book is written by two long-time friends and colleagues
and talks about how to use deployment pipelines to get you that last
mile  from Continuous Integration to deployment&lt;/p&gt;
&lt;p&gt;As well as the book I'll be doing some tutorials on Continuous
Delivery with Jez Humble over the next few months. Our first one is at
&lt;a href='http://agile2010.agilealliance.org'&gt;Agile 2010&lt;/a&gt;.  You
find more details about talks Jez is doing at &lt;a href='http://continuousDelivery.com'&gt;continuousDelivery.com&lt;/a&gt;.&lt;/p&gt;

&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</content>
  </entry><entry>
    <title>Final Draft of DSL book on RoughCut</title>
    <link href="http://martinfowler.com/snips/201006011727.html"/>
    <updated>2010-06-01T17:27:00-04:00</updated>
    <id>tag:martinfowler.com,2010-06-01:Final-Draft-of-DSL-book-on-RoughCut</id>
    <category term=""/>
    <content type="html">&lt;p&gt;After sorting out the Final Draft for production, I rebuilt the &lt;a href='http://my.safaribooksonline.com/9780132107549'&gt;rough-cut&lt;/a&gt;, which is now live on the site.&lt;/p&gt;

&lt;p&gt;The biggest change with the content of the Final Draft is that I have three new pattern chapters for external DSLs from my colleague Rebecca Parsons: Regex Table Lexer, Recursive Descent Parser, and Parser Combinator. I&amp;#8217;ve also reworked the &amp;#8220;Hello Antlr&amp;#8221; topic into the Parser Generator pattern.&lt;/p&gt;</content>
  </entry><entry>
    <title>DSL Book now at Final Draft</title>
    <link href="http://martinfowler.com/snips/201005261418.html"/>
    <updated>2010-05-26T14:18:00-04:00</updated>
    <id>tag:martinfowler.com,2010-05-26:DSL-Book-now-at-Final-Draft</id>
    <category term=""/>
    <content type="html">&lt;p&gt;I&amp;#8217;ve now reached another significant step in my DSL book: Final Draft. This is the moment when I declare that I&amp;#8217;m done with my content and release it to production. Copy-editing will begin soon, as well indexing, and various other sundry task to turn final text into a book ready to go to the printers.&lt;/p&gt;

&lt;p&gt;It doesn&amp;#8217;t mean that I&amp;#8217;m completely done with the book. I will have to review the copy edits to ensure they are OK. I will also be working intimately with the production process, helping to improve the output for Safari Books Online and assisting the print production. I&amp;#8217;ll also fix any errors spotted in the content, such as from people commenting on the &lt;a href='http://my.safaribooksonline.com/9780132107549'&gt;rough-cut&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;But the important step is that I&amp;#8217;m done with the major thinking. I can&amp;#8217;t do any big work on the content now unless it&amp;#8217;s an emergency, so I&amp;#8217;ll only be tidying up little things. I feel a sense of relief, a knowledge that it&amp;#8217;s time to let the book go.&lt;/p&gt;</content>
  </entry><entry>
    <title>Bliki: CanonS90</title>
    <link href="http://martinfowler.com/bliki/CanonS90.html"/>
    <updated>2010-05-05T20:10:00-04:00</updated>
    <id>http://martinfowler.com/bliki/CanonS90.html</id>
    <category term="leisure"/>
    <content type="html">&lt;p&gt;Like many obsessive snappers, I've recently got hold of the Canon
  S90 camera. It's small enough to fit in your pocket, but has the
  kind of things that people with pretensions to seriousness like:
  full manual controls, RAW file support, a good sensor, and an f2
  lens.&lt;/p&gt;&lt;img src = 'http://martinfowler.com/bliki/images/canonS90/20100307-IMG_0328.jpg' height = '266' width = '400'&gt;&lt;/img&gt;&lt;p&gt;I've had it for a few months now, and I'm really liking it. It's
  really small, fitting well into my pocket. Although I like using my
  &lt;a href = 'http://martinfowler.com/bliki/DigitalSLR.html'&gt;DigitalSLR&lt;/a&gt;, there are plenty of times when I don't fancy
  the bulk and a good pocket camera is very handy. I did have a
  Panasonic Lumix TZ3 for that purpose, but the Canon offers
  significantly better features for me.&lt;/p&gt;&lt;p&gt;I'm very happy with the image quality, particularly in low
  light. The combination of reasonable high ISO performance and a
  stabilized f2 lens, is very potent. Even my DSLR can't give me
  stabilization and an f2 lens. True, I only get f2 at 28mm, f2.5 at
  35mm, and then it falls off. But I can get some nice shots at 28 and
  35mm that I wouldn't otherwise get.&lt;/p&gt;&lt;img src = 'http://martinfowler.com/bliki/images/canonS90/20100412-IMG_0518.jpg' height = '266' width = '400'&gt;&lt;/img&gt;&lt;p&gt;The handling works well too. The S90 has got a lot of praise for
  its front control ring, that goes around the lens, as well as having
  a rear control ring. Although I confess that most of the time I
  leave it in program mode, I do like the ability to get the extra
  control when I need it.&lt;/p&gt;&lt;p&gt;The S90 has salved my micro 4/3 angst. I like small cameras, but
  I bought into the Canon DSLR range before the micro 4/3 were
  announced. That made me a bit sad, as I think the micro 4/3 would
  have been a good choice for me. But with the S90, I feel happy about
  the combo of DSLR and S90, which gives me a good choice between
  capability and bulk.&lt;/p&gt;&lt;p&gt;I don't see much in downsides. I agree with others that the rear
  control ring is a bit too easy to turn by accident. But on the whole
  it's a great camera, one that I carry with me a lot.&lt;/p&gt;&lt;img src = 'http://martinfowler.com/bliki/images/canonS90/IMG_0266.jpg' height = '266' width = '400'&gt;&lt;/img&gt;</content>
  </entry><entry>
    <title>DSL Book now available as rough-cut</title>
    <link href="http://martinfowler.com/snips/201004261601.html"/>
    <updated>2010-04-26T16:01:00-04:00</updated>
    <id>tag:martinfowler.com,2010-04-26:DSL-Book-now-available-as-rough-cut</id>
    <category term=""/>
    <content type="html">&lt;p&gt;My DSL book is &lt;a href='http://my.safaribooksonline.com/9780132107549'&gt;now available as a rough-cut&lt;/a&gt; on safari books online. If you&amp;#8217;re a member of safari you can see the book and make comments on it. If you&amp;#8217;re not a member you can only see the TOC, preface, and first chapter.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m very keen to hear comments, so if you take a look do let me know what you think. I&amp;#8217;m particularly interested in any errors I&amp;#8217;ve made so I can fix them before we chop down the trees. Please, however, remember this is a rough-cut; in particular it hasn&amp;#8217;t been through copy-editing. So expect speeling errors and mistakes grammatical - you don&amp;#8217;t need to flag those as they should get picked up once the copy-editors are set on it.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m told I&amp;#8217;m the very first author to produce the safari files myself using an automated book production process. Apart from the glow of vanity, a practical consequence of this is that I can (and will) generate updates as I put together useful updates. I&amp;#8217;ll announce any updates here and on my &lt;a href='http://twitter.com/martinfowler'&gt;twitter stream&lt;/a&gt;.&lt;/p&gt;</content>
  </entry><entry>
    <title>The cover of my Next Book</title>
    <link href="http://martinfowler.com/snips/201004230937.html"/>
    <updated>2010-04-23T09:37:00-04:00</updated>
    <id>tag:martinfowler.com,2010-04-23:The-cover-of-my-Next-Book</id>
    <category term=""/>
    <content type="html">&lt;table&gt;

&lt;tr style='vertical-align: top'&gt;

&lt;td&gt;&lt;img src='http://martinfowler.com/dsl.jpg' height='216' width='163' /&gt;&lt;/td&gt;

&lt;td style='padding-left: 1em'&gt;

&lt;p&gt;Books in my signature series use photos of bridges, in homage to my
wife's profession. This bridge is &lt;a href='http://en.wikipedia.org/wiki/The_Iron_Bridge'&gt;The Iron Bridge&lt;/a&gt;,
the first bridge in the world to be made of iron, back in 1781. It's a
symbol of the industrial revolution, which began near where I grew up
in the &lt;a href='http://en.wikipedia.org/wiki/Black_Country'&gt;Black
Country&lt;/a&gt;. The photo is my own, which I took earlier this year. The
design of the bridge looks somewhat unusual, nobody had built an iron
bridge before, so they built it like they would build a wooden
bridge. It took &lt;a href='http://en.wikipedia.org/wiki/Thomas_Telford'&gt;Thomas Telford&lt;/a&gt; to
really use iron effectively in bridges.&lt;/p&gt;

&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</content>
  </entry><entry>
    <title>Speaking in Atlanta and San Francisco Area</title>
    <link href="http://martinfowler.com/snips/201004211933.html"/>
    <updated>2010-04-21T19:33:00-04:00</updated>
    <id>tag:martinfowler.com,2010-04-21:Speaking-in-Atlanta-and-San-Francisco-Area</id>
    <category term=""/>
    <content type="html">&lt;p&gt;I&amp;#8217;ve got a couple of US speaking trips coming up, organized by ThoughtWorks. Next week (28-29 April) I&amp;#8217;m off to &lt;a href='http://www.thoughtworks.com/tech-forum-atlanta'&gt;Atlanta&lt;/a&gt; to give a couple of talks. Then in May (11-12) I&amp;#8217;m in the &lt;a href='http://www.thoughtworks.com/tech-forum-may'&gt;San Francisco area&lt;/a&gt; to speak both down in the valley and in the city. As is my style these days, I&amp;#8217;ll be doing a &lt;a href='http://martinfowler.com/bliki/SuiteOfTalks.html'&gt;suite of talks&lt;/a&gt; on various topics that I&amp;#8217;m currently interested in, so while I can&amp;#8217;t say exactly what I&amp;#8217;ll talk about, the talks will be the kinds of stuff I write about here. They&amp;#8217;re all free events, so at least you have a good chance of getting value for money.&lt;/p&gt;</content>
  </entry><entry>
    <title>Bliki: Semat</title>
    <link href="http://martinfowler.com/bliki/Semat.html"/>
    <updated>2010-04-16T17:50:00-04:00</updated>
    <id>http://martinfowler.com/bliki/Semat.html</id>
    <category term="agile"/>
    <content type="html">&lt;p&gt;&lt;a href = 'http://www.semat.org'&gt;SEMAT&lt;/a&gt; (Software Engineering Method and Theory) is
  an effort initiated by Ivar Jacobson, Bertrand Meyer, and Richard
  Soley. Its stated aim is to "refound software engineering based on a
  solid theory, proven principles and best practices". Like many
  notorious people in the software world I was invited to
  participate. Thus far I've declined and feel the need to explain why.&lt;/p&gt;&lt;p&gt;The &lt;a href = 'http://www.semat.org'&gt;call for action&lt;/a&gt; seemed
  somewhat vague to me. Although it derided fads and fashions, it
  seemed very much like a fashion statement itself. To better
  understand what was going on I took a further look at some of the
  initial publications in Dr Dobb's Journal. From here I got the
  distinct impression that the central thrust of the initiative is to
  create a software meta-method-kernel - essentially a set of common
  process elements for software developments that you can rigorously
  compose into a method for your own project.&lt;/p&gt;&lt;p&gt;At this point I lost interest. I spent a fair bit of time in the
  80's and 90's mucking around with this idea. In the end I decided
  that it was too hard and of limited value. Why this is so was
  primarily crystallized for me by Alistair Cockburn who explained
  that since people are the central element in software development,
  and people are inherently non-linear and unpredictable - such an
  effort is fundamentally doomed. Or at least it is until people
  become predictable agents that can be described with tractable
  mathematics - for which event I'm not holding my breath.&lt;/p&gt;&lt;p&gt;My views have since gone along the lines that software process is
  a much more multi-faceted thing than what a meta-method-kernel would
  usefully describe. Alistair's work on describing methods strikes me
  as a much more realistic approach.&lt;/p&gt;&lt;p&gt;Alistair actually did get involved in SEMAT and attended their
  inaugural meeting. His &lt;a href = 'http://ac.cockburn.us/2987'&gt;decision to withdraw&lt;/a&gt; further
  reinforces my lack of interest to participate myself.&lt;/p&gt;</content>
  </entry><entry>
    <title>Bliki: AmalfiCoast</title>
    <link href="http://martinfowler.com/bliki/AmalfiCoast.html"/>
    <updated>2010-04-15T19:16:00-04:00</updated>
    <id>http://martinfowler.com/bliki/AmalfiCoast.html</id>
    <category term="leisure"/>
    <content type="html">&lt;p&gt;We've just returned from a week's vacation on the &lt;a href = 'http://en.wikipedia.org/wiki/Amalfi_Coast'&gt;Amalfi Coast&lt;/a&gt; of
  Italy. For those contemplating a similar
  trip, here are a few scattered impressions.&lt;/p&gt;&lt;img src = 'http://martinfowler.com/bliki/images/amalfi/20100409-IMG_4380.jpg'&gt;&lt;/img&gt;&lt;p&gt;It's a lovely part of the world. For a start it's in Italy, one
  of our favorite places to be on vacation: hiking, scenery,
  buildings, food, gardens, weather - all sorts of things we like. The
  Amalfi Coast also has that dramatic combination of mountains and sea
  that marks so many of my favorite places (Acadia, C&#xF4;te d'Azur, Big
  Sur, Western Cape, West Coast of Scotland). Couple that with
  villages and farms clinging to the mountainside and it's all
  impossibly lovely.&lt;/p&gt;&lt;p&gt;On the way down from Rome we stopped at Caserta, which has a
   &lt;a href = 'http://en.wikipedia.org/wiki/Palace_of_Caserta'&gt;palace&lt;/a&gt; built to rival Versailles. We only took a look at the
   garden, which was a great example of formal French garden
   design. Well worth a couple of hours walking around.&lt;/p&gt;&lt;p&gt;We stayed for a couple of days at the &lt;a href = 'http://www.agriturismoserafina.it/'&gt;Agristurismo Serafina&lt;/a&gt;. An
 agriturismo is a farm that provides accommodation. We were out of the
 way in the countryside and fed good local food. Some other Italian
 guests told us that Serafina was one of the earliest
 agriturismos and that many other agriturismos aren't farms, but really
 just hotels that have a few chickens or something to make them
 qualify. Here it was obvious that it was a working farm. The hosts
 didn't speak much English but were very friendly and helpful.&lt;/p&gt;&lt;p&gt;Were we to come back (which I certainly hope we shall) I'd
  consider not hiring a car. The local buses provide a good
  service, saving the hassle of driving and parking - the latter
  particularly awkward in the pretty coastal towns. The buses also
  make it easy to do one-way hikes.&lt;/p&gt;&lt;p&gt;The hiking was excellent. The trails we did were well marked, and
  the hosts at Serafina lent us some good maps. We also used the &lt;a href = 'http://www.amazon.com/Sunflower-Landscapes-Sorrento-Amalfi-Capri/dp/1856912450'&gt;sunflower
  book&lt;/a&gt; that gave a good description of suitable walks.&lt;/p&gt;&lt;p&gt;The twisty, narrow roads, precipitous drops, and infamous Italian
  drivers make a very intimidating combination for driving. However I
  quickly got used to it as long as I got more laid-back, started to
  enjoy the antics of my fellow drivers, and lost my inhibitions about
  being on the wrong side of the road.&lt;/p&gt;&lt;p&gt;&lt;a href = 'http://en.wikipedia.org/wiki/Ravello'&gt;Ravello&lt;/a&gt; is a gem of a town with two lovely gardens. However I'm
  convinced that I'm neither rich enough nor beautiful enough to fit
  in there.&lt;/p&gt;&lt;p&gt;We spent a few days in Sorrento staying at the &lt;a href = 'http://www.sorrentohotelmignon.com/english/english.htm'&gt;Hotel
  Mignon&lt;/a&gt;. It's the kind of hotel we like for vacation: simple,
  clean, friendly and right in the middle of town so we could stroll
  around the old town easily. Sorrento isn't as cute as places like
  Ravello or Amalfi, but makes a good base.&lt;/p&gt;&lt;p&gt;The boat trip around Capri is touristy but fun, the &lt;a href = 'http://en.wikipedia.org/wiki/Blue_Grotto_%28Capri%29'&gt;Blue
  Grotto&lt;/a&gt; extravagantly so. But once you get away from the boutiquey
  center there's some nice hikes.&lt;/p&gt;</content>
  </entry><entry>
    <title>Steps towards REST</title>
    <link href="http://martinfowler.com/snips/201003181011.html"/>
    <updated>2010-03-18T10:11:00-04:00</updated>
    <id>tag:martinfowler.com,2010-03-18:Steps-towards-REST</id>
    <category term=""/>
    <content type="html">&lt;p&gt;Last year &lt;a href='http://www.crummy.com/'&gt;Leonard Richardson&lt;/a&gt; gave a talk on QCon that included a maturity model for RESTful web services. The model is a good way to sneak up on understanding REST principles and the authors of &lt;a href='http://www.facebook.com/RESTinPractice'&gt;REST in Practice&lt;/a&gt; are using it to help their discussion of how to use REST. Here&amp;#8217;s my take on explaining the model, which I found helpful in my understanding of what makes REST tick:&lt;/p&gt;

&lt;p&gt;&lt;a href='http://martinfowler.com/articles/richardsonMaturityModel.html'&gt;Richardson Maturity Model: steps toward the glory of REST&lt;/a&gt;&lt;/p&gt;</content>
  </entry><entry>
    <title>Bliki: VcsSurvey</title>
    <link href="http://martinfowler.com/bliki/VcsSurvey.html"/>
    <updated>2010-03-08T14:02:00-05:00</updated>
    <id>http://martinfowler.com/bliki/VcsSurvey.html</id>
    <category term="tools"/>
    <content type="html">&lt;p&gt;When I discussed &lt;a href = 'http://martinfowler.com/bliki/VersionControlTools.html'&gt;VersionControlTools&lt;/a&gt; I said that it
  was an unscientific agglomeration of opinion. As I was doing it I
  realized that I could add some spurious but mesmerizing numbers to
  my analysis by doing a survey. Google's spreadsheet makes the
  mechanics of conducting a survey really simple, so I couldn't
  resist.&lt;/p&gt;&lt;img src = 'http://martinfowler.com/bliki/images/vcsSurvey/summary.png'&gt;&lt;/img&gt;&lt;p&gt;I conducted the survey from February 23 2010 until March 3 2010
  on the ThoughtWorks software development mailing list. I got 99
  replies. In the survey I asked everyone to rate a number of version
  control tools using the following options:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Best in Class:   Either the best VCS or equal best&lt;/li&gt;&lt;li&gt;OK: Not the best, but you're OK with it.&lt;/li&gt;&lt;li&gt;Problematic: You would argue that the team really ought to be using something else&lt;/li&gt;&lt;li&gt;Dangerous: This tool is really bad and ThoughtWorks should press hard to have it changed&lt;/li&gt;&lt;li&gt;No opinion: You haven't used it&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The results were this:&lt;/p&gt;
&lt;table class = 'data'&gt;&lt;tr&gt;&lt;th&gt;Tool&lt;/th&gt;&lt;th&gt;Best&lt;/th&gt;&lt;th&gt;OK&lt;/th&gt;&lt;th&gt;Problematic&lt;/th&gt;&lt;th&gt;Dangerous&lt;/th&gt;&lt;th&gt;No
  Opinion&lt;/th&gt;&lt;th&gt;Active Responses&lt;/th&gt;&lt;th&gt;Approval %&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Subversion&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;72&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;99&lt;/td&gt;&lt;td&gt;93%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;git&lt;/td&gt;&lt;td&gt;65&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;85&lt;/td&gt;&lt;td&gt;99%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Mercurial&lt;/td&gt;&lt;td&gt;33&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;36&lt;/td&gt;&lt;td&gt;62&lt;/td&gt;&lt;td&gt;97%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ClearCase&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;41&lt;/td&gt;&lt;td&gt;41&lt;/td&gt;&lt;td&gt;58&lt;/td&gt;&lt;td&gt;5%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TFS&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;44&lt;/td&gt;&lt;td&gt;54&lt;/td&gt;&lt;td&gt;0%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CVS&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;59&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;84&lt;/td&gt;&lt;td&gt;17%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bazaar&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;80&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;82%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Perforce&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;54&lt;/td&gt;&lt;td&gt;44&lt;/td&gt;&lt;td&gt;61%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;VSS&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;64&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;77&lt;/td&gt;&lt;td&gt;3%&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;As well as the raw summary values, I've added two calculated
columns here to help summarize the results.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Active Responses: The total of responses excluding "No
  Opinion". (eg for git: 65 + 19 + 1 + 0)&lt;/li&gt;&lt;li&gt;Approval %: The sum of best and ok responses divided by active
  responses, expressed as a percentage. (eg for git: (65 + 19) / 85)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The graph shows a scatter plot of approval percentage and active
responses. As you can see there's a clear cluster around Subversion,
git, and Mercurial with high approval and a large amount of
responses. It's also clear that there's a big divide in approval between those
three, together with Bazaar and Perforce, versus the rest.&lt;/p&gt;&lt;p&gt;Although the graph captures the headline information well, there's
a couple of other subtleties I should mention.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Although the trio of Subversion, git, and Mercurial cluster close
together on approval, git does get a notably higher amount of best
scores: (65 versus 20 and 33).&lt;/li&gt;&lt;li&gt;VSS got the most "dangerous" responses, but a couple of people
 approved of it.&lt;/li&gt;&lt;li&gt;Neither TFS or ClearCase are liked much, but ClearCase got more
"dangerous" responses than TFS (41 versus 22).&lt;/li&gt;&lt;li&gt;Don't read too much into small differences as I'm sure they aren't
significant. I'm sure the difference in approval percentage between VSS, TFS,
and ClearCase isn't signifcant, but the difference between these three
and the leaders is.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Some caveats. This is a survey of opinion of ThoughtWorkers who
follow our internal software development discussion list, nothing more. It's
possible some of them may have been biased by my previous article
(although unlikely, since I've never managed to get my ThoughtBot
opinion-control software to work reliably). Opinions of tools are
often colored by processes that are more about the organization than
the tool itself. But despite these, I think it's an interesting data
point.&lt;/p&gt;&lt;p&gt;I should also stress the important point to take away from this
isn't the comparison between those close in the numbers, eg comparing
git and Mercurial or comparing TFS and ClearCase. Any survey like this
has a certain amount of noise in it, and I suspect the noise here is
greater than such a difference. The important point is the big
approval gap between the leading tools (Subversion, git, and
Mercurial) and the laggards - essentially the point in
&lt;a href = 'http://martinfowler.com/bliki/VersionControlTools.html'&gt;VersionControlTools&lt;/a&gt;.&lt;/p&gt;</content>
  </entry><entry>
    <title>Bliki: ToyotaFailings</title>
    <link href="http://martinfowler.com/bliki/ToyotaFailings.html"/>
    <updated>2010-03-02T19:45:00-05:00</updated>
    <id>http://martinfowler.com/bliki/ToyotaFailings.html</id>
    <category term="agile"/>
    <content type="html">
&lt;p&gt;&lt;b&gt;One of the arguments used to support the adoption of lean
techniques in software is the success of Toyota. So do Toyota's &lt;a href = 'http://www.guardian.co.uk/business/toyota'&gt;recent quality
failings&lt;/a&gt; undermine the case for lean software
development?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;One answer for this is to take a sense of proportion. Lean
manufacturing techniques were the underpinning of Toyota's rise from
an insignificant company in the 1950's to a global giant in the
2000's. By the 1990's other car companies, and many other
manufacturers, were busily copying Toyota's techniques. The general
sense is that copying these techniques did much to raise the overall
quality of cars in the last decade or so. I would be very surprised if
the recent problems at Toyota are enough negate that half-century of
success.&lt;/p&gt;&lt;p&gt;But a better answer is to remember that Lean manufacturing is about
manufacturing not software. The application of lean ideas to software
development is a consequence of &lt;a href = 'http://martinfowler.com/bliki/MetaphoricQuestioning.html'&gt;MetaphoricQuestioning&lt;/a&gt;. Lean
ideas can help us come up with better ideas for software development,
and as such are valuable. But in the end their usefulness lies with
how they are used in software and they should be judged on their
record here. Their history in manufacturing, both
good and bad, is another industry.&lt;/p&gt;</content>
  </entry><entry>
    <title>Bliki: BlueGreenDeployment</title>
    <link href="http://martinfowler.com/bliki/BlueGreenDeployment.html"/>
    <updated>2010-03-01T09:25:00-05:00</updated>
    <id>http://martinfowler.com/bliki/BlueGreenDeployment.html</id>
    <category term="design"/>
    <content type="html">&lt;p&gt;One of the goals that my colleagues and I urge on our clients is
  that of a completely automated deployment process. Automating your
  deployment helps reduce the frictions and delays that crop up in
  between getting the software "done" and getting it to realize its
  value. Dave Farley and Jez Humble are finishing up a book on this topic
  - &lt;a href = 'http://continuousdelivery.com/'&gt;Continuous
  Delivery&lt;/a&gt;. It builds upon many of the ideas that are commonly
  associated with &lt;a href = 'http://martinfowler.com/articles/continuousIntegration.html'&gt;Continuous
  Integration&lt;/a&gt;, driving more towards this ability to rapidly put
  software into production and get it doing something. Their section
  on blue-green deployment caught my eye as one of those techniques
  that's underused, so I thought I'd give a brief overview of it here.&lt;/p&gt;&lt;img src = 'http://martinfowler.com/bliki/images/blueGreenDeployment/blue_green_deployments.png'&gt;&lt;/img&gt;&lt;p&gt;One of the challenges with automating deployment is the cut-over
  itself, taking software from the final stage of testing to live
  production. You usually need to do this quickly in order to minimize
  downtime. The blue-green deployment approach does this by ensuring
  you have two production environments, as identical as possible. At
  any time one of them, let's say blue for the example, is live. As you
  prepare a new release of your software you do your final stage of
  testing in the green environment. Once the software is working in the
  green environment, you switch the router so that all incoming
  requests go to the green environment - the blue one is now idle.&lt;/p&gt;&lt;p&gt;Blue-green deployment also gives you a rapid way to rollback - if
  anything goes wrong you switch the router back to your blue
  environment. There's still the issue of dealing with missed
  transactions while the green environment was live, but depending on
  your design you may be able to feed transactions to both
  environments in such a way as to keep the blue environment as a
  backup when the green is live. Or you may be able to put the application
  in read-only mode before cut-over, run it for a while in read-only
  mode, and then switch it to read-write mode. That may be enough to
  flush out many outstanding issues.&lt;/p&gt;&lt;p&gt;The two environments need to be different but as identical as
  possible. In some situations they can be different pieces of
  hardware, or they can be different virtual machines running on the
  same (or different) hardware. They can also be a single operating
  environment partitioned into separate zones with separate IP
  addresses for the two slices.&lt;/p&gt;&lt;p&gt;An advantage of this approach is that it's the same basic
  mechanism as you need to get a hot-standby working. Hence this
  allows you to test your disaster-recovery procedure on every
  release. (I hope that you release more frequently than you have a
  disaster.)&lt;/p&gt;&lt;p&gt;The fundamental idea is to have two easily switchable
  environments to switch between, there are plenty of ways to vary the
  details. One project did the switch by bouncing the web server
  rather than working on the router. Another variation would be to use
  the same database, making the blue-green switches for web and domain
  layers.&lt;/p&gt;&lt;p&gt;This technique has been "out there" for ages, but I don't see it
  used as often as it should be. Some foggy combination of &lt;a href = 'http://dannorth.net/'&gt;Dan North&lt;/a&gt; and Jez Humble came up with the
  name.&lt;/p&gt;</content>
  </entry><entry>
    <title>"IT - more than Tools and Technology" track at QCon London</title>
    <link href="http://martinfowler.com/snips/201002241234.html"/>
    <updated>2010-02-24T12:34:00-05:00</updated>
    <id>tag:martinfowler.com,2010-02-24:-IT---more-than-Tools-and-Technology--track-at-QCon-London</id>
    <category term=""/>
    <content type="html">&lt;p&gt;I&amp;#8217;ve been a regular speaker at the QCon and JAOO conferences over the last few years. At &lt;a href='http://qconlondon.com/london-2010/schedule/thursday.jsp'&gt;QCon London&lt;/a&gt; this year, I&amp;#8217;m involved in a somewhat off-beat track of talks. Software Developers have often had a habit of focusing primarily on the mechanics of developing software well, and not thinking much about the societal value of that software. This is a common strand in many professions, but as the influence of software development grows, I feel it&amp;#8217;s increasingly important that we get more engaged in the consequences of the software we build.&lt;/p&gt;

&lt;p&gt;This track is a chance to explore some of these issues. As well as myself, there are talks about some work done with UNICEF to make effective use technology in much poorer parts of the world, the role of IT in reducing carbon footprint, and the contribution of team diversity to innovation.&lt;/p&gt;</content>
  </entry><entry>
    <title>Texas Speaking Events Rescheduled</title>
    <link href="http://martinfowler.com/snips/201002061234.html"/>
    <updated>2010-02-06T12:34:00-05:00</updated>
    <id>tag:martinfowler.com,2010-02-06:Texas-Speaking-Events-Rescheduled</id>
    <category term=""/>
    <content type="html">&lt;p&gt;The family medical issue has been resolved happily, so I&amp;#8217;m free to go back on the road. We&amp;#8217;ve thus rescheduled the events I was supposed to do last month in Texas.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On February 23rd I&amp;#8217;ll be speaking at &lt;a href='http://www.meetup.com/DFWScrum/calendar/12329880/'&gt;DFW Scrum&lt;/a&gt; in Dallas.&lt;/li&gt;

&lt;li&gt;On February 25th ThoughtWorks is organizing a &lt;a href='http://connect.thoughtworks.com/TechnologyForumAustin/'&gt;technology forum&lt;/a&gt; in Austin.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As is usual for me, I haven&amp;#8217;t planned exactly what I&amp;#8217;ll talk about yet, but it&amp;#8217;ll revolve around my usual topics of software design and agile methods.&lt;/p&gt;</content>
  </entry><entry>
    <title>Apologies for Canceling Texas Speaking Events</title>
    <link href="http://martinfowler.com/snips/201001152000.html"/>
    <updated>2010-01-15T20:00:00-05:00</updated>
    <id>tag:martinfowler.com,2010-01-15:Apologies-for-Canceling-Texas-Speaking-Events</id>
    <category term=""/>
    <content type="html">&lt;p&gt;I&amp;#8217;m afraid I&amp;#8217;ve had to cancel my speaking events in Dallas and Austin next week due to a family medical problem. As I write this, it&amp;#8217;s not clear how serious the problem is going to be, but there is a good chance that I won&amp;#8217;t be able to travel to Texas next week. As a result we felt it was best to cancel the events, while we still have a few days notice. We do intent to reschedule as soon the as dust settles. My Texas ThoughtWorkers are very keen to have me come out and do these talks, so we want to do them as soon as we reasonably can.&lt;/p&gt;

&lt;p&gt;My apologies for this, and I hope you understand. In particular I want to thank the various collaborators in organizing these events for being very understanding under the awkward circumstances.&lt;/p&gt;</content>
  </entry></feed>
