<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/1.5.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: You Are Here!</title>
	<link>http://blog.qualityaspect.com/2006/05/30/you-are-here/</link>
	<description>Lidor Wyssocky's Blog on Optimizing Software Development</description>
	<pubDate>Wed, 20 Aug 2008 12:38:09 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.2</generator>

	<item>
 		<title>Comment on You Are Here! by: claire</title>
		<link>http://blog.qualityaspect.com/2006/05/30/you-are-here/#comment-3040</link>
		<pubDate>Mon, 16 Oct 2006 11:54:24 +0000</pubDate>
		<guid>http://blog.qualityaspect.com/2006/05/30/you-are-here/#comment-3040</guid>
					<description>where about is this based the UK or usa</description>
		<content:encoded><![CDATA[	<p>where about is this based the UK or usa
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on You Are Here! by: Lidor Wyssocky</title>
		<link>http://blog.qualityaspect.com/2006/05/30/you-are-here/#comment-496</link>
		<pubDate>Mon, 05 Jun 2006 06:13:36 +0000</pubDate>
		<guid>http://blog.qualityaspect.com/2006/05/30/you-are-here/#comment-496</guid>
					<description>Hi DK, 

This part of the posting above was somehow misleading. I will fix it soon. 

You should use UML diagrams to communicate some of the aspects of your design. UML is a good language for describing the structure of the code. 

At the same time, you should use it wisely and you cannot settle for plain diagrams. Here's what you should do:

1. Create a set of UML diagrams. Create them selectively: they should not contain each and every little detail. Each should describe an aspect of the product. Some should describe how aspects interact. This resolution will help the developer find his way in the code.

2. In any case, do NOT reverse eng. the code. This will create a cluttered diagram with a lot of information that will cuase a new developer to get lost in it. 

3. Diagrams are not enough. Use plain English descriptions as well. There are many aspects which cannot be described using UML (at least not conveniently), and which are extremely improtant to future development. Implicit assumptions and behavioral contracts are great examples. They are part of the design, and when they break you end up with hard-to-solve bugs. Listing assumptions and contracts clearly will help developers to maintain them. 

Another issue, which is often missing from UML diagrams, is the role of each entity: it's scope of responsibility. Again, this is a great guide to developers, and it is also improtant to maintain a stable design. 

4. Provide a plain English overview of the product's design. It should include the rationale for the major design decisions. It should help developers know how to approach all the information listed above. 

I hope this makes things clearer. Please let me know if it doesn't.

Lidor</description>
		<content:encoded><![CDATA[	<p>Hi DK, </p>
	<p>This part of the posting above was somehow misleading. I will fix it soon. </p>
	<p>You should use UML diagrams to communicate some of the aspects of your design. UML is a good language for describing the structure of the code. </p>
	<p>At the same time, you should use it wisely and you cannot settle for plain diagrams. Here&#8217;s what you should do:</p>
	<p>1. Create a set of UML diagrams. Create them selectively: they should not contain each and every little detail. Each should describe an aspect of the product. Some should describe how aspects interact. This resolution will help the developer find his way in the code.</p>
	<p>2. In any case, do NOT reverse eng. the code. This will create a cluttered diagram with a lot of information that will cuase a new developer to get lost in it. </p>
	<p>3. Diagrams are not enough. Use plain English descriptions as well. There are many aspects which cannot be described using UML (at least not conveniently), and which are extremely improtant to future development. Implicit assumptions and behavioral contracts are great examples. They are part of the design, and when they break you end up with hard-to-solve bugs. Listing assumptions and contracts clearly will help developers to maintain them. </p>
	<p>Another issue, which is often missing from UML diagrams, is the role of each entity: it&#8217;s scope of responsibility. Again, this is a great guide to developers, and it is also improtant to maintain a stable design. </p>
	<p>4. Provide a plain English overview of the product&#8217;s design. It should include the rationale for the major design decisions. It should help developers know how to approach all the information listed above. </p>
	<p>I hope this makes things clearer. Please let me know if it doesn&#8217;t.</p>
	<p>Lidor
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on You Are Here! by: DK</title>
		<link>http://blog.qualityaspect.com/2006/05/30/you-are-here/#comment-491</link>
		<pubDate>Sun, 04 Jun 2006 22:55:18 +0000</pubDate>
		<guid>http://blog.qualityaspect.com/2006/05/30/you-are-here/#comment-491</guid>
					<description>Are there any examples of those diagrams?</description>
		<content:encoded><![CDATA[	<p>Are there any examples of those diagrams?
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on You Are Here! by: How I jump to my conclusions &#187; Blog Archive &#187; Lost in code</title>
		<link>http://blog.qualityaspect.com/2006/05/30/you-are-here/#comment-455</link>
		<pubDate>Thu, 01 Jun 2006 22:40:42 +0000</pubDate>
		<guid>http://blog.qualityaspect.com/2006/05/30/you-are-here/#comment-455</guid>
					<description>[...] On Lidor Wyssocky&amp;#8217;s Blog on Optimizing Software Development is a post stating that you should not make your successors feel lost in your code. [...]</description>
		<content:encoded><![CDATA[	<p>[&#8230;] On Lidor Wyssocky&rsquo;s Blog on Optimizing Software Development is a post stating that you should not make your successors feel lost in your code. [&#8230;]
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on You Are Here! by: Lidor Wyssocky</title>
		<link>http://blog.qualityaspect.com/2006/05/30/you-are-here/#comment-440</link>
		<pubDate>Wed, 31 May 2006 14:03:51 +0000</pubDate>
		<guid>http://blog.qualityaspect.com/2006/05/30/you-are-here/#comment-440</guid>
					<description>Thanks JO, 

I hope you will succeed!

You might want to try creating the change yourself. Write clear and concise documentation to help the maintenance people do their work more effectively. Even if they don't require it. Soon, they will learn to appreciate it. They might even get used to it and demand it. 

Lidor</description>
		<content:encoded><![CDATA[	<p>Thanks JO, </p>
	<p>I hope you will succeed!</p>
	<p>You might want to try creating the change yourself. Write clear and concise documentation to help the maintenance people do their work more effectively. Even if they don&#8217;t require it. Soon, they will learn to appreciate it. They might even get used to it and demand it. </p>
	<p>Lidor
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on You Are Here! by: JO</title>
		<link>http://blog.qualityaspect.com/2006/05/30/you-are-here/#comment-437</link>
		<pubDate>Wed, 31 May 2006 11:52:05 +0000</pubDate>
		<guid>http://blog.qualityaspect.com/2006/05/30/you-are-here/#comment-437</guid>
					<description>I'm trying very hard to get our maintenance department to accept their responsibility to require proper documentation for code taken into their care.
I'm equally aware that the developers (me included) are to be the producers of that documentation, but without demand there is no supply ...
Your article is right on track for this and I'll sure use it in my &quot;crusade&quot;.</description>
		<content:encoded><![CDATA[	<p>I&#8217;m trying very hard to get our maintenance department to accept their responsibility to require proper documentation for code taken into their care.<br />
I&#8217;m equally aware that the developers (me included) are to be the producers of that documentation, but without demand there is no supply &#8230;<br />
Your article is right on track for this and I&#8217;ll sure use it in my &#8220;crusade&#8221;.
</p>
]]></content:encoded>
				</item>
</channel>
</rss>
