<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Eraser and Crowbar - Architecture by Baseball</title>
    <link>http://eraserandcrowbar.com/</link>
    <description>The weblog of Larry Clarkin</description>
    <language>en-us</language>
    <copyright>Creative Commons Attribution</copyright>
    <lastBuildDate>Tue, 24 Mar 2009 22:29:37 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.1.8102.813</generator>
    <managingEditor>blog@eraserandcrowbar.com</managingEditor>
    <webMaster>blog@eraserandcrowbar.com</webMaster>
    <item>
      <trackback:ping>http://eraserandcrowbar.com/Trackback.aspx?guid=d032d8c3-d293-4259-a618-7f09f70b3c41</trackback:ping>
      <pingback:server>http://eraserandcrowbar.com/pingback.aspx</pingback:server>
      <pingback:target>http://eraserandcrowbar.com/PermaLink,guid,d032d8c3-d293-4259-a618-7f09f70b3c41.aspx</pingback:target>
      <dc:creator>Larry Clarkin</dc:creator>
      <wfw:comment>http://eraserandcrowbar.com/CommentView,guid,d032d8c3-d293-4259-a618-7f09f70b3c41.aspx</wfw:comment>
      <wfw:commentRss>http://eraserandcrowbar.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d032d8c3-d293-4259-a618-7f09f70b3c41</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As I mentioned previously, I spoke to the Architecture Special Interest Group (SIG)
of the <a href="http://indynda.com/">Indianapolis .NET Developer Association</a> (IndyNDA). 
Steve Porter, who is in charge of the group, asked me to present when they founded
the group last September and it took a few months for our schedules to align and I
am glad that they did.  Steve asked me to do the “in person” version of my <a href="http://eraserandcrowbar.com/ArchitectureByBaseball.aspx">Architecture
by Baseball</a> series of articles.
</p>
        <p>
I have to admit at first I did not see the value in standing up in front of a group
and covering things that I had already written.  As I was putting the presentation
together, however, I realized that there are a lot of things that I had not covered
in the articles themselves add a lot of color to the topics presented in the written
form.  I had a lot of fun putting the talk together (which I did at the last
minute, the night before) and had even more fun delivering the talk to the group (about
35 people or so).    Thanks to Steve and to all those who attended
the talk.
</p>
        <p>
I promised I would make the deck available to the people there and thought I would
share it here as well.  It is up on <a href="http://slideshare.net/larryclarkin">My
Slideshare Account</a>:
</p>
        <p align="center">
          <object style="margin:0px" width="425" height="355">
            <param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=architecturebybaseball-090324164411-phpapp02&amp;rel=0&amp;stripped_title=architecture-by-baseball" />
            <param name="allowFullScreen" value="true" />
            <param name="allowScriptAccess" value="always" />
            <embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=architecturebybaseball-090324164411-phpapp02&amp;rel=0&amp;stripped_title=architecture-by-baseball" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355">
            </embed>
          </object>
        </p>
      </body>
      <title>Architecture By Baseball: The Presentation</title>
      <guid isPermaLink="false">http://eraserandcrowbar.com/PermaLink,guid,d032d8c3-d293-4259-a618-7f09f70b3c41.aspx</guid>
      <link>http://eraserandcrowbar.com/2009/03/24/ArchitectureByBaseballThePresentation.aspx</link>
      <pubDate>Tue, 24 Mar 2009 22:29:37 GMT</pubDate>
      <description>&lt;p&gt;
As I mentioned previously, I spoke to the Architecture Special Interest Group (SIG)
of the &lt;a href="http://indynda.com/"&gt;Indianapolis .NET Developer Association&lt;/a&gt; (IndyNDA).&amp;nbsp;
Steve Porter, who is in charge of the group, asked me to present when they founded
the group last September and it took a few months for our schedules to align and I
am glad that they did.&amp;nbsp; Steve asked me to do the “in person” version of my &lt;a href="http://eraserandcrowbar.com/ArchitectureByBaseball.aspx"&gt;Architecture
by Baseball&lt;/a&gt; series of articles.
&lt;/p&gt;
&lt;p&gt;
I have to admit at first I did not see the value in standing up in front of a group
and covering things that I had already written.&amp;nbsp; As I was putting the presentation
together, however, I realized that there are a lot of things that I had not covered
in the articles themselves add a lot of color to the topics presented in the written
form.&amp;nbsp; I had a lot of fun putting the talk together (which I did at the last
minute, the night before) and had even more fun delivering the talk to the group (about
35 people or so).&amp;nbsp;&amp;nbsp;&amp;nbsp; Thanks to Steve and to all those who attended
the talk.
&lt;/p&gt;
&lt;p&gt;
I promised I would make the deck available to the people there and thought I would
share it here as well.&amp;nbsp; It is up on &lt;a href="http://slideshare.net/larryclarkin"&gt;My
Slideshare Account&lt;/a&gt;:
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;object style="margin:0px" width="425" height="355"&gt;
&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=architecturebybaseball-090324164411-phpapp02&amp;amp;rel=0&amp;amp;stripped_title=architecture-by-baseball" /&gt;
&lt;param name="allowFullScreen" value="true" /&gt;
&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=architecturebybaseball-090324164411-phpapp02&amp;amp;rel=0&amp;amp;stripped_title=architecture-by-baseball" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;</description>
      <comments>http://eraserandcrowbar.com/CommentView,guid,d032d8c3-d293-4259-a618-7f09f70b3c41.aspx</comments>
      <category>Architecture by Baseball</category>
    </item>
    <item>
      <trackback:ping>http://eraserandcrowbar.com/Trackback.aspx?guid=8387d82c-73e6-4716-8dc8-7cfd990d5041</trackback:ping>
      <pingback:server>http://eraserandcrowbar.com/pingback.aspx</pingback:server>
      <pingback:target>http://eraserandcrowbar.com/PermaLink,guid,8387d82c-73e6-4716-8dc8-7cfd990d5041.aspx</pingback:target>
      <dc:creator>Larry Clarkin</dc:creator>
      <wfw:comment>http://eraserandcrowbar.com/CommentView,guid,8387d82c-73e6-4716-8dc8-7cfd990d5041.aspx</wfw:comment>
      <wfw:commentRss>http://eraserandcrowbar.com/SyndicationService.asmx/GetEntryCommentsRss?guid=8387d82c-73e6-4716-8dc8-7cfd990d5041</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <div style="margin-bottom: 10px; float: right; margin-left: 10px">
          <a title="Baseball Player" href="http://eraserandcrowbar.com/images/ArchitectureByBaseball_A2CD/SpringTraining.jpg">
            <img style="border-bottom: #000000 2px solid; border-left: #000000 2px solid; border-top: #000000 2px solid; border-right: #000000 2px solid" alt="Photo Title" src="http://eraserandcrowbar.com/images/ArchitectureByBaseball_A2CD/SpringTraining_thumb.jpg" />
          </a>
        </div>
        <p>
This is the eleventh in a <a href="/ArchitectureByBaseball.aspx">series of articles</a> about
how we can learn about software architecture by studying and comparing it to the sport
of <a href="http://en.wikipedia.org/wiki/Baseball">Baseball</a>.  This series
was inspired by the book <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;tag=larcalsblo-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Management
by Baseball</a>.
</p>
        <p>
As a baseball fan, some of the sweetest words that you can hear are “Pitchers and
Catchers report today”.  The pitchers and catchers are the first players to report
to <a href="http://en.wikipedia.org/wiki/Spring_training">Spring Training</a>, so
when you hear that you know that baseball is on its way.  Spring Training is
a chance for the players to get back into shape for the season.  It is also a
time when young players get a chance to “make the big team”.  Managers will also
use Spring Training to try players at a new position, make changes in the batting
order and integrate new players into the team.  Spring Training also involves
exhibition games that give the players a chance to experience game play before the
official season starts.
</p>
        <p>
The benefits of Spring Training for a baseball team can be lumped into one of three
categories:
</p>
        <ul>
          <li>
Getting back into “game shape” 
</li>
          <li>
Learning new skills / positions 
</li>
          <li>
Jelling together as a team</li>
        </ul>
        <h5>Spring Training for architects and developers
</h5>
        <p>
Typical software development projects usually have a ramp up period before the project
is at full stride.  As a matter of fact I cannot recall any project that I have
ever been on that did not have a quite protracted period of less than full productivity. 
Requirements are still being gathered, environments (servers and desktops) are still
being configured, software is still being procured, etc.  This can be quite a
frustrating time for the developers, but especially the architects on the project. 
You don’t have enough of the facts to design and build the real business application,
but the clock is ticking on the project so the need to get started is pressing upon
you.  I propose that you use the time to do some Spring Training.  The software
development team should spend some time focusing on the same type of activities that
you see listed above.
</p>
        <p>
          <em>
            <strong>Get back into “game shape”</strong>
          </em> – If you are starting a new release
of an application chances are that you spent your past few week not writing new code,
but stabilizing the previous release for shipment or doing post deployment activities. 
The “new code” muscle has probably not been stretched out for a few weeks.  Practice
writing new code from scratch, even if you don’t know if it will be used in the application. 
Get those skills sharpened up so that when the rest of the project comes together
you will be ready.  Don’t do this in the “prototype” throw away fashion, you
may throw away the code in the end, but don’t write it as throw away code.  Write
real code with unit tests, error handling, documentation, etc.  
</p>
        <p>
          <strong>
            <em>Learning new skills / positions</em>
          </strong> – If you are working on
a new application or if you are new to the application there is a good chance that
you will be working with unfamiliar technology.  You may be a fantastic ASP.NET
Developer, but this may be your first project with ASP.NET MVC Framework.  Use
this time to become familiar with the new technologies.  It also may not even
be a new technology, but rather a new style or technique that you are applying. 
Use the projects Spring Training time to become really familiar with the new stuff.
</p>
        <p>
          <strong>
            <em>Jell as a team</em>
          </strong> – Like baseball, software architecture and
development is a team sport.  You have to be effective as a team in order to
succeed.  Use the Spring Training time to get to know the new team members (if
there are any) and to get accustomed to working well together.  As a quick aside
you should be open to ideas that new players bring to the team, you should always
be open to hearing best practices.
</p>
      </body>
      <title>Architecture By Baseball: Spring Training</title>
      <guid isPermaLink="false">http://eraserandcrowbar.com/PermaLink,guid,8387d82c-73e6-4716-8dc8-7cfd990d5041.aspx</guid>
      <link>http://eraserandcrowbar.com/2009/03/20/ArchitectureByBaseballSpringTraining.aspx</link>
      <pubDate>Fri, 20 Mar 2009 14:24:07 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;div style="margin-bottom: 10px; float: right; margin-left: 10px"&gt;&lt;a title="Baseball Player" href="http://eraserandcrowbar.com/images/ArchitectureByBaseball_A2CD/SpringTraining.jpg"&gt;&lt;img style="border-bottom: #000000 2px solid; border-left: #000000 2px solid; border-top: #000000 2px solid; border-right: #000000 2px solid" alt="Photo Title" src="http://eraserandcrowbar.com/images/ArchitectureByBaseball_A2CD/SpringTraining_thumb.jpg"&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
This is the eleventh in a &lt;a href="/ArchitectureByBaseball.aspx"&gt;series of articles&lt;/a&gt; about
how we can learn about software architecture by studying and comparing it to the sport
of &lt;a href="http://en.wikipedia.org/wiki/Baseball"&gt;Baseball&lt;/a&gt;.&amp;nbsp; This series
was inspired by the book &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;amp;tag=larcalsblo-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Management
by Baseball&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
As a baseball fan, some of the sweetest words that you can hear are “Pitchers and
Catchers report today”.&amp;nbsp; The pitchers and catchers are the first players to report
to &lt;a href="http://en.wikipedia.org/wiki/Spring_training"&gt;Spring Training&lt;/a&gt;, so
when you hear that you know that baseball is on its way.&amp;nbsp; Spring Training is
a chance for the players to get back into shape for the season.&amp;nbsp; It is also a
time when young players get a chance to “make the big team”.&amp;nbsp; Managers will also
use Spring Training to try players at a new position, make changes in the batting
order and integrate new players into the team.&amp;nbsp; Spring Training also involves
exhibition games that give the players a chance to experience game play before the
official season starts.
&lt;/p&gt;
&lt;p&gt;
The benefits of Spring Training for a baseball team can be lumped into one of three
categories:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Getting back into “game shape” 
&lt;li&gt;
Learning new skills / positions 
&lt;li&gt;
Jelling together as a team&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;Spring Training for architects and developers
&lt;/h5&gt;
&lt;p&gt;
Typical software development projects usually have a ramp up period before the project
is at full stride.&amp;nbsp; As a matter of fact I cannot recall any project that I have
ever been on that did not have a quite protracted period of less than full productivity.&amp;nbsp;
Requirements are still being gathered, environments (servers and desktops) are still
being configured, software is still being procured, etc.&amp;nbsp; This can be quite a
frustrating time for the developers, but especially the architects on the project.&amp;nbsp;
You don’t have enough of the facts to design and build the real business application,
but the clock is ticking on the project so the need to get started is pressing upon
you.&amp;nbsp; I propose that you use the time to do some Spring Training.&amp;nbsp; The software
development team should spend some time focusing on the same type of activities that
you see listed above.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;Get back into “game shape”&lt;/strong&gt;&lt;/em&gt; – If you are starting a new release
of an application chances are that you spent your past few week not writing new code,
but stabilizing the previous release for shipment or doing post deployment activities.&amp;nbsp;
The “new code” muscle has probably not been stretched out for a few weeks.&amp;nbsp; Practice
writing new code from scratch, even if you don’t know if it will be used in the application.&amp;nbsp;
Get those skills sharpened up so that when the rest of the project comes together
you will be ready.&amp;nbsp; Don’t do this in the “prototype” throw away fashion, you
may throw away the code in the end, but don’t write it as throw away code.&amp;nbsp; Write
real code with unit tests, error handling, documentation, etc.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;Learning new skills / positions&lt;/em&gt;&lt;/strong&gt; – If you are working on
a new application or if you are new to the application there is a good chance that
you will be working with unfamiliar technology.&amp;nbsp; You may be a fantastic ASP.NET
Developer, but this may be your first project with ASP.NET MVC Framework.&amp;nbsp; Use
this time to become familiar with the new technologies.&amp;nbsp; It also may not even
be a new technology, but rather a new style or technique that you are applying.&amp;nbsp;
Use the projects Spring Training time to become really familiar with the new stuff.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;Jell as a team&lt;/em&gt;&lt;/strong&gt; – Like baseball, software architecture and
development is a team sport.&amp;nbsp; You have to be effective as a team in order to
succeed.&amp;nbsp; Use the Spring Training time to get to know the new team members (if
there are any) and to get accustomed to working well together.&amp;nbsp; As a quick aside
you should be open to ideas that new players bring to the team, you should always
be open to hearing best practices.
&lt;/p&gt;</description>
      <comments>http://eraserandcrowbar.com/CommentView,guid,8387d82c-73e6-4716-8dc8-7cfd990d5041.aspx</comments>
      <category>Architecture by Baseball</category>
    </item>
    <item>
      <trackback:ping>http://eraserandcrowbar.com/Trackback.aspx?guid=8da29ef4-3313-4482-abca-954997e93424</trackback:ping>
      <pingback:server>http://eraserandcrowbar.com/pingback.aspx</pingback:server>
      <pingback:target>http://eraserandcrowbar.com/PermaLink,guid,8da29ef4-3313-4482-abca-954997e93424.aspx</pingback:target>
      <dc:creator>Larry Clarkin</dc:creator>
      <wfw:comment>http://eraserandcrowbar.com/CommentView,guid,8da29ef4-3313-4482-abca-954997e93424.aspx</wfw:comment>
      <wfw:commentRss>http://eraserandcrowbar.com/SyndicationService.asmx/GetEntryCommentsRss?guid=8da29ef4-3313-4482-abca-954997e93424</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div style="margin-bottom: 10px; margin-left: 10px" align="center">
          <a title="Fielder at the plate" href="http://www.flickr.com/photos/jodieandlarry/2554631104/">
            <img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Fielder at the plate" src="http://farm4.static.flickr.com/3151/2554631104_baf9aef93b.jpg" />
          </a>
          <br />
          <a href="http://www.flickr.com/photos/jodieandlarry/2554631104/">Fielder at the plate</a>
        </div>
        <p>
This is the tenth in a <a href="/ArchitectureByBaseball.aspx">series of articles</a> about
how we can learn about software architecture by studying and comparing it to the sport
of <a href="http://en.wikipedia.org/wiki/Baseball">Baseball</a>.  This series
was inspired by the book <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;tag=larcalsblo-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Management
by Baseball</a>.
</p>
        <p>
I started this series off with a discussion of the <a href="http://eraserandcrowbar.com/2008/04/21/ArchitectureByBaseball5ToolArchitect.aspx">5
tool player</a>, which is supposed to be the highest compliment that can be given
to a player, especially when they are being scouted as a prospect.  I have gotten
a lot of good comments about the article in the months since it was published. 
I also used it as part of our recent <a href="http://www.arcready.com">ArcReady</a> series
of presentations on software architecture.  There are some critics of the 5 tool
player in baseball, this article will discuss the criticisms and how we can apply
those criticisms to software architecture.
</p>
        <h5>Moneyball
</h5>
        <div style="float: left; margin-bottom: 10px; margin-right: 10px">
          <a href="http://www.amazon.com/gp/product/0393324818?ie=UTF8&amp;tag=ech865903hjg-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0393324818">
            <img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Moneyball" src="http://eraserandcrowbar.com/images/a66bddaaa788_D271/moneyball_thumb.jpg" />
          </a>
        </div>
        <p>
