<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Architecture teams, frameworks, and agile development</title>
	<atom:link href="http://lisacrispin.com/wordpress/2009/10/03/architecture-teams-frameworks-and-agile-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://lisacrispin.com/wordpress/2009/10/03/architecture-teams-frameworks-and-agile-development/</link>
	<description>Providing Practical Agile Testing Guidance</description>
	<lastBuildDate>Sun, 05 Feb 2012 18:42:05 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Jim Knowlton</title>
		<link>http://lisacrispin.com/wordpress/2009/10/03/architecture-teams-frameworks-and-agile-development/comment-page-1/#comment-262</link>
		<dc:creator>Jim Knowlton</dc:creator>
		<pubDate>Tue, 03 Nov 2009 23:29:24 +0000</pubDate>
		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=321#comment-262</guid>
		<description>I&#039;d say the architectural framework makes automation easier.  Since there is a published, stable API, I can use the API documentation (which is pretty thorough) to know what functionality to call and how to call it, and the amount of re-working - at least at the level of the foundation - is limited.  

Our test framework is twofold.  Our product is Java/Spring-based, and allows us to build &quot;plugins&quot; (in Java or Groovy) that can be called from a script through http posts and gets.  The nice thing is that I am good with Java but our other people aren&#039;t.  If the underlying code changes, I can change the undrlying plugin code but keep the http interface the same, and our test scripts (written in Ruby and connecting to the server through an https connection) don&#039;t have to be modified...not too much, anyway.

It&#039;s worked out pretty well for us.

