Dr. Dobb's Blogs http://www.drdobbs.com//author/6822 Dr. Dobb's Copyright 2012, United Business Media. en-us Evolving Architectures: Part VII http://www.drdobbs.com/architecture-and-design/evolving-architectures-part-vii/229401666 Parallel design and simplification are the yin and yang of architecture evolution. Fri, 15 Apr 2011 05:34:00 -0400 Azure Worker Role Is Not There Yet http://www.drdobbs.com/architecture-and-design/azure-worker-role-is-not-there-yet/229300304 Microsoft&#8217;s foray into the Cloud service providers (a.k.a. Azure) tries to play both in the Infrastructure-as-a-Service (IaaS) and Platform-as-a-Service (PaaS) playgrounds (Kate Craig provi... Mon, 28 Feb 2011 12:39:01 -0500 Azure Page Blobs vs. Liskov Substitution Principle http://www.drdobbs.com/architecture-and-design/azure-page-blobs-vs-liskov-substitution/229300258 <a href="http://en.wikipedia.org/wiki/Liskov_substitution_principle"> &#8220;Liskov Substitution Principle&#8221;</a> or LSP is one of the basic <a href="http://www.rgoarchitects.com/Files/ooprimer... Fri, 18 Feb 2011 21:49:08 -0500 Azure open day presentations http://www.drdobbs.com/architecture-and-design/azure-open-day-presentations/229300298 Yesterday <a href="http://blogs.microsoft.co.il/blogs/alon/">Alon Fliess</a> and myself gave an open day @ Microsoft Israel on Azure cloud. Alon opened with an introduction to Azure Cloud and the b... Sat, 22 Jan 2011 16:54:13 -0500 Mixins in .NET http://www.drdobbs.com/architecture-and-design/mixins-in-net/229300250 In object-oriented programming languages, a mixin is a class that provides a certain functionality to be inherited by a subclass, while not meant for instantiation... Tue, 14 Dec 2010 23:05:58 -0500 Cloudoscope - a cost profiler for the cloud http://www.drdobbs.com/architecture-and-design/cloudoscope-a-cost-profiler-for-the-cl/229300290 I am very happy to announce that I am joining <a href="http://www.codevalue.net/">CodeValue</a>. CodeValue, as our site says, is the home for software experts. Indeed, the company is built of a group ... Mon, 29 Nov 2010 01:04:20 -0500 Random Hacks of Kindness http://www.drdobbs.com/architecture-and-design/random-hacks-of-kindness/229300186 I don't usually go promoting events and such but I thought I'd make an exception for this one I've got the notice below from Vivi-Anne Kelly the Operational Lead for RHoK and I am bringing it as is... Mon, 15 Nov 2010 03:37:20 -0500 SOA Patterns: Short Status Update http://www.drdobbs.com/architecture-and-design/soa-patterns-short-status-update/228701764 First off, In the previous post I published the Transactional Integration anti-pattern &#8211; if you need it for off-line reading you can also <a href="http://arnon.me/wp-content/uploads/2010/10/TransactionalIntegration.pdf">get it in PDF form</a>.</p> I am currently writing the &#8220;3-tier SOA&#8221; anti-pattern and it seems that together with &#8220;Whitebox services&#8221; anti-pattern it will complete the anti-patterns chapter. The two other anti-patterns in the chapter are <a href="http://arnon.me/wp-content/uploads/2010/10/Nanoservices.pdf">Nanoservices</a> and <a href="http://rgoarchitects.bit.ly/5VvPNT">the Knot</a></p> I&#8217;ve also started writing the composite-front end pattern (e.g. portals, prism etc.) but mid-way I thought about it and stopped. I basically realized that there are a few patterns that are pretty common to SOA on one hand, but you are much more likely to use a 3rd party solution that includes them than to realize them yourself. These include the composite front-end mentioned above, repository, orchestration, servicebus, service host that appears in chapter 2 (though I think that is marginal case) and maybe a couple of others. I am thinking in moving these to an &#8220;SOA infrastructure patterns&#8221; chapter. The open question I still have is would they need the same structure and depth as the other patterns. For example it might beneficial to emphasis usage, or expand the technology mapping etc.</p> As always, any comments are welcomed</p> By the way, if you are struggling with the architecture of your distributed system/SOA, I&#8217;d be more than happy to <a href="http://arnon.me/services/">help you sort things out </a></p> Wed, 06 Oct 2010 15:17:09 -0400 SOA: Contracts, Events, and Ownership http://www.drdobbs.com/architecture-and-design/soa-contracts-events-and-ownership/228700743 I recently listened to Udi Dahan's excellent <a href="http://www.infoq.com/presentations/SOA-Business-Autonomous-Components">"Avoiding a Failed SOA" presentation from QCON London</a> (it is about an hour long, but it is worth your time).</p> Mon, 20 Sep 2010 02:25:27 -0400 So Do We 'Build' Software? http://www.drdobbs.com/architecture-and-design/so-do-we-build-software/228701156 Phew, August is finally over -- no, not because we closed xsights, not even because my wife and I had to entertain 3 kids on vacation. It was the renovation of our balcony and living room that made it a living hell. Oh well, at least it is over, and it got me thinking (at least when they weren't banging,breaking or otherwise making noise in general). There's this analogy that you "build software" and that is similar to "building houses" -- this is especially popular with software architect trying to understand what it is exactly then need to do :). The analogies usually have something to them but they only take you that far. For example (which I have to admit I also used in the past) for an analogy: If you are going to build a dog house then you need certain tools and skills (and most of use can pull it off); if you are going to build a house, you might be able to design some of it, but you'd need help with most of the design, and way more tools, flows, practices and help with the construction. If you want to build a skyscrapper, well that's something you'd definitely going to leave to professionals and it requirers yet another set of tools, processes and professionals. Software doesn't work that way. Sure a hobbyist may use other tools than the professional (even that's not always true) but with software you might set out to build a skyscrapper but start with a dog-house, then send into production a "dog-scrapper" and maybe one day end with a sports-arena because that is what the customer actually needed. You can't do that with buildings. An analogy I still like is that of building a new intersection in regard to introducing an architectural change (e.g. moving an enterprise to SOA) -- with the idea that the business would not stop and wait until you'd finish your change and you have to build detours, only close some lanes etc -- just keep the business and information flowing. Like the other analogy though it is still limited in it's applicability. This month, however, proved there are some similarities I didn't think about: <ul> <li>It turns out a building project can take twice as longer than planned.Why? Because the contractor took too much work and had his worked task switching a lot (half a day here, half a day there)</li> <li>It turns out that even though there's a detailed plan new requirements can still come up as the project progresses -- both from customer requirements (adding stuff, exchanging stuff) or because of the realities of the project (height and angle problems that were not foreseen)</li> <li>It turns out that people can cut corners only to find out it would only get them that far (and then have to re-do everything properly)</li> <li>It turns out teams matters. We have two neighbors who are completely renovating. One is 2 months overdue vs. the other team that took a week to do what the other team needed a month to complete.</li> </ul> Oh well, while I still think software is closer to writing a story then it is for building a house, maybe there's merit in the building analogy after all... what do you think? Tue, 07 Sep 2010 14:15:59 -0400 Evolving Architectures: Part V &#8211; Leaps http://www.drdobbs.com/architecture-and-design/evolving-architectures-part-v-leaps/229402073 Looking So You Don't Have To "Leap" Sun, 01 Aug 2010 15:49:00 -0400 Looking for New Opportunities http://www.drdobbs.com/architecture-and-design/looking-for-new-opportunities/228700255 After 3 years working in xsights as VP R&amp;D, it is now time to move on. I am looking for an interesting development management position preferably as VP R&amp;D. Other interesting opportunities (e.g. a chief architect position) will also be welcomed. The position should be in Israel (Hasharon, Tel-aviv or Haifa areas) On a related note, I am also available for focused consulting engagements. By focused I mean deliverables oriented (not by the hour) engagements such as architecture evaluation, technical due diligence or architecture workshop. You can find more details <a href="http://arnon.me/services/">here</a>. Currently I am available for consulting world-wide. If you are interested you can grab a copy of my CV from <a href="http://arnon.me/wp-content/uploads/2010/07/Arnon_Rotem-Gal-Oz_CV.pdf.pdf">here (English)</a> or<a href="http://arnon.me/wp-content/uploads/2010/07/Arnon_Rotem-Gal-Oz_Hebrew_CV.pdf"> here (Hebrew)</a> Last but not least, since we are closing my team is also on the look for new jobs so if you need some great .NET people please ping me as well You can contact me <a href="mailto:consult@rgoarchitects.com">here</a> Wed, 28 Jul 2010 11:41:40 -0400 Evolving Architectures - Part IV - Design mechanics http://www.drdobbs.com/architecture-and-design/evolving-architectures-part-iv-desig/228700786 If we want to evolve architectures or change an existing architecture in general, for that matter, it is important to understand design mechanics. I recently attended a seminar with <a href="http://www.threeriversinstitute.org/blog/">Kent Beck</a> that talked about "responsive design", where he provided a good definition for 5 strategies or types of design mechanics*: <ul> &#9;<li>Leap</li> &#9;<li>Parallel</li> &#9;<li>Simplification</li> &#9;<li>Stepping Stone</li> &#9;<li>"Just Do it"</li> </ul> Kent talks about these from a design and coding perspectives. Architecture is design but at a higher level and with more consequences system-wide so (I think) are are few nuances from how Kent sees this.</p> <ul> &#9;<li>"Just Do it" is what you do when you don't exactly know where you are going and you so you're adding features and everything but you probably heading into a <a href="http://www.rgoarchitects.com/nblog/CommentView,guid,0e4d6e45-d361-4b97-a67a-79257181cb3b.aspx">big ball of mud</a>. If possible it is better to avoid working this way, but sometimes realities take us there anyway.</li> &#9;<li>Stepping Stone is what you do when you aren't completely sure what needs to be done but you can imagine what would make the end-goal easier to reach. The way I see it, for architects that would mean an architecture proof of concept (spike), prototype of skeleton - the [intlink id="saf-architecture-evaluation-evaluation-code" type="post"]three ways to evaluate architecture in code[/intlink]</li> &#9;<li>Simplification - is when you don't know what you want to do and it is too expansive to directly get to an end result. This is the basis of the iterative system. start small and gradually add features as you go. From an architecture perspective it is challenging to to get to a core simplified architecture you can grow later. This is useful as long as the changes in the architecture are within the expected growth path. when it is time to make a change in the architecture you'd need to go with the other strategies.</li> &#9;<li>Parallel - is a technique to use when you know where you are going, but can't afford to stop/halt what you already have so you keep the two designs going at the same time and migrate to the new way gradually. This is probably the best technique to use to evolve architecture as it fully considers what you already have. An analogy I like to use in describing this situation is building a new interchange on a highway. The new way would be great, but you can't just stop traffic until everything will be in place so you've got to allow the old way (maybe not in full) until you can make the change safely - the same is true for a running business, nobody will halt the business until you'd get your new shiny thing up and running</li> &#9;<li>Leap - is for when you know where you're heading and you can afford to stop everything until the new way is in place. From an architecture perspective it is a bit like starting from scratch (I'll expand on this in the next post). From a design perspective that would mean breaking the build until a few related changes are in place</li> </ul> The next post will expand a little on Leap, Parallel and Simplification <hr> * Kent also discussed several other interesting subjects related to design like <a href="http://www.threeriversinstitute.org/blog/?p=104">cohesion and coupling</a> or this <a href="http://www.threeriversinstitute.org/blog/?p=111">nice definition for design</a> which are worth reading. ** Illustration by <a href="http://www.flickr.com/photos/dipster1/1403240351/">dipster1</a> Mon, 19 Jul 2010 14:08:15 -0400 Tidbits http://www.drdobbs.com/architecture-and-design/tidbits/228700365 New month, new round of tidbits. <strong>IASA Israel Chapter 2nd Meeting</strong> This Thursday (July 8th) at 17:00 Israel time, IASA Israeli chapter is holding its 2nd meeting. I am going to be there moderating the discussion on Architecture and Lean/Agile projects if you are around Raanana feel free to <a href="http://iasaisr.eventbrite.com/?ref=esli">join</a> <strong>SEI Webinar on Software Architecture </strong> Another software architecture related event going on on July 8th is a <a href="http://saturnnetwork.wordpress.com/2010/06/15/sei-webinar-july-8-rob-wojcik-software-architecture-fundamentals-technical-business-and-social-influences/">SEI webinar on What's software architecture by Rob Wojcik</a> the webinar will take place on July 8 from 1:00 to 2:00 EDT. Looks like it is going to be an interesting listening if you are new to Software architecture. <strong>Business Analysis Agile survay</strong> Since my blog is also published in Dr. Dobb's I get a lot of PR requests from all sorts of places, most of them end in my Junk email (if the SPAM filters doesn't catch them first). From time to time something a little more interesting crops up. This time it was<a href="http://www.requirements.net/downloads/agile_and_the_business_analyst_30062010.pdf"> this survey</a> ran by <a href="http://requirements.net">requirements.net </a>, the International Institute of Business Analysis (IIBA) and capgemini. What's interesting about this survey is that 52% of the respondents were in business analysts (or BA management) roles and that 62% of the companies they work with had 1000+ employees. So we get some views of non-devs from large companies. What I see in these results that Agile (with a capital A) is very much in vogue so everybody wants to say they are practicing agile even if they just moved to an iterative cycle within the same old waterfall process or as the survey word it: <blockquote> Comments from participants demonstrate that many in IT Management desire to maintain current processes and organization structure, while delivering iterative development cycles. Of course, this often results in a hybrid Agile-Waterfall methodology which is commonly referred to as "Scrummerfall" [ARGO: I guess that's pronounced 'Scrum-fail' :) ] or "Wagile." </blockquote> Also it seems a lot of people don't really understand agile by thinking that SCRUM is a synonym for agile; thinking that product owner and scrum master are a logical fit to be the same person (46%) rather that dev and QA (only 11%); leaving the business analysts as "requirements authors" (42%) rather than having them as part of the "client team" (as Subject matter experts (21%)) or product owners (16%) etc. I guess the direction is what's important :) <hr />Illustration by <a href="http://www.flickr.com/photos/photographi_esc_/822166922/in/photostream/">esc.ape(d)</a> Tue, 06 Jul 2010 11:55:12 -0400 Tier is a Natural Boundary http://www.drdobbs.com/architecture-and-design/tier-is-a-natural-boundary/228701143 When talking about multi-tiered architectures, we need to remember that the tier boundary is significant. The tier boundary is where distribution happens and if you remember the "<a href="http://blogs.sun.com/jag/resource/Fallacies.html">fallacies of distributed computing</a>", you know not to take that lightly. A tier is a physical boundary (versus, for example, an Edge in a SOA which is a logical boundary within the service). The implications of that are numerous. For instance, you need to consider: <ul> &#9;<li>Trust--who do you let in?</li> &#9;<li>Security--what do you send out?</li> &#9;<li>Performance--you need to serialize to pass the boundary, and remote data is expensive to fetch.</li> &#9;<li>Availability--what happens if you crash?</li> &#9;<li>Manageability--can anyone see what's your state? Help you recover?</li> &#9;<li>Temporal coupling--can you afford to make synchronous calls?</li> &#9;<li>and many similar questions.</li> </ul> Yet many times people think passing a tier is as simple as passing a logical layer. I should know. I made this stupid mistake more than 15 years ago in one of the first distributed systems I designed. I planned this beautiful separation of the UI controls from the business logic (I didn't know it was called "MVC" and that someone else had figured it out ages ago, so I was pretty proud of myself). When you clicked on a button you just used metadata to say that BL should catch it. I had all this wonderful "infrastructure"that handled passing the call to its destination. But then we wanted to take this n-layer application and put the BL in an "application server" which will handle multiple clients. Oh--now we need to move events over the wire , handle calls from multiple unrelated clients, pass a lot of data back and forth, and what about security... you can imagine the fiasco. Thus, as Niels Bohr once said, "An expert is a person who has made all the mistakes which can be made in a very narrow field." But you don't have to make the same mistakes. Just remember that a tier is a natural boundary. You know what? You should think of a tier as the edge of a cliff, right there - at the end of your application. You know you want to be careful and not fall down. <hr />[Originally posted Aug. 2006] Tue, 22 Jun 2010 01:17:16 -0400 Who Needs an Architect Anyway? http://www.drdobbs.com/architecture-and-design/who-needs-an-architect-anyway/228700519 Not all projects need architects. There, I've said it. Not all projects need architects and I am not talking here just about trivial projects.</p> Sat, 05 Jun 2010 23:05:08 -0400 Software architecture should start with Why http://www.drdobbs.com/architecture-and-design/software-architecture-should-start-with/228701873 I recently saw <a href="http://www.startwithwhy.com/">Simon Sinek</a>'s TedX talk on Start with Why (see below) talking about leadership. But WHY am I telling you this? For one, it's a good talk on leadership and inspiration in itself (well worth the 18 minutes or so it would take you to watch it). The main reason, however, as the title says, is that it also pertains to software architecture decisions. Simon talks about "the golden circle" going from Why -&gt; How -&gt; What. Saying most people work from the outside in (rarely getting to the why) and leaders work from the inside our (starting with Why). It is true for us as well - Software architecture decisions should start with why We're not just building an SOA (What) using mule or nservicebus (How) we're doing that to build a flexible solution so that we can respond to changing business needs (Why). We're not just using a NoSQL solution (What) using Cassandra cluster (How) we're doing that to solve a database reliability and availability problem of managing a large dataset with high write (Why) to allow the business to support X millions of images (in xsights case) with Y concurrent users and search times less than Z seconds (a better Why) This is the essence of why it is a very good idea to describe [intlink id="quality-attributes-introduction" type="post"]Quality attributes[/intlink] in terms of functional scenarios. We want to make sure that an architectural solution will be tied and will answer a real business scenario within the system. We don't want to provide fault-tolerance or 99.999% uptime . That's not interesting. We need to define why we need high-availability, what will be the consequences of the downtime loss of a business transaction? loss of 100K dollars? loss of life? - for the last case maybe 99.999% uptime is not enough for the first case maybe a 95% uptime will do - start with why. It can save you money, it will help you get to the right requirements and it will help you justify your decisions <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/u4ZoJKF_VuA&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/u4ZoJKF_VuA&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6" allowscriptaccess="always" allowfullscreen="true"></embed></object> Mon, 24 May 2010 01:33:50 -0400 Nanoservices Anti-Pattern (PDF Version) http://www.drdobbs.com/architecture-and-design/nanoservices-anti-pattern-pdf-version/228700493 The formatting on the <a href="http://www.rgoarchitects.com/nblog/2010/04/28/SOAAntipatternNanoservices.aspx">HTML version of the nano-services</a> is a bit off (Word to HTML is so much fun) so I am also <a href="http://bit.ly/dpMY7H">making it available as PDF</a>.</p> If you don't remember:</p> <blockquote> Nonoservice is an Anti-pattern where a service is too fine grained. Nanoservice is a service whose overhead (communications, maintenance etc.) out-weights its utility."</p> </blockquote> Tue, 18 May 2010 01:11:10 -0400 Evolving Architectures: Part III Starting Out http://www.drdobbs.com/architecture-and-design/evolving-architectures-part-iii-starting/229402072 Architectures' "Do's" & "Dont's" Sun, 16 May 2010 15:39:00 -0400 SOA Anti-Pattern : Nanoservices http://www.drdobbs.com/architecture-and-design/soa-anti-pattern-nanoservices/228700692 Wed, 28 Apr 2010 02:43:02 -0400 SOA Patterns book - your opinion needed http://www.drdobbs.com/architecture-and-design/soa-patterns-book-your-opinion-needed/228700331 It has been quite awhile since I added anything new to the book. I have my reasons (some would probably say excuses :) ) mainly that finding the energy and time to write is very hard with a wife, 3 kids and a startup. </p> Anyway, I've been talking with Manning lately trying to figure out what to do with this project. I was quite amazed to learn that 1000 or so of you purchased the MEAP edition even though it only contains 5 chapters and haven't been updated in a long time. (by the way I've also recently learned that book pirating sites are offering the book for download, but that's another story). Anyway, we're trying to decide what we want to do and this is where I'd love to hear some feedback from you</p> 1. Do you think the book is still relevant today?</p> 2. Do you think the book should be restarted form scratch to reflect recent</p> 3. Do we need to cancel the book and end this fiasco ? or push it though to completion?</p> 4. How valuable do you find the information in the book so far?</p> I am ready to put in time to to add enough patterns/anti-patterns to make the book releasable. but since I know it takes oodles of time I don't really have I really want to know I am not wasting my time</p> Please leave a comment/drop me an email if you have anything to say</p> Thanks (and thanks for continues patience so far) </p> Wed, 21 Apr 2010 13:07:31 -0400 Yes to NoSQL http://www.drdobbs.com/architecture-and-design/yes-to-nosql/228700577 There seems to be some backlash building up against <a href="http://en.wikipedia.org/wiki/NoSQL">NoSQL</a> with posts like Ted Dziuba&#160; ";<a href="http://teddziuba.com/2010/03/i-cant-wait-for-nosql-to-die.html">I Can't Wait for NoSQL to Die</a>"; or Dennis Forbes'&#160; ";<a href="http://www.yafla.com/dforbes/The_Impact_of_SSDs_on_Database_Performance_and_the_Performance_Paradox_of_Data_Explodification">The Impact of SSDs on Database Performance and the Performance Paradox of Data Explodification (aka Fighting the NoSQL mindset)</a>";.</p> These are interesting articles to read and yes RDBMSs are not going the way of the dodo yet (I even said that in&#160; <a href="http://www.rgoarchitects.com/nblog/2007/08/21/TheRDBMSIsDead.aspx">";The RDBMS is dead";</a>, which by the way, was written before NoSQL was coined, but I digress ). Nevertheless, other options, namely various NoSQL choices, prove to be easier to work with, and&#160; are&#160; a better fit in some circumstances.</p> Few time (ok very few times), that's because of sheer size (The ";Google";s) but what about the rest of us, should we just stick to good-old-RDBMSs?</p> If you are have a good understanding of RDBMSs (and/or a great applicative DBA working in your team) then in many cases the answer would be yes. I had a chance to review a couple of systems recently that deal with large amounts of data (in the Petabytes) both systems had a very good DBA teams working on the solution to a point that even ORM was not that important for the solution.</p> However, in many other cases NoSQL can be a better option. For instance let's take the Digg case Dennis Forbes talks about. Assuming, for the sake of argument that Dennis completely nailed Digg's requirements(*) and his single computer +SSD solution is a reasonable solution for Digg. Still the fact is that the Digg's team where not able to solve their problem with an RDBMS and the same team was able to pull it off with a NoSQL solution. So even if we say the team is mediocre (something they are probably not), NoSQL made it easier to solve a problem they couldn't have otherwise - that's a good thing in my book.&#160; </p> There are additional reasons to use NoSQL besides&#160; sheer size and better alignment with developers' mind-share though. The more important ones of those are&#160; to get cheaper (vs. comparable commercial RDBMS solutions) scalability and availability.&#160; Again if we look at the Digg switch to Cassandra <a href="http://about.digg.com/blog/looking-future-cassandra">they cited</a>&#160; ";the lack of redundancy on the write masters is painful"; and the administrative overhead as main reasons. </p> In any event it It is important to keep in mind that&#160; NoSQL is not a silver bullet. You need to assess whether or not it is suitable for the problem you have at hand for instance NoSQL solutions place emphasis on different parts of the <a href="http://www.julianbrowne.com/article/viewer/brewers-cap-theorem">CAP theorem</a> than RDBMSs do is this what you need? etc. </p> &#160;</p> &#160;</p> * I think that Dennis over-simplify Diggs situation since they also, for example, have heavy concurrent writes etc.&#160; </p> Thu, 01 Apr 2010 01:05:39 -0400 Architectural requirements Q&A http://www.drdobbs.com/architecture-and-design/architectural-requirements-qa/228701054 A few days ago I was contacted by Lianping Chen a doctoral researcher from the Irish Software Engineering Research Centre. Lianping is doing research on ";how to elicit architectural significant requirements"; and he asked me a few questions, which I though, might be interesting to a wider audience. Tue, 23 Mar 2010 14:35:42 -0400 Evolving Architectures - Part II but Design is emergent http://www.drdobbs.com/architecture-and-design/evolving-architectures-part-ii-but-des/228700770 This is part II of a series on agile architecture. Thu, 11 Mar 2010 12:04:35 -0500 Evolving Architectures - Part I What's Software Architecture http://www.drdobbs.com/architecture-and-design/evolving-architectures-part-i-whats-so/228701057 Mon, 11 Jan 2010 20:00:00 -0500