<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Clemens Vasters - Architecture|Flashbacks</title>
    <link>http://vasters.com/clemensv/</link>
    <description>Cloud Development and Alien Abductions</description>
    <language>en-us</language>
    <copyright>Clemens Vasters</copyright>
    <lastBuildDate>Sat, 15 May 2004 13:40:12 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.7067.0</generator>
    <managingEditor>cvasters@guhhome.com</managingEditor>
    <webMaster>cvasters@guhhome.com</webMaster>
    <item>
      <trackback:ping>http://vasters.com/clemensv/Trackback.aspx?guid=04a4e6e5-89c9-4d11-959f-0e16ef5ecd4f</trackback:ping>
      <pingback:server>http://vasters.com/clemensv/pingback.aspx</pingback:server>
      <pingback:target>http://vasters.com/clemensv/PermaLink,guid,04a4e6e5-89c9-4d11-959f-0e16ef5ecd4f.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://vasters.com/clemensv/CommentView,guid,04a4e6e5-89c9-4d11-959f-0e16ef5ecd4f.aspx</wfw:comment>
      <wfw:commentRss>http://vasters.com/clemensv/SyndicationService.asmx/GetEntryCommentsRss?guid=04a4e6e5-89c9-4d11-959f-0e16ef5ecd4f</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p>
People often ask me what I’ve done before Bart, Achim and I started newtelligence
together with Jörg. So where do we come from? Typically, we have given somewhat
“foggy” answers to those kinds of questions, but Achim and I talked about
that yesterday and we’ve started to ask ourselves “why we do that”?
</p>
          <p>
In fact, Achim, Bart and I had been working together for a long time <i>before</i> we
started newtelligence. We used to work for a banking software company called ABIT
Software GmbH, which then merged with two other sibling companies by the same owners
to form today’s <a href="http://www.abit.net/">ABIT AG</a>. We’ve only
reluctantly communicated that fact publicly, because the formation of our company
didn’t really get much applause from our former employer – quite the contrary
was true and hence we’ve been quite cautious.
</p>
          <p>
For us it was always quite frustrating that ABIT was sitting on heaps on very cool
technology that my colleagues and I developed over the years (including patented things)
and never chose to capitalize on the technology itself. Here are some randomly selected
milestones:
</p>
          <p>
We had our own SOAP 0.9 stack running in <b>1999</b>, which was part of a framework
that had a working and fully transparent object-relational mapping system based on
COM along with an abstract, XML-based UI description language (people call those things <a href="http://www.mozilla.org/projects/xul/">XUL</a> or <a href="http://longhorn.msdn.microsoft.com/?//longhorn.msdn.microsoft.com/lhsdk/core/overviews/about%20xaml.aspx">XAML</a> nowadays).
</p>
          <p>
In <b>1998 </b>we forced (with some help of our customer’s wallet) IBM into
a 6 months avalanche of weekly patches for the database engine and client software
that turned SQL/400 (the SQL processor for DB/400 on AS/400) from a not-quite-to-perfect
product into a rather acceptable SQL database. 
</p>
          <p>
In <b>1996</b> we fixed well over 500 bugs and added tons of features to <a href="http://www.os2ezine.com/v1n11/bcc.htm">Borland’s
OWL for OS/2</a> with which we must have had the pretty unique framework setup where
cross-platform Windows 3.x, Windows NT and OS/2 development actually functioned on
top of that shared class library.
</p>
          <p>
In <b>1994</b> we already had what could be considered as the precursor to a service-oriented
architecture in with collaborating, (mostly) autonomous services. The framework underlying
that architecture had an ODBC C++ class library well over 6 months before Microsoft
came out with their first MFC wrapper for it, had an MVC model based centered around
the idea of “<a href="http://www.ipass.net/vmalik/smalltalk.html#Q46">value-holders</a>”
that we borrowed from SmallTalk and which spoke, amongst other things, a text-validation
protocol that allowed us to have a single “TextBox” control could be bound
against arbitrary value holders that would handle all the text-input syntax rules
as per their data type (or subtype). All of this was fully based on the nascent COM
model which was then still buried in three documentation pages of OLE 2.0. I didn’t
care much about linking and embedding (although I wrote my own in-place editing client
from scratch), but I cared a lot about <a href="http://msdn.microsoft.com/library/en-us/com/htm/cmi q2z 9dwu.asp">IUnknown</a> as
soon as I got my hands on it in late 1993. And all applications (and services) built
on that framework supported thorough OLE Automation with Visual Basic 3.0 to a degree
that you could fill out any form and press any button programmatically – a functionality
that was vital for the application’s workflow engine.
</p>
          <p>
And of course, during all that time, we were actively involved in project and product
development for huge financial applications with literally millions of lines of production
code.
</p>
          <p>