Jim</description>
		<content:encoded><![CDATA[<p>I&#8217;d say the architectural framework makes automation easier.  Since there is a published, stable API, I can use the API documentation (which is pretty thorough) to know what functionality to call and how to call it, and the amount of re-working &#8211; at least at the level of the foundation &#8211; is limited.  </p>
<p>Our test framework is twofold.  Our product is Java/Spring-based, and allows us to build &#8220;plugins&#8221; (in Java or Groovy) that can be called from a script through http posts and gets.  The nice thing is that I am good with Java but our other people aren&#8217;t.  If the underlying code changes, I can change the undrlying plugin code but keep the http interface the same, and our test scripts (written in Ruby and connecting to the server through an https connection) don&#8217;t have to be modified&#8230;not too much, anyway.</p>
<p>It&#8217;s worked out pretty well for us.</p>
<p>Jim</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://lisacrispin.com/wordpress/2009/10/03/architecture-teams-frameworks-and-agile-development/comment-page-1/#comment-261</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Mon, 02 Nov 2009 21:47:52 +0000</pubDate>
		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=321#comment-261</guid>
		<description>Johannes, do you have suggestions for how organizations can make sure the architects do relevant work?</description>
		<content:encoded><![CDATA[<p>Johannes, do you have suggestions for how organizations can make sure the architects do relevant work?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://lisacrispin.com/wordpress/2009/10/03/architecture-teams-frameworks-and-agile-development/comment-page-1/#comment-260</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Mon, 02 Nov 2009 21:40:08 +0000</pubDate>
		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=321#comment-260</guid>
		<description>It seems like a pragmatic approach for your situation. I like the idea that you address whatever automation-related issues cause the most pain, not just automating tests. 

Do programmers have any trouble working within the architectural framework? Does the framework make test automation more difficult, or easier?</description>
		<content:encoded><![CDATA[<p>It seems like a pragmatic approach for your situation. I like the idea that you address whatever automation-related issues cause the most pain, not just automating tests. </p>
<p>Do programmers have any trouble working within the architectural framework? Does the framework make test automation more difficult, or easier?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim Knowlton</title>
		<link>http://lisacrispin.com/wordpress/2009/10/03/architecture-teams-frameworks-and-agile-development/comment-page-1/#comment-222</link>
		<dc:creator>Jim Knowlton</dc:creator>
		<pubDate>Sat, 31 Oct 2009 06:46:22 +0000</pubDate>
		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=321#comment-222</guid>
		<description>Lisa,

I work for a large software company on a web-based enterprise systems management product.  We have plugins that are developed by different teams all over the country, and they all have independent release schedules.  We&#039;re also supported on several different versions of Windows and different DB servers.  We also support clustered server environments.  So, it&#039;s a fairly complex environment.

We have what I&#039;d call a &quot;sort of agile&quot; system.  We have six week iterations, have a big push to automate as much as possible (all new QA people hired now need to have automation skills), we are story-based and the dev team is pushing hard for unit tests.  However, we also are using a heavyweight test management system (HP QualityCenter), we have to do quite a bit of project documentation (MRD, QA Plan, Dev Plan, etc) - this is to fullfill senior-management level decisionmaking process.  So, it&#039;s definitely not a perfect process...probably better than some, worse than others.

One thing I do think...is that it has helped our team (I am the automation lead) to think in terms of automating testing instead of just automating tests.  So, sometimes our automation resources have been dedicated to automating things like the restoring of test images and the like, because that was causing the most pain.  

As far as architecture, I just think our application has too many moving parts for it to be practical to evolve our foundation organically.  There is a standard, an API, that we publish and pretty much stick to once we reach Beta (the point products don&#039;t start developing on our product until we are at least in Beta).  I think with the type of software we&#039;re building, there have to be some compromises (though at this point I recognize we&#039;re probably making too many).

Jim</description>
		<content:encoded><![CDATA[<p>Lisa,</p>
<p>I work for a large software company on a web-based enterprise systems management product.  We have plugins that are developed by different teams all over the country, and they all have independent release schedules.  We&#8217;re also supported on several different versions of Windows and different DB servers.  We also support clustered server environments.  So, it&#8217;s a fairly complex environment.</p>
<p>We have what I&#8217;d call a &#8220;sort of agile&#8221; system.  We have six week iterations, have a big push to automate as much as possible (all new QA people hired now need to have automation skills), we are story-based and the dev team is pushing hard for unit tests.  However, we also are using a heavyweight test management system (HP QualityCenter), we have to do quite a bit of project documentation (MRD, QA Plan, Dev Plan, etc) &#8211; this is to fullfill senior-management level decisionmaking process.  So, it&#8217;s definitely not a perfect process&#8230;probably better than some, worse than others.</p>
<p>One thing I do think&#8230;is that it has helped our team (I am the automation lead) to think in terms of automating testing instead of just automating tests.  So, sometimes our automation resources have been dedicated to automating things like the restoring of test images and the like, because that was causing the most pain.  </p>
<p>As far as architecture, I just think our application has too many moving parts for it to be practical to evolve our foundation organically.  There is a standard, an API, that we publish and pretty much stick to once we reach Beta (the point products don&#8217;t start developing on our product until we are at least in Beta).  I think with the type of software we&#8217;re building, there have to be some compromises (though at this point I recognize we&#8217;re probably making too many).</p>
<p>Jim</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Johannes</title>
		<link>http://lisacrispin.com/wordpress/2009/10/03/architecture-teams-frameworks-and-agile-development/comment-page-1/#comment-214</link>
		<dc:creator>Johannes</dc:creator>
		<pubDate>Sun, 11 Oct 2009 00:01:08 +0000</pubDate>
		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=321#comment-214</guid>
		<description>I&#039;ve been on two major projects with architecture teams. In neither one, the result of this was disastrous, but the structure was a way for the project to ensure that their most experienced people had as little effect as possible. It was wasteful, pure and simple.

When working on an architecture team, I noticed that my focus was almost always on irrelevant problems and that I had a poor estimation of the work I imposed on the teams. In hindsight, my work resulted in little value.

After having had an architecture team, the first project gave system architects  the final say insofar they did not create work for people outside the team. The system architects and senior devs got together every week to exchange notes. If someone wanted to influence the organization as a whole, this forum served as an advisory body for guidelines written by the system architects who wanted the change.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve been on two major projects with architecture teams. In neither one, the result of this was disastrous, but the structure was a way for the project to ensure that their most experienced people had as little effect as possible. It was wasteful, pure and simple.</p>
<p>When working on an architecture team, I noticed that my focus was almost always on irrelevant problems and that I had a poor estimation of the work I imposed on the teams. In hindsight, my work resulted in little value.</p>
<p>After having had an architecture team, the first project gave system architects  the final say insofar they did not create work for people outside the team. The system architects and senior devs got together every week to exchange notes. If someone wanted to influence the organization as a whole, this forum served as an advisory body for guidelines written by the system architects who wanted the change.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://lisacrispin.com/wordpress/2009/10/03/architecture-teams-frameworks-and-agile-development/comment-page-1/#comment-211</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Wed, 07 Oct 2009 16:20:41 +0000</pubDate>
		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=321#comment-211</guid>
		<description>Nuno, this is so helpful, thank you! That sounds like a really good way to integrate an architecture team and help the developers with a useful framework.</description>
		<content:encoded><![CDATA[<p>Nuno, this is so helpful, thank you! That sounds like a really good way to integrate an architecture team and help the developers with a useful framework.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nuno Borges</title>
		<link>http://lisacrispin.com/wordpress/2009/10/03/architecture-teams-frameworks-and-agile-development/comment-page-1/#comment-210</link>
		<dc:creator>Nuno Borges</dc:creator>
		<pubDate>Wed, 07 Oct 2009 15:58:19 +0000</pubDate>
		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=321#comment-210</guid>
		<description>I&#039;ve had the benefit of working with Architects on both a failed and a successfull agile endeavour. It&#039;s obvious that the integration of architecture within agile is a poorly understood and continually emerging relationship. I still don&#039;t think i&#039;ve witnessed the perfect integration, but in comparing the 2 cases i mentioned, one may find a nugget or 2 of wisdom. It&#039;s worth noting that this exact topic at Agile 2008 in Toronto had only one session of attention directed towards it, although Ron Jefferies made several comments about it in some of his sessions.

Very quickly, in the failed implementation, Architecture was almost comically proud of their ivory tower status. They created Enterprise Architect diagrams for system interfaces that were either already implemented, currently being developed, or nowhere near the next 2 or 3 sprints. Their work never appeared on the Product Backlog, and the PO had no idea why they inhabited the same floor space. The obvious collisions occurred as you might imagine. Interfaces were implemented by devs in complete disregard of an Architecture team that was disengaged from the current product development rhythms, and as a result, Arch spent most of their time trying to force Dev to refactor working stories to &#039;fit their models&#039;. Ridiculous? They were hired by the VP, so that gives you some insight into why it was tolerated, and ultimately failed. I almost forgot, they also didn&#039;t code.

Ok, now onto the good stuff. At Logitech we have decided to retain the Arch group because of the complexity of the product, and to drive consistency across 5-8 scrum teams. However, there are very clear guidelines that we impose on them to keep it as &#039;Agile&#039; as possible, and not break too many rules.

1. Archs code too: The only way an Arch will live in harmony with a bunch of crack senior devs, is to possess the same willingness and skill deep inside the codebase.

2. Architect &#039;kind-of just in time&#039;: For a complex framework that requires a significant amount of design, it&#039;s probably too ambitious to rely on a bunch of XP Devs to emerge the architecture in a highly refactorable way that doesn&#039;t incur too much waste. So, in other words, the stories ultimately trigger the need for architecture, but we Load Up that first story with as much of this design/prototyping as we can get away with, and still deliver something testable and usable for the user. Future stories in that functional area will always force us to revisit the architecture and the interface design, but at least we have meatier platform to work with. The counter argument here is that we might be inadvertantly creating waste because we don&#039;t know how the arch will emerge throughout the project, but i don&#039;t buy it, because there is always a bunch of &#039;core and crud-like&#039; stuff that needs to get built as part of your overhead cost of creating a robust platform. A good example is error handling. The obvious waste in creating a quick and dirty solution for one story should be avoided, because you know that eventually you&#039;ll have to create a centralized error handling mechanism, which of course will never be a user story.

3. Architects bind to stories: Rather than having them operate as their own scrum team, we have decided to lend them out to the scrum team that has picked up a story that requires arch input. So, in the previous case, an Arch would probably build a &#039;starter&#039; error handling component to be delivered with the first story that required it, and with some quick knowledge transfer, devs could handle the rest. This doesn&#039;t help us derive clean team sprint velocities, but in a Scrum of Scrums setup, we are also concerned with the team&#039;s overall Product burndown. It&#039;s the trade-off in our scenario, but the teams love having the archs work closely with them on stories that require that bridging effort across the platform. That&#039;s what the Archs do, and it help the devs to concentrate on acceptance criteria, TDD, and the ultimate delivery of a story. The primary reason i don&#039;t gravitate completely to XP is because complexity creates specialization. This is a dynamic that is as apparent in human social development as it is in product development. We can&#039;t rely on a model of equally brilliant and capable Devs who can work on anything. Specialization, interspersed with as much knowledge sharing as we can afford, allows Archs to coexist with devs and to platoon from scrum team to scrum team, depending on the stories that require their input.

4. It&#039;s ok to create a &#039;Technical Story&#039;: We have negotiated a 15% budget to work on &#039;technical&#039; or Arch related stories. That means that our public velocity is 85% of our average story points capacity. This prevents a lot of discussion around proving that a technical story is required in order to complete what seems like a simple user story.

Once again, i know we have made some un-Agile compromises, but the alternative of a pure Agile approach was untenable. Like everything, we iterate and we retrospect, and through it all, we keep a close eye on the principles and values that keep us honest. The purist in me feels guilty, but i can live with that, because after all, it&#039;s the user that ultimately determines success.

Nuno</description>
		<content:encoded><![CDATA[<p>I&#8217;ve had the benefit of working with Architects on both a failed and a successfull agile endeavour. It&#8217;s obvious that the integration of architecture within agile is a poorly understood and continually emerging relationship. I still don&#8217;t think i&#8217;ve witnessed the perfect integration, but in comparing the 2 cases i mentioned, one may find a nugget or 2 of wisdom. It&#8217;s worth noting that this exact topic at Agile 2008 in Toronto had only one session of attention directed towards it, although Ron Jefferies made several comments about it in some of his sessions.</p>
<p>Very quickly, in the failed implementation, Architecture was almost comically proud of their ivory tower status. They created Enterprise Architect diagrams for system interfaces that were either already implemented, currently being developed, or nowhere near the next 2 or 3 sprints. Their work never appeared on the Product Backlog, and the PO had no idea why they inhabited the same floor space. The obvious collisions occurred as you might imagine. Interfaces were implemented by devs in complete disregard of an Architecture team that was disengaged from the current product development rhythms, and as a result, Arch spent most of their time trying to force Dev to refactor working stories to &#8216;fit their models&#8217;. Ridiculous? They were hired by the VP, so that gives you some insight into why it was tolerated, and ultimately failed. I almost forgot, they also didn&#8217;t code.</p>
<p>Ok, now onto the good stuff. At Logitech we have decided to retain the Arch group because of the complexity of the product, and to drive consistency across 5-8 scrum teams. However, there are very clear guidelines that we impose on them to keep it as &#8216;Agile&#8217; as possible, and not break too many rules.</p>
<p>1. Archs code too: The only way an Arch will live in harmony with a bunch of crack senior devs, is to possess the same willingness and skill deep inside the codebase.</p>
<p>2. Architect &#8216;kind-of just in time&#8217;: For a complex framework that requires a significant amount of design, it&#8217;s probably too ambitious to rely on a bunch of XP Devs to emerge the architecture in a highly refactorable way that doesn&#8217;t incur too much waste. So, in other words, the stories ultimately trigger the need for architecture, but we Load Up that first story with as much of this design/prototyping as we can get away with, and still deliver something testable and usable for the user. Future stories in that functional area will always force us to revisit the architecture and the interface design, but at least we have meatier platform to work with. The counter argument here is that we might be inadvertantly creating waste because we don&#8217;t know how the arch will emerge throughout the project, but i don&#8217;t buy it, because there is always a bunch of &#8216;core and crud-like&#8217; stuff that needs to get built as part of your overhead cost of creating a robust platform. A good example is error handling. The obvious waste in creating a quick and dirty solution for one story should be avoided, because you know that eventually you&#8217;ll have to create a centralized error handling mechanism, which of course will never be a user story.</p>
<p>3. Architects bind to stories: Rather than having them operate as their own scrum team, we have decided to lend them out to the scrum team that has picked up a story that requires arch input. So, in the previous case, an Arch would probably build a &#8216;starter&#8217; error handling component to be delivered with the first story that required it, and with some quick knowledge transfer, devs could handle the rest. This doesn&#8217;t help us derive clean team sprint velocities, but in a Scrum of Scrums setup, we are also concerned with the team&#8217;s overall Product burndown. It&#8217;s the trade-off in our scenario, but the teams love having the archs work closely with them on stories that require that bridging effort across the platform. That&#8217;s what the Archs do, and it help the devs to concentrate on acceptance criteria, TDD, and the ultimate delivery of a story. The primary reason i don&#8217;t gravitate completely to XP is because complexity creates specialization. This is a dynamic that is as apparent in human social development as it is in product development. We can&#8217;t rely on a model of equally brilliant and capable Devs who can work on anything. Specialization, interspersed with as much knowledge sharing as we can afford, allows Archs to coexist with devs and to platoon from scrum team to scrum team, depending on the stories that require their input.</p>
<p>4. It&#8217;s ok to create a &#8216;Technical Story&#8217;: We have negotiated a 15% budget to work on &#8216;technical&#8217; or Arch related stories. That means that our public velocity is 85% of our average story points capacity. This prevents a lot of discussion around proving that a technical story is required in order to complete what seems like a simple user story.</p>
<p>Once again, i know we have made some un-Agile compromises, but the alternative of a pure Agile approach was untenable. Like everything, we iterate and we retrospect, and through it all, we keep a close eye on the principles and values that keep us honest. The purist in me feels guilty, but i can live with that, because after all, it&#8217;s the user that ultimately determines success.</p>
<p>Nuno</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex</title>
		<link>http://lisacrispin.com/wordpress/2009/10/03/architecture-teams-frameworks-and-agile-development/comment-page-1/#comment-209</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Wed, 07 Oct 2009 00:32:28 +0000</pubDate>
		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=321#comment-209</guid>
		<description>The internal development group I work for does indeed have architectural frameworks that all teams are encouraged (but not usually forced) to use. The framework in most common use is for security.  It&#039;s used to secure WCF services which are gaining traction.  While robust, it is somewhat difficult to get the security implemented because of some rather arcane configuration options.  This causes a lot of complaints, but as more teams are adopting it, the knowledge of how to properly implement it is spreading.

The biggest problem from the testing perspective is that no web service testing tools, currently, will allow us to use our custom binding required for the framework.  Thus, we&#039;re forced to instantiate our own service clients in code in order to test services.  Some teams are better prepared to deal with this than others.  Solving this problem is one of the efforts I&#039;m focused on now.</description>
		<content:encoded><![CDATA[<p>The internal development group I work for does indeed have architectural frameworks that all teams are encouraged (but not usually forced) to use. The framework in most common use is for security.  It&#8217;s used to secure WCF services which are gaining traction.  While robust, it is somewhat difficult to get the security implemented because of some rather arcane configuration options.  This causes a lot of complaints, but as more teams are adopting it, the knowledge of how to properly implement it is spreading.</p>
<p>The biggest problem from the testing perspective is that no web service testing tools, currently, will allow us to use our custom binding required for the framework.  Thus, we&#8217;re forced to instantiate our own service clients in code in order to test services.  Some teams are better prepared to deal with this than others.  Solving this problem is one of the efforts I&#8217;m focused on now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Squirrel</title>
		<link>http://lisacrispin.com/wordpress/2009/10/03/architecture-teams-frameworks-and-agile-development/comment-page-1/#comment-206</link>
		<dc:creator>Squirrel</dc:creator>
		<pubDate>Mon, 05 Oct 2009 12:16:50 +0000</pubDate>
		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=321#comment-206</guid>
		<description>We have a framework shared by two teams. Opinions are divided - it&#039;s nice to get code written by one team reused by the other, but having one team able to update the framework and break the other is bad for productivity and morale. On balance we would probably be better off with some common small libraries and much less shared code - or even better, a commodity framework like Django or Rails.  

We don&#039;t have a lot of testing-specific problems with the shared framework - in fact, this is one place where sharing does help us a lot, as we run hundreds of Selenium tests in a fairly large grid using a mechanism shared by both teams.

Our company is a lot smaller than yours though (we are under 50).</description>
		<content:encoded><![CDATA[<p>We have a framework shared by two teams. Opinions are divided &#8211; it&#8217;s nice to get code written by one team reused by the other, but having one team able to update the framework and break the other is bad for productivity and morale. On balance we would probably be better off with some common small libraries and much less shared code &#8211; or even better, a commodity framework like Django or Rails.  </p>
<p>We don&#8217;t have a lot of testing-specific problems with the shared framework &#8211; in fact, this is one place where sharing does help us a lot, as we run hundreds of Selenium tests in a fairly large grid using a mechanism shared by both teams.</p>
<p>Our company is a lot smaller than yours though (we are under 50).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Elie</title>
		<link>http://lisacrispin.com/wordpress/2009/10/03/architecture-teams-frameworks-and-agile-development/comment-page-1/#comment-205</link>
		<dc:creator>Elie</dc:creator>
		<pubDate>Sun, 04 Oct 2009 13:05:58 +0000</pubDate>
		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=321#comment-205</guid>
		<description>I haven&#039;t worked in that environment but I can tell you were to look. You need to find someone in the video game industry. They have developers building these frameworks and tools to be used by the game development team.

I know for fact that in that case that the framework and the game it self are treated as two different products, having there own cycles but that there is still a form of communication where the gaming side asks for new framework features.


Thanks</description>
		<content:encoded><![CDATA[<p>I haven&#8217;t worked in that environment but I can tell you were to look. You need to find someone in the video game industry. They have developers building these frameworks and tools to be used by the game development team.</p>
<p>I know for fact that in that case that the framework and the game it self are treated as two different products, having there own cycles but that there is still a form of communication where the gaming side asks for new framework features.</p>
<p>Thanks</p>
]]></content:encoded>
	</item>
</channel>
</rss>

