<?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"
	>
<channel>
	<title>Comments on: Who Has Time for Unit Tests?</title>
	<atom:link href="http://jessewarden.com/2008/01/who-has-time-for-unit-tests.html/feed" rel="self" type="application/rss+xml" />
	<link>http://jessewarden.com/2008/01/who-has-time-for-unit-tests.html</link>
	<description>A blog on software development, technology, games &#038; movies.</description>
	<pubDate>Sun, 12 Oct 2008 01:55:38 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
		<item>
		<title>By: George</title>
		<link>http://jessewarden.com/2008/01/who-has-time-for-unit-tests.html#comment-42363</link>
		<dc:creator>George</dc:creator>
		<pubDate>Tue, 08 Jan 2008 20:02:07 +0000</pubDate>
		<guid isPermaLink="false">http://jessewarden.com/2008/01/who-has-time-for-unit-tests.html#comment-42363</guid>
		<description>Yeah, nice post I read several times especially for upcoming comments. I totally agree with what Abdul and Todd talked here. Unfortunately I got hungup on Scrums that the manager asked and I could never have enough hours, but luckly I was not asked for unit testing as I'm the only Flex developer in the team.
The lowest hanging fruit for me is also the service interaction with backend which developing in parallel. What I can do, was to make robust service classes with fault checking etc, and most important, tracing all information from backend out at run-time so any 'testers' can find bugs with browser easily.
I don't think TDD could be fit with most of Flex teams, usability/functional testing more important than unit testing in Flex. Instead you should write safe code, checking exceptions as much as possible in your functions, tracing run-time informations. Save your hours to improve usabilities and application designs.</description>
		<content:encoded><![CDATA[<p>Yeah, nice post I read several times especially for upcoming comments. I totally agree with what Abdul and Todd talked here. Unfortunately I got hungup on Scrums that the manager asked and I could never have enough hours, but luckly I was not asked for unit testing as I&#8217;m the only Flex developer in the team.<br />
The lowest hanging fruit for me is also the service interaction with backend which developing in parallel. What I can do, was to make robust service classes with fault checking etc, and most important, tracing all information from backend out at run-time so any &#8216;testers&#8217; can find bugs with browser easily.<br />
I don&#8217;t think TDD could be fit with most of Flex teams, usability/functional testing more important than unit testing in Flex. Instead you should write safe code, checking exceptions as much as possible in your functions, tracing run-time informations. Save your hours to improve usabilities and application designs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Todd</title>
		<link>http://jessewarden.com/2008/01/who-has-time-for-unit-tests.html#comment-42335</link>
		<dc:creator>Todd</dc:creator>
		<pubDate>Tue, 08 Jan 2008 15:46:12 +0000</pubDate>
		<guid isPermaLink="false">http://jessewarden.com/2008/01/who-has-time-for-unit-tests.html#comment-42335</guid>
		<description>Don't get hungup on any particulars of TDD, SCRUM, XP,  etc.  I've yet to work on a project where everything is tied to one textbook methodology.  Most teams usually come to their own consensus for the requirements for testing.

One of the side effects I like of having unit tests is that when a new dev comes to the team, they can run a particular test that starts executing some complex code and they can step through it in the debugger.  For example, if you have a complex services layer making WebService calls and parsing XML, they can run the one test that executes the code without using the front-end and they can get a quick understanding, simply.

Also, I wouldn't worry about the zealot proponents say about everything needing to be tested and that 50% of the code you write should be Unit Tests.  While these are great goals, you'll be doing stellar if you're testing 80% of code with 5% of the effort.  I.e., grab the lowest hanging fruit first.  For me the lowest hanging fruit is always the service interaction with the backend.  Since the backend changes a lot, I feel that this is teh really important stuff to have unit tests around.  Some other low-hanging fruit is writing your unit tests testing actual flows/stories of the application, and not getting hungup on testing each little line of code.  Some proponents of TDD get really hung up on this stuff and are really religious about lambasting someone doing this.  They cite things like: Single REsponsibility Principle, never use the debugger (your unit tests should be robust enough to tell which line of code failed), 100% code coverage.

I've been on Java and .NET projects where the architect was so strict at TDD that we weren't able to use any of the built-in ASP.NET components for the sake of building an application that was Testable.  I left the project after a year, and rumor has it they're still not done.  But they do have a ton of unit tests.  This approach isn't good either.

Really, providing a suite of Unit Tests to a client needs to be part of the required delivery, since it does have a cost associated with it.  Afterall, you're writing code, and there is test code that needs to be maintained, and this doesn't come for free. 

And most of all, remember that quality software has been being built for years without TDD.  TDD !=  Quality and it's not a panacea, but it is a set of ideas that can help you deliver something robust and timely.</description>
		<content:encoded><![CDATA[<p>Don&#8217;t get hungup on any particulars of TDD, SCRUM, XP,  etc.  I&#8217;ve yet to work on a project where everything is tied to one textbook methodology.  Most teams usually come to their own consensus for the requirements for testing.</p>
<p>One of the side effects I like of having unit tests is that when a new dev comes to the team, they can run a particular test that starts executing some complex code and they can step through it in the debugger.  For example, if you have a complex services layer making WebService calls and parsing XML, they can run the one test that executes the code without using the front-end and they can get a quick understanding, simply.</p>
<p>Also, I wouldn&#8217;t worry about the zealot proponents say about everything needing to be tested and that 50% of the code you write should be Unit Tests.  While these are great goals, you&#8217;ll be doing stellar if you&#8217;re testing 80% of code with 5% of the effort.  I.e., grab the lowest hanging fruit first.  For me the lowest hanging fruit is always the service interaction with the backend.  Since the backend changes a lot, I feel that this is teh really important stuff to have unit tests around.  Some other low-hanging fruit is writing your unit tests testing actual flows/stories of the application, and not getting hungup on testing each little line of code.  Some proponents of TDD get really hung up on this stuff and are really religious about lambasting someone doing this.  They cite things like: Single REsponsibility Principle, never use the debugger (your unit tests should be robust enough to tell which line of code failed), 100% code coverage.</p>
<p>I&#8217;ve been on Java and .NET projects where the architect was so strict at TDD that we weren&#8217;t able to use any of the built-in ASP.NET components for the sake of building an application that was Testable.  I left the project after a year, and rumor has it they&#8217;re still not done.  But they do have a ton of unit tests.  This approach isn&#8217;t good either.</p>
<p>Really, providing a suite of Unit Tests to a client needs to be part of the required delivery, since it does have a cost associated with it.  Afterall, you&#8217;re writing code, and there is test code that needs to be maintained, and this doesn&#8217;t come for free. </p>
<p>And most of all, remember that quality software has been being built for years without TDD.  TDD !=  Quality and it&#8217;s not a panacea, but it is a set of ideas that can help you deliver something robust and timely.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Deitte</title>
		<link>http://jessewarden.com/2008/01/who-has-time-for-unit-tests.html#comment-41852</link>
		<dc:creator>Brian Deitte</dc:creator>
		<pubDate>Sun, 06 Jan 2008 20:11:59 +0000</pubDate>
		<guid isPermaLink="false">http://jessewarden.com/2008/01/who-has-time-for-unit-tests.html#comment-41852</guid>
		<description>I'm guessing that not seeing a project at a later point are preventing you from seeing the need for unit testing.  I don't know if you see projects later when consulting, but the main benefit (although not the only benefit) I see in unit tests is  the ability to change things without worrying about breaking random things.  This happens when months or years have gone by since I've touched the code or when someone new is working on a project  The code becomes a lot less brittle to new changes with unit tests.  Perhaps you don't see this because in consulting the projects just go away?  Or the projects won't be around long enough to benefit from this?

I don't think there's any need for a solid base design or specific requirements to do unit testing.  Functionality testing may require better requirements, but unit testing just requires time to think about how the code should work.  Which brings up another benefit, which is that unit tests often find bugs before they become bugs.

If done right, it isn't just cookie cutter tests, and it takes time.  And of course that will be just as hard to justify to some companies as Cairngorm.</description>
		<content:encoded><![CDATA[<p>I&#8217;m guessing that not seeing a project at a later point are preventing you from seeing the need for unit testing.  I don&#8217;t know if you see projects later when consulting, but the main benefit (although not the only benefit) I see in unit tests is  the ability to change things without worrying about breaking random things.  This happens when months or years have gone by since I&#8217;ve touched the code or when someone new is working on a project  The code becomes a lot less brittle to new changes with unit tests.  Perhaps you don&#8217;t see this because in consulting the projects just go away?  Or the projects won&#8217;t be around long enough to benefit from this?</p>
<p>I don&#8217;t think there&#8217;s any need for a solid base design or specific requirements to do unit testing.  Functionality testing may require better requirements, but unit testing just requires time to think about how the code should work.  Which brings up another benefit, which is that unit tests often find bugs before they become bugs.</p>
<p>If done right, it isn&#8217;t just cookie cutter tests, and it takes time.  And of course that will be just as hard to justify to some companies as Cairngorm.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert</title>
		<link>http://jessewarden.com/2008/01/who-has-time-for-unit-tests.html#comment-41833</link>
		<dc:creator>Robert</dc:creator>
		<pubDate>Sun, 06 Jan 2008 18:27:45 +0000</pubDate>
		<guid isPermaLink="false">http://jessewarden.com/2008/01/who-has-time-for-unit-tests.html#comment-41833</guid>
		<description>@ Valentin

"At the beginning of a project I usually try to plan everything from the whole architecture to buttons onRollOver effects."

That is insane. TDD does not even attempt to do this. I really pity you if you try and do that.</description>
		<content:encoded><![CDATA[<p>@ Valentin</p>
<p>&#8220;At the beginning of a project I usually try to plan everything from the whole architecture to buttons onRollOver effects.&#8221;</p>
<p>That is insane. TDD does not even attempt to do this. I really pity you if you try and do that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Valentin Simonov</title>
		<link>http://jessewarden.com/2008/01/who-has-time-for-unit-tests.html#comment-41431</link>
		<dc:creator>Valentin Simonov</dc:creator>
		<pubDate>Sat, 05 Jan 2008 12:19:25 +0000</pubDate>
		<guid isPermaLink="false">http://jessewarden.com/2008/01/who-has-time-for-unit-tests.html#comment-41431</guid>
		<description>I'm usually coding a project alone. I'm teamed with designers, a back-end programmer, sometimes using components from other developers. At the beginning of a project I usually try to plan everything from the whole architecture to buttons onRollOver effects. And I start with clear good documented OOP code. But soon I have to write code faster, I have to apply multiple changes many of which are hard with current project structure, so I'm making hacks and fixes. So all good OOP code approach fails miserably.

I seriously laughed at "The funny thing about OOP in Flash is how quickly it dies a pathetic little death when a deadline rears its head." and the button example. Because it's so true.

But, I'm coding a huge flex project atm and seriously considering to start using unit tests.</description>
		<content:encoded><![CDATA[<p>I&#8217;m usually coding a project alone. I&#8217;m teamed with designers, a back-end programmer, sometimes using components from other developers. At the beginning of a project I usually try to plan everything from the whole architecture to buttons onRollOver effects. And I start with clear good documented OOP code. But soon I have to write code faster, I have to apply multiple changes many of which are hard with current project structure, so I&#8217;m making hacks and fixes. So all good OOP code approach fails miserably.</p>
<p>I seriously laughed at &#8220;The funny thing about OOP in Flash is how quickly it dies a pathetic little death when a deadline rears its head.&#8221; and the button example. Because it&#8217;s so true.</p>
<p>But, I&#8217;m coding a huge flex project atm and seriously considering to start using unit tests.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
