Blog Views
Categories
Reviews by Content
Archives
- May 2012 (1)
- April 2012 (7)
- March 2012 (5)
- February 2012 (3)
- January 2012 (1)
- December 2011 (3)
- November 2011 (3)
- October 2011 (3)
- September 2011 (5)
- August 2011 (26)
- July 2011 (6)
- June 2011 (8)
- May 2011 (6)
- April 2011 (9)
- March 2011 (6)
- February 2011 (7)
- January 2011 (6)
- December 2010 (5)
- November 2010 (22)
- October 2010 (5)
- September 2010 (4)
- August 2010 (4)
- July 2010 (5)
- June 2010 (4)
- May 2010 (3)
- April 2010 (1)
- March 2010 (1)
- February 2010 (2)
- January 2010 (4)
- December 2009 (1)
- June 2009 (1)
- May 2009 (1)
- April 2009 (2)
- March 2009 (1)
- November 2008 (2)
- July 2008 (2)
- June 2008 (1)
- April 2008 (1)
- January 2008 (1)
- July 2007 (2)
- June 2007 (1)
- April 2007 (4)
- March 2007 (1)
- October 2006 (2)
- June 2006 (1)
- May 2006 (2)
- March 2006 (1)
- January 2006 (3)
- August 2005 (5)
- July 2005 (5)
- June 2005 (5)
- May 2005 (6)
- March 2005 (9)
- February 2005 (5)
- September 2004 (2)
- June 2004 (1)
- May 2004 (2)
- April 2004 (1)
- March 2004 (2)
- December 2003 (1)
- September 2003 (1)
- August 2003 (2)
- July 2003 (4)
- June 2003 (1)
- April 2003 (2)
- March 2003 (2)
- July 2002 (1)
- June 2002 (2)
- April 2002 (9)
- January 2002 (1)
- September 2001 (1)
Category Archives: Agile & Architecture
Best Practices in Test Automation
I am looking for one of my clients into how costs can be reduced, or quality increased, by increasing the extent to which testing is automated.
As a first step, I am trying to develop a comprehensive list of test automation “best practices”, grouped roughly by life-cycle (or iteration) stage. I’m trying to find practices which are broadly independent of specific methods and technologies, although obviously tool support may vary depending on the chosen technology.
This article is my first draft of such a list.
I’d welcome suggestions from my readers if you think there are any omissions (or if you substantially disagree with anything I’ve included).
Thanks
Andrew
The Agile Architect at EAC 2006
If anyone is interested in hearing more about my views on architecture, and how agile methods apply to the work of the architect, please sign up for the 2006 Enterprise Architecture Conference in London in June.
I’m presenting a paper entitled “The Agile Architect”. This focuses on both how agile projects can have a strong architecture, and how architects can learn and benefit from agile approaches. I take a rather different approach to some recent papers with a similar title (e.g. at this week’s otherwise excellent Microsoft Architecture Insight conference), which suggest that agile projects can “do away with the architect”.
I look forwards to seeing you there.
Andrew
Who Are the Architects?
There’s a perennial discussion in architecture forums like the WWISA about the role of the architect, and the discussion regularly degenerates into a debate between the broad and narrow views of what the architect does.
But I’m not sure that’s the key question. I think the right question is “Who are the architects?”
Somehow, a number of tasks must be discharged, but how varies from project to project. In the last year I’ve had a modest building project which tells an interesting story about how different people contribute to “the architecture”. Read more here…
An Agile Architecture War Story
I don’t really believe in a common architectural process. As the author of a successful project management book, and recent articles on data architecture methods, I probably shouldn’t say this, but to paraphrase a famous quote, “When I hear ‘process’, I reach for my gun!”
This is a story of a project I worked upon which followed an informal, agile process, but delivered a successful architecture. Hopefully it serves to support my assertion that agile can have an architecture, but needs an agile architect.
Modelling Data Mapping – A Challenge
Almost all integration projects contain one or more transformations (sometimes called “mappings”) between two different structures holding equivalent data (for example the order tables in the database, and the order XML message). We know how to model the individual static data structures in various ways, but the most common approach is to represent each by a UML class model, and there are established conventions for how to do this for different data sources.
However, UML doesn’t help when it comes to the transformations themselves, and typically the detail has to be captured either in code, or a proprietary format. Most good integration tools provide some sort of “visual mapping tool”, where the developer drags and drops to create links between representations of the two structures, usually imported directly from their physical schemas. Here’s an example using SeeBeyond. Altova provide a good stand-alone data mapping tool called Mapforce – here’s an example showing it in use. The problem is that these tools work directly with the physical structure, and don’t export the mapping information in a reusable format, so that information is completely disconnected from the UML analysis or design models.
I have experimented with trying to represent mapping information in a UML model, but so far without much success. The best solution I’ve found so far is to use some sort of “pseudo code” (it could be OCL, pseudo-Java, pseudo-VB or anything similar). For example, we could easily annotate the model with code fragments such as:
Database.order_table.order_no = Message.Header.OrderNo
(where each element refers to a UML Package.Class.Attribute combination).
The problems are that it’s not clear where to put this annotation, most UML modelling tools won’t help generate it, and there’s no graphical representation. Ultimately, writing pseudo-code like this is probably not much better than abandoning the model and moving straight to using your integration tool.
My question is: does anybody know a better way? Has anybody found a good way of representing mapping information in UML? And if so, is there any good tool support?
If you know, please send me a message.
Metropolis – Where Do You Want To Live Today?
There’s been a lot of talk in recent years about a “city planning” metaphor for Enterprise Architecture development. Pat Helland’s article “Metropolis” in the Microsoft Architecture Journal is a very good example (see my post on this for some key quotes).
While the metaphor might still be valid, some people are beginning to question how far it should be taken. Helland’s article, like others before it, implies that “good” EA looks rather like a medium-sized modern American town, complete with relatively standard services, civic buildings and commercial venues. In an answer to the original “Metropolis” article Richard Veryard and Philip Boxer have published “Metropolis and SOA Governance” which challenges several of Helland’s assumptions.
I think that maybe we should extend the metaphor by thinking about cities, or Enterprise Architectures, as very diverse entities. What sort of “city” do you live in? To what extent is it planned? What is the vision, and do the citizens share in it? Does the EA resemble a nice neat midwest town, a dark, brooding Gotham City, a glass and steel Utopia, a federation of small towns with lots of empty space between them, a medieaval walled town, or a wartime mid-european ghetto?
And the metaphor can be taken further. Do you want to promote “infill development”, closing up functional gaps, or do you want to keep clear separation between the various zones? Do you want the shared services to be clearly visible, as they are in modern, purpose-built towns or hidden beneath a facade which looks much older or simpler? Do you expect to eventually knock down and rebuild older “legacy” zones, or do you want to preserve them with the minimum of change (a common requirement for our valuable historic buildings)? Do you want to accomodate the small hardware shop (read small the bespoke system) as well as the new DIY superstore (the ERP package)?
Finally, remember that it is extremely rare for a city to be truly planned and designed from scratch. You usually start with something established. Even if the city has been flattened by a bomb, you’ll have to observe land rights (this is what stopped Christopher Wren and Charles II realising their grand design after the Fire of London). This is equally true of Enterprise Architectures.
The city planning metaphor is a powerful one, but its true power may come if we use it to explore problems as well as utopian ideals.
Review – Enterprise Integration Patterns
I’ve just posted my review of Gregor Hohpe and Bobby Woolfe’s excellent book on Enterprise Integration using messaging, “Enterprise Integration Patterns”. Overall it’s an excellent book, and wiil probably become a “bible” for those involved in the high-level design of integration solutions. To find out more, please read my review.
Metropolis – a Metaphor for IT Maturity
I’ve just read an excellent paper by Pat Helland of Microsoft, in which he likens the development of cities and manufacturing in the 19th century to the development of systems and business models now. His conclusion – IT at the moment is about at the same stage as America in the 1880s, when they were just starting to turn the Wild West into an industrialised nation!
Three short quotes from Helland’s conclusions bear repeating directly. On heterogeneity he says:
Remember that heterogeneity happens. Unless you have a very simple application portfolio, shared services will not be achieved by trying to put all
of your applications on one version of one platform. Even if you could, the next
merger would change that! Rather, you have to design for interoperability and
integration across platforms. This is the force that is driving the industry
wide work in service-oriented architectures.
He extends the popular “city planning” metaphor to IT investment:
IT investment is a balance of funding the sacred, protecting historic monuments, and allocating spending between infrastructure and business opportunity. Striking this balance is a key facet in effective governance, and in realizing the potential of IT in your organization.
And finally, those who seek to maintain control of their enterprise
architecture through heavy governance would be well advised to note:
You have to maintain a light hand. It is counterproductive to try to dictate
what happens in every structure in town, what color shirts are made, and how much is charged for soap. You have to embrace the semi-autonomous approach to governance that is characteristic of our cities, and allow the process owners to optimize and achieve efficiencies with as few constraints as
possible.
Cirrus Minor – A New Architecture Site
Arnon Rotem-Gal-Oz has set up an interesting new site / blog dedicated to software architecture. Of particular note, he’s trying to put some detail on the architecture “process” which is often negelcted as a single box on the development process picture. His approach has the name SPAMMED, catchy, but might cause the odd problem with email filters
Domain-Specific Languages
There seems to be quite a lot of activity on the “Domain Specific Language” front at the moment. Martin Fowler published “Language Workbenches: The Killer-App for Domain Specific Languages?”, in which he concludes that the common programming pattern of setting up repeating data structures via either very similar lines of code, or an external configuration file, is actually a DSL. He also republished a paper by Dave Thomas entitled “Design to Accomodate Change” on the related topic of table-driven programming.
However, Martin’s essay goes beyond common programming and data techniques to look at the development of specialist tools which he calls “Language Workbenches”. I’m not completely convinced that we need these in the world of XML and XSD. If you have a defined schema for you XML-based DSL (and aren’t all the many *ML langauges just different DLSs?) then any schema-sensitive editor will provide you with good design and editing support. The leading IDEs (e.g. Visual Studio) all have such a tool built into their core capabilities. Surely we now have a sufficiently sophisticated set of XML-based tools and standards that we have an opportunity to exploit synergies rather than re-inventing the wheel?