None of the technology work (except the final products) was ever shared or available
to anyone for licensing.  We were at a solutions company that supported great
visions internally, but never figured out that the technology would be a value by
itself.
</p>
          <p>
            <a href="http://www.newtelligence.net/">newtelligence AG</a> exists because of that
pain. Years back, we’ve already designed and implemented variations of many
of the technologies that are now state of the art or (in the case of XAML) not even
shipping yet. At the same time, we continue to develop our vision and that’s
how we can stay on top of things. So it’s really not that we’re not learning
like crazy and go through constant paradigm shifts – we’re lucky that
we can accumulate knowledge on top of the vast experience that we have and adjust
and modernize our thinking. However, what’s different now is that we can share
the essence of what we figure out with the world. That’s a fantastic thing if
you’ve spent most of your professional life “hidden and locked away”
and were unable to share things with peers. 
</p>
          <p>
So every time you’ll see a “Flashback” title here on my blog, I’ll
dig into my recollection and try to remember some of the architectural thinking we
had back in those times. We’ve made some horrible mistakes and had some exuberant
and not necessarily wise ideas (such as the belief that persistent object-identity
and object-relational mapping are good things); but we also had quite a few really
bright innovative ideas. The things that really bring you forward are the grand successes
and the most devastating defeats. We’ve got plenty of those under our belt and
even though some of these insights date back 10 years, they are surprisingly current
and the “lessons learned” very much apply to the current technology stacks
and architectural patterns.
</p>
          <p>
So – if you’ve ever thought that we’re “all theory”
authors and “sample app” developers – nothing is further away from
the truth. Also: Although I fill an “architecture consultant” role more
than anything else now, I probably write more code on a monthly basis than some full-time
application developers – what’s finally surfacing in talks and workshops
is usually just the tip of that iceberg and often very much simplified to explain
the essence of what we find.
</p>
        </div>
        <img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=04a4e6e5-89c9-4d11-959f-0e16ef5ecd4f" />
      </body>
      <title>Flashbacks #1: Where we come from</title>
      <guid isPermaLink="false">http://vasters.com/clemensv/PermaLink,guid,04a4e6e5-89c9-4d11-959f-0e16ef5ecd4f.aspx</guid>
      <link>http://vasters.com/clemensv/2004/05/15/Flashbacks+1+Where+We+Come+From.aspx</link>
      <pubDate>Sat, 15 May 2004 13:40:12 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p&gt;
