<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
					xmlns:content="http://purl.org/rss/1.0/modules/content/"
					xmlns:wfw="http://wellformedweb.org/CommentAPI/"
				  >
<channel>
<title>Software Craftsmanship 2011 Session Submission</title>
<link>http://www.jotform.com/</link>
<description><![CDATA[Your Form Submissions]]></description>
<image><title>JotForm Submissions</title>
<link>http://www.jotform.com/</link>
<url>http://www.jotform.com//images/logo.png</url>
</image>
<language>en-us</language>
<pubDate>Mon, 21 May 2012 02:03:08 -0400</pubDate>
<item>
<title>Software Craftsmanship 2011 Session Submission - Submission (2011-05-23 05:49:41)</title>
<link>http://www.jotform.com/submission/171953381941691794</link>
<pubDate>Mon, 23 May 2011 05:49:41 -0400</pubDate>
<guid>http://www.jotform.com/submission/171953381941691794</guid>
<description><![CDATA[
<p><b>Session Leader Name #1 :</b> Jason Gorman<br/>
<b>Session Leader Name #2 :</b> <br/>
<b>Session Title :</b> Refactoring - There's That Word Again<br/>
<b>Session Style :</b> Tutorial<br/>
<b>Session Length :</b> 90 mins<br/>
<b>Session Description :</b> The "R" word gets bandied about a lot in our line of work, but evidence suggests that only a small subset of the people who talk about it actually do it. In this tutorial, I'll remind us of the discpline of refactoring, and lead the participants through refactorings of a handful of the most common code smells.<br/>
<b>Session requirements (technical) :</b> You must be either a Java or a C# programmer, and ideally have automated refactoring tools and JUnit/NUnit installed (e.g., Eclipse, IDEA, Resharper).<br/>
<b>Video Link #1 :</b> http://youtu.be/U4hIpntxWYc<br/>
<b>Video Link #2 :</b> http://youtu.be/n45-L8bp2cU<br/>
<b>Video Link #3 :</b> http://youtu.be/fKPh2gZGivA<br/>
<b>Supporting notes :</b> Well, nobody else proposed a refactoring session...<br/>
</p>
]]></description>
</item>
<item>
<title>Software Craftsmanship 2011 Session Submission - Submission (2011-05-11 17:54:46)</title>
<link>http://www.jotform.com/submission/170960086939612812</link>
<pubDate>Wed, 11 May 2011 17:54:46 -0400</pubDate>
<guid>http://www.jotform.com/submission/170960086939612812</guid>
<description><![CDATA[
<p><b>Session Leader Name #1 :</b> Remco Mulder<br/>
<b>Session Leader Name #2 :</b> Gordon Barrs<br/>
<b>Session Title :</b> Space Invaders vs Continuous Testing<br/>
<b>Session Style :</b> Game/Challenge<br/>
<b>Session Length :</b> 90 mins<br/>
<b>Session Description :</b> A fun coding challenge to find the fastest way to develop reliable software, between:

* Manual testing
* TDD
* Continuous testing

Participants will write code to defend earth from alien invasion.  Score will be accumulated over 60 minutes depending on how many cities are successfully defended.

Participants will be split into 3 groups, each representing a different testing practice.  Scores will be averaged between the groups at the end of the session to determine some interesting statistics.<br/>
<b>Session requirements (technical) :</b> This session is for .NET developers only.

Participants who wish to operate in the TDD group must have a manual test runner available on their machine that can run NUnit tests.

Participants who wish to try out continuous testing are recommended to first try NCrunch on their machine (http://www.ncrunch.net) - though there will also be some setup time at the beginning of the session for those unfamiliar with this tool.

Visual Studio 2010 will be used along with .NET v4.0.

A downloadable solution will be made available at the beginning of the session containing the code and instructions needed to get started.<br/>
<b>Video Link #1 :</b> http://www.youtube.com/watch?v=4XlvWXqqDcw<br/>
<b>Video Link #2 :</b> <br/>
<b>Video Link #3 :</b> <br/>
<b>Supporting notes :</b> <br/>
</p>
]]></description>
</item>
<item>
<title>Software Craftsmanship 2011 Session Submission - Submission (2011-05-07 17:21:27)</title>
<link>http://www.jotform.com/submission/170612487897516031</link>
<pubDate>Sat, 07 May 2011 17:21:27 -0400</pubDate>
<guid>http://www.jotform.com/submission/170612487897516031</guid>
<description><![CDATA[
<p><b>Session Leader Name #1 :</b> Krzysztof Jelski<br/>
<b>Session Leader Name #2 :</b> <br/>
<b>Session Title :</b> How object-oriented are you feeling today?<br/>
<b>Session Style :</b> Game/Challenge<br/>
<b>Session Length :</b> 90 mins<br/>
<b>Session Description :</b> Jeff Bay in an essay titled "Object Calisthenics" [1] proposes to do an exercise: write a small project why applying nine rules, which will drive your design towards object-orientation.
We'll do a TDD-Kata and try to follow these guidelines. At the end we'll reflect on our exercise to see what have we learned.

The rules are quite simple in their form, but not always as simple to follow. Take a look yourself:

1. Use only one level of indentation per method.
2. Don’t use the else keyword.
3. Wrap all primitives and strings.
4. Use only one dot per line.
5. Don’t abbreviate.
6. Keep all entities small.
7. Don’t use any classes with more than two instance variables.
8. Use first-class collections.
9. Don’t use any getters/setters/properties.

The form of the session will be Kata performed in pairs. So, every pair will solve the same problem while sticking to the nine rules. At the end some pairs will share the resulting design by showing their code on the projector.

[1] Object Calisthenics, Jeff Bay in: The ThoughtWorks Anthology, Pragmatic Bookshelf 2008.<br/>
<b>Session requirements (technical) :</b> Participants are asked to come with a laptop with their favourite IDE installed.
My language of choice is Java, but participants can use other object-oriented languages.<br/>
<b>Video Link #1 :</b> http://vimeo.com/23404983<br/>
<b>Video Link #2 :</b> <br/>
<b>Video Link #3 :</b> <br/>
<b>Supporting notes :</b> <br/>
</p>
]]></description>
</item>
<item>
<title>Software Craftsmanship 2011 Session Submission - Submission (2011-05-05 16:25:49)</title>
<link>http://www.jotform.com/submission/17043634982711538</link>
<pubDate>Thu, 05 May 2011 16:25:49 -0400</pubDate>
<guid>http://www.jotform.com/submission/17043634982711538</guid>
<description><![CDATA[
<p><b>Session Leader Name #1 :</b> Chris Parsons<br/>
<b>Session Leader Name #2 :</b> <br/>
<b>Session Title :</b> The Lean Code Challenge<br/>
<b>Session Style :</b> Game/Challenge<br/>
<b>Session Length :</b> 90 mins<br/>
<b>Session Description :</b> What does it mean for the very code we write to be lean? What can we as coders draw from processes surrounding Lean software development? What exactly is waste and what isn't?

In this session the challenge will be to build a brand new piece of software for a demanding customer. Form a team of 2-4 people and try and satisfy requirements as quickly as you can. Demonstrate working software as soon as you finish them to your stakeholders and receive the next set, and try and get through as many as you can within the time period.

At the end of the session we'll be discussing what waste there was in our process and what got in the way of delivering, and how we can maximise value in the shortest space of time.
<br/>
<b>Session requirements (technical) :</b> Laptop + compiler in a language of your choice. You will need to be able to write a program which reads from standard input and writes to standard output. Work will be done in pairs, so you can always come along work with someone else if you don't have a development environment set up.<br/>
<b>Video Link #1 :</b> http://vimeo.com/23335541<br/>
<b>Video Link #2 :</b> <br/>
<b>Video Link #3 :</b> <br/>
<b>Supporting notes :</b> Video may not be available until a few hours after this submission.<br/>
</p>
]]></description>
</item>
<item>
<title>Software Craftsmanship 2011 Session Submission - Submission (2011-04-30 15:14:49)</title>
<link>http://www.jotform.com/submission/170000089772481068</link>
<pubDate>Sat, 30 Apr 2011 15:14:49 -0400</pubDate>
<guid>http://www.jotform.com/submission/170000089772481068</guid>
<description><![CDATA[
<p><b>Session Leader Name #1 :</b> Rob Westgeest<br/>
<b>Session Leader Name #2 :</b> Willem van den Ende<br/>
<b>Session Title :</b> Dirty Jobs<br/>
<b>Session Style :</b> Tutorial<br/>
<b>Session Length :</b> 90 mins<br/>
<b>Session Description :</b> Try to add a tested feature to a legacy (code without tests) system.
We'll bring a legacy client-server system inspired by code at our clients. Your challenge is to add a feature to the client, and while doing so discover some 'interesting' code smells as well as our fantastic legaci protocol, which is RMI in one way, and 'proprietary' in another way... (inspired by streaming MPEG encoder/decoder).<br/>
<b>Session requirements (technical) :</b> Computer
Pair
C# or Java present
Fun-loving attitude!
<br/>
<b>Video Link #1 :</b> http://www.youtube.com/watch?v=tGDD2ardroc<br/>
<b>Video Link #2 :</b> <br/>
<b>Video Link #3 :</b> <br/>
<b>Supporting notes :</b> we will do some live coding halfway through the session to illustrate approaches taken by participants, but haven't included them in the video as that would spoil the fun...<br/>
</p>
]]></description>
</item>
<item>
<title>Software Craftsmanship 2011 Session Submission - Submission (2011-04-27 10:48:55)</title>
<link>http://www.jotform.com/submission/169724931813111223</link>
<pubDate>Wed, 27 Apr 2011 10:48:55 -0400</pubDate>
<guid>http://www.jotform.com/submission/169724931813111223</guid>
<description><![CDATA[
<p><b>Session Leader Name #1 :</b> Jon Jagger<br/>
<b>Session Leader Name #2 :</b> <br/>
<b>Session Title :</b> CyberDojo<br/>
<b>Session Style :</b> Other<br/>
<b>Session Length :</b> 90 mins<br/>
<b>Session Description :</b> CyberDojo is specifically designed to encourage mastery and collaboration in a team-based technical situation.

Participants work on one or more coding katas using a simple editor inside a browser. They submit their code and tests to the CyberDojo server whenever they like. The CyberDojo server runs their tests and returns the outcome as a traffic-light - red if some failed, green if they all passed, amber if they couldn't be run (eg syntax errors). Periodically the server will send a rotation message to each participating laptop asking the current keyboard driver to move to a new laptop and take a non-driver role. The aim of the session is to get working solutions on <em>all</em> laptops.

A CyberDojo is fun as well as being a great learning experience. Please bring a wifi enabled laptop.

(This is the same as last year when a hiccup meant I couldn't attend.)
<br/>
<b>Session requirements (technical) :</b> Just power sockets for the server and for each participating laptop.<br/>
<b>Video Link #1 :</b> http://vimeo.com/15104374<br/>
<b>Video Link #2 :</b> <br/>
<b>Video Link #3 :</b> <br/>
<b>Supporting notes :</b> The video is slightly old - CyberDojo is a now bit more polished.<br/>
</p>
]]></description>
</item>
<item>
<title>Software Craftsmanship 2011 Session Submission - Submission (2011-04-21 16:04:35)</title>
<link>http://www.jotform.com/submission/169225475213669216</link>
<pubDate>Thu, 21 Apr 2011 16:04:35 -0400</pubDate>
<guid>http://www.jotform.com/submission/169225475213669216</guid>
<description><![CDATA[
<p><b>Session Leader Name #1 :</b> Peter Lind<br/>
<b>Session Leader Name #2 :</b> <br/>
<b>Session Title :</b> Cuke4All - Setting up Cucumber to Test Any Web Application
<br/>
<b>Session Style :</b> Tutorial<br/>
<b>Session Length :</b> 30 mins<br/>
<b>Session Description :</b> Learn how to use Cucumber and test tools that you'd normally use in a Ruby On Rails project to test any web application, no matter what language it is written in. 

Bring you own legacy web app, and hopefully you'll leave the session with some automated integration tests set up.
<br/>
<b>Session requirements (technical) :</b> To save time (and bandwidth), please make sure you have the following before the session:1. A working Ruby installation (1.8.7 or 1.9.2)On linux use rvm http://rvm.beginrescueend.comOn windows use http://railsinstaller.org/On mac you probably already have ruby, if not, use rvm2. Ruby in your path$ ruby --versionruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0]3. Bundler gem installed$ gem install bundler4. Other gem dependencies installed, easiest way is to clone my git repo and install via bundler$ git clone git://github.com/peterlind/cuke4all.git$ cd cuke4all/integrationtest$ bundle install5. An existing web app that you want to test, preferably something real (the app you work with at your day job) - If you dont have an existing app, you can clone the github repo which contains the app in the video (A Java Spring app)6. If you don't bring a web app to test and plan to use the petclinic app, best to download all the Java dependencies$ cd location_of_git_repo$ cd petclinic$ mvn install7. To run petclinic you need a mysql instance running locally 
<br/>
<b>Video Link #1 :</b> http://www.youtube.com/watch?v=S5XQTOVTPYY<br/>
<b>Video Link #2 :</b> <br/>
<b>Video Link #3 :</b> <br/>
<b>Supporting notes :</b> All code from the video is availbale on github
https://github.com/peterlind/cuke4all<br/>
</p>
]]></description>
</item>
<item>
<title>Software Craftsmanship 2011 Session Submission - Submission (2011-04-15 08:18:20)</title>
<link>http://www.jotform.com/submission/168679356892211721</link>
<pubDate>Fri, 15 Apr 2011 08:18:20 -0400</pubDate>
<guid>http://www.jotform.com/submission/168679356892211721</guid>
<description><![CDATA[
<p><b>Session Leader Name #1 :</b> Christian Horsdal<br/>
<b>Session Leader Name #2 :</b> <br/>
<b>Session Title :</b> Enhancing legacy test suites<br/>
<b>Session Style :</b> Open/Community<br/>
<b>Session Length :</b> 60 mins<br/>
<b>Session Description :</b> Today many code bases have automated test suites, but many of these suites where written late in development and without clear goals. The result is less than satisfactory: 
  * Many parts of the code base are not covered by tests
  * Standard edge cases like 0, null, "" or MaxInt/MinInt are not tested
  * Tests are littered with magic string and magic numbers
  * Tests have bland generic names, and do not pin down the behaviour of the SUT.

In this open session I would like to explore techniques we can use to move forward with such test suites towards tests that act better both as regression guards and as specifications.
 
This is an open and hands-on session where everybody is encouraged to grab the keyboard and show their test enhancement technique.
I will a bring a small code base with some mediocre tests and kick off the session by showing a simple test enhancement via parameterizing a test, and then hand off the keyboard to whoever wants to jump in.
<br/>
<b>Session requirements (technical) :</b> We will need a projector.<br/>
<b>Video Link #1 :</b> http://www.youtube.com/watch?v=lz_cBR8Mg0E<br/>
<b>Video Link #2 :</b> <br/>
<b>Video Link #3 :</b> <br/>
<b>Supporting notes :</b> <br/>
</p>
]]></description>
</item>
<item>
<title>Software Craftsmanship 2011 Session Submission - Submission (2011-04-10 18:18:19)</title>
<link>http://www.jotform.com/submission/168283491811553170</link>
<pubDate>Sun, 10 Apr 2011 18:18:19 -0400</pubDate>
<guid>http://www.jotform.com/submission/168283491811553170</guid>
<description><![CDATA[
<p><b>Session Leader Name #1 :</b> Matt Williams<br/>
<b>Session Leader Name #2 :</b> <br/>
<b>Session Title :</b> Personal Codes of Conduct<br/>
<b>Session Style :</b> Tutorial<br/>
<b>Session Length :</b> 30 mins<br/>
<b>Session Description :</b> A brief overview of codes of conduct in the medical profession and how these can map to software developers. I will demonstrate how I decided upon my code of conduct and how I get feedback from customers and colleagues<br/>
<b>Session requirements (technical) :</b> A projector, Whiteboard or a flip chart is always useful.<br/>
<b>Video Link #1 :</b> http://www.youtube.com/watch?v=szf68J4bH38<br/>
<b>Video Link #2 :</b> <br/>
<b>Video Link #3 :</b> <br/>
<b>Supporting notes :</b> <br/>
</p>
]]></description>
</item>
<item>
<title>Software Craftsmanship 2011 Session Submission - Submission (2011-03-14 08:36:55)</title>
<link>http://www.jotform.com/submission/165915467937112523</link>
<pubDate>Mon, 14 Mar 2011 08:36:55 -0400</pubDate>
<guid>http://www.jotform.com/submission/165915467937112523</guid>
<description><![CDATA[
<p><b>Session Leader Name #1 :</b> Justin Mclean<br/>
<b>Session Leader Name #2 :</b> <br/>
<b>Session Title :</b> Asynchronous Unit Tests in FlexUnit<br/>
<b>Session Style :</b> Tutorial<br/>
<b>Session Length :</b> 60 mins<br/>
<b>Session Description :</b> A look at how to test asynchronous code using FlexUnit and how to solve common issues that arise when testing any asynchronous code. I'll cover the Async class in FlexUnit, chaining events, dealing with events arriving in different order and sequence of testing steps to make unit testing asynchronous code a lot easier.<br/>
<b>Session requirements (technical) :</b> For me:
Just need a projector to connect my laptop to.

For participants:
FlexUnit, Flex compiler and Flex SDK installed (all no cost/open source). Can provide installation instructions/links before session.<br/>
<b>Video Link #1 :</b> http://cdn.classsoftware.com/sc2011/index.html<br/>
<b>Video Link #2 :</b> <br/>
<b>Video Link #3 :</b> <br/>
<b>Supporting notes :</b> 1. In the video link I've used eclipse based Flash Builder but as the Flex compiler and SDK is open source you can use any editor of choice (even vim or notepad).

2. I'm not using TDD as a) don't want people to write MXML code b) in my experience it's typically more common to have MXML designs delivered by designer to developers to code/test. Can change this so TDD is used in examples if you prefer.

3. Code is simple and perhaps not 100% real wold, ie is uses dynamic events, no framework, not using presentation model. All that would get in the way and make the code more complex (well more code at least). I trying to show how to test asynchronous code not how to write Flex code.

4. I'll assuming no exposure to Flex but some unit testing experience.

5. While I'm doing this in Flex it can be applied to other languages/frameworks.

6. Session length could be 30 minutes if required I can cut it down to this, but would mean that people need to have installed software before hand.<br/>
</p>
]]></description>
</item>
<item>
<title>Software Craftsmanship 2011 Session Submission - Submission (2011-01-11 07:04:50)</title>
<link>http://www.jotform.com/submission/160556690941691794</link>
<pubDate>Tue, 11 Jan 2011 07:04:50 -0500</pubDate>
<guid>http://www.jotform.com/submission/160556690941691794</guid>
<description><![CDATA[
<p><b>Session Leader Name #1 :</b> Jason Gorman<br/>
<b>Session Leader Name #2 :</b> <br/>
<b>Session Title :</b> Test-driven Development From Hell<br/>
<b>Session Style :</b> Game/Challenge<br/>
<b>Session Length :</b> 60 mins<br/>
<b>Session Description :</b> Being aware of what you actually do is the first step towards doing it better. In this session, participants will take a TDD "driving test", attempting a popular TDD kata whilst fastidiously observing 13 key TDD practices. They will record screen captures while they do it, and a pairing partner will watch them and record any lapses in discipline.<br/>
<b>Session requirements (technical) :</b> Participants will need a laptop running their favourite IDE, and a practical knowledge of unit testing and TDD. It's recommended they watch the video "TDD From Hell" and get some practice in advance of the session.<br/>
<b>Video Link #1 :</b> http://www.youtube.com/watch?v=L90BH3b6YBU<br/>
<b>Video Link #2 :</b> <br/>
<b>Video Link #3 :</b> <br/>
<b>Supporting notes :</b> <br/>
</p>
]]></description>
</item>
</channel>
</rss>
