<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-258798762091149664</id><updated>2012-02-16T17:55:59.914-08:00</updated><title type='text'>Simon Grabinar</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://simongrabinar.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/258798762091149664/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://simongrabinar.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Simon</name><uri>http://www.blogger.com/profile/02965176404436421706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-258798762091149664.post-2722366315238188421</id><published>2011-06-18T15:01:00.000-07:00</published><updated>2011-06-20T14:49:37.024-07:00</updated><title type='text'>The Data Architect's Manifesto</title><content type='html'>Its easy to find pithy and authoratitive exhortations to a data-driven design approach.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Data dominates.&amp;nbsp;&lt;tt&gt; &lt;/tt&gt;If you've chosen the right data structures and organized things well, the algorithms will almost always be self­evident.&amp;nbsp;&lt;tt&gt; &lt;/tt&gt;Data structures, not algorithms, are central to programming &lt;/i&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;i&gt;&lt;a href="http://www.lysator.liu.se/c/pikestyle.html"&gt;Pike R (1989), Notes on Progamming in C&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;i&gt;&lt;b&gt;Representation Is the Essence of Programming&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;i&gt;Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowcharts; they'll be obvious&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;a href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959"&gt;&lt;i&gt;Brooks F P Jr (1975),&amp;nbsp; &lt;/i&gt;The Mythical Man Month, Addison Wesley&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;i&gt;Smart data structures and dumb code works a lot better than the other way around.&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;i&gt;&lt;a href="http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/"&gt;&amp;nbsp;Eric S. Raymond (1999). The Cathedral &amp;amp; the Bazaar. O'Reilly&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;There's a lot to gain by progressing beyond qualities such as &amp;nbsp;"right", "organized", or "obvious", "smart" or "dumb". &amp;nbsp;Dave calls the formalisation of these qualities the &lt;i&gt;Data Architect's Manifesto. &amp;nbsp;&lt;/i&gt;In my mind, the manifesto enumerates the mental alarm bells I aim to prime before reviewing or constructing a data model.&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;The success of an information system is dependent on the following qualities of its input, output, intra-component and even internal data structures; their relationships; and the defining domain data:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;1 Completeness&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;i&gt;2 Correctness&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;3 Clear Shared Meaning&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;b&gt;&lt;i&gt;4 Conciseness&lt;/i&gt;&lt;/b&gt;&lt;/b&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;&lt;b&gt;&lt;i&gt;5 Malleability&lt;/i&gt;&lt;/b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;One of the key practical lessons Dave taught me was that you can organize the presentation of a data model in such a way that if you know how to read it these qualities are pretty much revealed to you.&lt;br /&gt;&lt;br /&gt;In the next post, I'll begin exploring how this is done.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/258798762091149664-2722366315238188421?l=simongrabinar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simongrabinar.blogspot.com/feeds/2722366315238188421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://simongrabinar.blogspot.com/2011/06/data-architects-manifesto.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/258798762091149664/posts/default/2722366315238188421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/258798762091149664/posts/default/2722366315238188421'/><link rel='alternate' type='text/html' href='http://simongrabinar.blogspot.com/2011/06/data-architects-manifesto.html' title='The Data Architect&apos;s Manifesto'/><author><name>Simon</name><uri>http://www.blogger.com/profile/02965176404436421706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-258798762091149664.post-307283866606676436</id><published>2011-06-13T09:12:00.000-07:00</published><updated>2011-06-15T12:59:47.216-07:00</updated><title type='text'>The Matisse of Data Modelling</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_q2Ex9m7KowA/TKJEpKwVo5I/AAAAAAAACO4/5-DvUMKEqLw/s320/matisse.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_q2Ex9m7KowA/TKJEpKwVo5I/AAAAAAAACO4/5-DvUMKEqLw/s320/matisse.jpg" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: 11px; line-height: 17px;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: Verdana,sans-serif;"&gt;[ These ] miracles of pure line ... beguile us and take our breath away at Matisse’s sheer virtuosity in making a simple line evoke the complexities of space and form.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="margin: 0px; text-align: right;"&gt;&lt;div style="margin: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana,Arial,Tahoma,sans-serif; font-size: 11px; line-height: 17px;"&gt;&lt;a href="http://www.amazon.co.uk/Henri-Matisse-Drawings-Christian-Zervos/dp/0500093288"&gt;&lt;b class="editor" style="border-width: 0px; font-family: inherit; font-size: 11px; font-style: inherit; font-weight: bold; margin: 0px; outline-width: 0px; padding: 0px; vertical-align: baseline;"&gt;Christian Zervos&lt;/b&gt;&amp;nbsp;(1936), Henri Matiise: Drawings 1936, Thames &amp;amp; Hudson&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="margin: 0px; text-align: right;"&gt;&lt;div style="margin: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;I am &amp;nbsp;fortunate to have worked alongside some very good software architects. The best show refined instincts for designing solutions to complex and seemingly intractable problems with apparent ease. These solutions seem natural, with well defined components inter-operating predictably. They are readily adapted to a changing environment. The same practitioners also show skill in immediately locating exactly how and where other solutions fail.&lt;br /&gt;&lt;br /&gt;Between 2005 - 2008 I led a database team during a period of frenetic change. One of the first recruits was an experienced contractor called Dave. Dave had learned data-centric development while working under Richard Barker (author of the &lt;a href="http://www.amazon.co.uk/CASE-Method-Relationship-Modelling-Engineering/dp/0201416964"&gt;Oracle Case Method&lt;/a&gt;) at Oracle. He effortlessly and repeatedly absorbed the awkward and incomplete problem specifications, producing blueprints that both&amp;nbsp;described and addressed the problem more accurately, more completely, and infinitely more plainly than its author or sponsor had begun to articulate it. And with infinitely more clarity than any accompanying documentation.&lt;br /&gt;&lt;br /&gt;His designs were complete, correct and concise. They were rarely&amp;nbsp;substantially re-drafted, largely proofed against challenge, and almost magically adaptable to "new" requirements. The resulting software was delivered on time, and worked. The designs and resulting software seemed to define the essence of the subject quite completely. To my eye they were done with more than a degree of artistry.&lt;br /&gt;&lt;br /&gt;I was forced to accept that Dave had perfected a practical art-form in our professional domain, an art-form in which I was no more than a neophyte, and in which it was clear most of our peers lacked both skill or even interest.&lt;br /&gt;&lt;div style="margin: 0px;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin: 0px;"&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;I was compelled to learn how this was done. I don't believe there is a process to follow. Rather, as fortune favours the prepared mind, there are concepts and techniques which prepare a data architect's mind to understand, design and communicate information problems and solutions.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;What follows, will I hope, be a formalisation of what I learned: from Dave's zen-mastery of this art, and from the other expert practioners I have been privileged to work with.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/258798762091149664-307283866606676436?l=simongrabinar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simongrabinar.blogspot.com/feeds/307283866606676436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://simongrabinar.blogspot.com/2011/06/matisse-of-data-modelling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/258798762091149664/posts/default/307283866606676436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/258798762091149664/posts/default/307283866606676436'/><link rel='alternate' type='text/html' href='http://simongrabinar.blogspot.com/2011/06/matisse-of-data-modelling.html' title='The Matisse of Data Modelling'/><author><name>Simon</name><uri>http://www.blogger.com/profile/02965176404436421706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_q2Ex9m7KowA/TKJEpKwVo5I/AAAAAAAACO4/5-DvUMKEqLw/s72-c/matisse.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
