<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
			<atom:link href="http://www.handbookofsoftwarearchitecture.com/blog.xml" rel="self" type="application/rss+xml" />		<title>Handbook of Software Architecture</title>
		<link>http://www.handbookofsoftwarearchitecture.com</link>
		<description>The Handbook catalogs the software architecture of a large collection of software-intensive systems.</description>
		<language>en-us</language>
		<copyright>Copyright (C) 2000-2008 by Grady Booch</copyright>
		<item>
			<link>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#621</link>
			<guid>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#621</guid>
			<title>Facebook Has An Architectural Governance Challenge</title>
			<description><![CDATA[				Just to be clear, I don't work for Facebook, I have no active engagements with Facebook, my story here is my own and does not necessarily represent that of IBM. I'd spent a little time at Facebook some time ago, I've talked with a few of its principal developers, and I've studied its architecture. That being said:<br/><br/>

<em>Facebook has a looming architectural governance challenge.</em><br/><br/>

When I last visited the company, they had only a hundred of so developers, the bulk of whom fit cozily in one large war room. Honestly, it was little indistinguishable from a Really Nice college computer lab: nice work desks, great workstations, places where you could fuel up with caffeine and sugar. Dinner was served right there, so you never needed to leave. Were I a twenty-something with only a dog and a futon to my name, it would be been geek heaven. The code base at the time was, by my estimate, small enough that it was grokable, and the major functional bits were not so large and were sufficiently loosely coupled such that development could proceed along nearly independent threads of progress.<br/><br/>

I'll reserve my opinions of Facebook's development and architectural maturity for now. But, I read with interest <a href="http://www.foxnews.com/scitech/2011/12/02/facebook-prepping-for-massive-hiring-spree/">this article</a> that reports that Facebook plans to double in size in the coming year.<br/><br/>

Oh my, the changes they are a comin'.<br/><br/>

Let's be clear, there are certain limited conditions under which the maxim "give me PHP and a place to stand, and I will move the world" holds true. Those conditions include having a) a modest code base b) with no legacy friction c) growth and acceptance and limited competition that masks inefficiencies, d) a hyper energetic, manically focused group of developers e) who all fit pretty much in the same room. Relax any of those constraints, and Developing Really Really Hard just doesn't cut it any more.<br/><br/>

Consider: the moment you break a development organization across offices, you introduce communication and coordination challenges. Add the crossing of time zones, and unless you've got some governance in place, architectural rot will slowly creep in and the flaws in your development culture will be magnified. The subtly different development cultures that will evolve in each office will yield subtly different textures of code; it's kind of like the evolutionary drift on which Darwin reported. If your architecture is well-structure, well-syndicated, and well-governed, you can more easily split the work across groups; if your architecture is poorly-structured, held in the tribal memory of only a few, and ungoverned, then you can rely on heroics for a while, but that's unsustainable. Your heros will dig in, burn out, or cash out.<br/><br/>

Just to be clear, I'm not picking on Facebook. What's happening here is a story that every group that's at the threshold of complexity must cross. If you are outsourcing to India or China or across the city, if you are growing your staff to the point where the important architectural decisions no longer will fit in One Guy's Head, if you no longer have the time to just rewrite everything, if your growing customer base grows increasingly intolerant of capricious changes, then, like it or not, you've got to inject more discipline.<br/><br/>

Now, I'm not advocating extreme, high ceremony measures. As a start, there are some fundamentals that will go a long way: establish a well-instrumented and well-automated build and release system; use some collaboration tools that channel work but also allow for serendipitous connections; codify and syndicate the system's load bearing wells/architectural decisions; create a culture of patterns and refactoring.<br/><br/>

Remind your developers that what they do, each of of them, is valued; remind your developers there is more to life than coding.<br/><br/>

It will be interesting to watch how Facebook metabolizes this growth. Some organizations are successful in so doing; many are not. But I really do wish Facebook success. If they thought the past few years were interesting times, my message to them is that the really interesting times are only now beginning. And I hope they enjoy the journey.]]>
			</description>
			<pubDate>04 Dec 2011 22:33:19 MST</pubDate>
		</item>
		<item>
			<link>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#620</link>
			<guid>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#620</guid>
			<title>How Watson Works</title>
			<description><![CDATA[				Earlier this year, I conducted an archeological dig on <a href="http://www-03.ibm.com/innovation/us/watson/index.html">Watson</a>. I applied the techniques I've developed for the <em>Handbook</em> which involves the use of the <a href="http://www.uml.org/">UML</a>, <a href="http://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf">Philippe Kruchten's 4+1 View Model</a>, and <a href="http://www.ibm.com/developerworks/rational/products/rsa/">IBM's Rational Software Architect</a>. The fruits of this work have proven to be useful as groups other than Watson's original developers begin to transform the Watson code base for use in other domains.<br/><br/>

You can watch my presentation at IBM Innovate on <em>How Watson Works</em> <a href="http://www.youtube.com/watch?v=E1pMI6JYkzM&feature=youtube">here</a>.]]>
			</description>
			<pubDate>23 Nov 2011 18:52:26 MST</pubDate>
		</item>
		<item>
			<link>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#619</link>
			<guid>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#619</guid>
			<title>Books on Computing</title>
			<description><![CDATA[				Over the past several years, I've immersed myself in the literature of the history and the implications of computing. All told, I've consumed over two hundred books, almost one hundred documentaries, and countless articles and websites - and I have a couple of hundred more books yet to metabolize. I've begun to name the resources I've studied <a href="http://computingthehumanexperience.com/public/?page_id=78">here</a> and so offer them up for your reading pleasure.<br/><br/>

I've just begun to enter my collection of books - what you see there now at the time of this blog is just a small number of the books that currently surround me in my geek cave - so stay tuned as this list grows. If you have any particular favorites you think I should study, please <a href="http://computingthehumanexperience.com/public/?page_id=632">let me know</a>.]]>
			</description>
			<pubDate>14 Nov 2011 11:08:32 MST</pubDate>
		</item>
		<item>
			<link>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#618</link>
			<guid>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#618</guid>
			<title>The Computing Priesthood</title>
			<description><![CDATA[				At one time, computing was a priesthood, then it became personal; now it is social, but it is becoming more human.<br/><br/>

In the early days of modern computing - the 40s, 50s and 60s - computing was a priesthood. Only a few were allowed to commune directly with the machine; all others would give their punched card offerings to the anointed, who would in turn genuflect before their card readers and perform their rituals amid the flashing of lights, the clicking of relays, and the whirring of fans and motors. If the offering was well-received, the anointed would call the communicants forward and in solemn silence hand them printed manuscripts, whose signs and symbols would be studied with fevered brow.<br/><br/>

But there arose in the world heretics, the Martin Luthers of computing, who demanded that those glass walls and raised floors be brought down. Most of these heretics cried out for reformation because they once had a personal revelation with a machine; from time to time, a secular individual was allowed full access to an otherwise sacred machine, and therein would experience an epiphany that it was the machines who should serve the individual, not the reverse. Their heresy spread organically until it became dogma. The computer was now personal.<br/><br/>

But no computer is an island entire of itself; every computer is a piece of the continent, a part of the main. And so it passed that the computer, while still personal, became social,  connected to other computers that were in turn connected to yet others, bringing along their users who delighted in the unexpected consequences of this network effect. We all became part of the web of computed humanity, able to weave our own personal threads in a way that added to this glorious tapestry whose patterns made manifest the noise and the glitter of a frantic global conversation.<br/><br/>

It is as if we have created a universe, then as its creators, made the choice to step inside and live within it. And yet, though connected, we remain restless. We now strive to craft devices that amplify us, that look like us, that mimic our intelligence.<br/><br/>

<a href="http://anthropology.osu.edu/faculty/pages/mckee.php">Dr. Jeffrey McKee</a> has noted that "every species is a transitional species." It is indeed so; in the co-evolution of computing and humanity, both are in transition. It is no surprise, therefore, that we now turn to re-create computing in our own image, and in that journey we are equally transformed.]]>
			</description>
			<pubDate>14 Nov 2011 01:04:30 MST</pubDate>
		</item>
		<item>
			<link>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#617</link>
			<guid>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#617</guid>
			<title>Responsibility</title>
			<description><![CDATA[				No matter what future we may envision, that future relies on software-intensive systems that have not yet been written.<br/><br/>

You can now follow me on <a href="http://twitter.com/#!/Grady_Booch">Twitter</a>.]]>
			</description>
			<pubDate>07 Nov 2011 20:05:53 MST</pubDate>
		</item>
		<item>
			<link>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#616</link>
			<guid>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#616</guid>
			<title>There Were Giants Upon the Earth</title>
			<description><![CDATA[				<a href="http://www.economist.com/blogs/babbage/2011/10/obituary">Steve Jobs</a>. <a href="http://www.legacy.com/ns/obituary.aspx?n=Dennis-Ritchie&pid=154063273&ua=UbmoTKgSoXMhUlCKa6%2F99g%3D%3D">Dennis Ritchie</a>. <a href="http://www.washingtonpost.com/local/obituaries/john-mccarthy-computer-science-pioneer-dies-at-84/2011/10/25/gIQACZlAMM_story.html">John McCarthy</a>. <a href="http://www.guardian.co.uk/theguardian/2011/aug/31/tony-sale-obituary">Tony Sale</a>.<br/><br/>

These are men who - save for Steve Jobs - were little known outside the technical community, but without whom computing as we know it today would not be. Dennis created Unix and C; John invented Lisp; Tony continued the legacy of Bletchley Park, where Turing and others toiled in extreme secrecy but whose efforts shorted World War II by two years.<br/><br/>

All pioneers of computing.<br/><br/>

They will be missed.]]>
			</description>
			<pubDate>27 Oct 2011 21:48:08 MST</pubDate>
		</item>
		<item>
			<link>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#615</link>
			<guid>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#615</guid>
			<title>Steve Jobs</title>
			<description><![CDATA[				This generation, this world, was graced with the brilliance of Steve Jobs, a man of integrity who irreversibly changed the nature of computing for the good. His passion for simplicity, elegance, and beauty - even in the invisible - was and is an inspiration for all software developers.<br/><br/>

Quote of the day:<br/><br/><dd><em>Almost everything - all external expectations, all pride, all fear of embarrassment or failure - these things just fall away in the face of death, leaving only what is truly important. Remembering that you are going to die is the best way I know to avoid the trap of thinking you have something to lose. You are already naked. There is no reason not to follow your heart.<br/>Steve Jobs</em></dd>]]>
			</description>
			<pubDate>06 Oct 2011 20:07:57 MST</pubDate>
		</item>
		<item>
			<link>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#614</link>
			<guid>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#614</guid>
			<title>Web Games</title>
			<description><![CDATA[				A dear, long-time colleague of mine has published the third of his novels, the latest called <a href="http://www.liorsamson.com/"><em>Web Games</em></a>.<br/><br/>

Quote of the day:<br/><br/><dd><em>Cyber terrorism could also become more attractive as the real and virtual worlds become more closely coupled, with automobiles, appliances, and other devices attached to the Internet.<br/>Dorthy Denning</em></dd>]]>
			</description>
			<pubDate>09 Jan 2011 00:34:23 MST</pubDate>
		</item>
		<item>
			<link>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#613</link>
			<guid>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#613</guid>
			<title>The Invisible Thread</title>
			<description><![CDATA[				IBM Rational has launched a <a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/invisiblethread/?lang=en">new blog</a> and one of its themes is that of software as the invisible thread. I really like that phrase. As I've often noted, software-intensive systems continue to enter the interstitial spaces of our society, and for most of society, the workings of that technology are - and really should be - invisible.<br/><br/>

Alas, so much of the world thinks little beyond computing other than the smart phone they hold in their hand or the Facebook/Google/Twitter/email/game application they have running on their laptop. To most, the science and technology of computing are of passing interest. We are often just as incurious about the movement of the stars. It is enough that our computers work, it is enough that the stars do what stars will do. And yet, we are from time to time compelled to look at the stars and ask how and why, knowing that we are changed by the asking. So it is with computing. This is a world on which we co-depend and with which we have co-evolved.<br/><br/>

Quote of the day:<br/><br/><dd><em>Software is the invisible thread and hardware is the loom on which computing weaves its fabric, a fabric that we have now draped across all of life.<br/>Grady Booch</em></dd>]]>
			</description>
			<pubDate>30 Nov 2010 11:17:59 MST</pubDate>
		</item>
		<item>
			<link>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#612</link>
			<guid>http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog#612</guid>
			<title>Sir Maurice Wilkes</title>
			<description><![CDATA[				It is with deep regret that I report on the passing of <a href="http://ei.cs.vt.edu/~history/Wilkes.html">Sir Maurice Wilkes</a>. Sir Maurice was deeply pragmatic and innovative: he is responsible for the creation of the EDSAC - the first meaningful store program computer - and among other things invented microprogramming.<br/></br>.

Sir Wilkes agreed to meet with me when I was in the UK earlier this year, but unfortunately, his health apparently had recently taken a turn for the worse, and thus we were unable to conduct an oral history. Nonetheless, his <a href="http://www.amazon.com/Memoirs-Computer-Pioneer-History-Computing/dp/0262231220/ref=sr_1_1?ie=UTF8&s=books&qid=1291085095&sr=8-1">autobiography</a> remains a definitive source of information about his life's work.<br/><br/>

He will be missed.<br/><br/>

Quote of the day:<br/><br/><dd><em>"I well remember when this realization first came on me with full force. The EDSAC was on the top floor of the building and the tape-punching and editing equipment one floor below. [...] It was on one of my journeys between the EDSAC room and the punching equipment that "hesitating at the angles of stairs" the realization came over me with full force that a good part of the remainder of my life was going to be spent in finding errors in my own programs." <br/><a href="http://en.wikiquote.org/wiki/Maurice_Wilkes">Sir Maurice Wilkes</a></em></dd>]]>
			</description>
			<pubDate>29 Nov 2010 19:48:33 MST</pubDate>
		</item>
	</channel>
</rss>