In 2004 the book <a href="http://www.amazon.com/gp/product/0393324818?ie=UTF8&amp;tag=ech865903hjg-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0393324818">Moneyball:
The Art of Winning an Unfair Game</a> by <a href="http://en.wikipedia.org/wiki/Michael_Lewis_(author)">Michael
Lewis</a> was published.  Michael had spent a couple of years following the <a href="http://oaklandathletics.com/">Oakland
Athletics</a> and more specifically the General Manager of the team, <a href="http://en.wikipedia.org/wiki/Billy_Beane">Billy
Beane</a>.  Billy Beane was a highly touted prospect who was heavily scouted
while he was still in high school.  He was the very definition of the 5 tool
player.  He was drafted by the New York Mets in the first round (which is a huge
deal if you don't follow baseball).  As a major league baseball player, he was
pretty much a total bust.  After 6 years he had played in a total of 148 games
and batted only .219 with 3 home runs.  Certainly not what you would expect from
one of the most highly touted players.
</p>
        <p>
Don't feel bad for Billy Beane; his baseball career was far from over.  He went
on to be one of the youngest general managers in baseball and guided the Athletics
to the playoffs several years in a row.  How he accomplished that with the Athletics
being one of the small market teams is the subject of the book.
</p>
        <p>
Moneyball is about how Billy Beane and the Athletics used some unconventional thinking
to accomplish their feats with a much smaller payroll than the other major league
teams they were competing against.  One of the tenants of this philosophy was
to never draft a player like Billy Beane.  They thought that just rating players
on the 5 tools was not enough to judge how they were going to perform.  They
also felt that drafting players out of high school was not a good return on investment;
college players were several years older, more experienced and you could judge better
how they were going to perform on the field.
</p>
        <br clear="all" />
        <h5>Software Architecture, like baseball is a people game
</h5>
        <p>
I am not going to spend the balance of this article refuting or analyzing the tools
that I put forth in the first article in that series.  I have talked with enough
software developers and architects to know that all those skills are important. 
I want to talk about the importance of <strong>people</strong> to software architecture,
because I think that we as an industry focus too much on everything but people when
we are making decisions.  
</p>
        <p>
Baseball is a people game; the players that you have on the field, on the bench and
in your farm system are your primary asset to make your organization successful. 
Yes, new stadiums help and they do draw extra fans, but nothing will draw better than
a winning team.
</p>
        <p>
In software architecture we spend too much of our time focusing on everything but
finding, staffing and developing our teams.  We spend endless time arguing platforms
(Windows or OSX, .NET or Java, PHP or ASP.NET or Silverlight or Flex), languages (C#
or VB.NET, C or Objective C, XAML or mXML) or software packages (Dynamics or SalesForce.com,
SQL Server or Oracle).  We also spend too much time worrying about the hardware
portion of a solution (yeah I know hardware can be fun, but it is such a small part
of the true costs of the solution).
</p>
        <p>
The truth of the matter is that good architects and developers will exceed regardless
of which platform that you give them, what language you ask them to code in and what
software packages they have to build with.  Don't get me wrong, they may grumble
and complain about what they are doing, but they will achieve success.  Like
baseball, we need to set out with the mission of getting and developing the best architects
and developers possible, no matter if you follow the 5 tools approach or more unconventional
approached like those in Moneyball. 
</p>
      </body>
      <title>Architecture By Baseball: Moneyball</title>
      <guid isPermaLink="false">http://eraserandcrowbar.com/PermaLink,guid,8da29ef4-3313-4482-abca-954997e93424.aspx</guid>
      <link>http://eraserandcrowbar.com/2009/01/08/ArchitectureByBaseballMoneyball.aspx</link>
      <pubDate>Thu, 08 Jan 2009 00:26:34 GMT</pubDate>
      <description>&lt;div style="margin-bottom: 10px; margin-left: 10px" align="center"&gt;&lt;a title="Fielder at the plate" href="http://www.flickr.com/photos/jodieandlarry/2554631104/"&gt;&lt;img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Fielder at the plate" src="http://farm4.static.flickr.com/3151/2554631104_baf9aef93b.jpg"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.flickr.com/photos/jodieandlarry/2554631104/"&gt;Fielder at the plate&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
This is the tenth in a &lt;a href="/ArchitectureByBaseball.aspx"&gt;series of articles&lt;/a&gt; about
how we can learn about software architecture by studying and comparing it to the sport
of &lt;a href="http://en.wikipedia.org/wiki/Baseball"&gt;Baseball&lt;/a&gt;.&amp;nbsp; This series
was inspired by the book &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;amp;tag=larcalsblo-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Management
by Baseball&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
I started this series off with a discussion of the &lt;a href="http://eraserandcrowbar.com/2008/04/21/ArchitectureByBaseball5ToolArchitect.aspx"&gt;5
tool player&lt;/a&gt;, which is supposed to be the highest compliment that can be given
to a player, especially when they are being scouted as a prospect.&amp;nbsp; I have gotten
a lot of good comments about the article in the months since it was published.&amp;nbsp;
I also used it as part of our recent &lt;a href="http://www.arcready.com"&gt;ArcReady&lt;/a&gt; series
of presentations on software architecture.&amp;nbsp; There are some critics of the 5 tool
player in baseball, this article will discuss the criticisms and how we can apply
those criticisms to software architecture.
&lt;/p&gt;
&lt;h5&gt;Moneyball
&lt;/h5&gt;
&lt;div style="float: left; margin-bottom: 10px; margin-right: 10px"&gt;&lt;a href="http://www.amazon.com/gp/product/0393324818?ie=UTF8&amp;amp;tag=ech865903hjg-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0393324818"&gt;&lt;img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Moneyball" src="http://eraserandcrowbar.com/images/a66bddaaa788_D271/moneyball_thumb.jpg"&gt;&lt;/a&gt; 
&lt;/div&gt;
&lt;p&gt;
In 2004 the book &lt;a href="http://www.amazon.com/gp/product/0393324818?ie=UTF8&amp;amp;tag=ech865903hjg-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0393324818"&gt;Moneyball:
The Art of Winning an Unfair Game&lt;/a&gt; by &lt;a href="http://en.wikipedia.org/wiki/Michael_Lewis_(author)"&gt;Michael
Lewis&lt;/a&gt; was published.&amp;nbsp; Michael had spent a couple of years following the &lt;a href="http://oaklandathletics.com/"&gt;Oakland
Athletics&lt;/a&gt; and more specifically the General Manager of the team, &lt;a href="http://en.wikipedia.org/wiki/Billy_Beane"&gt;Billy
Beane&lt;/a&gt;.&amp;nbsp; Billy Beane was a highly touted prospect who was heavily scouted
while he was still in high school.&amp;nbsp; He was the very definition of the 5 tool
player.&amp;nbsp; He was drafted by the New York Mets in the first round (which is a huge
deal if you don't follow baseball).&amp;nbsp; As a major league baseball player, he was
pretty much a total bust.&amp;nbsp; After 6 years he had played in a total of 148 games
and batted only .219 with 3 home runs.&amp;nbsp; Certainly not what you would expect from
one of the most highly touted players.
&lt;/p&gt;
&lt;p&gt;
Don't feel bad for Billy Beane; his baseball career was far from over.&amp;nbsp; He went
on to be one of the youngest general managers in baseball and guided the Athletics
to the playoffs several years in a row.&amp;nbsp; How he accomplished that with the Athletics
being one of the small market teams is the subject of the book.
&lt;/p&gt;
&lt;p&gt;
Moneyball is about how Billy Beane and the Athletics used some unconventional thinking
to accomplish their feats with a much smaller payroll than the other major league
teams they were competing against.&amp;nbsp; One of the tenants of this philosophy was
to never draft a player like Billy Beane.&amp;nbsp; They thought that just rating players
on the 5 tools was not enough to judge how they were going to perform.&amp;nbsp; They
also felt that drafting players out of high school was not a good return on investment;
college players were several years older, more experienced and you could judge better
how they were going to perform on the field.
&lt;/p&gt;
&lt;br clear="all"&gt;
&lt;h5&gt;Software Architecture, like baseball is a people game
&lt;/h5&gt;
&lt;p&gt;
I am not going to spend the balance of this article refuting or analyzing the tools
that I put forth in the first article in that series.&amp;nbsp; I have talked with enough
software developers and architects to know that all those skills are important.&amp;nbsp;
I want to talk about the importance of &lt;strong&gt;people&lt;/strong&gt; to software architecture,
because I think that we as an industry focus too much on everything but people when
we are making decisions.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Baseball is a people game; the players that you have on the field, on the bench and
in your farm system are your primary asset to make your organization successful.&amp;nbsp;
Yes, new stadiums help and they do draw extra fans, but nothing will draw better than
a winning team.
&lt;/p&gt;
&lt;p&gt;
In software architecture we spend too much of our time focusing on everything but
finding, staffing and developing our teams.&amp;nbsp; We spend endless time arguing platforms
(Windows or OSX, .NET or Java, PHP or ASP.NET or Silverlight or Flex), languages (C#
or VB.NET, C or Objective C, XAML or mXML) or software packages (Dynamics or SalesForce.com,
SQL Server or Oracle).&amp;nbsp; We also spend too much time worrying about the hardware
portion of a solution (yeah I know hardware can be fun, but it is such a small part
of the true costs of the solution).
&lt;/p&gt;
&lt;p&gt;
The truth of the matter is that good architects and developers will exceed regardless
of which platform that you give them, what language you ask them to code in and what
software packages they have to build with.&amp;nbsp; Don't get me wrong, they may grumble
and complain about what they are doing, but they will achieve success.&amp;nbsp; Like
baseball, we need to set out with the mission of getting and developing the best architects
and developers possible, no matter if you follow the 5 tools approach or more unconventional
approached like those in Moneyball. 
&lt;/p&gt;</description>
      <comments>http://eraserandcrowbar.com/CommentView,guid,8da29ef4-3313-4482-abca-954997e93424.aspx</comments>
      <category>Architecture by Baseball</category>
    </item>
    <item>
      <trackback:ping>http://eraserandcrowbar.com/Trackback.aspx?guid=cc1d95f4-88b9-47fc-9c5d-b2bdad0fd48d</trackback:ping>
      <pingback:server>http://eraserandcrowbar.com/pingback.aspx</pingback:server>
      <pingback:target>http://eraserandcrowbar.com/PermaLink,guid,cc1d95f4-88b9-47fc-9c5d-b2bdad0fd48d.aspx</pingback:target>
      <dc:creator>Larry Clarkin</dc:creator>
      <wfw:comment>http://eraserandcrowbar.com/CommentView,guid,cc1d95f4-88b9-47fc-9c5d-b2bdad0fd48d.aspx</wfw:comment>
      <wfw:commentRss>http://eraserandcrowbar.com/SyndicationService.asmx/GetEntryCommentsRss?guid=cc1d95f4-88b9-47fc-9c5d-b2bdad0fd48d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This is the ninth in a <a href="/ArchitectureByBaseball.aspx">series of articles</a> about
how we can learn about software architecture by studying and comparing it to the sport
of <a href="http://en.wikipedia.org/wiki/Baseball">Baseball</a>.  This series
was inspired by the book <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;tag=larcalsblo-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Management
by Baseball</a>. 
</p>
        <p>
I have previously talked about the unique role of <a href="http://larryclarkin.com/2008/06/11/ArchitectureByBaseballCoaches.aspx">coaches</a> in
the game of baseball and talked about the special role of the <a href="http://larryclarkin.com/2008/06/25/ArchitectureByBaseballTheManagers.aspx">manager</a> in
the game of baseball.  The coaches and managers are responsible for making the
team successful during a game and across the course of a season.  The manager
will spend some time concerned with how the team will play in future seasons with
some of the decisions that he makes, but ultimately his responsibility is the here
and now.  In a great example of separation of concerns, the long term success
of the team (or franchise) rests on the shoulders of another person:  The <a href="http://en.wikipedia.org/wiki/General_manager_(baseball)">general
manager</a>.
</p>
        <p>
The general manager of the team is an executive position within the business organization
of the company.  They are responsible for the baseball operations of organization,
but they are beholden to the business operations of the company that is the organization. 
Some of the things that general manager does routinely in the organization:
</p>
        <ul>
          <li>
Player transactions - staffing the 25 and 40 man roster as well as all the minor league
franchises 
</li>
          <li>
Player acquisition and development - drafting and developing young players and acquiring
veteran players via free agency 
</li>
          <li>
Staffing the coaches and managers - one of the most high profile activities is the
firing of the team's manager 
</li>
          <li>
Managing the costs of talent - the salary of the players must be weighed against team
revenue and organizational goals</li>
        </ul>
        <div style="float: right; margin-bottom: 10px; margin-left: 10px">
          <img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Branch Rickey" src="http://eraserandcrowbar.com/content/binary/WindowsLiveWriter/ArchitectureByBaseballTheGeneralManager_123B5/BranchRickeyphoto21c723057_thumb.jpg" />
          <br />
Branch Rickey
</div>
        <h5>The Greatest General Manager of All Time?
</h5>
        <p>
It would be an incomplete discussion of the role of the general manager without mentioning
the person who I think is the greatest baseball general manager of all time: <a href="http://en.wikipedia.org/wiki/Branch_Rickey">Branch
Rickey</a>.  Like many General Managers, Rickey started off as a player in baseball
before going into the business side of baseball.  He was a success General Manager
with several clubs, most notably the St. Louis Cardinals and the Brooklyn Dodgers. 
But what made him such a great general manager was things that he did that were innovative
and beyond the traditional role of the general manager.
</p>
        <p>
          <strong>Re-inventing the game</strong> -  As the General Manager of the St, Louis
Cardinals, Rickey created what is now known as the <a href="http://en.wikipedia.org/wiki/Farm_system">farm
system</a>.  The farm system is minor league baseball team that is affiliated
with the major league or "big" club.  The Farm system allowed the major league
team to develop and retain talented younger players.  Prior to Rickey's innovation,
the minor league teams could sell or trade their talent to any team.  The affiliation
gave the major league club the rights to the player when they were ready for the big
leagues.  This gave the Cardinals a distinct advantage over their competition
for many years.
</p>
        <p>
          <strong>Breaking the color barrier</strong> - When Rickey was a college coach for
a while and was appalled at the segregation that took place with players of color. 
He vowed to do something about it and when he was the GM of the Dodgers he was finally
in a position to take action.  He signed <a href="http://en.wikipedia.org/wiki/Jackie_Robinson">Jackie
Robinson</a> to a minor league contract and later promoted him to the major league
squad, bringing an end to the era of players being denied the rights to play baseball. 
This also gave the Dodgers (and the other teams that quickly followed them) a temporary
distinct advantage in signing talented players that other teams passed on simply because
of race.
</p>
        <p>
These are 2 of the most notable things that he did - there were dozens of little innovations
that he made to the game during his years as a General Manager.
</p>
        <h5>Software Architecture General Managers
</h5>
        <p>
I have talked before about the different types of architects, but have tried to avoid
the hierarchy of architects that some organizations put too much emphasis on. 
But talking about the general manager creates a natural point to talk about the role
of an <a href="http://en.wikipedia.org/wiki/Enterprise_architect">Enterprise Architect</a> versus
a solution architect.  Enterprise Architects are responsible for the macro view
of all the of the systems in an organization and with the long term health and strategy
of those systems.  
</p>
        <p>
Some organizations make the mistake of thinking of them as a "super architect" who
should be able to do all the things that the other architects do.  Other organizations
can make the mistake of thinking that the Solutions Architect should be subordinate
to the Enterprise Architect.  Many of the soft skills are the same between the
Solutions Architect and the Enterprise Architect, but we should think of them as separate
duties, like the manager and the general manager in baseball.  Solution Architects
have the scope of the solution they are designing and building and should be focused
on the current version and maybe one or two versions out.  They cannot be hung
up on the long term strategy of a service bus that is several years out.  The
Enterprise Architect should also not be thinking too narrow on the here and now either. 
They need to focus on the longer term and not any specific application.
</p>
        <h5>Be like Branch Rickey
</h5>
        <p>
If you have the opportunity to be in a general manager like position, studying some
of the things that Branch Rickey did is not a bad thing.  He used business process
and radical change to accomplish great things.  He did not just focus on being
the best general manager; he changed the rules of the game.  I love this quote
from him:
</p>
        <blockquote>
          <p>
"Luck is the residue of design" - Branch Rickey
</p>
        </blockquote>
      </body>
      <title>Architecture By Baseball: The General Manager</title>
      <guid isPermaLink="false">http://eraserandcrowbar.com/PermaLink,guid,cc1d95f4-88b9-47fc-9c5d-b2bdad0fd48d.aspx</guid>
      <link>http://eraserandcrowbar.com/2008/10/17/ArchitectureByBaseballTheGeneralManager.aspx</link>
      <pubDate>Fri, 17 Oct 2008 20:04:11 GMT</pubDate>
      <description>&lt;p&gt;
This is the ninth in a &lt;a href="/ArchitectureByBaseball.aspx"&gt;series of articles&lt;/a&gt; about
how we can learn about software architecture by studying and comparing it to the sport
of &lt;a href="http://en.wikipedia.org/wiki/Baseball"&gt;Baseball&lt;/a&gt;.&amp;nbsp; This series
was inspired by the book &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;amp;tag=larcalsblo-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Management
by Baseball&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
I have previously talked about the unique role of &lt;a href="http://larryclarkin.com/2008/06/11/ArchitectureByBaseballCoaches.aspx"&gt;coaches&lt;/a&gt; in
the game of baseball and talked about the special role of the &lt;a href="http://larryclarkin.com/2008/06/25/ArchitectureByBaseballTheManagers.aspx"&gt;manager&lt;/a&gt; in
the game of baseball.&amp;nbsp; The coaches and managers are responsible for making the
team successful during a game and across the course of a season.&amp;nbsp; The manager
will spend some time concerned with how the team will play in future seasons with
some of the decisions that he makes, but ultimately his responsibility is the here
and now.&amp;nbsp; In a great example of separation of concerns, the long term success
of the team (or franchise) rests on the shoulders of another person:&amp;nbsp; The &lt;a href="http://en.wikipedia.org/wiki/General_manager_(baseball)"&gt;general
manager&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
The general manager of the team is an executive position within the business organization
of the company.&amp;nbsp; They are responsible for the baseball operations of organization,
but they are beholden to the business operations of the company that is the organization.&amp;nbsp;
Some of the things that general manager does routinely in the organization:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Player transactions - staffing the 25 and 40 man roster as well as all the minor league
franchises 
&lt;li&gt;
Player acquisition and development - drafting and developing young players and acquiring
veteran players via free agency 
&lt;li&gt;
Staffing the coaches and managers - one of the most high profile activities is the
firing of the team's manager 
&lt;li&gt;
Managing the costs of talent - the salary of the players must be weighed against team
revenue and organizational goals&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="float: right; margin-bottom: 10px; margin-left: 10px"&gt;&lt;img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Branch Rickey" src="http://eraserandcrowbar.com/content/binary/WindowsLiveWriter/ArchitectureByBaseballTheGeneralManager_123B5/BranchRickeyphoto21c723057_thumb.jpg"&gt;
&lt;br&gt;
Branch Rickey
&lt;/div&gt;
&lt;h5&gt;The Greatest General Manager of All Time?
&lt;/h5&gt;
&lt;p&gt;
It would be an incomplete discussion of the role of the general manager without mentioning
the person who I think is the greatest baseball general manager of all time: &lt;a href="http://en.wikipedia.org/wiki/Branch_Rickey"&gt;Branch
Rickey&lt;/a&gt;.&amp;nbsp; Like many General Managers, Rickey started off as a player in baseball
before going into the business side of baseball.&amp;nbsp; He was a success General Manager
with several clubs, most notably the St. Louis Cardinals and the Brooklyn Dodgers.&amp;nbsp;
But what made him such a great general manager was things that he did that were innovative
and beyond the traditional role of the general manager.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Re-inventing the game&lt;/strong&gt; -&amp;nbsp; As the General Manager of the St, Louis
Cardinals, Rickey created what is now known as the &lt;a href="http://en.wikipedia.org/wiki/Farm_system"&gt;farm
system&lt;/a&gt;.&amp;nbsp; The farm system is minor league baseball team that is affiliated
with the major league or "big" club.&amp;nbsp; The Farm system allowed the major league
team to develop and retain talented younger players.&amp;nbsp; Prior to Rickey's innovation,
the minor league teams could sell or trade their talent to any team.&amp;nbsp; The affiliation
gave the major league club the rights to the player when they were ready for the big
leagues.&amp;nbsp; This gave the Cardinals a distinct advantage over their competition
for many years.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Breaking the color barrier&lt;/strong&gt; - When Rickey was a college coach for
a while and was appalled at the segregation that took place with players of color.&amp;nbsp;
He vowed to do something about it and when he was the GM of the Dodgers he was finally
in a position to take action.&amp;nbsp; He signed &lt;a href="http://en.wikipedia.org/wiki/Jackie_Robinson"&gt;Jackie
Robinson&lt;/a&gt; to a minor league contract and later promoted him to the major league
squad, bringing an end to the era of players being denied the rights to play baseball.&amp;nbsp;
This also gave the Dodgers (and the other teams that quickly followed them) a temporary
distinct advantage in signing talented players that other teams passed on simply because
of race.
&lt;/p&gt;
&lt;p&gt;
These are 2 of the most notable things that he did - there were dozens of little innovations
that he made to the game during his years as a General Manager.
&lt;/p&gt;
&lt;h5&gt;Software Architecture General Managers
&lt;/h5&gt;
&lt;p&gt;
I have talked before about the different types of architects, but have tried to avoid
the hierarchy of architects that some organizations put too much emphasis on.&amp;nbsp;
But talking about the general manager creates a natural point to talk about the role
of an &lt;a href="http://en.wikipedia.org/wiki/Enterprise_architect"&gt;Enterprise Architect&lt;/a&gt; versus
a solution architect.&amp;nbsp; Enterprise Architects are responsible for the macro view
of all the of the systems in an organization and with the long term health and strategy
of those systems.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Some organizations make the mistake of thinking of them as a "super architect" who
should be able to do all the things that the other architects do.&amp;nbsp; Other organizations
can make the mistake of thinking that the Solutions Architect should be subordinate
to the Enterprise Architect.&amp;nbsp; Many of the soft skills are the same between the
Solutions Architect and the Enterprise Architect, but we should think of them as separate
duties, like the manager and the general manager in baseball.&amp;nbsp; Solution Architects
have the scope of the solution they are designing and building and should be focused
on the current version and maybe one or two versions out.&amp;nbsp; They cannot be hung
up on the long term strategy of a service bus that is several years out.&amp;nbsp; The
Enterprise Architect should also not be thinking too narrow on the here and now either.&amp;nbsp;
They need to focus on the longer term and not any specific application.
&lt;/p&gt;
&lt;h5&gt;Be like Branch Rickey
&lt;/h5&gt;
&lt;p&gt;
If you have the opportunity to be in a general manager like position, studying some
of the things that Branch Rickey did is not a bad thing.&amp;nbsp; He used business process
and radical change to accomplish great things.&amp;nbsp; He did not just focus on being
the best general manager; he changed the rules of the game.&amp;nbsp; I love this quote
from him:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
"Luck is the residue of design" - Branch Rickey
&lt;/p&gt;
&lt;/blockquote&gt;</description>
      <comments>http://eraserandcrowbar.com/CommentView,guid,cc1d95f4-88b9-47fc-9c5d-b2bdad0fd48d.aspx</comments>
      <category>Architecture by Baseball</category>
    </item>
    <item>
      <trackback:ping>http://eraserandcrowbar.com/Trackback.aspx?guid=e18ffa61-61ed-4f3a-8f85-f9ecf15e4388</trackback:ping>
      <pingback:server>http://eraserandcrowbar.com/pingback.aspx</pingback:server>
      <pingback:target>http://eraserandcrowbar.com/PermaLink,guid,e18ffa61-61ed-4f3a-8f85-f9ecf15e4388.aspx</pingback:target>
      <dc:creator>Larry Clarkin</dc:creator>
      <wfw:comment>http://eraserandcrowbar.com/CommentView,guid,e18ffa61-61ed-4f3a-8f85-f9ecf15e4388.aspx</wfw:comment>
      <wfw:commentRss>http://eraserandcrowbar.com/SyndicationService.asmx/GetEntryCommentsRss?guid=e18ffa61-61ed-4f3a-8f85-f9ecf15e4388</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div style="margin: 10px" align="center">
          <a title="Branyan at the plate" href="http://flickr.com/photos/jodieandlarry/2556876188/">
            <img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Branyan at the plate" src="http://farm4.static.flickr.com/3005/2556876188_68060ebc0b.jpg" />
          </a>
          <br />
          <a href="http://flickr.com/photos/jodieandlarry/2556876188/">Branyan at the plate</a>
        </div>
        <p>
This is the eight in a <a href="http://eraserandcrowbar.com/ArchitectureByBaseball.aspx">series
of articles</a> about how we can learn about software architecture by studying and
comparing it to the sport of <a href="http://en.wikipedia.org/wiki/Baseball">Baseball</a>. 
This series was inspired by the book <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;tag=larcalsblo-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Management
by Baseball</a>.
</p>
        <p>
One of the most exciting things at a baseball game can be the 2 out rally.  A
2 out rally is simply when a team has nobody on base, 2 outs and they put together
a series of hits (or walks) that usually lead to one or more runs being scored. 
All rallies are exciting, but a 2 out rally can be particularly exciting, because
the team is down to its last out in the inning.  One bad swing of the bat can
bring the rally and the inning to a close.  
</p>
        <p>
Probably the most exciting of the two out rallies comes when not only is the inning
on the line, but the game is as well.  This comes when the home team is behind
(or tied) in the bottom of the 9th inning.  It can get to the point where one
swing of the bat can win or lose the game.  There is a real excitement as the
hometown crowd cheers their heads off for the rally to continue.
</p>
        <blockquote>
          <p>
I remember <a href="http://en.wikipedia.org/wiki/Gene_Mauch">Gene Mauch</a> doing
things to me at Philadelphia. I'd be sitting there and he'd say, 'Grab a bat and stop
this rally.'<br />
- <a href="http://en.wikipedia.org/wiki/Bob_Uecker">Bob Uecker</a></p>
        </blockquote>
        <h5>Exciting and Nerve Wracking
</h5>
        <p>
If you are a baseball manager you like the 2 out rally, but you would <strong><em>much
prefer</em></strong> for the rally to start with no outs.  Probably most players
feel this way too.  2 out rallies are very exciting, but they come with the high
price that one mistake and the rally is over.
</p>
        <h5>2 out rally in Software Projects
</h5>
        <p>
I have never been on a software project where the work was distributed evenly across
the time allotted for the project.  If you have 6 weeks to complete the project,
you would assume the best way to accomplish the project would be to do roughly 1/6th
of the work in the first week, 1/6th of the work in the second week and so on. 
I can point to some literature on this, but I think I will keep this anecdotal, because
everyone who is reading this article is either nodding along or chuckling at how true
this statement is.  
</p>
        <p>
Development teams just don't "pour on the gas" until the deadline is fast approaching
(or as I like to call it, until there are 2 outs).  I have been on projects where
we did about 25% of the work in the last 10% of the project timeline.  Through
lots of heroics and many long hours in the last part of the project, we usually have
gotten something put out by the deadline.  When we haven't it is usually because
one thing tripped us up (like an infrastructure issue or a bug that is hard to track
down).  In baseball terms, this is the one bad swing of the bat that killed the
rally.
</p>
        <h5>Architecture has an even harder time with 2 outs
</h5>
        <p>
Thus far I have been talking about the habits of the project team a whole, and not
necessarily about the role of the software architect.  There is a special burden
on the software architect to get moving on a project before there are "2 outs". 
A solid architecture needs to be in pace early and all outstanding issues need to
be resolved before the pressure of the project deadlines are upon you.
</p>
        <p>
There is another thing to note as part of this discussion.  Baseball is a sport
that is not judged by time.  As long as the team keeps hitting, the game can
literally go on forever.  How long the game took is merely an interesting statistic
that gets put in the record books.  Software projects are usually not so lucky
- there is almost always a deadline involved.
</p>
        <blockquote>
          <p>
Since baseball time is measured only in outs, all you have to do is succeed utterly;
keep hitting, keep the rally alive, and you have defeated time. You remain forever
young. 
<br />
- <a href="http://en.wikipedia.org/wiki/Roger_Angell">Roger Angell</a></p>
        </blockquote>
      </body>
      <title>Architecture by Baseball: The 2 Out Rally</title>
      <guid isPermaLink="false">http://eraserandcrowbar.com/PermaLink,guid,e18ffa61-61ed-4f3a-8f85-f9ecf15e4388.aspx</guid>
      <link>http://eraserandcrowbar.com/2008/09/28/ArchitectureByBaseballThe2OutRally.aspx</link>
      <pubDate>Sun, 28 Sep 2008 01:19:56 GMT</pubDate>
      <description>&lt;div style="margin: 10px" align="center"&gt;&lt;a title="Branyan at the plate" href="http://flickr.com/photos/jodieandlarry/2556876188/"&gt;&lt;img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Branyan at the plate" src="http://farm4.static.flickr.com/3005/2556876188_68060ebc0b.jpg"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://flickr.com/photos/jodieandlarry/2556876188/"&gt;Branyan at the plate&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
This is the eight in a &lt;a href="http://eraserandcrowbar.com/ArchitectureByBaseball.aspx"&gt;series
of articles&lt;/a&gt; about how we can learn about software architecture by studying and
comparing it to the sport of &lt;a href="http://en.wikipedia.org/wiki/Baseball"&gt;Baseball&lt;/a&gt;.&amp;nbsp;
This series was inspired by the book &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;amp;tag=larcalsblo-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Management
by Baseball&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
One of the most exciting things at a baseball game can be the 2 out rally.&amp;nbsp; A
2 out rally is simply when a team has nobody on base, 2 outs and they put together
a series of hits (or walks) that usually lead to one or more runs being scored.&amp;nbsp;
All rallies are exciting, but a 2 out rally can be particularly exciting, because
the team is down to its last out in the inning.&amp;nbsp; One bad swing of the bat can
bring the rally and the inning to a close.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Probably the most exciting of the two out rallies comes when not only is the inning
on the line, but the game is as well.&amp;nbsp; This comes when the home team is behind
(or tied) in the bottom of the 9th inning.&amp;nbsp; It can get to the point where one
swing of the bat can win or lose the game.&amp;nbsp; There is a real excitement as the
hometown crowd cheers their heads off for the rally to continue.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
I remember &lt;a href="http://en.wikipedia.org/wiki/Gene_Mauch"&gt;Gene Mauch&lt;/a&gt; doing
things to me at Philadelphia. I'd be sitting there and he'd say, 'Grab a bat and stop
this rally.'&lt;br&gt;
- &lt;a href="http://en.wikipedia.org/wiki/Bob_Uecker"&gt;Bob Uecker&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;h5&gt;Exciting and Nerve Wracking
&lt;/h5&gt;
&lt;p&gt;
If you are a baseball manager you like the 2 out rally, but you would &lt;strong&gt;&lt;em&gt;much
prefer&lt;/em&gt;&lt;/strong&gt; for the rally to start with no outs.&amp;nbsp; Probably most players
feel this way too.&amp;nbsp; 2 out rallies are very exciting, but they come with the high
price that one mistake and the rally is over.
&lt;/p&gt;
&lt;h5&gt;2 out rally in Software Projects
&lt;/h5&gt;
&lt;p&gt;
I have never been on a software project where the work was distributed evenly across
the time allotted for the project.&amp;nbsp; If you have 6 weeks to complete the project,
you would assume the best way to accomplish the project would be to do roughly 1/6th
of the work in the first week, 1/6th of the work in the second week and so on.&amp;nbsp;
I can point to some literature on this, but I think I will keep this anecdotal, because
everyone who is reading this article is either nodding along or chuckling at how true
this statement is.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Development teams just don't "pour on the gas" until the deadline is fast approaching
(or as I like to call it, until there are 2 outs).&amp;nbsp; I have been on projects where
we did about 25% of the work in the last 10% of the project timeline.&amp;nbsp; Through
lots of heroics and many long hours in the last part of the project, we usually have
gotten something put out by the deadline.&amp;nbsp; When we haven't it is usually because
one thing tripped us up (like an infrastructure issue or a bug that is hard to track
down).&amp;nbsp; In baseball terms, this is the one bad swing of the bat that killed the
rally.
&lt;/p&gt;
&lt;h5&gt;Architecture has an even harder time with 2 outs
&lt;/h5&gt;
&lt;p&gt;
Thus far I have been talking about the habits of the project team a whole, and not
necessarily about the role of the software architect.&amp;nbsp; There is a special burden
on the software architect to get moving on a project before there are "2 outs".&amp;nbsp;
A solid architecture needs to be in pace early and all outstanding issues need to
be resolved before the pressure of the project deadlines are upon you.
&lt;/p&gt;
&lt;p&gt;
There is another thing to note as part of this discussion.&amp;nbsp; Baseball is a sport
that is not judged by time.&amp;nbsp; As long as the team keeps hitting, the game can
literally go on forever.&amp;nbsp; How long the game took is merely an interesting statistic
that gets put in the record books.&amp;nbsp; Software projects are usually not so lucky
- there is almost always a deadline involved.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Since baseball time is measured only in outs, all you have to do is succeed utterly;
keep hitting, keep the rally alive, and you have defeated time. You remain forever
young. 
&lt;br&gt;
- &lt;a href="http://en.wikipedia.org/wiki/Roger_Angell"&gt;Roger Angell&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt;</description>
      <comments>http://eraserandcrowbar.com/CommentView,guid,e18ffa61-61ed-4f3a-8f85-f9ecf15e4388.aspx</comments>
      <category>Architecture by Baseball</category>
    </item>
    <item>
      <trackback:ping>http://eraserandcrowbar.com/Trackback.aspx?guid=db081266-cf4d-455f-b854-2b772f8cd007</trackback:ping>
      <pingback:server>http://eraserandcrowbar.com/pingback.aspx</pingback:server>
      <pingback:target>http://eraserandcrowbar.com/PermaLink,guid,db081266-cf4d-455f-b854-2b772f8cd007.aspx</pingback:target>
      <dc:creator>Larry Clarkin</dc:creator>
      <wfw:comment>http://eraserandcrowbar.com/CommentView,guid,db081266-cf4d-455f-b854-2b772f8cd007.aspx</wfw:comment>
      <wfw:commentRss>http://eraserandcrowbar.com/SyndicationService.asmx/GetEntryCommentsRss?guid=db081266-cf4d-455f-b854-2b772f8cd007</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div style="FLOAT: right; MARGIN-BOTTOM: 10px; MARGIN-LEFT: 10px">
          <a title="Top 9th" href="http://www.flickr.com/photos/jodieandlarry/2768475883/">
            <img style="BORDER-RIGHT: #000000 2px solid; BORDER-TOP: #000000 2px solid; BORDER-LEFT: #000000 2px solid; BORDER-BOTTOM: #000000 2px solid" alt="Top 9th" src="http://farm4.static.flickr.com/3196/2768475883_34037a4a64_m.jpg" />
          </a>
          <br />
          <a href="http://www.flickr.com/photos/jodieandlarry/2768475883/">Top 9th</a>
        </div>
        <p>
This is the seventh in a <a href="/ArchitectureByBaseball.aspx">series of articles</a> about
how we can learn about software architecture by studying and comparing it to the sport
of <a href="http://en.wikipedia.org/wiki/Baseball">Baseball</a>.  This series
was inspired by the book <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;tag=larcalsblo-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Management
by Baseball</a>. 
</p>
        <blockquote>
          <p>
"I don't think baseball could survive without all the statistical appurtenances involved
in calculating pitching, hitting and fielding percentages. Some people could do without
the games as long as they got the box scores." - <a href="http://en.wikipedia.org/wiki/John_M._Culkin">John
M. Culkin</a></p>
        </blockquote>
        <p>
Did you know that for the current season right handed batters that face CC Sabathia
(the pitcher in the photo for this article) are batting .218 against him (which is
a good opponents batting average for a pitcher)?  But against left-handed batters
his opponents' batting average is a fantastic .136?  
</p>
        <p>
Did you know that the 1888 Washington Senators had the lowest team batting average
when they batted a mere .207?
</p>
        <p>
Did you know that <a href="http://en.wikipedia.org/wiki/Cal_Ripken_Jr.">Cal Ripken,
Jr</a>., who is best known as baseball's "iron man" for playing in 2,632 consecutive
games, is also the all time leader for grounding into double plays with 350 of them
over his career?
</p>
        <p>
All professional sports have a battery of statistics that are tracked as part of the
game and the subsequent reporting of those games, but most people would agree that
baseball statistics are far more numerous and are actually a part of the fabric of
the game.  One of the most fascinating aspects is how we use statistics to compare
players from different eras.  Because the game has evolved slowly over the years
and has not been radically redefined along the way, we are able to make meaningful
comparisons.  As a result we can meaningfully compare the consecutive game <a href="http://en.wikipedia.org/wiki/Hitting_streak">hitting
streak</a> that Joe DiMaggio had in the 1940s, with the one that Willie Keeler had
in the 1890s to the one that Pete Rose had in the 1970s.
</p>
        <p>
More than just being a history lesson and interesting footnotes to articles about
games, statistics are actually used in the decision making process before and during
a game.  A manager (as an example) may look at the matchup between the batters
in his lineup and how they have fared against the probably pitchers for that day's
game.  He may chose to give a batter the day off as a result of this.  The
general manager will also use statistics to judge whether they should draft a player,
or sign a particular player as a free agent.
</p>
        <p>
As much as statistics are important in baseball, we should remember the role of statistics
is to enhance the experience, not to become the experience.  Don't spend all
your time computing the batting average of the player coming up to bat with runners
in scoring position (RISP) with less than 2 outs, which is a statistic that you will
hear of frequently.  This quote says it best:
</p>
        <blockquote>
          <p>
"Baseball isn't statistics - baseball is (Joe) DiMaggio rounding second." - <a href="http://en.wikipedia.org/wiki/Jimmy_Breslin">Jimmy
Breslin</a></p>
        </blockquote>
        <h5>Software Architecture Statistics
</h5>
        <p>
Software engineering has some <a href="http://en.wikipedia.org/wiki/Category:Software_metrics">really
interesting statistics</a> that are used as part of the development process. 
Some of the most common or the most interesting statistics are:
</p>
        <ul>
          <li>
            <strong>
              <a href="http://en.wikipedia.org/wiki/Line_of_code">Lines of code</a>
            </strong> -
when we are working on an application, particularly one that already exists (a legacy
application), the number of lines of code is an interesting piece of data.  For
example, if you are going to make major changes to an application it will be a lot
easier to change one that has 100,000 lines of code than one with 2,000,000 lines
of code (just due to the sheer size of the application). 
</li>
          <li>
            <a href="http://en.wikipedia.org/wiki/Cyclomatic_complexity">Cyclomatic Complexity</a> -
measures how complicated the application is by analyzing the number of paths through
the program.  This adds some "depth" to the lines of code statistic, because
a program that is 50,000 lines of code can be much more complex than one that is 100,000
lines of code. 
</li>
          <li>
            <a href="http://en.wikipedia.org/wiki/Function_point">Function Points</a> - a way
to calculate the size of an application by how many things it does.  Function
points are very user centric, so "back end" applications are skewed a bit in the number
of function points.</li>
        </ul>
        <p>
While software architecture has some interesting statistics, we as an industry do
not use them as much as we should (this statement is part opinion and part anecdotal
observation).  We also fail horribly as an industry to track statistics over
time, so that we can do meaningful comparisons to past projects.  The best example
of past experience would be comparing estimates to actuals on a project and comparing
an upcoming release to a past release.  Generally those kinds of statistics are
not captured in a meaningful fashion, although modern <a href="http://en.wikipedia.org/wiki/Application_Lifecycle_Management">Application
Lifecycle Management</a> and <a href="http://en.wikipedia.org/wiki/Agile_software_development">Agile
Software Development</a> tools and techniques are changing that for the positive. 
</p>
        <p>
As we start to embrace more and better statistics in software architecture, we need
to keep in mind that software architecture is still a very human process.  Statistics
can help us judge our actions and make meaningful decisions, but the statistics cannot
become the outcome of the process.  
</p>
        <blockquote>
          <p>
"If you dwell on statistics, you get shortsighted. If you aim for consistency, the
numbers will be there at the end." - <a href="http://en.wikipedia.org/wiki/Tom_Seaver">Tom
Seaver</a></p>
        </blockquote>
      </body>
      <title>Architecture by Baseball: Stats</title>
      <guid isPermaLink="false">http://eraserandcrowbar.com/PermaLink,guid,db081266-cf4d-455f-b854-2b772f8cd007.aspx</guid>
      <link>http://eraserandcrowbar.com/2008/08/30/ArchitectureByBaseballStats.aspx</link>
      <pubDate>Sat, 30 Aug 2008 18:55:40 GMT</pubDate>
      <description>&lt;div style="FLOAT: right; MARGIN-BOTTOM: 10px; MARGIN-LEFT: 10px"&gt;&lt;a title="Top 9th" href="http://www.flickr.com/photos/jodieandlarry/2768475883/"&gt;&lt;img style="BORDER-RIGHT: #000000 2px solid; BORDER-TOP: #000000 2px solid; BORDER-LEFT: #000000 2px solid; BORDER-BOTTOM: #000000 2px solid" alt="Top 9th" src="http://farm4.static.flickr.com/3196/2768475883_34037a4a64_m.jpg"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.flickr.com/photos/jodieandlarry/2768475883/"&gt;Top 9th&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
This is the seventh in a &lt;a href="/ArchitectureByBaseball.aspx"&gt;series of articles&lt;/a&gt; about
how we can learn about software architecture by studying and comparing it to the sport
of &lt;a href="http://en.wikipedia.org/wiki/Baseball"&gt;Baseball&lt;/a&gt;.&amp;nbsp; This series
was inspired by the book &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;amp;tag=larcalsblo-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Management
by Baseball&lt;/a&gt;. 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
"I don't think baseball could survive without all the statistical appurtenances involved
in calculating pitching, hitting and fielding percentages. Some people could do without
the games as long as they got the box scores." - &lt;a href="http://en.wikipedia.org/wiki/John_M._Culkin"&gt;John
M. Culkin&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Did you know that for the current season right handed batters that face CC Sabathia
(the pitcher in the photo for this article) are batting .218 against him (which is
a good opponents batting average for a pitcher)?&amp;nbsp; But against left-handed batters
his opponents' batting average is a fantastic .136?&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Did you know that the 1888 Washington Senators had the lowest team batting average
when they batted a mere .207?
&lt;/p&gt;
&lt;p&gt;
Did you know that &lt;a href="http://en.wikipedia.org/wiki/Cal_Ripken_Jr."&gt;Cal Ripken,
Jr&lt;/a&gt;., who is best known as baseball's "iron man" for playing in 2,632 consecutive
games, is also the all time leader for grounding into double plays with 350 of them
over his career?
&lt;/p&gt;
&lt;p&gt;
All professional sports have a battery of statistics that are tracked as part of the
game and the subsequent reporting of those games, but most people would agree that
baseball statistics are far more numerous and are actually a part of the fabric of
the game.&amp;nbsp; One of the most fascinating aspects is how we use statistics to compare
players from different eras.&amp;nbsp; Because the game has evolved slowly over the years
and has not been radically redefined along the way, we are able to make meaningful
comparisons.&amp;nbsp; As a result we can meaningfully compare the consecutive game &lt;a href="http://en.wikipedia.org/wiki/Hitting_streak"&gt;hitting
streak&lt;/a&gt; that Joe DiMaggio had in the 1940s, with the one that Willie Keeler had
in the 1890s to the one that Pete Rose had in the 1970s.
&lt;/p&gt;
&lt;p&gt;
More than just being a history lesson and interesting footnotes to articles about
games, statistics are actually used in the decision making process before and during
a game.&amp;nbsp; A manager (as an example) may look at the matchup between the batters
in his lineup and how they have fared against the probably pitchers for that day's
game.&amp;nbsp; He may chose to give a batter the day off as a result of this.&amp;nbsp; The
general manager will also use statistics to judge whether they should draft a player,
or sign a particular player as a free agent.
&lt;/p&gt;
&lt;p&gt;
As much as statistics are important in baseball, we should remember the role of statistics
is to enhance the experience, not to become the experience.&amp;nbsp; Don't spend all
your time computing the batting average of the player coming up to bat with runners
in scoring position (RISP) with less than 2 outs, which is a statistic that you will
hear of frequently.&amp;nbsp; This quote says it best:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
"Baseball isn't statistics - baseball is (Joe) DiMaggio rounding second." - &lt;a href="http://en.wikipedia.org/wiki/Jimmy_Breslin"&gt;Jimmy
Breslin&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;h5&gt;Software Architecture Statistics
&lt;/h5&gt;
&lt;p&gt;
Software engineering has some &lt;a href="http://en.wikipedia.org/wiki/Category:Software_metrics"&gt;really
interesting statistics&lt;/a&gt; that are used as part of the development process.&amp;nbsp;
Some of the most common or the most interesting statistics are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Line_of_code"&gt;Lines of code&lt;/a&gt;&lt;/strong&gt; -
when we are working on an application, particularly one that already exists (a legacy
application), the number of lines of code is an interesting piece of data.&amp;nbsp; For
example, if you are going to make major changes to an application it will be a lot
easier to change one that has 100,000 lines of code than one with 2,000,000 lines
of code (just due to the sheer size of the application). 
&lt;li&gt;
&lt;a href="http://en.wikipedia.org/wiki/Cyclomatic_complexity"&gt;Cyclomatic Complexity&lt;/a&gt; -
measures how complicated the application is by analyzing the number of paths through
the program.&amp;nbsp; This adds some "depth" to the lines of code statistic, because
a program that is 50,000 lines of code can be much more complex than one that is 100,000
lines of code. 
&lt;li&gt;
&lt;a href="http://en.wikipedia.org/wiki/Function_point"&gt;Function Points&lt;/a&gt; - a way
to calculate the size of an application by how many things it does.&amp;nbsp; Function
points are very user centric, so "back end" applications are skewed a bit in the number
of function points.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
While software architecture has some interesting statistics, we as an industry do
not use them as much as we should (this statement is part opinion and part anecdotal
observation).&amp;nbsp; We also fail horribly as an industry to track statistics over
time, so that we can do meaningful comparisons to past projects.&amp;nbsp; The best example
of past experience would be comparing estimates to actuals on a project and comparing
an upcoming release to a past release.&amp;nbsp; Generally those kinds of statistics are
not captured in a meaningful fashion, although modern &lt;a href="http://en.wikipedia.org/wiki/Application_Lifecycle_Management"&gt;Application
Lifecycle Management&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Agile_software_development"&gt;Agile
Software Development&lt;/a&gt; tools and techniques are changing that for the positive. 
&lt;/p&gt;
&lt;p&gt;
As we start to embrace more and better statistics in software architecture, we need
to keep in mind that software architecture is still a very human process.&amp;nbsp; Statistics
can help us judge our actions and make meaningful decisions, but the statistics cannot
become the outcome of the process.&amp;nbsp; 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
"If you dwell on statistics, you get shortsighted. If you aim for consistency, the
numbers will be there at the end." - &lt;a href="http://en.wikipedia.org/wiki/Tom_Seaver"&gt;Tom
Seaver&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt;</description>
      <comments>http://eraserandcrowbar.com/CommentView,guid,db081266-cf4d-455f-b854-2b772f8cd007.aspx</comments>
      <category>Architecture by Baseball</category>
    </item>
    <item>
      <trackback:ping>http://eraserandcrowbar.com/Trackback.aspx?guid=510132fc-9ddc-44ca-a56f-9b482c4b2f7e</trackback:ping>
      <pingback:server>http://eraserandcrowbar.com/pingback.aspx</pingback:server>
      <pingback:target>http://eraserandcrowbar.com/PermaLink,guid,510132fc-9ddc-44ca-a56f-9b482c4b2f7e.aspx</pingback:target>
      <dc:creator>Larry Clarkin</dc:creator>
      <wfw:comment>http://eraserandcrowbar.com/CommentView,guid,510132fc-9ddc-44ca-a56f-9b482c4b2f7e.aspx</wfw:comment>
      <wfw:commentRss>http://eraserandcrowbar.com/SyndicationService.asmx/GetEntryCommentsRss?guid=510132fc-9ddc-44ca-a56f-9b482c4b2f7e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div style="FLOAT: right; MARGIN-BOTTOM: 10px; MARGIN-LEFT: 10px">
          <a title="Counsell gets a hit" href="http://www.flickr.com/photos/jodieandlarry/2556763934/">
            <img style="BORDER-RIGHT: #000000 2px solid; BORDER-TOP: #000000 2px solid; BORDER-LEFT: #000000 2px solid; BORDER-BOTTOM: #000000 2px solid" alt="Counsell gets a hit" src="http://farm4.static.flickr.com/3011/2556763934_7106367815_m.jpg" />
          </a>
          <br />
          <a href="http://www.flickr.com/photos/jodieandlarry/2556763934/">Counsell gets a hit</a>
        </div>
        <p>
This is the sixth in a <a href="/ArchitectureByBaseball.aspx">series of articles</a> about
how we can learn about software architecture by studying and comparing it to the sport
of <a href="http://en.wikipedia.org/wiki/Baseball">Baseball</a>.  This series
was inspired by the book <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;tag=larcalsblo-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Management
by Baseball</a>.
</p>
        <h5>Baseball Jargon
</h5>
        <p>
Last Saturday I watched a baseball game between the <a href="http://www.brewers.com">Milwaukee
Brewers</a> and the <a href="http://www.reds.com">Cincinnati Reds</a>.  I noticed
that the announcers used a lot of colorful <a href="http://en.wikipedia.org/wiki/List_of_baseball_jargon">jargon</a> in
describing the action that was playing out on the field.  Baseball has built
up an interesting language of its own over the years.  Some of my favorites are:
</p>
        <p>
          <strong>Ducks on the Pond</strong> - a term used to describe when there are runners
on base, but usually stated when the bases are loaded.
</p>
        <p>
          <strong>Can of Corn</strong> - a term used to describe a pop-up or a fly out that
is easily caught by an outfielder.  The term comes from a device that grocers
used to grab canned goods that were located on top shelves in their stores. 
This device allowed them to quickly and easily grab these cans, without having to
stretch or get a ladder.  Of course the term does not translate to modern grocery
stores.
</p>
        <p>
          <strong>Payoff Pitch</strong> - a term used to describe a pitch thrown with a full
count (3 balls and 2 strikes).  The term is usually used when there are 2 outs
or when the pitch could have a large outcome on the game (like bases loaded). 
A strikeout could get the pitcher out of the tight situation; a hit could lose the
game for him.
</p>
        <p>
          <strong>Murderer's Row</strong> - A reference to the 1927 New York Yankees, who had
several of the game's best hitters in their lineup.  In later years, it has been
applied to other teams who had similar lineups stacked with great batters.
</p>
        <p>
          <strong>No-no</strong> - a term used to describe a no-hitter.  This is a reference
to the scorecard: No runs, no hits.  The no-hitter is one of the best accomplishments
a pitcher can achieve (the record for career no-hitters is currently 7 over a 27 year
career).  The no-no is only over-shadowed by a perfect game, which does not have
a cool jargon associated with it.
</p>
        <p>
          <strong>Jam - </strong>a term with several meanings (you see this a lot in baseball
Jargon).  It can mean a pitch that is far enough inside that the batter cannot
get a full swing.  It can also mean when a situation where the pitcher is in
trouble ala "Smith is in a jam", generally there are runners in scoring position with
less than 2 outs.  And finally it can mean when the baseball are loaded (but
sometimes the bases are juiced instead of jammed - another term that can mean the
same thing).
</p>
        <p>
What I found really interesting is that none of these terms are actually defined anywhere
in the official baseball rules.  If you were a new fan, you would have to pick
up these terms by asking people when they meant, or by listening to the announcers
and inferring what the term meant by looking at the situation.  You would doubtless
be confused by the overloading of terms like Jam and by having more than one term
applied to the same situation:  Bases can be jammed, juiced and ducks on the
pond all at the same time.  
</p>
        <h5>Architecture Jargon
</h5>
        <p>
In software architecture we have our own jargon as well - lots of it!  Some days
it seems that there are teams of people sitting in a room creating more jargon. 
A couple of my favorites are:
</p>
        <p>
          <strong>Polymorphic</strong> - an OO Concept (OO is another Jargon) that allows the
use an operator or function in different ways for different set of inputs given. 
I will never forget someone telling me, "I had to re-work the code to make it more
polymorphic".  I had no idea what he did to make it more polymorphic, but he
seemed happy about it.
</p>
        <p>
          <strong>Service(s)</strong> - As an industry we have become service happy, but without
a good definition of what a service is.  Most commonly when people say "service"
they assume that you mean a SOAP based web service that uses XML serialization and
http as a transport, as opposed to something more abstract.  Because the terms
are so overloaded, you should always ask "What do you mean by service?".
</p>
        <p>
          <strong>Separation of Concerns</strong> - architecting and implementing your software
in such a way that there is little to no overlap in functionality.  Back in the
day we used to just call that "good code".
</p>
        <p>
          <strong>MVC, COM, SOA, etc</strong> - There are a veritable soup of Three Letter Acronyms
(TLAs) that we use and reuse in discussions.  There are literally too many to
keep track of.
</p>
        <p>
As an architect, we are invested in this jargon and surrounded by it on a day to day
basis, so much so that it actually becomes part of our natural language.  But
the obvious thing to point out is that many people that we will work with are not
software architects and may not even be in technology at all.  <strong>Note</strong>: 
If you are a software architect who works in industry and you don't spend time with
non-technology folks, you are doing something wrong.
</p>
        <p>
As software architects we have to be cognizant of the fact that our business partners
and customers do not speak the same language as we do.  We also have to change
our behavior to account for this.  Here are some of the things that I have seen
successful to bridge this language gap:
</p>
        <p>
          <strong>Make it about the business and not the technology</strong> - when you are
having a conversation with your business partners and customers you should not be
focused on the technology, but on what the business outcome will be.  There are
exceptions to this of course:  Occasionally there are technologies that your
business asks for by name like AJAX as in "We need to get some AJAX in our websites
now".
</p>
        <p>
          <strong>Don't use the Jargon</strong> - Avoid the 3 letter acronyms and words like
polymorphism.  They are necessary to deliver the software, but not to understand
what the software does.
</p>
        <p>
          <strong>When Jargon slips out, explain it</strong> - If you are in a meeting and you
hear SOA, just pause for a second and explain that "SOA is Service Oriented Architecture
and it is a technique for building the application that makes it easier for other
companies to use our software and hopefully makes it easier to maintain".  Be
careful to not be condescending or over promise what the technology can do.
</p>
        <p>
 
</p>
        <br clear="all" />
      </body>
      <title>Architecture by Baseball: Jargon</title>
      <guid isPermaLink="false">http://eraserandcrowbar.com/PermaLink,guid,510132fc-9ddc-44ca-a56f-9b482c4b2f7e.aspx</guid>
      <link>http://eraserandcrowbar.com/2008/07/15/ArchitectureByBaseballJargon.aspx</link>
      <pubDate>Tue, 15 Jul 2008 19:33:38 GMT</pubDate>
      <description>&lt;div style="FLOAT: right; MARGIN-BOTTOM: 10px; MARGIN-LEFT: 10px"&gt;&lt;a title="Counsell gets a hit" href="http://www.flickr.com/photos/jodieandlarry/2556763934/"&gt;&lt;img style="BORDER-RIGHT: #000000 2px solid; BORDER-TOP: #000000 2px solid; BORDER-LEFT: #000000 2px solid; BORDER-BOTTOM: #000000 2px solid" alt="Counsell gets a hit" src="http://farm4.static.flickr.com/3011/2556763934_7106367815_m.jpg"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.flickr.com/photos/jodieandlarry/2556763934/"&gt;Counsell gets a hit&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
This is the sixth in a &lt;a href="/ArchitectureByBaseball.aspx"&gt;series of articles&lt;/a&gt; about
how we can learn about software architecture by studying and comparing it to the sport
of &lt;a href="http://en.wikipedia.org/wiki/Baseball"&gt;Baseball&lt;/a&gt;.&amp;nbsp; This series
was inspired by the book &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;amp;tag=larcalsblo-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Management
by Baseball&lt;/a&gt;.
&lt;/p&gt;
&lt;h5&gt;Baseball Jargon
&lt;/h5&gt;
&lt;p&gt;
Last Saturday I watched a baseball game between the &lt;a href="http://www.brewers.com"&gt;Milwaukee
Brewers&lt;/a&gt; and the &lt;a href="http://www.reds.com"&gt;Cincinnati Reds&lt;/a&gt;.&amp;nbsp; I noticed
that the announcers used a lot of colorful &lt;a href="http://en.wikipedia.org/wiki/List_of_baseball_jargon"&gt;jargon&lt;/a&gt; in
describing the action that was playing out on the field.&amp;nbsp; Baseball has built
up an interesting language of its own over the years.&amp;nbsp; Some of my favorites are:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Ducks on the Pond&lt;/strong&gt; - a term used to describe when there are runners
on base, but usually stated when the bases are loaded.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Can of Corn&lt;/strong&gt; - a term used to describe a pop-up or a fly out that
is easily caught by an outfielder.&amp;nbsp; The term comes from a device that grocers
used to grab canned goods that were located on top shelves in their stores.&amp;nbsp;
This device allowed them to quickly and easily grab these cans, without having to
stretch or get a ladder.&amp;nbsp; Of course the term does not translate to modern grocery
stores.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Payoff Pitch&lt;/strong&gt; - a term used to describe a pitch thrown with a full
count (3 balls and 2 strikes).&amp;nbsp; The term is usually used when there are 2 outs
or when the pitch could have a large outcome on the game (like bases loaded).&amp;nbsp;
A strikeout could get the pitcher out of the tight situation; a hit could lose the
game for him.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Murderer's Row&lt;/strong&gt; - A reference to the 1927 New York Yankees, who had
several of the game's best hitters in their lineup.&amp;nbsp; In later years, it has been
applied to other teams who had similar lineups stacked with great batters.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;No-no&lt;/strong&gt; - a term used to describe a no-hitter.&amp;nbsp; This is a reference
to the scorecard: No runs, no hits.&amp;nbsp; The no-hitter is one of the best accomplishments
a pitcher can achieve (the record for career no-hitters is currently 7 over a 27 year
career).&amp;nbsp; The no-no is only over-shadowed by a perfect game, which does not have
a cool jargon associated with it.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Jam - &lt;/strong&gt;a term with several meanings (you see this a lot in baseball
Jargon).&amp;nbsp; It can mean a pitch that is far enough inside that the batter cannot
get a full swing.&amp;nbsp; It can also mean when a situation where the pitcher is in
trouble ala "Smith is in a jam", generally there are runners in scoring position with
less than 2 outs.&amp;nbsp; And finally it can mean when the baseball are loaded (but
sometimes the bases are juiced instead of jammed - another term that can mean the
same thing).
&lt;/p&gt;
&lt;p&gt;
What I found really interesting is that none of these terms are actually defined anywhere
in the official baseball rules.&amp;nbsp; If you were a new fan, you would have to pick
up these terms by asking people when they meant, or by listening to the announcers
and inferring what the term meant by looking at the situation.&amp;nbsp; You would doubtless
be confused by the overloading of terms like Jam and by having more than one term
applied to the same situation:&amp;nbsp; Bases can be jammed, juiced and ducks on the
pond all at the same time.&amp;nbsp; 
&lt;/p&gt;
&lt;h5&gt;Architecture Jargon
&lt;/h5&gt;
&lt;p&gt;
In software architecture we have our own jargon as well - lots of it!&amp;nbsp; Some days
it seems that there are teams of people sitting in a room creating more jargon.&amp;nbsp;
A couple of my favorites are:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Polymorphic&lt;/strong&gt; - an OO Concept (OO is another Jargon) that allows the
use an operator or function in different ways for different set of inputs given.&amp;nbsp;
I will never forget someone telling me, "I had to re-work the code to make it more
polymorphic".&amp;nbsp; I had no idea what he did to make it more polymorphic, but he
seemed happy about it.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Service(s)&lt;/strong&gt; - As an industry we have become service happy, but without
a good definition of what a service is.&amp;nbsp; Most commonly when people say "service"
they assume that you mean a SOAP based web service that uses XML serialization and
http as a transport, as opposed to something more abstract.&amp;nbsp; Because the terms
are so overloaded, you should always ask "What do you mean by service?".
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Separation of Concerns&lt;/strong&gt; - architecting and implementing your software
in such a way that there is little to no overlap in functionality.&amp;nbsp; Back in the
day we used to just call that "good code".
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;MVC, COM, SOA, etc&lt;/strong&gt; - There are a veritable soup of Three Letter Acronyms
(TLAs) that we use and reuse in discussions.&amp;nbsp; There are literally too many to
keep track of.
&lt;/p&gt;
&lt;p&gt;
As an architect, we are invested in this jargon and surrounded by it on a day to day
basis, so much so that it actually becomes part of our natural language.&amp;nbsp; But
the obvious thing to point out is that many people that we will work with are not
software architects and may not even be in technology at all.&amp;nbsp; &lt;strong&gt;Note&lt;/strong&gt;:&amp;nbsp;
If you are a software architect who works in industry and you don't spend time with
non-technology folks, you are doing something wrong.
&lt;/p&gt;
&lt;p&gt;
As software architects we have to be cognizant of the fact that our business partners
and customers do not speak the same language as we do.&amp;nbsp; We also have to change
our behavior to account for this.&amp;nbsp; Here are some of the things that I have seen
successful to bridge this language gap:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Make it about the business and not the technology&lt;/strong&gt; - when you are
having a conversation with your business partners and customers you should not be
focused on the technology, but on what the business outcome will be.&amp;nbsp; There are
exceptions to this of course:&amp;nbsp; Occasionally there are technologies that your
business asks for by name like AJAX as in "We need to get some AJAX in our websites
now".
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Don't use the Jargon&lt;/strong&gt; - Avoid the 3 letter acronyms and words like
polymorphism.&amp;nbsp; They are necessary to deliver the software, but not to understand
what the software does.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;When Jargon slips out, explain it&lt;/strong&gt; - If you are in a meeting and you
hear SOA, just pause for a second and explain that "SOA is Service Oriented Architecture
and it is a technique for building the application that makes it easier for other
companies to use our software and hopefully makes it easier to maintain".&amp;nbsp; Be
careful to not be condescending or over promise what the technology can do.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;br clear=all&gt;</description>
      <comments>http://eraserandcrowbar.com/CommentView,guid,510132fc-9ddc-44ca-a56f-9b482c4b2f7e.aspx</comments>
      <category>Architecture by Baseball</category>
    </item>
    <item>
      <trackback:ping>http://eraserandcrowbar.com/Trackback.aspx?guid=5aa7281b-d429-4803-9cd6-5ab6d2fef7d6</trackback:ping>
      <pingback:server>http://eraserandcrowbar.com/pingback.aspx</pingback:server>
      <pingback:target>http://eraserandcrowbar.com/PermaLink,guid,5aa7281b-d429-4803-9cd6-5ab6d2fef7d6.aspx</pingback:target>
      <dc:creator>Larry Clarkin</dc:creator>
      <wfw:comment>http://eraserandcrowbar.com/CommentView,guid,5aa7281b-d429-4803-9cd6-5ab6d2fef7d6.aspx</wfw:comment>
      <wfw:commentRss>http://eraserandcrowbar.com/SyndicationService.asmx/GetEntryCommentsRss?guid=5aa7281b-d429-4803-9cd6-5ab6d2fef7d6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div style="FLOAT: right; MARGIN-BOTTOM: 10px; MARGIN-LEFT: 10px">
          <a title="Ron Washington Arguing the Home Run Call ..." href="http://www.flickr.com/photos/memestate/2402504036/">
            <img style="BORDER-RIGHT: #000000 2px solid; BORDER-TOP: #000000 2px solid; BORDER-LEFT: #000000 2px solid; BORDER-BOTTOM: #000000 2px solid" height="160" alt="2402504036_d5fc26cfc3_o[3]" src="http://larryclarkin.com/images/ArchitectureByBaseballManagersandGMs_C86B/2402504036_d5fc26cfc3_o3_thumb.jpg" width="240" border="0" />
          </a>
          <br />
          <a href="http://www.flickr.com/photos/memestate/2402504036/">Ron Washington Arguing
the Home Run Call ...</a>
          <br />
By <a href="http://www.flickr.com/people/memestate/">Rich Anderson</a><br />
Used under <a href="http://creativecommons.org/licenses/by-sa/2.0/deed.en">Creative
Commons</a></div>
        <p>
This is the fifth in a <a href="http://larryclarkin.com/CategoryView,category,Architecture%2Bby%2BBaseball.aspx">series
of blog posts</a> about how we can learn about software architecture by studying and
comparing it to the sport of <a href="http://en.wikipedia.org/wiki/Baseball">Baseball</a>. 
This series was inspired by the book <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;tag=larcalsblo-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Management
by Baseball</a>.
</p>
        <p>
The last post in this series was called "<a href="http://larryclarkin.com/2008/06/11/ArchitectureByBaseballCoaches.aspx">Architecture
By Baseball: Coaches</a>", where I talked about how the software architect can work
better with the development team by emulating some of the things that a baseball coach
does.  Baseball is a little different than other sports that have a <a href="http://en.wikipedia.org/wiki/Head_coach">Head
Coach</a>, in baseball the team leader is the <a href="http://en.wikipedia.org/wiki/Manager_%28baseball%29">manger</a>. 
Like the rest of the coaching staff, he wears the team uniform.  The manager
extra responsibility of thinking tactically and strategically during the game and
throughout the season.
</p>
        <h5>Tactical during the game
</h5>
        <p>
When a player comes up to bat and there are men on base, the manager will often times
give the batter instructions about how he is supposed to bat.  If it is a close
game with a speedy runner on board, he may be instruction to bunt (called a sacrifice),
rather than try to hit safely.  The manager is giving up an out in order to advance
the base runner (this is a <strong>very</strong> tactical move).  Similarly,
the manager may give the runner on base the "steal" or the "hold" sign or the "green
light" to steal if they feel comfortable doing so.  These choices are not as
obvious as they may seem, the manager may chose to give <strong>not</strong> have
the base runner the steal sign even if he is very good at stealing because it might
prematurely end the inning.  Nothing is worse than taking the bat out of your
best players' hands by ending the inning on a failed steal attempt.
</p>
        <h5>Strategic during the game
</h5>
        <p>
The manager must also think strategically during the course of the game.  The
strategic decisions start actually before the game begins, when the manager fills
out the line-up card.  The line-up card is the list of 9 players (or 10 players
in American League Baseball) that will start the game and what positions that they
play.  There are a lot of factors that play into the line-up cards on any given
day: the opposing pitcher, the historic match-ups, etc.  As the game goes on,
there a limited number of players available to the manager during the game for substitutions
(25 total players for most of the season and up to 40 for the last month of the season). 
The manager must make sure that the best players are on the field at any given time,
but they cannot replace players constantly during the game, because unlike many other
sports, once a player leaves a baseball game they can not return.  As the game
goes on the manager must know when to replace players for fresh players or specialist
(pinch runners who are fast, or players who are better at defense).
</p>
        <h5>Strategic beyond the game
</h5>
        <p>
Baseball has a very long season with many games (more than twice as many games as
most other sports).  The manager must remember this as they are making decisions. 
The manager must make sure to give most players a day off here and there throughout
the season (there are a few super human players that never need a day off). 
The manager must also be careful to not over use the starting pitchers or the relief
pitchers during a game, as it can be costly to make the wrong decision.
</p>
        <h5>Software Architects: the balance between strategic and tactical
</h5>
        <p>
Like the manager making the scorecard, the architect must make a lot of decisions
before the game (or construction) even begins.  Scope is negotiated, technologies
selected and proof of concepts identified and executed.  Once the work actually
begins, there are dozens of tactical decisions that must be made, but the strategic
goals needs to be assessed.  Communication is very key as these decisions are
being made.  The manager in baseball has to give signals to the batter, catcher
or base runner.  The software architect also has to communicate to the team members
effectively so they understand what to do tactically, but he also needs to impart
the strategic thought as well (so actually we have it tougher than the baseball manager).  
You also have to get the most out of the development team (even if they don't report
to you directly).  There is a great quote by one of my favorite baseball managers
that talk about this:
</p>
        <blockquote>
          <p>
I don't think a manager should be judged by whether he wins the pennant, but by whether
he gets the most out of the twenty-five men he's been given. - <a href="http://en.wikipedia.org/wiki/Chuck_Tanner">Chuck
Tanner</a></p>
        </blockquote>
        <h5>There is no book in baseball or software architecture
</h5>
        <p>
Many of the tactical decisions that I talked about have "conventional wisdom" answers
to them.  For example, man on first with 0 or 1 outs and the pitcher up to bat,
the pitcher should bunt.  This style of management is called "by the book", which
is a reference to a mythical set of rules that contain the answers to all situations. 
You can imagine the software architecture equivalent.  If it is a function that
is needed by more than one platform, or is called by 3 or more applications, it must
be implemented as a SOAP Web Service.  That may apply is <em>many</em> or even <em>most </em>situations,
but there is no book of rules to follow in software architecture.  There is another
quote that fits this notion as well:
</p>
        <blockquote>
          <p>
"The Book is nothing but a piece of garbage. My book is me." - <a href="http://en.wikipedia.org/wiki/Chuck_Tanner">Chuck
Tanner</a></p>
        </blockquote>
      </body>
      <title>Architecture By Baseball: The Managers</title>
      <guid isPermaLink="false">http://eraserandcrowbar.com/PermaLink,guid,5aa7281b-d429-4803-9cd6-5ab6d2fef7d6.aspx</guid>
      <link>http://eraserandcrowbar.com/2008/06/25/ArchitectureByBaseballTheManagers.aspx</link>
      <pubDate>Wed, 25 Jun 2008 22:27:00 GMT</pubDate>
      <description>&lt;div style="FLOAT: right; MARGIN-BOTTOM: 10px; MARGIN-LEFT: 10px"&gt;&lt;a title="Ron Washington Arguing the Home Run Call ..." href="http://www.flickr.com/photos/memestate/2402504036/"&gt;&lt;img style="BORDER-RIGHT: #000000 2px solid; BORDER-TOP: #000000 2px solid; BORDER-LEFT: #000000 2px solid; BORDER-BOTTOM: #000000 2px solid" height=160 alt=2402504036_d5fc26cfc3_o[3] src="http://larryclarkin.com/images/ArchitectureByBaseballManagersandGMs_C86B/2402504036_d5fc26cfc3_o3_thumb.jpg" width=240 border=0&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.flickr.com/photos/memestate/2402504036/"&gt;Ron Washington Arguing
the Home Run Call ...&lt;/a&gt;
&lt;br&gt;
By &lt;a href="http://www.flickr.com/people/memestate/"&gt;Rich Anderson&lt;/a&gt;
&lt;br&gt;
Used under &lt;a href="http://creativecommons.org/licenses/by-sa/2.0/deed.en"&gt;Creative
Commons&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
This is the fifth in a &lt;a href="http://larryclarkin.com/CategoryView,category,Architecture%2Bby%2BBaseball.aspx"&gt;series
of blog posts&lt;/a&gt; about how we can learn about software architecture by studying and
comparing it to the sport of &lt;a href="http://en.wikipedia.org/wiki/Baseball"&gt;Baseball&lt;/a&gt;.&amp;nbsp;
This series was inspired by the book &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;amp;tag=larcalsblo-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Management
by Baseball&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
The last post in this series was called "&lt;a href="http://larryclarkin.com/2008/06/11/ArchitectureByBaseballCoaches.aspx"&gt;Architecture
By Baseball: Coaches&lt;/a&gt;", where I talked about how the software architect can work
better with the development team by emulating some of the things that a baseball coach
does.&amp;nbsp; Baseball is a little different than other sports that have a &lt;a href="http://en.wikipedia.org/wiki/Head_coach"&gt;Head
Coach&lt;/a&gt;, in baseball the team leader is the &lt;a href="http://en.wikipedia.org/wiki/Manager_%28baseball%29"&gt;manger&lt;/a&gt;.&amp;nbsp;
Like the rest of the coaching staff, he wears the team uniform.&amp;nbsp; The manager
extra responsibility of thinking tactically and strategically during the game and
throughout the season.
&lt;/p&gt;
&lt;h5&gt;Tactical during the game
&lt;/h5&gt;
&lt;p&gt;
When a player comes up to bat and there are men on base, the manager will often times
give the batter instructions about how he is supposed to bat.&amp;nbsp; If it is a close
game with a speedy runner on board, he may be instruction to bunt (called a sacrifice),
rather than try to hit safely.&amp;nbsp; The manager is giving up an out in order to advance
the base runner (this is a &lt;strong&gt;very&lt;/strong&gt; tactical move).&amp;nbsp; Similarly,
the manager may give the runner on base the "steal" or the "hold" sign or the "green
light" to steal if they feel comfortable doing so.&amp;nbsp; These choices are not as
obvious as they may seem, the manager may chose to give &lt;strong&gt;not&lt;/strong&gt; have
the base runner the steal sign even if he is very good at stealing because it might
prematurely end the inning.&amp;nbsp; Nothing is worse than taking the bat out of your
best players' hands by ending the inning on a failed steal attempt.
&lt;/p&gt;
&lt;h5&gt;Strategic during the game
&lt;/h5&gt;
&lt;p&gt;
The manager must also think strategically during the course of the game.&amp;nbsp; The
strategic decisions start actually before the game begins, when the manager fills
out the line-up card.&amp;nbsp; The line-up card is the list of 9 players (or 10 players
in American League Baseball) that will start the game and what positions that they
play.&amp;nbsp; There are a lot of factors that play into the line-up cards on any given
day: the opposing pitcher, the historic match-ups, etc.&amp;nbsp; As the game goes on,
there a limited number of players available to the manager during the game for substitutions
(25 total players for most of the season and up to 40 for the last month of the season).&amp;nbsp;
The manager must make sure that the best players are on the field at any given time,
but they cannot replace players constantly during the game, because unlike many other
sports, once a player leaves a baseball game they can not return.&amp;nbsp; As the game
goes on the manager must know when to replace players for fresh players or specialist
(pinch runners who are fast, or players who are better at defense).
&lt;/p&gt;
&lt;h5&gt;Strategic beyond the game
&lt;/h5&gt;
&lt;p&gt;
Baseball has a very long season with many games (more than twice as many games as
most other sports).&amp;nbsp; The manager must remember this as they are making decisions.&amp;nbsp;
The manager must make sure to give most players a day off here and there throughout
the season (there are a few super human players that never need a day off).&amp;nbsp;
The manager must also be careful to not over use the starting pitchers or the relief
pitchers during a game, as it can be costly to make the wrong decision.
&lt;/p&gt;
&lt;h5&gt;Software Architects: the balance between strategic and tactical
&lt;/h5&gt;
&lt;p&gt;
Like the manager making the scorecard, the architect must make a lot of decisions
before the game (or construction) even begins.&amp;nbsp; Scope is negotiated, technologies
selected and proof of concepts identified and executed.&amp;nbsp; Once the work actually
begins, there are dozens of tactical decisions that must be made, but the strategic
goals needs to be assessed.&amp;nbsp; Communication is very key as these decisions are
being made.&amp;nbsp; The manager in baseball has to give signals to the batter, catcher
or base runner.&amp;nbsp; The software architect also has to communicate to the team members
effectively so they understand what to do tactically, but he also needs to impart
the strategic thought as well (so actually we have it tougher than the baseball manager).&amp;nbsp;&amp;nbsp;
You also have to get the most out of the development team (even if they don't report
to you directly).&amp;nbsp; There is a great quote by one of my favorite baseball managers
that talk about this:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
I don't think a manager should be judged by whether he wins the pennant, but by whether
he gets the most out of the twenty-five men he's been given. - &lt;a href="http://en.wikipedia.org/wiki/Chuck_Tanner"&gt;Chuck
Tanner&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;h5&gt;There is no book in baseball or software architecture
&lt;/h5&gt;
&lt;p&gt;
Many of the tactical decisions that I talked about have "conventional wisdom" answers
to them.&amp;nbsp; For example, man on first with 0 or 1 outs and the pitcher up to bat,
the pitcher should bunt.&amp;nbsp; This style of management is called "by the book", which
is a reference to a mythical set of rules that contain the answers to all situations.&amp;nbsp;
You can imagine the software architecture equivalent.&amp;nbsp; If it is a function that
is needed by more than one platform, or is called by 3 or more applications, it must
be implemented as a SOAP Web Service.&amp;nbsp; That may apply is &lt;em&gt;many&lt;/em&gt; or even &lt;em&gt;most &lt;/em&gt;situations,
but there is no book of rules to follow in software architecture.&amp;nbsp; There is another
quote that fits this notion as well:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
"The Book is nothing but a piece of garbage. My book is me." - &lt;a href="http://en.wikipedia.org/wiki/Chuck_Tanner"&gt;Chuck
Tanner&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt;</description>
      <comments>http://eraserandcrowbar.com/CommentView,guid,5aa7281b-d429-4803-9cd6-5ab6d2fef7d6.aspx</comments>
      <category>Architecture by Baseball</category>
    </item>
    <item>
      <trackback:ping>http://eraserandcrowbar.com/Trackback.aspx?guid=c47a80a3-8d0b-419c-ba28-80f855b9c486</trackback:ping>
      <pingback:server>http://eraserandcrowbar.com/pingback.aspx</pingback:server>
      <pingback:target>http://eraserandcrowbar.com/PermaLink,guid,c47a80a3-8d0b-419c-ba28-80f855b9c486.aspx</pingback:target>
      <dc:creator>Larry Clarkin</dc:creator>
      <wfw:comment>http://eraserandcrowbar.com/CommentView,guid,c47a80a3-8d0b-419c-ba28-80f855b9c486.aspx</wfw:comment>
      <wfw:commentRss>http://eraserandcrowbar.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c47a80a3-8d0b-419c-ba28-80f855b9c486</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div style="float: right; margin-bottom: 10px; margin-left: 10px">
          <a title="Third Base Coach" href="http://www.flickr.com/photos/jodieandlarry/2551374894/">
            <img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Third Base Coach" src="http://farm4.static.flickr.com/3007/2551374894_3cf6266f93_m.jpg" />
          </a>
          <br />
          <a href="http://www.flickr.com/photos/jodieandlarry/2551374894/">Third Base Coach</a>
        </div>
        <p>
This is the fourth in a <a href="http://larryclarkin.com/CategoryView,category,Architecture%2Bby%2BBaseball.aspx">series
of blog posts</a> about how we can learn about software architecture by studying and
comparing it to the sport of <a href="http://en.wikipedia.org/wiki/Baseball">Baseball</a>. 
This series was inspired by the book <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;tag=larcalsblo-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Management
by Baseball</a>.
</p>
        <p>
Coaches in baseball are unique in a couple of ways compared to the coaches in other
sports.  One of the most obvious differences is that in baseball, the coaches
actually wear the team uniform.  I personally cannot think of another sport where
this is the case.  In some other sports the coaches actually have to comply with
a dress code that is vastly different than the players (I think it is the NBA that
requires the coaches to wear coat and tie when they are at court side).  Not
only do the coaches in baseball wear the team uniform, but they are assigned a number
just like the players on the field.  The coach is really a part of the team.
</p>
        <p>
Another key difference between coaches in baseball and coaches in other sports is
that two of the coaches in baseball are actually allowed on the field of play during
the game.  On the first base and third base lines there are two coach's boxes
where the team can choose to have a coach positioned during the game.  
</p>
        <p>
There is a distinction between this and other sports that allow coaches on the sidelines
(such as soccer, football and basketball).  When a coach is on the sidelines
in those sports, they are totally out of the field of play.  A ball that leaves
the field of play is dead.  In baseball the foul territory where the coaches
stand is still in play, so a player can catch a foul ball in the coaches box and the
batter will be out.  A ball can be overthrown during a play and hit a coach,
interfering with the play; there are even special rules that govern when this happens
- which is not very often, because the coaches are usually pretty good about getting
out of the way.
</p>
        <div style="float: left; margin-bottom: 10px; margin-right: 10px">
          <a title="Coach" href="http://www.flickr.com/photos/jodieandlarry/2554714006/">
            <img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Coach" src="http://farm4.static.flickr.com/3072/2554714006_228d1c5de8_m.jpg" />
          </a>
          <br />
          <a href="http://www.flickr.com/photos/jodieandlarry/2554714006/">Coach</a>
        </div>
        <p>
The coaches in baseball are literally feet away from the action and are able to interact
with the players in a deep and meaningful way.  When a player reaches first base
or third base safely the coach can give him encouragement and intelligence about how
the pitcher is delivering the ball to the plate.  This can help the player decide
if this is a good time to attempt to steal a base or take only a short lead off of
the bag (to avoid a pickoff move).
</p>
        <p>
The third base coach is an integral part of the action when there is a man on base
and there is a ball hit deep into the gap or down the lines in the outfield. 
As the runner on the base is rounding third a split second decision has to be made
to send the runner to home or to have him hold up on third base.  The player
is in the worst position to make this decision, as his back is to the outfield. 
The third base coach is the one who makes the decision to send the runner or not. 
If you have ever been to a game in person, nothing is more dramatic that seeing the
third base coach swing his arm wildly, followed by a close play at the plate.
</p>
        <h5>So what can we as software architects learn from the coaches in baseball?
</h5>
        <div style="float: right; margin-bottom: 10px; margin-left: 10px">
          <a title="Knuckles at third" href="http://www.flickr.com/photos/jodieandlarry/2554690848/">
            <img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Knuckles at third" src="http://farm4.static.flickr.com/3154/2554690848_98599860fc_m.jpg" />
          </a>
          <br />
          <a href="http://www.flickr.com/photos/jodieandlarry/2554690848/">Knuckles at third</a>
        </div>
        <p>
          <strong>Wear the Uniform -</strong> Often times I see people make too much of a distinction
between the architect and the developers who are working on a software development
project.  This can manifest itself in a lot of ways, and many of them are bad. 
The role of the architect is different than the role of the developer, but they should
be seen as one cohesive team.  This statement applies equally well to the designers,
testers, DBAs, server tech and project managers on the team as well.
</p>
        <p>
          <strong>Be a part of the action</strong> - Architects are sometimes referred to as
Ivory Tower dwellers.  Sometimes this is meant as a joke, sometimes is a half-joke
and other times it is just downright true.  As an architect we should strive
to be as close to the field of play as possible.  The perception when you are
away from the field of play is very skewed.  Get out of the Ivory Tower (maybe
press box is a better analogy) and get into the coach's box.
</p>
        <p>
          <strong>Be a coach -</strong> One of the things that I did not note in particular
when talking about the coaches is that most of them are former professional ball players
themselves (I don't think that is unique to baseball coaches).  They bring with
them years of experience that they can impart to the players them are coaching. 
Most of us who carry architect in our title were at one time developers ourselves
and as a result, we carry with us many years of experience.  In addition to architecting
the application, we can make the team more successful by sharing our knowledge with
the team.  
</p>
        <br clear="all" />
      </body>
      <title>Architecture By Baseball: Coaches</title>
      <guid isPermaLink="false">http://eraserandcrowbar.com/PermaLink,guid,c47a80a3-8d0b-419c-ba28-80f855b9c486.aspx</guid>
      <link>http://eraserandcrowbar.com/2008/06/11/ArchitectureByBaseballCoaches.aspx</link>
      <pubDate>Wed, 11 Jun 2008 03:59:54 GMT</pubDate>
      <description>&lt;div style="float: right; margin-bottom: 10px; margin-left: 10px"&gt;&lt;a title="Third Base Coach" href="http://www.flickr.com/photos/jodieandlarry/2551374894/"&gt;&lt;img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Third Base Coach" src="http://farm4.static.flickr.com/3007/2551374894_3cf6266f93_m.jpg"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.flickr.com/photos/jodieandlarry/2551374894/"&gt;Third Base Coach&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
This is the fourth in a &lt;a href="http://larryclarkin.com/CategoryView,category,Architecture%2Bby%2BBaseball.aspx"&gt;series
of blog posts&lt;/a&gt; about how we can learn about software architecture by studying and
comparing it to the sport of &lt;a href="http://en.wikipedia.org/wiki/Baseball"&gt;Baseball&lt;/a&gt;.&amp;nbsp;
This series was inspired by the book &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;amp;tag=larcalsblo-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Management
by Baseball&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Coaches in baseball are unique in a couple of ways compared to the coaches in other
sports.&amp;nbsp; One of the most obvious differences is that in baseball, the coaches
actually wear the team uniform.&amp;nbsp; I personally cannot think of another sport where
this is the case.&amp;nbsp; In some other sports the coaches actually have to comply with
a dress code that is vastly different than the players (I think it is the NBA that
requires the coaches to wear coat and tie when they are at court side).&amp;nbsp; Not
only do the coaches in baseball wear the team uniform, but they are assigned a number
just like the players on the field.&amp;nbsp; The coach is really a part of the team.
&lt;/p&gt;
&lt;p&gt;
Another key difference between coaches in baseball and coaches in other sports is
that two of the coaches in baseball are actually allowed on the field of play during
the game.&amp;nbsp; On the first base and third base lines there are two coach's boxes
where the team can choose to have a coach positioned during the game.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
There is a distinction between this and other sports that allow coaches on the sidelines
(such as soccer, football and basketball).&amp;nbsp; When a coach is on the sidelines
in those sports, they are totally out of the field of play.&amp;nbsp; A ball that leaves
the field of play is dead.&amp;nbsp; In baseball the foul territory where the coaches
stand is still in play, so a player can catch a foul ball in the coaches box and the
batter will be out.&amp;nbsp; A ball can be overthrown during a play and hit a coach,
interfering with the play; there are even special rules that govern when this happens
- which is not very often, because the coaches are usually pretty good about getting
out of the way.
&lt;/p&gt;
&lt;div style="float: left; margin-bottom: 10px; margin-right: 10px"&gt;&lt;a title="Coach" href="http://www.flickr.com/photos/jodieandlarry/2554714006/"&gt;&lt;img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Coach" src="http://farm4.static.flickr.com/3072/2554714006_228d1c5de8_m.jpg"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.flickr.com/photos/jodieandlarry/2554714006/"&gt;Coach&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
The coaches in baseball are literally feet away from the action and are able to interact
with the players in a deep and meaningful way.&amp;nbsp; When a player reaches first base
or third base safely the coach can give him encouragement and intelligence about how
the pitcher is delivering the ball to the plate.&amp;nbsp; This can help the player decide
if this is a good time to attempt to steal a base or take only a short lead off of
the bag (to avoid a pickoff move).
&lt;/p&gt;
&lt;p&gt;
The third base coach is an integral part of the action when there is a man on base
and there is a ball hit deep into the gap or down the lines in the outfield.&amp;nbsp;
As the runner on the base is rounding third a split second decision has to be made
to send the runner to home or to have him hold up on third base.&amp;nbsp; The player
is in the worst position to make this decision, as his back is to the outfield.&amp;nbsp;
The third base coach is the one who makes the decision to send the runner or not.&amp;nbsp;
If you have ever been to a game in person, nothing is more dramatic that seeing the
third base coach swing his arm wildly, followed by a close play at the plate.
&lt;/p&gt;
&lt;h5&gt;So what can we as software architects learn from the coaches in baseball?
&lt;/h5&gt;
&lt;div style="float: right; margin-bottom: 10px; margin-left: 10px"&gt;&lt;a title="Knuckles at third" href="http://www.flickr.com/photos/jodieandlarry/2554690848/"&gt;&lt;img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Knuckles at third" src="http://farm4.static.flickr.com/3154/2554690848_98599860fc_m.jpg"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.flickr.com/photos/jodieandlarry/2554690848/"&gt;Knuckles at third&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;Wear the Uniform -&lt;/strong&gt; Often times I see people make too much of a distinction
between the architect and the developers who are working on a software development
project.&amp;nbsp; This can manifest itself in a lot of ways, and many of them are bad.&amp;nbsp;
The role of the architect is different than the role of the developer, but they should
be seen as one cohesive team.&amp;nbsp; This statement applies equally well to the designers,
testers, DBAs, server tech and project managers on the team as well.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Be a part of the action&lt;/strong&gt; - Architects are sometimes referred to as
Ivory Tower dwellers.&amp;nbsp; Sometimes this is meant as a joke, sometimes is a half-joke
and other times it is just downright true.&amp;nbsp; As an architect we should strive
to be as close to the field of play as possible.&amp;nbsp; The perception when you are
away from the field of play is very skewed.&amp;nbsp; Get out of the Ivory Tower (maybe
press box is a better analogy) and get into the coach's box.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Be a coach -&lt;/strong&gt; One of the things that I did not note in particular
when talking about the coaches is that most of them are former professional ball players
themselves (I don't think that is unique to baseball coaches).&amp;nbsp; They bring with
them years of experience that they can impart to the players them are coaching.&amp;nbsp;
Most of us who carry architect in our title were at one time developers ourselves
and as a result, we carry with us many years of experience.&amp;nbsp; In addition to architecting
the application, we can make the team more successful by sharing our knowledge with
the team.&amp;nbsp; 
&lt;/p&gt;
&lt;br clear="all"&gt;</description>
      <comments>http://eraserandcrowbar.com/CommentView,guid,c47a80a3-8d0b-419c-ba28-80f855b9c486.aspx</comments>
      <category>Architecture by Baseball</category>
    </item>
    <item>
      <trackback:ping>http://eraserandcrowbar.com/Trackback.aspx?guid=731e9cf1-5cf9-48fd-a905-bd17301ad41b</trackback:ping>
      <pingback:server>http://eraserandcrowbar.com/pingback.aspx</pingback:server>
      <pingback:target>http://eraserandcrowbar.com/PermaLink,guid,731e9cf1-5cf9-48fd-a905-bd17301ad41b.aspx</pingback:target>
      <dc:creator>Larry Clarkin</dc:creator>
      <wfw:comment>http://eraserandcrowbar.com/CommentView,guid,731e9cf1-5cf9-48fd-a905-bd17301ad41b.aspx</wfw:comment>
      <wfw:commentRss>http://eraserandcrowbar.com/SyndicationService.asmx/GetEntryCommentsRss?guid=731e9cf1-5cf9-48fd-a905-bd17301ad41b</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div style="margin: 10px" align="center">
          <a title="Cubs vs Padres May 14, 2008" href="http://www.flickr.com/photos/anthony808/2502636709/">
            <img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Cubs vs Padres May 14, 2008" src="http://larryclarkin.com/images/ArchitectureByBaseballGroundRules_5B93/2502636709_e250e0ca15_thumb.jpg" />
          </a>
          <br />
          <a href="http://www.flickr.com/photos/anthony808/2502636709/">Cubs vs Padres May 14,
2008</a> By <a href="http://www.flickr.com/people/anthony808/">Anthony Handley</a>,
used with permission
</div>
        <p>
This is the third in a <a href="http://larryclarkin.com/CategoryView,category,Architecture%2Bby%2BBaseball.aspx">series
of blog posts</a> about how we can learn about software architecture by studying and
comparing it to the sport of <a href="http://en.wikipedia.org/wiki/Baseball">Baseball</a>. 
This series was inspired by the book <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;tag=larcalsblo-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Management
by Baseball</a>.
</p>
        <p>
One of the most interesting aspects of baseball is that it is the only sport where
the field of play varies so widely.  Most sports have a very uniform field of
play that does not vary from stadium to stadium (a football field is always 100 yards
long and a basketball rim is always 10 feet above the floor).  One of the reasons
I like baseball so much is the charm that the ballparks have with their unique dimensions. 
Sure basketball and baseball are played in stadiums and arenas that are different
sizes and shapes, but that really does not affect the field of play like it does in
baseball.
</p>
        <p>
The quirks found in the ballparks themselves can lead to some interesting occurrences. 
For instance the ivy that grows on the outfield walls at <a href="http://en.wikipedia.org/wiki/Wrigley_field">Wrigley
Field</a> in Chicago, IL will often swallow up a ball so that the outfielder cannot
make a play on it.  The flag pole in center field at <a href="http://en.wikipedia.org/wiki/Astros_Field">Minute
Maid Park</a> in Houston, TX is actually in fair territory and any ball hit off of
it is considered to be still in play (A few years ago this turned a 400+ foot home
run by <a href="http://en.wikipedia.org/wiki/Richie_Sexson">Richie Sexson</a> into
a very long single).  Ballparks with roofs also present interesting scenarios
as well, like what happens if the ball actually hits the roof?  All these quirks
have led to a class of rules know as <a href="http://en.wikipedia.org/wiki/Ground_rules_%28baseball%29">Ground
Rules</a>.  Some ground rules are the same no matter where the game is being
played; other rules are specific to that ballpark.  If you are ever at the first
game of a series, you will notice that the umpires spend a couple of extra minutes
with the manager of the visiting team, making sure that they are aware of the ballpark's
ground rules.
</p>
        <h5>What are the ground rules in architecture?
</h5>
        <p>
Often time you think of software architecture as a universal discipline.  We
have a set of design patterns that we study and use (sometimes we use them weather
we know it or not).  Most software is built on a few platforms (mainframe, midrange,
UNIX/Linux, Apple, Windows) and we all rely upon a set of standards that are pretty
much Universal (TCP/IP, HTTP, Telnet, etc).  One of the real benefits of this
is that from a software architecture perspective we can easily move from organization
to organization and our skills can be applied pretty quickly, as long as we learn
the <strong>ground rules</strong> of the industry and organization.
</p>
        <p>
Ground rules in software architecture are anything that is specific to the organization
(or the industry), as opposed to universal to our discipline.  One of the first
questions I usually ask a customer when I talk to them is about their propensity to <a href="http://larryclarkin.com/2008/05/18/PleaseDontCallItBuildVersusBuy.aspx">build
or buy then build</a>.  Does the organization have a mix of desktop and web applications
or do they only build web applications?  Do they prefer Java or .NET?  Are
there industry standard data formats like <a href="http://www.acord.org">ACORD</a> that
they must use?  Are their regulations like <a href="http://en.wikipedia.org/wiki/GLBA">GLB</a> or <a href="http://en.wikipedia.org/wiki/HIPAA">HIPAA</a> that
they must comply with?
</p>
        <p>
Each of these items has nothing to do with the pure discipline of software architecture,
but they are things that will affect the design of any system that you will create. 
Not knowing the ground rules can greatly impact the solutions that you create, are
can even lead to you being "called out".  When you start working with a new organization,
you should strive to quickly get a feel for the ground rules.
</p>
        <h5>Can ground rules be changed?
</h5>
        <p>
Some of the examples I mentioned can be changed.  An organization that purchases
packaged based systems could decide to build a solution from scratch (and the converse
is true as well).  A Java shop can decide to try .NET on a new application. 
Other ground rules cannot be changed, for example a bank cannot decide to ignore GLB. 
In general it will be a significant effort to change a ground rule, so approach trying
to change a ground rule with caution, and be prepared to invest a lot of time in the
change.
</p>
      </body>
      <title>Architecture By Baseball: Ground Rules</title>
      <guid isPermaLink="false">http://eraserandcrowbar.com/PermaLink,guid,731e9cf1-5cf9-48fd-a905-bd17301ad41b.aspx</guid>
      <link>http://eraserandcrowbar.com/2008/05/20/ArchitectureByBaseballGroundRules.aspx</link>
      <pubDate>Tue, 20 May 2008 03:45:46 GMT</pubDate>
      <description>&lt;div style="margin: 10px" align="center"&gt;&lt;a title="Cubs vs Padres May 14, 2008" href="http://www.flickr.com/photos/anthony808/2502636709/"&gt;&lt;img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Cubs vs Padres May 14, 2008" src="http://larryclarkin.com/images/ArchitectureByBaseballGroundRules_5B93/2502636709_e250e0ca15_thumb.jpg"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.flickr.com/photos/anthony808/2502636709/"&gt;Cubs vs Padres May 14,
2008&lt;/a&gt; By &lt;a href="http://www.flickr.com/people/anthony808/"&gt;Anthony Handley&lt;/a&gt;,
used with permission
&lt;/div&gt;
&lt;p&gt;
This is the third in a &lt;a href="http://larryclarkin.com/CategoryView,category,Architecture%2Bby%2BBaseball.aspx"&gt;series
of blog posts&lt;/a&gt; about how we can learn about software architecture by studying and
comparing it to the sport of &lt;a href="http://en.wikipedia.org/wiki/Baseball"&gt;Baseball&lt;/a&gt;.&amp;nbsp;
This series was inspired by the book &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;amp;tag=larcalsblo-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Management
by Baseball&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
One of the most interesting aspects of baseball is that it is the only sport where
the field of play varies so widely.&amp;nbsp; Most sports have a very uniform field of
play that does not vary from stadium to stadium (a football field is always 100 yards
long and a basketball rim is always 10 feet above the floor).&amp;nbsp; One of the reasons
I like baseball so much is the charm that the ballparks have with their unique dimensions.&amp;nbsp;
Sure basketball and baseball are played in stadiums and arenas that are different
sizes and shapes, but that really does not affect the field of play like it does in
baseball.
&lt;/p&gt;
&lt;p&gt;
The quirks found in the ballparks themselves can lead to some interesting occurrences.&amp;nbsp;
For instance the ivy that grows on the outfield walls at &lt;a href="http://en.wikipedia.org/wiki/Wrigley_field"&gt;Wrigley
Field&lt;/a&gt; in Chicago, IL will often swallow up a ball so that the outfielder cannot
make a play on it.&amp;nbsp; The flag pole in center field at &lt;a href="http://en.wikipedia.org/wiki/Astros_Field"&gt;Minute
Maid Park&lt;/a&gt; in Houston, TX is actually in fair territory and any ball hit off of
it is considered to be still in play (A few years ago this turned a 400+ foot home
run by &lt;a href="http://en.wikipedia.org/wiki/Richie_Sexson"&gt;Richie Sexson&lt;/a&gt; into
a very long single).&amp;nbsp; Ballparks with roofs also present interesting scenarios
as well, like what happens if the ball actually hits the roof?&amp;nbsp; All these quirks
have led to a class of rules know as &lt;a href="http://en.wikipedia.org/wiki/Ground_rules_%28baseball%29"&gt;Ground
Rules&lt;/a&gt;.&amp;nbsp; Some ground rules are the same no matter where the game is being
played; other rules are specific to that ballpark.&amp;nbsp; If you are ever at the first
game of a series, you will notice that the umpires spend a couple of extra minutes
with the manager of the visiting team, making sure that they are aware of the ballpark's
ground rules.
&lt;/p&gt;
&lt;h5&gt;What are the ground rules in architecture?
&lt;/h5&gt;
&lt;p&gt;
Often time you think of software architecture as a universal discipline.&amp;nbsp; We
have a set of design patterns that we study and use (sometimes we use them weather
we know it or not).&amp;nbsp; Most software is built on a few platforms (mainframe, midrange,
UNIX/Linux, Apple, Windows) and we all rely upon a set of standards that are pretty
much Universal (TCP/IP, HTTP, Telnet, etc).&amp;nbsp; One of the real benefits of this
is that from a software architecture perspective we can easily move from organization
to organization and our skills can be applied pretty quickly, as long as we learn
the &lt;strong&gt;ground rules&lt;/strong&gt; of the industry and organization.
&lt;/p&gt;
&lt;p&gt;
Ground rules in software architecture are anything that is specific to the organization
(or the industry), as opposed to universal to our discipline.&amp;nbsp; One of the first
questions I usually ask a customer when I talk to them is about their propensity to &lt;a href="http://larryclarkin.com/2008/05/18/PleaseDontCallItBuildVersusBuy.aspx"&gt;build
or buy then build&lt;/a&gt;.&amp;nbsp; Does the organization have a mix of desktop and web applications
or do they only build web applications?&amp;nbsp; Do they prefer Java or .NET?&amp;nbsp; Are
there industry standard data formats like &lt;a href="http://www.acord.org"&gt;ACORD&lt;/a&gt; that
they must use?&amp;nbsp; Are their regulations like &lt;a href="http://en.wikipedia.org/wiki/GLBA"&gt;GLB&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/HIPAA"&gt;HIPAA&lt;/a&gt; that
they must comply with?
&lt;/p&gt;
&lt;p&gt;
Each of these items has nothing to do with the pure discipline of software architecture,
but they are things that will affect the design of any system that you will create.&amp;nbsp;
Not knowing the ground rules can greatly impact the solutions that you create, are
can even lead to you being "called out".&amp;nbsp; When you start working with a new organization,
you should strive to quickly get a feel for the ground rules.
&lt;/p&gt;
&lt;h5&gt;Can ground rules be changed?
&lt;/h5&gt;
&lt;p&gt;
Some of the examples I mentioned can be changed.&amp;nbsp; An organization that purchases
packaged based systems could decide to build a solution from scratch (and the converse
is true as well).&amp;nbsp; A Java shop can decide to try .NET on a new application.&amp;nbsp;
Other ground rules cannot be changed, for example a bank cannot decide to ignore GLB.&amp;nbsp;
In general it will be a significant effort to change a ground rule, so approach trying
to change a ground rule with caution, and be prepared to invest a lot of time in the
change.
&lt;/p&gt;</description>
      <comments>http://eraserandcrowbar.com/CommentView,guid,731e9cf1-5cf9-48fd-a905-bd17301ad41b.aspx</comments>
      <category>Architecture by Baseball</category>
    </item>
    <item>
      <trackback:ping>http://eraserandcrowbar.com/Trackback.aspx?guid=8faf773e-7e05-4510-b8f8-d01b1b72a1bd</trackback:ping>
      <pingback:server>http://eraserandcrowbar.com/pingback.aspx</pingback:server>
      <pingback:target>http://eraserandcrowbar.com/PermaLink,guid,8faf773e-7e05-4510-b8f8-d01b1b72a1bd.aspx</pingback:target>
      <dc:creator>Larry Clarkin</dc:creator>
      <wfw:comment>http://eraserandcrowbar.com/CommentView,guid,8faf773e-7e05-4510-b8f8-d01b1b72a1bd.aspx</wfw:comment>
      <wfw:commentRss>http://eraserandcrowbar.com/SyndicationService.asmx/GetEntryCommentsRss?guid=8faf773e-7e05-4510-b8f8-d01b1b72a1bd</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div style="float: right; margin-bottom: 10px; margin-left: 10px">
          <a title="Craig Counsell at third base" href="http://www.flickr.com/photos/jodieandlarry/469291160/">
            <img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Craig Counsell at third base" src="http://farm1.static.flickr.com/187/469291160_e3917fc800_m.jpg" />
          </a>
          <br />
          <a href="http://www.flickr.com/photos/jodieandlarry/469291160/">Craig Counsell at
third base</a>
        </div>
        <p>
This is the second in a <a href="http://larryclarkin.com/CategoryView,category,Architecture%2Bby%2BBaseball.aspx">series
of blog posts</a> about how we can learn about software architecture by studying and
comparing it to the sport of <a href="http://en.wikipedia.org/wiki/Baseball">Baseball</a>. 
This series was inspired by the book <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;tag=larcalsblo-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Management
by Baseball</a>.
</p>
        <p>
In baseball a <a href="http://en.wikipedia.org/wiki/Utility_player">Utility Player</a> is
one that can several positions well.  In baseball there are 9 distinct defensive
positions, each requiring a slightly different skill set.  There is some overlap
between the positions (for instance a good right fielder will have many of the skills
required to play left field).  But some positions require a vastly different
skill set (such as catcher and center fielder).  Often times you will hear about
a "utility infielder"; a player who can play 3rd base, 2nd base and shortstop. 
You will also hear about a "utility outfielder"; a player who can play any of the
3 outfield positions: Left fielder, Right Fielder and Center Fielder.  There
are rare players that have the skills and experience that allow them to play all 8
defensive positions (all save the pitcher which is a highly specialized position). 
And there are even instances of players who have played all 9 positions (sometimes
in the same game, but that has generally been more of a stunt).
</p>
        <p>
Because there are a limited number of players that a team can have on the roster at
a given time (25 players for the majority of the season and 40 players during the
tail end of the season) a team needs to have a few players that can play more than
one position.  A player that can only play one position may be a valuable player,
but they limit the flexibility of the team when it comes to making changes, especially
late in the ball game.  Often times these one position players will make up for
the defensive inflexibility by shining at the plate.  You will often see these
players on first base and in left field, because these positions are thought of as
being the easier positions to play.
</p>
        <h5>What is a utility architect?
</h5>
        <p>
In the <a href="http://larryclarkin.com/2008/04/21/ArchitectureByBaseball5ToolArchitect.aspx">first
blog post</a> in this series, I described the 5 general skills that an architect should
have (Business Process, Software Design, Software Development, Infrastructure and
Communication).  I was focused on general skills required, but not on the various
specializations that an architect can play.  You are probably familiar with some
of these specializations and might even be able to find some of these on business
cards running around your organization:
</p>
        <ul>
          <li>
            <strong>Software Architect</strong> - Someone who specializes in designing the custom
written code in a solution</li>
          <li>
            <strong>Data Architect</strong> - Someone who specializes in designing the database
(or other data storage system) in a solution</li>
          <li>
            <strong>Infrastructure Architect</strong> - Someone who designs the portions of the
solution that are closer to the physical implementation.  For example the directory
layout.</li>
          <li>
            <strong>Network Architect</strong> - Someone who designs the data transfer portions
of the solution</li>
          <li>
            <strong>User Interface Architect</strong> - Someone who architects the flow of the
system for the user perspective.  You may be skeptical about this one, but these
architects to exist, I met several of them last year when we did our <a href="http://arcready.com">ArcReady</a> event
on User Experience.</li>
          <li>
            <strong>&lt;Insert Technology Name Here&gt; Architect</strong> - there is a whole
litany of architects who align themselves to a particular technology.  If you
don't believe me, go do a search job descriptions for <a href="http://search.live.com/results.aspx?q=%22job+description%22+%22.net+architect%22&amp;form=QBRE">.NET
Architect</a>, <a href="http://search.live.com/results.aspx?q=%22job+description%22+%22SAP+architect%22&amp;form=QBRE">SAP
Architect</a> or <a href="http://search.live.com/results.aspx?q=%22job+description%22+%22java+architect%22&amp;form=QBRE">Java
Architect</a> and see the results that you will get.</li>
        </ul>
        <p>
A utility architect is someone who can play more than one of these specializations
reasonably well.  For instance they may be really good at software architecture,
but they can also design databases or design the infrastructure for the solution. 
Or more likely, they are going to be a true software architect and be able to design
a system in Java or Ruby on Rails as well as they would on .NET.  Being competent
in more than one specialization increases your flexibility to the organization, because
you can be used in more than one capacity.  This is good in a large organization,
but invaluable in a smaller organization.
</p>
        <p>
I personally think that all architects should strive to be a utility architect and
not just specialize in doing only one thing.  The antithesis of this is an organization
that requires a room full of architects in order to decide anything.  I personally
experienced this years ago when I got on a conference call about a network issue. 
The person that I talked to had introduced himself as a "<a href="http://en.wikipedia.org/wiki/OSI_model#Layer_3:_Network_layer">Layer
3 Architect</a>" a reference to the <a href="http://en.wikipedia.org/wiki/OSI_model">OSI
Model</a> (if you recall that).  We determined that the issue was probably caused
by a firewall configuration problem, I told him the ports that he needed to check. 
He stopped me mid-sentence and said "Stop there, we will need to get our firewall
architect involved in this issue and I just checked his schedule and he is not available
for another 2 days".
</p>
      </body>
      <title>Architecture by Baseball: The utility player</title>
      <guid isPermaLink="false">http://eraserandcrowbar.com/PermaLink,guid,8faf773e-7e05-4510-b8f8-d01b1b72a1bd.aspx</guid>
      <link>http://eraserandcrowbar.com/2008/05/07/ArchitectureByBaseballTheUtilityPlayer.aspx</link>
      <pubDate>Wed, 07 May 2008 19:56:41 GMT</pubDate>
      <description>&lt;div style="float: right; margin-bottom: 10px; margin-left: 10px"&gt;&lt;a title="Craig Counsell at third base" href="http://www.flickr.com/photos/jodieandlarry/469291160/"&gt;&lt;img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="Craig Counsell at third base" src="http://farm1.static.flickr.com/187/469291160_e3917fc800_m.jpg"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.flickr.com/photos/jodieandlarry/469291160/"&gt;Craig Counsell at
third base&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
This is the second in a &lt;a href="http://larryclarkin.com/CategoryView,category,Architecture%2Bby%2BBaseball.aspx"&gt;series
of blog posts&lt;/a&gt; about how we can learn about software architecture by studying and
comparing it to the sport of &lt;a href="http://en.wikipedia.org/wiki/Baseball"&gt;Baseball&lt;/a&gt;.&amp;nbsp;
This series was inspired by the book &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;amp;tag=larcalsblo-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Management
by Baseball&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
In baseball a &lt;a href="http://en.wikipedia.org/wiki/Utility_player"&gt;Utility Player&lt;/a&gt; is
one that can several positions well.&amp;nbsp; In baseball there are 9 distinct defensive
positions, each requiring a slightly different skill set.&amp;nbsp; There is some overlap
between the positions (for instance a good right fielder will have many of the skills
required to play left field).&amp;nbsp; But some positions require a vastly different
skill set (such as catcher and center fielder).&amp;nbsp; Often times you will hear about
a "utility infielder"; a player who can play 3rd base, 2nd base and shortstop.&amp;nbsp;
You will also hear about a "utility outfielder"; a player who can play any of the
3 outfield positions: Left fielder, Right Fielder and Center Fielder.&amp;nbsp; There
are rare players that have the skills and experience that allow them to play all 8
defensive positions (all save the pitcher which is a highly specialized position).&amp;nbsp;
And there are even instances of players who have played all 9 positions (sometimes
in the same game, but that has generally been more of a stunt).
&lt;/p&gt;
&lt;p&gt;
Because there are a limited number of players that a team can have on the roster at
a given time (25 players for the majority of the season and 40 players during the
tail end of the season) a team needs to have a few players that can play more than
one position.&amp;nbsp; A player that can only play one position may be a valuable player,
but they limit the flexibility of the team when it comes to making changes, especially
late in the ball game.&amp;nbsp; Often times these one position players will make up for
the defensive inflexibility by shining at the plate.&amp;nbsp; You will often see these
players on first base and in left field, because these positions are thought of as
being the easier positions to play.
&lt;/p&gt;
&lt;h5&gt;What is a utility architect?
&lt;/h5&gt;
&lt;p&gt;
In the &lt;a href="http://larryclarkin.com/2008/04/21/ArchitectureByBaseball5ToolArchitect.aspx"&gt;first
blog post&lt;/a&gt; in this series, I described the 5 general skills that an architect should
have (Business Process, Software Design, Software Development, Infrastructure and
Communication).&amp;nbsp; I was focused on general skills required, but not on the various
specializations that an architect can play.&amp;nbsp; You are probably familiar with some
of these specializations and might even be able to find some of these on business
cards running around your organization:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Software Architect&lt;/strong&gt; - Someone who specializes in designing the custom
written code in a solution&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Architect&lt;/strong&gt; - Someone who specializes in designing the database
(or other data storage system) in a solution&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infrastructure Architect&lt;/strong&gt; - Someone who designs the portions of the
solution that are closer to the physical implementation.&amp;nbsp; For example the directory
layout.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network Architect&lt;/strong&gt; - Someone who designs the data transfer portions
of the solution&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Interface Architect&lt;/strong&gt; - Someone who architects the flow of the
system for the user perspective.&amp;nbsp; You may be skeptical about this one, but these
architects to exist, I met several of them last year when we did our &lt;a href="http://arcready.com"&gt;ArcReady&lt;/a&gt; event
on User Experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&amp;lt;Insert Technology Name Here&amp;gt; Architect&lt;/strong&gt; - there is a whole
litany of architects who align themselves to a particular technology.&amp;nbsp; If you
don't believe me, go do a search job descriptions for &lt;a href="http://search.live.com/results.aspx?q=%22job+description%22+%22.net+architect%22&amp;amp;form=QBRE"&gt;.NET
Architect&lt;/a&gt;, &lt;a href="http://search.live.com/results.aspx?q=%22job+description%22+%22SAP+architect%22&amp;amp;form=QBRE"&gt;SAP
Architect&lt;/a&gt; or &lt;a href="http://search.live.com/results.aspx?q=%22job+description%22+%22java+architect%22&amp;amp;form=QBRE"&gt;Java
Architect&lt;/a&gt; and see the results that you will get.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
A utility architect is someone who can play more than one of these specializations
reasonably well.&amp;nbsp; For instance they may be really good at software architecture,
but they can also design databases or design the infrastructure for the solution.&amp;nbsp;
Or more likely, they are going to be a true software architect and be able to design
a system in Java or Ruby on Rails as well as they would on .NET.&amp;nbsp; Being competent
in more than one specialization increases your flexibility to the organization, because
you can be used in more than one capacity.&amp;nbsp; This is good in a large organization,
but invaluable in a smaller organization.
&lt;/p&gt;
&lt;p&gt;
I personally think that all architects should strive to be a utility architect and
not just specialize in doing only one thing.&amp;nbsp; The antithesis of this is an organization
that requires a room full of architects in order to decide anything.&amp;nbsp; I personally
experienced this years ago when I got on a conference call about a network issue.&amp;nbsp;
The person that I talked to had introduced himself as a "&lt;a href="http://en.wikipedia.org/wiki/OSI_model#Layer_3:_Network_layer"&gt;Layer
3 Architect&lt;/a&gt;" a reference to the &lt;a href="http://en.wikipedia.org/wiki/OSI_model"&gt;OSI
Model&lt;/a&gt; (if you recall that).&amp;nbsp; We determined that the issue was probably caused
by a firewall configuration problem, I told him the ports that he needed to check.&amp;nbsp;
He stopped me mid-sentence and said "Stop there, we will need to get our firewall
architect involved in this issue and I just checked his schedule and he is not available
for another 2 days".
&lt;/p&gt;</description>
      <comments>http://eraserandcrowbar.com/CommentView,guid,8faf773e-7e05-4510-b8f8-d01b1b72a1bd.aspx</comments>
      <category>Architecture by Baseball</category>
    </item>
    <item>
      <trackback:ping>http://eraserandcrowbar.com/Trackback.aspx?guid=16c7d8cd-9c0a-434e-899e-668b21ea8446</trackback:ping>
      <pingback:server>http://eraserandcrowbar.com/pingback.aspx</pingback:server>
      <pingback:target>http://eraserandcrowbar.com/PermaLink,guid,16c7d8cd-9c0a-434e-899e-668b21ea8446.aspx</pingback:target>
      <dc:creator>Larry Clarkin</dc:creator>
      <wfw:comment>http://eraserandcrowbar.com/CommentView,guid,16c7d8cd-9c0a-434e-899e-668b21ea8446.aspx</wfw:comment>
      <wfw:commentRss>http://eraserandcrowbar.com/SyndicationService.asmx/GetEntryCommentsRss?guid=16c7d8cd-9c0a-434e-899e-668b21ea8446</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div style="float: right; margin-bottom: 10px; margin-left: 10px">
          <a title="photo sharing" href="http://www.flickr.com/photos/jodieandlarry/172333879/">
            <img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="" src="http://farm1.static.flickr.com/62/172333879_545183b361_m.jpg" />
          </a>
          <br />
          <a href="http://www.flickr.com/photos/jodieandlarry/172333879/">Pudge on Deck</a>
        </div>
        <p>
This is the first in a <a href="http://larryclarkin.com/CategoryView,category,Architecture%2Bby%2BBaseball.aspx">series
of blog posts</a> about how we can learn about software architecture by studying and
comparing it to the sport of <a href="http://en.wikipedia.org/wiki/Baseball">Baseball</a>. 
This series was inspired by the book <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;tag=larcalsblo-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Management
by Baseball</a>.
</p>
        <p>
In baseball scouting one of the biggest compliments that a player can receive is to
be called a "5 tool player".  This is a reference to the skills that make up
a good, all around baseball player:
</p>
        <ol>
          <li>
            <strong>Hitting for power:</strong> When at the plate the player can hit the ball
with a lot of power, home runs and doubles are very common.  Runs Batted In (RBI)
and Total Bases (TB) are common stats to measure the power that a player shows. 
</li>
          <li>
            <strong>Hitting for average:</strong> Hitting for power is only one dimension of the
performance at the plate (sometimes a player that hits for power will strike out a
lot).  When a player hits for average, that means that they reach base more often
when they have a plate appearance.  Batting Average (BA) and On Base Percentage
(OBP) are common stats to measure how well the player does in this skill. 
</li>
          <li>
            <strong>Base running skills:</strong> How well does the player handle himself when
they reach base.  The obvious thought is how fast the player is in running between
bases, but many of the best base runners are not the fastest, they are smart about
the leads they take and are effective at breaking up a double play.  Stolen Bases
(SB) is the most common stat for this skill. 
</li>
          <li>
            <strong>Fielding:</strong> Good fielding is essential for a team to succeed. 
Sometimes players can be great at the plate, but will be called a "defensive liability"
meaning their fielding is sub-par.  Fielding Percentage and errors are 2 stats
to measure this tool. 
</li>
          <li>
            <strong>Throwing:</strong> how well does the player execute throws once they have
fielded the ball.  Double plays turned (for infielders) and Assists (for outfielders)
are stats for this skill.</li>
        </ol>
        <p>
When a player shows above average potential in all of these skill areas, he is considered
to be a "5 tool player" and will be highly sought after by major league teams.
</p>
        <h5>What are the 5 tools for a software architect?
</h5>
        <p>
Using the baseball term as my guide, I wanted to put together a list of the "5 tools"
that make up a good architect.  This exercise was actually a lot harder than
you might think.  Like many people I think that an architect needs to be a generalist
and as a result there are a 1001 things that a architect must need to know in order
to be a good architect.  Categorizing these into 5 tools was difficult. 
But here is the list that I came up with.
</p>
        <ol>
          <li>
            <strong>Business Process</strong> - Process is the way that we get things done. 
Software is becoming an increasingly integral part of business process, but it is
still only a small part of how things are accomplished.  Process is the "Bigger
picture" of software architecture.  Being able to understand how the software
solution fits into the overall business process is a critical skill to being a good
software architect.  The danger of not mastering the process is that the software
solution may be a masterpiece of software engineering, but may be totally useless
in the presence of the business problem (okay maybe not totally useless, but sub-optimal
for the time spent creating it). 
</li>
          <li>
            <strong>Software Design </strong>- This is the probably the most obvious of the architecture
tools - you have to be able to design a solution.  You might be surprised at
how many people who are otherwise brilliant software engineers have trouble designing
a software solution, or struggle with designing a solution so that it fits harmoniously
with the rest of the software ecosystem. 
</li>
          <li>
            <strong>Software Development</strong> - An architect must understand how to develop
software.  You don't have to spend 100% , 75% or even 50% of your time time actually
developing software in order to be an architect.  You do have to understand the
capabilities and limitations of your software environment. 
</li>
          <li>
            <strong>Infrastructure</strong> -  Infrastructure is the architectural foundation
of the enterprise and it is the plumbing that makes our software systems work. 
Because it is foundational it is often ignored in the same way that we ignore the
plumbing when we are walking around in a building.  However when you are designing
that building, you have to pay careful attention to it.  And just like other
foundational components infrastructure must be maintained and upgraded over time. 
A good architect knows how to leverage the infrastructure. 
</li>
          <li>
            <strong>Communication</strong> - I know there are some people who get to this point
and say "Bah - software development, infrastructure?  Where is the governance? 
Architects must know governance!"  Governance is important in architecture, but
the real value of governance is not in developing a governance strategy, but in communicating
the strategy and the importance of the strategy.  The ability to communicate
with the technical and the non-technical audience is probably the most important of
the 5 skills identified here.</li>
        </ol>
        <p>
          <strong>Note:</strong>  My colleague and friend <a href="http://designthinkingdigest.com/">Chris
Bernard</a>, who is Microsoft's User Experience Evangelist for the Central United
States, has written a follow-up post to this one where he talks about the <a href="http://designthinkingdigest.com/2008/05/the-five-tools.html">tools
that a designer needs</a>.
</p>
      </body>
      <title>Architecture by Baseball: 5 tool architect</title>
      <guid isPermaLink="false">http://eraserandcrowbar.com/PermaLink,guid,16c7d8cd-9c0a-434e-899e-668b21ea8446.aspx</guid>
      <link>http://eraserandcrowbar.com/2008/04/21/ArchitectureByBaseball5ToolArchitect.aspx</link>
      <pubDate>Mon, 21 Apr 2008 23:35:06 GMT</pubDate>
      <description>&lt;div style="float: right; margin-bottom: 10px; margin-left: 10px"&gt;&lt;a title="photo sharing" href="http://www.flickr.com/photos/jodieandlarry/172333879/"&gt;&lt;img style="border-right: #000000 2px solid; border-top: #000000 2px solid; border-left: #000000 2px solid; border-bottom: #000000 2px solid" alt="" src="http://farm1.static.flickr.com/62/172333879_545183b361_m.jpg"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.flickr.com/photos/jodieandlarry/172333879/"&gt;Pudge on Deck&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
This is the first in a &lt;a href="http://larryclarkin.com/CategoryView,category,Architecture%2Bby%2BBaseball.aspx"&gt;series
of blog posts&lt;/a&gt; about how we can learn about software architecture by studying and
comparing it to the sport of &lt;a href="http://en.wikipedia.org/wiki/Baseball"&gt;Baseball&lt;/a&gt;.&amp;nbsp;
This series was inspired by the book &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FManagement-Baseball-Official-Rules-Winning%2Fdp%2FB000MG1ZBK%2F&amp;amp;tag=larcalsblo-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Management
by Baseball&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
In baseball scouting one of the biggest compliments that a player can receive is to
be called a "5 tool player".&amp;nbsp; This is a reference to the skills that make up
a good, all around baseball player:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Hitting for power:&lt;/strong&gt; When at the plate the player can hit the ball
with a lot of power, home runs and doubles are very common.&amp;nbsp; Runs Batted In (RBI)
and Total Bases (TB) are common stats to measure the power that a player shows. 
&lt;li&gt;
&lt;strong&gt;Hitting for average:&lt;/strong&gt; Hitting for power is only one dimension of the
performance at the plate (sometimes a player that hits for power will strike out a
lot).&amp;nbsp; When a player hits for average, that means that they reach base more often
when they have a plate appearance.&amp;nbsp; Batting Average (BA) and On Base Percentage
(OBP) are common stats to measure how well the player does in this skill. 
&lt;li&gt;
&lt;strong&gt;Base running skills:&lt;/strong&gt; How well does the player handle himself when
they reach base.&amp;nbsp; The obvious thought is how fast the player is in running between
bases, but many of the best base runners are not the fastest, they are smart about
the leads they take and are effective at breaking up a double play.&amp;nbsp; Stolen Bases
(SB) is the most common stat for this skill. 
&lt;li&gt;
&lt;strong&gt;Fielding:&lt;/strong&gt; Good fielding is essential for a team to succeed.&amp;nbsp;
Sometimes players can be great at the plate, but will be called a "defensive liability"
meaning their fielding is sub-par.&amp;nbsp; Fielding Percentage and errors are 2 stats
to measure this tool. 
&lt;li&gt;
&lt;strong&gt;Throwing:&lt;/strong&gt; how well does the player execute throws once they have
fielded the ball.&amp;nbsp; Double plays turned (for infielders) and Assists (for outfielders)
are stats for this skill.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
When a player shows above average potential in all of these skill areas, he is considered
to be a "5 tool player" and will be highly sought after by major league teams.
&lt;/p&gt;
&lt;h5&gt;What are the 5 tools for a software architect?
&lt;/h5&gt;
&lt;p&gt;
Using the baseball term as my guide, I wanted to put together a list of the "5 tools"
that make up a good architect.&amp;nbsp; This exercise was actually a lot harder than
you might think.&amp;nbsp; Like many people I think that an architect needs to be a generalist
and as a result there are a 1001 things that a architect must need to know in order
to be a good architect.&amp;nbsp; Categorizing these into 5 tools was difficult.&amp;nbsp;
But here is the list that I came up with.
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Business Process&lt;/strong&gt; - Process is the way that we get things done.&amp;nbsp;
Software is becoming an increasingly integral part of business process, but it is
still only a small part of how things are accomplished.&amp;nbsp; Process is the "Bigger
picture" of software architecture.&amp;nbsp; Being able to understand how the software
solution fits into the overall business process is a critical skill to being a good
software architect.&amp;nbsp; The danger of not mastering the process is that the software
solution may be a masterpiece of software engineering, but may be totally useless
in the presence of the business problem (okay maybe not totally useless, but sub-optimal
for the time spent creating it). 
&lt;li&gt;
&lt;strong&gt;Software Design &lt;/strong&gt;- This is the probably the most obvious of the architecture
tools - you have to be able to design a solution.&amp;nbsp; You might be surprised at
how many people who are otherwise brilliant software engineers have trouble designing
a software solution, or struggle with designing a solution so that it fits harmoniously
with the rest of the software ecosystem. 
&lt;li&gt;
&lt;strong&gt;Software Development&lt;/strong&gt; - An architect must understand how to develop
software.&amp;nbsp; You don't have to spend 100% , 75% or even 50% of your time time actually
developing software in order to be an architect.&amp;nbsp; You do have to understand the
capabilities and limitations of your software environment. 
&lt;li&gt;
&lt;strong&gt;Infrastructure&lt;/strong&gt; -&amp;nbsp; Infrastructure is the architectural foundation
of the enterprise and it is the plumbing that makes our software systems work.&amp;nbsp;
Because it is foundational it is often ignored in the same way that we ignore the
plumbing when we are walking around in a building.&amp;nbsp; However when you are designing
that building, you have to pay careful attention to it.&amp;nbsp; And just like other
foundational components infrastructure must be maintained and upgraded over time.&amp;nbsp;
A good architect knows how to leverage the infrastructure. 
&lt;li&gt;
&lt;strong&gt;Communication&lt;/strong&gt; - I know there are some people who get to this point
and say "Bah - software development, infrastructure?&amp;nbsp; Where is the governance?&amp;nbsp;
Architects must know governance!"&amp;nbsp; Governance is important in architecture, but
the real value of governance is not in developing a governance strategy, but in communicating
the strategy and the importance of the strategy.&amp;nbsp; The ability to communicate
with the technical and the non-technical audience is probably the most important of
the 5 skills identified here.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strong&gt;Note:&lt;/strong&gt;&amp;nbsp; My colleague and friend &lt;a href="http://designthinkingdigest.com/"&gt;Chris
Bernard&lt;/a&gt;, who is Microsoft's User Experience Evangelist for the Central United
States, has written a follow-up post to this one where he talks about the &lt;a href="http://designthinkingdigest.com/2008/05/the-five-tools.html"&gt;tools
that a designer needs&lt;/a&gt;.
&lt;/p&gt;</description>
      <comments>http://eraserandcrowbar.com/CommentView,guid,16c7d8cd-9c0a-434e-899e-668b21ea8446.aspx</comments>
      <category>Architecture by Baseball</category>
    </item>
  </channel>
</rss>