<?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: Assembling software: Industrial Style</title>
	<atom:link href="http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/</link>
	<description>Software development done right!</description>
	<lastBuildDate>Wed, 08 Feb 2012 14:41:38 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Sander Hoogendoorn</title>
		<link>http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/#comment-19259</link>
		<dc:creator>Sander Hoogendoorn</dc:creator>
		<pubDate>Sun, 07 Oct 2007 18:32:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/#comment-19259</guid>
		<description>Ron, although we agree on a lot of issues in our industry, I&#039;m afraid we will not likely agree on this one. There is no way we will produce 31 variants of the same piece of software. Jonathan is right in his comments on your original entry: this is configuration. And even enterprise package implementation, the piece of our industry that is most similar to configuring products, such as implementing SAP or Microsoft Commerce Server for that matter introduces far more variance than building 31 types of Toyota Thundra. Building full functional business applications is a totally different area, Yes, it helps industrializing most of our work, including code generators, standard software architectures and standard modeling techniques, but there&#039;s just much more to it than assembling standard components. Business applications assist organizations in being unique. And having read into Mary and Tom&#039;s work, I agree most of my work resembles product development, not product manufacturing. We should not buy in to metapgore of prodcution lines or worse, building houses, because they simply do not match our industry.</description>
		<content:encoded><![CDATA[<p>Ron, although we agree on a lot of issues in our industry, I&#8217;m afraid we will not likely agree on this one. There is no way we will produce 31 variants of the same piece of software. Jonathan is right in his comments on your original entry: this is configuration. And even enterprise package implementation, the piece of our industry that is most similar to configuring products, such as implementing SAP or Microsoft Commerce Server for that matter introduces far more variance than building 31 types of Toyota Thundra. Building full functional business applications is a totally different area, Yes, it helps industrializing most of our work, including code generators, standard software architectures and standard modeling techniques, but there&#8217;s just much more to it than assembling standard components. Business applications assist organizations in being unique. And having read into Mary and Tom&#8217;s work, I agree most of my work resembles product development, not product manufacturing. We should not buy in to metapgore of prodcution lines or worse, building houses, because they simply do not match our industry.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ron Kersic</title>
		<link>http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/#comment-4985</link>
		<dc:creator>Ron Kersic</dc:creator>
		<pubDate>Thu, 22 Feb 2007 10:39:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/#comment-4985</guid>
		<description>@serge,

It’s not an analogy I’m trying to put forth, if only because –as you already mentioned- a software component can be likened to a mechanical component only to a certain extent. Right. 

Would I do want is to be inspired from the attitude in product manufacture in an attempt to advance the state of our industry. Maybe it’s just me but I just cannot be content with our current fate because “it’s too easy to say that software should be made out of components like in mechanical and electronic engineering”. And after all, we are already inspired by a certain car manufacture as far as lean, waste-eliminating practices are concerned!

There are 31 variations of Toyota Tundra pickup truck (not my sort of car, but it’ll do as an example) that include engines, wheelbases (a significant design characteristic!) and cabs of different sizes. It’s design engineers didn’t simply create the best truck they can; they needed to create the best truck that could be built in a big factory; a truck — or 31 trucks, really — that can be assembled efficiently and systematically. That’s inspirational!</description>
		<content:encoded><![CDATA[<p>@serge,</p>
<p>It’s not an analogy I’m trying to put forth, if only because –as you already mentioned- a software component can be likened to a mechanical component only to a certain extent. Right. </p>
<p>Would I do want is to be inspired from the attitude in product manufacture in an attempt to advance the state of our industry. Maybe it’s just me but I just cannot be content with our current fate because “it’s too easy to say that software should be made out of components like in mechanical and electronic engineering”. And after all, we are already inspired by a certain car manufacture as far as lean, waste-eliminating practices are concerned!</p>
<p>There are 31 variations of Toyota Tundra pickup truck (not my sort of car, but it’ll do as an example) that include engines, wheelbases (a significant design characteristic!) and cabs of different sizes. It’s design engineers didn’t simply create the best truck they can; they needed to create the best truck that could be built in a big factory; a truck — or 31 trucks, really — that can be assembled efficiently and systematically. That’s inspirational!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Serge Beaumont</title>
		<link>http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/#comment-4750</link>
		<dc:creator>Serge Beaumont</dc:creator>
		<pubDate>Fri, 09 Feb 2007 09:18:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/#comment-4750</guid>
		<description>Ron, again I must make a remark about your analogy. I studied mechanical engineering and I have some experience in creating actual physical products. 

Like Brooks said in Mythical Man Month, software&#039;s infinite flexibility is an advantage and a disadvantage. It&#039;s too easy to say that software should be made out of components like in mechanical and electronic engineering. 

First, the laws of physics help a lot in constraining infinite freedom, which in this case is nice. 

Secondly, mechanical components have functions that are much simpler than the variety and complexity of function that software components have to perform. The relatively simpler set of functions mechanical components perform means that reuse is much easier to achieve. How many variations are there really to pushing and pulling stuff? :-P

On the subject of components I still consider the Catalysis book by Wills and D&#039;Souza to be the best you can find. One crucial point Wills makes is that good components don&#039;t come separately. All components should come in component kits. What we can learn from mechanical engineering is that we need to find or create &quot;laws of physics&quot; for software that will help us to converge components into kits.</description>
		<content:encoded><![CDATA[<p>Ron, again I must make a remark about your analogy. I studied mechanical engineering and I have some experience in creating actual physical products. </p>
<p>Like Brooks said in Mythical Man Month, software&#8217;s infinite flexibility is an advantage and a disadvantage. It&#8217;s too easy to say that software should be made out of components like in mechanical and electronic engineering. </p>
<p>First, the laws of physics help a lot in constraining infinite freedom, which in this case is nice. </p>
<p>Secondly, mechanical components have functions that are much simpler than the variety and complexity of function that software components have to perform. The relatively simpler set of functions mechanical components perform means that reuse is much easier to achieve. How many variations are there really to pushing and pulling stuff? <img src='http://blog.xebia.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p>On the subject of components I still consider the Catalysis book by Wills and D&#8217;Souza to be the best you can find. One crucial point Wills makes is that good components don&#8217;t come separately. All components should come in component kits. What we can learn from mechanical engineering is that we need to find or create &#8220;laws of physics&#8221; for software that will help us to converge components into kits.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ron Kersic</title>
		<link>http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/#comment-4738</link>
		<dc:creator>Ron Kersic</dc:creator>
		<pubDate>Thu, 08 Feb 2007 20:04:49 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/#comment-4738</guid>
		<description>@Serge, Jonathan, Vincent,

I guess I shouldn’t have used the automotive examples, as they seem to have lured you into thinking that “all Mercedes’ are basically the same” with variations limited to “a gazillion different types of wheels” and that a manufacturing process is best compared to “the deployment of a finalized but configurable software product.” 

Maybe a more evocative example would have been the Giza pyramid product line. Seriously, I understand that “configuration” evokes very different images from what I tried to get across. 

What I want to convey is the image of manufacturing software out of components in an automated way; which is the way other industries have been producing (mechanical, electronic, …) goods for years. This would require a means of specifying family members, implementation components from which each member can be assembled, and configuration knowledge to map between a specification of a member and a finished member. 

For cars there’s a system for ordering cars, there are components from which cars are assembled, and there is the configuration knowledge of how to assemble a car corresponding to a given order. Much of the car configuration knowledge is embodied in an automated assembly line. Similarly, for software manufacturing, the configuration knowledge is captured in program form (‘generators’, most likely).

@Jonathan, you’re right to emphasize the distinction between design and development of “a mock-up/candidate product” and the actual production. Indeed, what I’d like to see happen for our industry is not developing on-off’s but developing a product line for the sole purpose of being able to manufacture product members on a (more or less) large scale later on. After all, the cars we buy are the output from the manufacturing process and not the development hacks (with the notable exception of British sports cars where there is no such distinction)! 

The discovery bit you raised is interesting too because it actually happens at two levels. First, you have to discover the requirements for the product line itself after which you have to discover the specification of a product member for a given customer. In the context of Rails, the first act of discovery has been delivered by courtesy of DHH. The second act of discovery isn’t magically resolved and indeed needs to be addressed. Fair enough, as I didn’t pretend this to go away easily.</description>
		<content:encoded><![CDATA[<p>@Serge, Jonathan, Vincent,</p>
<p>I guess I shouldn’t have used the automotive examples, as they seem to have lured you into thinking that “all Mercedes’ are basically the same” with variations limited to “a gazillion different types of wheels” and that a manufacturing process is best compared to “the deployment of a finalized but configurable software product.” </p>
<p>Maybe a more evocative example would have been the Giza pyramid product line. Seriously, I understand that “configuration” evokes very different images from what I tried to get across. </p>
<p>What I want to convey is the image of manufacturing software out of components in an automated way; which is the way other industries have been producing (mechanical, electronic, …) goods for years. This would require a means of specifying family members, implementation components from which each member can be assembled, and configuration knowledge to map between a specification of a member and a finished member. </p>
<p>For cars there’s a system for ordering cars, there are components from which cars are assembled, and there is the configuration knowledge of how to assemble a car corresponding to a given order. Much of the car configuration knowledge is embodied in an automated assembly line. Similarly, for software manufacturing, the configuration knowledge is captured in program form (‘generators’, most likely).</p>
<p>@Jonathan, you’re right to emphasize the distinction between design and development of “a mock-up/candidate product” and the actual production. Indeed, what I’d like to see happen for our industry is not developing on-off’s but developing a product line for the sole purpose of being able to manufacture product members on a (more or less) large scale later on. After all, the cars we buy are the output from the manufacturing process and not the development hacks (with the notable exception of British sports cars where there is no such distinction)! </p>
<p>The discovery bit you raised is interesting too because it actually happens at two levels. First, you have to discover the requirements for the product line itself after which you have to discover the specification of a product member for a given customer. In the context of Rails, the first act of discovery has been delivered by courtesy of DHH. The second act of discovery isn’t magically resolved and indeed needs to be addressed. Fair enough, as I didn’t pretend this to go away easily.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vincent Partington</title>
		<link>http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/#comment-4727</link>
		<dc:creator>Vincent Partington</dc:creator>
		<pubDate>Thu, 08 Feb 2007 12:23:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/#comment-4727</guid>
		<description>Ron, interesting article although I don\&#039;t really agree. Like Serge says, all Mercedes\&#039; are basically the same, you\&#039;re just configuring them differently.

The fact that software does not have that feel leads me to think we have not yet discovered the \&quot;principles of interchangeable parts\&quot; for software. If we really had a working component model then we could build software like we were working on an assembly line.</description>
		<content:encoded><![CDATA[<p>Ron, interesting article although I don\&#8217;t really agree. Like Serge says, all Mercedes\&#8217; are basically the same, you\&#8217;re just configuring them differently.</p>
<p>The fact that software does not have that feel leads me to think we have not yet discovered the \&#8221;principles of interchangeable parts\&#8221; for software. If we really had a working component model then we could build software like we were working on an assembly line.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Greenwood</title>
		<link>http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/#comment-4722</link>
		<dc:creator>Jonathan Greenwood</dc:creator>
		<pubDate>Thu, 08 Feb 2007 10:05:04 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/#comment-4722</guid>
		<description>Nice analogy but you are confusing product configuration (assembly line) of a known product with the discovery (software development) of a product. 

Better to compare the stages that lead up to but not including production for example from receiving the conceptual marketing brief, design and development to delivering a mock-up/candidate product. This is the discovery phase in a products lifecycle where different individuals add value along the chain. The production process is an art in itself… Transforming the generic bill of material to a production bill of material and for example maximizing the use of raw materials are just a few of the needles in the haystack. I guess you could compare the manufacturing production process to the deployment of a finalized but configurable software product to a target production landscape.

With regards to Ruby on Rails, I don’t consider it to be a product configurator but more of a pliable cookie cutter. Yes maybe it does allow rapid construction of web based GUI’s on a database. However we still need to discover what the requirements and domain model is. It could be in that discovery process that we don’t want a web based GUI but instead an application that runs on my iPod. Hmmm… the creative discovery process continues but not sure where that leaves me with my Ruby on Rails tools and frameworks. I might have to switch and use different tools.

In the Application Package world as opposed to Application Development one sees huge repositories of domain and process models that require configuring rather than software development to match the requirements of the client on solutions that we could now consider as a commodity yet when configured correctly can really help provide Unique Selling Points giving a company a competitive edge. This is nearly comparable with the manufacturing process you alluded to but there is still a “short” discovery phase required to configure.

Just to finish off. The added value of AP companies such as SAP is that they focus on selling business solutions to common business problems on tried and tested technical infrastructures (Netweaver) that just happens to rival the likes of IBM, BEA, JBoss. They effectively leap frog the pure technical players by delivering immediate business benefit with reduced risk and discovery time. By contrast custom software development on pure infrastructure product stack players brings increased risk in that the configuration of the technical infrastructure coupled with the application typically still needs to be proven in a fashion almost akin to re-inventing the wheel. This is never done in a production environment. In my view and those of Forrester, this approach leads to project failure, dilution of business features and higher costs per feature due to time spent on the infra/materials aspects than delivering business added value.

Whilst Ruby on Rails might be a fantastic tool and framework. It is just that. It provides no added business value to common business problems. Generally we will need an increased discovery phase to understand how best to use the tool.</description>
		<content:encoded><![CDATA[<p>Nice analogy but you are confusing product configuration (assembly line) of a known product with the discovery (software development) of a product. </p>
<p>Better to compare the stages that lead up to but not including production for example from receiving the conceptual marketing brief, design and development to delivering a mock-up/candidate product. This is the discovery phase in a products lifecycle where different individuals add value along the chain. The production process is an art in itself… Transforming the generic bill of material to a production bill of material and for example maximizing the use of raw materials are just a few of the needles in the haystack. I guess you could compare the manufacturing production process to the deployment of a finalized but configurable software product to a target production landscape.</p>
<p>With regards to Ruby on Rails, I don’t consider it to be a product configurator but more of a pliable cookie cutter. Yes maybe it does allow rapid construction of web based GUI’s on a database. However we still need to discover what the requirements and domain model is. It could be in that discovery process that we don’t want a web based GUI but instead an application that runs on my iPod. Hmmm… the creative discovery process continues but not sure where that leaves me with my Ruby on Rails tools and frameworks. I might have to switch and use different tools.</p>
<p>In the Application Package world as opposed to Application Development one sees huge repositories of domain and process models that require configuring rather than software development to match the requirements of the client on solutions that we could now consider as a commodity yet when configured correctly can really help provide Unique Selling Points giving a company a competitive edge. This is nearly comparable with the manufacturing process you alluded to but there is still a “short” discovery phase required to configure.</p>
<p>Just to finish off. The added value of AP companies such as SAP is that they focus on selling business solutions to common business problems on tried and tested technical infrastructures (Netweaver) that just happens to rival the likes of IBM, BEA, JBoss. They effectively leap frog the pure technical players by delivering immediate business benefit with reduced risk and discovery time. By contrast custom software development on pure infrastructure product stack players brings increased risk in that the configuration of the technical infrastructure coupled with the application typically still needs to be proven in a fashion almost akin to re-inventing the wheel. This is never done in a production environment. In my view and those of Forrester, this approach leads to project failure, dilution of business features and higher costs per feature due to time spent on the infra/materials aspects than delivering business added value.</p>
<p>Whilst Ruby on Rails might be a fantastic tool and framework. It is just that. It provides no added business value to common business problems. Generally we will need an increased discovery phase to understand how best to use the tool.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Serge Beaumont</title>
		<link>http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/#comment-4720</link>
		<dc:creator>Serge Beaumont</dc:creator>
		<pubDate>Thu, 08 Feb 2007 08:08:08 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/#comment-4720</guid>
		<description>I don&#039;t think your comparison is entirely fair. Yes, there may be many variations, but the basic architecture of the car remains the same. You can have a gazillion different types of wheels, but they all have the same four bolt holes to fix them. It would be better to compare Mercedes production to a system that is configured with a whole bunch of options on the client side. Still lots of work, but it&#039;s still the same system. Nowadays there are many programs on Discovery channel where cars and bikes are modded. That&#039;s still very much creative, unique work, and is much closer to new product development.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t think your comparison is entirely fair. Yes, there may be many variations, but the basic architecture of the car remains the same. You can have a gazillion different types of wheels, but they all have the same four bolt holes to fix them. It would be better to compare Mercedes production to a system that is configured with a whole bunch of options on the client side. Still lots of work, but it&#8217;s still the same system. Nowadays there are many programs on Discovery channel where cars and bikes are modded. That&#8217;s still very much creative, unique work, and is much closer to new product development.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anurag Shrivastava</title>
		<link>http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/#comment-4709</link>
		<dc:creator>Anurag Shrivastava</dc:creator>
		<pubDate>Thu, 08 Feb 2007 00:44:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/2007/02/07/assembling-software-industrial-style/#comment-4709</guid>
		<description>I think minimum of variation means minimum of variation with the products of same specifications. Each variant product should have minimum of variation given the same specifications.</description>
		<content:encoded><![CDATA[<p>I think minimum of variation means minimum of variation with the products of same specifications. Each variant product should have minimum of variation given the same specifications.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!-- This Quick Cache file was built for (  blog.xebia.com/2007/02/07/assembling-software-industrial-style/feed/ ) in 0.49331 seconds, on Feb 9th, 2012 at 8:09 pm UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 9th, 2012 at 9:09 pm UTC -->