People often ask me what I&amp;#8217;ve done before Bart, Achim and I started newtelligence
together with J&amp;#246;rg. So where do we come from? Typically, we have given somewhat
&amp;#8220;foggy&amp;#8221; answers to those kinds of questions, but Achim and I talked about
that yesterday and we&amp;#8217;ve started to ask ourselves &amp;#8220;why we do that&amp;#8221;?
&lt;/p&gt;
&lt;p&gt;
In fact, Achim, Bart and I had been working together for a long time &lt;i&gt;before&lt;/i&gt; we
started newtelligence. We used to work for a banking software company called ABIT
Software GmbH, which then merged with two other sibling companies by the same owners
to form today&amp;#8217;s &lt;a href="http://www.abit.net/"&gt;ABIT AG&lt;/a&gt;. We&amp;#8217;ve only
reluctantly communicated that fact publicly, because the formation of our company
didn&amp;#8217;t really get much applause from our former employer &amp;#8211; quite the contrary
was true and hence we&amp;#8217;ve been quite cautious.
&lt;/p&gt;
&lt;p&gt;
For us it was always quite frustrating that ABIT was sitting on heaps on very cool
technology that my colleagues and I developed over the years (including patented things)
and never chose to capitalize on the technology itself. Here are some randomly selected
milestones:
&lt;/p&gt;
&lt;p&gt;
We had our own SOAP 0.9 stack running in &lt;b&gt;1999&lt;/b&gt;, which was part of a framework
that had a working and fully transparent object-relational mapping system based on
COM along with an abstract, XML-based UI description language (people call those things &lt;a href="http://www.mozilla.org/projects/xul/"&gt;XUL&lt;/a&gt; or &lt;a href="http://longhorn.msdn.microsoft.com/?//longhorn.msdn.microsoft.com/lhsdk/core/overviews/about%20xaml.aspx"&gt;XAML&lt;/a&gt; nowadays).
&lt;/p&gt;
&lt;p&gt;
In &lt;b&gt;1998 &lt;/b&gt;we forced (with some help of our customer&amp;#8217;s wallet) IBM into
a 6 months avalanche of weekly patches for the database engine and client software
that turned SQL/400 (the SQL processor for DB/400 on AS/400) from a not-quite-to-perfect
product into a rather acceptable SQL database. 
&lt;/p&gt;
&lt;p&gt;
In &lt;b&gt;1996&lt;/b&gt; we fixed well over 500 bugs and added tons of features to &lt;a href="http://www.os2ezine.com/v1n11/bcc.htm"&gt;Borland&amp;#8217;s
OWL for OS/2&lt;/a&gt; with which we must have had the pretty unique framework setup where
cross-platform Windows 3.x, Windows NT and OS/2 development actually functioned on
top of that shared class library.
&lt;/p&gt;
&lt;p&gt;
In &lt;b&gt;1994&lt;/b&gt; we already had what could be considered as the precursor to a service-oriented
architecture in with collaborating, (mostly) autonomous services. The framework underlying
that architecture had an ODBC C++ class library well over 6 months before Microsoft
came out with their first MFC wrapper for it, had an MVC model based centered around
the idea of &amp;#8220;&lt;a href="http://www.ipass.net/vmalik/smalltalk.html#Q46"&gt;value-holders&lt;/a&gt;&amp;#8221;
that we borrowed from SmallTalk and which spoke, amongst other things, a text-validation
protocol that allowed us to have a single &amp;#8220;TextBox&amp;#8221; control could be bound
against arbitrary value holders that would handle all the text-input syntax rules
as per their data type (or subtype). All of this was fully based on the nascent COM
model which was then still buried in three documentation pages of OLE 2.0. I didn&amp;#8217;t
care much about linking and embedding (although I wrote my own in-place editing client
from scratch), but I cared a lot about &lt;a href="http://msdn.microsoft.com/library/en-us/com/htm/cmi q2z 9dwu.asp"&gt;IUnknown&lt;/a&gt; as
soon as I got my hands on it in late 1993. And all applications (and services) built
on that framework supported thorough OLE Automation with Visual Basic 3.0 to a degree
that you could fill out any form and press any button programmatically &amp;#8211; a functionality
that was vital for the application&amp;#8217;s workflow engine.
&lt;/p&gt;
&lt;p&gt;
And of course, during all that time, we were actively involved in project and product
development for huge financial applications with literally millions of lines of production
code.
&lt;/p&gt;
&lt;p&gt;
None of the technology work (except the final products) was ever shared or available
to anyone for licensing. &amp;nbsp;We were at a solutions company that supported great
visions internally, but never figured out that the technology would be a value by
itself.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.newtelligence.net/"&gt;newtelligence AG&lt;/a&gt; exists because of that
pain. Years back, we&amp;#8217;ve already designed and implemented variations of many
of the technologies that are now state of the art or (in the case of XAML) not even
shipping yet. At the same time, we continue to develop our vision and that&amp;#8217;s
how we can stay on top of things. So it&amp;#8217;s really not that we&amp;#8217;re not learning
like crazy and go through constant paradigm shifts &amp;#8211; we&amp;#8217;re lucky that
we can accumulate knowledge on top of the vast experience that we have and adjust
and modernize our thinking. However, what&amp;#8217;s different now is that we can share
the essence of what we figure out with the world. That&amp;#8217;s a fantastic thing if
you&amp;#8217;ve spent most of your professional life &amp;#8220;hidden and locked away&amp;#8221;
and were unable to share things with peers. 
&lt;/p&gt;
&lt;p&gt;
So every time you&amp;#8217;ll see a &amp;#8220;Flashback&amp;#8221; title here on my blog, I&amp;#8217;ll
dig into my recollection and try to remember some of the architectural thinking we
had back in those times. We&amp;#8217;ve made some horrible mistakes and had some exuberant
and not necessarily wise ideas (such as the belief that persistent object-identity
and object-relational mapping are good things); but we also had quite a few really
bright innovative ideas. The things that really bring you forward are the grand successes
and the most devastating defeats. We&amp;#8217;ve got plenty of those under our belt and
even though some of these insights date back 10 years, they are surprisingly current
and the &amp;#8220;lessons learned&amp;#8221; very much apply to the current technology stacks
and architectural patterns.
&lt;/p&gt;
&lt;p&gt;
So &amp;#8211; if you&amp;#8217;ve ever thought that we&amp;#8217;re &amp;#8220;all theory&amp;#8221;
authors and &amp;#8220;sample app&amp;#8221; developers &amp;#8211; nothing is further away from
the truth. Also: Although I fill an &amp;#8220;architecture consultant&amp;#8221; role more
than anything else now, I probably write more code on a monthly basis than some full-time
application developers &amp;#8211; what&amp;#8217;s finally surfacing in talks and workshops
is usually just the tip of that iceberg and often very much simplified to explain
the essence of what we find.
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://vasters.com/clemensv/aggbug.ashx?id=04a4e6e5-89c9-4d11-959f-0e16ef5ecd4f" /&gt;</description>
      <comments>http://vasters.com/clemensv/CommentView,guid,04a4e6e5-89c9-4d11-959f-0e16ef5ecd4f.aspx</comments>
      <category>Architecture</category>
      <category>Architecture/Flashbacks</category>
    </item>
  </channel>
</rss>