<?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: University Syndrome</title>
	<atom:link href="http://www.udidahan.com/2004/12/04/university-syndrome/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.udidahan.com/2004/12/04/university-syndrome/</link>
	<description>Enterprise Development Expert &#38; SOA Specialist</description>
	<lastBuildDate>Thu, 09 Sep 2010 15:41:11 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Sarah</title>
		<link>http://www.udidahan.com/2004/12/04/university-syndrome/comment-page-1/#comment-168</link>
		<dc:creator>Sarah</dc:creator>
		<pubDate>Tue, 04 Jan 2005 19:18:18 +0000</pubDate>
		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/134#comment-168</guid>
		<description>It seems to me that I am not the only one that has noticed this crazy issue of students and universities not being competent in the real world once they have completed their degrees... 

It seems to be that lecturers are only interested in the curriculum and the students are only interested in their results... So inevitably there is a divide... The question really is how to fix it... A change in the mark schemes? Or teaching style?  Or do we just throw them in at the deep end.. which is what happened to me... (possibly the best thing to have happened to my programming!)
</description>
		<content:encoded><![CDATA[<p>It seems to me that I am not the only one that has noticed this crazy issue of students and universities not being competent in the real world once they have completed their degrees&#8230; </p>
<p>It seems to be that lecturers are only interested in the curriculum and the students are only interested in their results&#8230; So inevitably there is a divide&#8230; The question really is how to fix it&#8230; A change in the mark schemes? Or teaching style?  Or do we just throw them in at the deep end.. which is what happened to me&#8230; (possibly the best thing to have happened to my programming!)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Udi Dahan - The Software Simplist</title>
		<link>http://www.udidahan.com/2004/12/04/university-syndrome/comment-page-1/#comment-167</link>
		<dc:creator>Udi Dahan - The Software Simplist</dc:creator>
		<pubDate>Tue, 07 Dec 2004 20:32:20 +0000</pubDate>
		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/134#comment-167</guid>
		<description>Here&#039;s a professor that&#039;s making sure that this won&#039;t be happening to his students. 

http://www.sdml.info/collard/oop1/

I quote:

&quot;This blog entry describes what I have been attempting to get around. This is one of the main reasons that I introduced a versioning system for submitting your programs, and why I encourage you to submit multiple changes not just the final result. Good software is iteratively developed, not brain dumped into a file at the last minute.&quot;

I applaude you for caring for your students future.</description>
		<content:encoded><![CDATA[<p>Here&#8217;s a professor that&#8217;s making sure that this won&#8217;t be happening to his students. </p>
<p><a href="http://www.sdml.info/collard/oop1/" rel="nofollow">http://www.sdml.info/collard/oop1/</a></p>
<p>I quote:</p>
<p>&#8220;This blog entry describes what I have been attempting to get around. This is one of the main reasons that I introduced a versioning system for submitting your programs, and why I encourage you to submit multiple changes not just the final result. Good software is iteratively developed, not brain dumped into a file at the last minute.&#8221;</p>
<p>I applaude you for caring for your students future.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ted stockwell</title>
		<link>http://www.udidahan.com/2004/12/04/university-syndrome/comment-page-1/#comment-166</link>
		<dc:creator>ted stockwell</dc:creator>
		<pubDate>Tue, 07 Dec 2004 01:31:07 +0000</pubDate>
		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/134#comment-166</guid>
		<description>cubiclegrrl, 

Your anecdote is kinda ironic to me because the company that I descibed in my first post had outsourced the development of thier software product to an ISV that worked in exactly the fashion that you describe: &quot;hack in the lastest fix/workaround, duct-tape that new feature on and get it out the door&quot;.

The result was a product that was full of bugs and was impossible to maintain because the code was a mess.  So, the code was brought back in-house and a new internal team of developers was hired (I was part of that team, our new manager implemented these code reviews).  Each bug fix was reviewed by the entire team before it was applied to the codebase.   Same for each new feature.  We had code style standards, mostly documentation standards.   At the minimum every method had to document its semantics and any side-effects.  We also had rules against code that had side-effects, had methods that were required to be called sequentially, etc.  Basically we had a bunch of rules against various kinds of &#039;bad smells&#039; in code.

Many fixes had to be reimplemented because one team member would realize that the &#039;fix&#039; would cause problems in some other part of the code (there was a lot of global data and classes).  Anyway, within a year the team had whipped that code into something solid.  Never was anybody forced to reimplement something
just becuase it didn&#039;t &#039;look&#039; like good design.  The code either met our requirements for good code and for the assignment or it didn&#039;t.  
This team produced high-quality code very efficiently because a) requirements were set up front, and b) code reviews ensured that submissions met the requirements.</description>
		<content:encoded><![CDATA[<p>cubiclegrrl, </p>
<p>Your anecdote is kinda ironic to me because the company that I descibed in my first post had outsourced the development of thier software product to an ISV that worked in exactly the fashion that you describe: &#8220;hack in the lastest fix/workaround, duct-tape that new feature on and get it out the door&#8221;.</p>
<p>The result was a product that was full of bugs and was impossible to maintain because the code was a mess.  So, the code was brought back in-house and a new internal team of developers was hired (I was part of that team, our new manager implemented these code reviews).  Each bug fix was reviewed by the entire team before it was applied to the codebase.   Same for each new feature.  We had code style standards, mostly documentation standards.   At the minimum every method had to document its semantics and any side-effects.  We also had rules against code that had side-effects, had methods that were required to be called sequentially, etc.  Basically we had a bunch of rules against various kinds of &#8216;bad smells&#8217; in code.</p>
<p>Many fixes had to be reimplemented because one team member would realize that the &#8216;fix&#8217; would cause problems in some other part of the code (there was a lot of global data and classes).  Anyway, within a year the team had whipped that code into something solid.  Never was anybody forced to reimplement something<br />
just becuase it didn&#8217;t &#8216;look&#8217; like good design.  The code either met our requirements for good code and for the assignment or it didn&#8217;t.<br />
This team produced high-quality code very efficiently because a) requirements were set up front, and b) code reviews ensured that submissions met the requirements.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Udi Dahan - The Software Simplist</title>
		<link>http://www.udidahan.com/2004/12/04/university-syndrome/comment-page-1/#comment-165</link>
		<dc:creator>Udi Dahan - The Software Simplist</dc:creator>
		<pubDate>Tue, 07 Dec 2004 01:26:27 +0000</pubDate>
		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/134#comment-165</guid>
		<description>I guess that what you call requirements, is something I consider tacit knowledge, or &quot;the way we do things around here&quot;. However, most programmers/developers with experience do not exhibit these symptoms.</description>
		<content:encoded><![CDATA[<p>I guess that what you call requirements, is something I consider tacit knowledge, or &#8220;the way we do things around here&#8221;. However, most programmers/developers with experience do not exhibit these symptoms.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cubiclegrrl</title>
		<link>http://www.udidahan.com/2004/12/04/university-syndrome/comment-page-1/#comment-164</link>
		<dc:creator>cubiclegrrl</dc:creator>
		<pubDate>Mon, 06 Dec 2004 23:23:10 +0000</pubDate>
		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/134#comment-164</guid>
		<description>I disagree with the &quot;you didn&#039;t define the requirements&quot; argument that Mr. Stockwell makes, at least from my experience.  

I had the dubious joy of &quot;inheriting&quot; a software project outsourced to a ISV run by a University professor who tended to hire his own students.  Code comments?  Modularization?  Documentation?  Forget that--it was just &quot;hack in the lastest fix/workaround, duct-tape that new feature on and get it out the door&quot; the whole way through.

I realize that this is a single anecdote, but obviously those programmers picked up those attitudes (as well as a disregard for people skills--but that&#039;s another story) somewhere.  In this case, lay the blame right on the PhD&#039;s office doorstep.  

Thankfully, I quit that job after five months for a much saner programming team...</description>
		<content:encoded><![CDATA[<p>I disagree with the &#8220;you didn&#8217;t define the requirements&#8221; argument that Mr. Stockwell makes, at least from my experience.  </p>
<p>I had the dubious joy of &#8220;inheriting&#8221; a software project outsourced to a ISV run by a University professor who tended to hire his own students.  Code comments?  Modularization?  Documentation?  Forget that&#8211;it was just &#8220;hack in the lastest fix/workaround, duct-tape that new feature on and get it out the door&#8221; the whole way through.</p>
<p>I realize that this is a single anecdote, but obviously those programmers picked up those attitudes (as well as a disregard for people skills&#8211;but that&#8217;s another story) somewhere.  In this case, lay the blame right on the PhD&#8217;s office doorstep.  </p>
<p>Thankfully, I quit that job after five months for a much saner programming team&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ted stockwell</title>
		<link>http://www.udidahan.com/2004/12/04/university-syndrome/comment-page-1/#comment-163</link>
		<dc:creator>ted stockwell</dc:creator>
		<pubDate>Mon, 06 Dec 2004 21:44:23 +0000</pubDate>
		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/134#comment-163</guid>
		<description>In one of my first jobs as a programmer (1989-1991) I worked for a company that practiced code reviews.  Code reviews can become very combative if you don&#039;t follow a few rules.  One rule is that you can criticize code for not being maintainable, or readable, or whatever BUT if you wanted the code to be changed then you had to convince the author to change it.  The author of the code is never required to change code unless the code does not work or does not satisfy all of the stated requirements for the assignment.

This rule eliminates long theological discussions about code style, it avoids rework for dubious reasons, and most importantly it avoids the resentment generated by forcing someone to rework code for no reason other than the fact that it doesn&#039;t satisfy someone&#039;s ambiguous notion &#039;goodness&#039;.

If readability is indeed a requirement then you make sure that it is stated as a requirement up front and that you have a code guidelines in place.  If maintainability is a requirement then you should make sure that it is stated as a requirement up front and that you have some guidelines in place.  If reusability is a requirement then you should make sure that it is stated as a requirement up front and that you have some guidelines in place.

What you describe as &#039;University Syndrome&#039; is no such thing.  It is your failure to completely define the requirements for developing a piece of code.  There are a million ways to implement a piece of code.  If a programmer happens to implement an assignment in one way that doesn&#039;t happen to suit your definition of &#039;goodness&#039; then the problem is that you didn&#039;t define &#039;goodness&#039; up front.</description>
		<content:encoded><![CDATA[<p>In one of my first jobs as a programmer (1989-1991) I worked for a company that practiced code reviews.  Code reviews can become very combative if you don&#8217;t follow a few rules.  One rule is that you can criticize code for not being maintainable, or readable, or whatever BUT if you wanted the code to be changed then you had to convince the author to change it.  The author of the code is never required to change code unless the code does not work or does not satisfy all of the stated requirements for the assignment.</p>
<p>This rule eliminates long theological discussions about code style, it avoids rework for dubious reasons, and most importantly it avoids the resentment generated by forcing someone to rework code for no reason other than the fact that it doesn&#8217;t satisfy someone&#8217;s ambiguous notion &#8216;goodness&#8217;.</p>
<p>If readability is indeed a requirement then you make sure that it is stated as a requirement up front and that you have a code guidelines in place.  If maintainability is a requirement then you should make sure that it is stated as a requirement up front and that you have some guidelines in place.  If reusability is a requirement then you should make sure that it is stated as a requirement up front and that you have some guidelines in place.</p>
<p>What you describe as &#8216;University Syndrome&#8217; is no such thing.  It is your failure to completely define the requirements for developing a piece of code.  There are a million ways to implement a piece of code.  If a programmer happens to implement an assignment in one way that doesn&#8217;t happen to suit your definition of &#8216;goodness&#8217; then the problem is that you didn&#8217;t define &#8216;goodness&#8217; up front.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
