<?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/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rssdatehelper="urn:rssdatehelper"><channel><title>NimblePros news and events RSS feed</title><link>http://nimblepros.com</link><pubDate></pubDate><generator>umbraco</generator><description>This is a list of Nimble Software Professionals news and events that are going on.</description><language>en</language><item><title>Hudson Software Craftsmanship 4/2012</title><link>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-42012.aspx</link><pubDate>Thu, 12 Apr 2012 11:58:38 GMT</pubDate><guid>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-42012.aspx</guid><description>
&lt;p&gt;The next Hudson Software Craftsmanship meeting is April 18, 2012
and will take place at Henning Software's offices, located
here:&lt;/p&gt;

&lt;p&gt;102 First St, Suite 211&lt;/p&gt;

&lt;p&gt;Hudson, Ohio 44236&lt;/p&gt;

&lt;p&gt;If you plan on coming, &lt;a
href="http://hudsonsc0611.eventbrite.com/"
title="HudsonSC Registration"&gt;please register here&lt;/a&gt; so we plan
for the right number of people. Registration is FREE.&lt;/p&gt;

&lt;p&gt;You can park on First Street, or between the meeting location
and the library (off of library street).&amp;nbsp; The First Street
entrance is just south of the Tomato Grill restaurant.&lt;/p&gt;

&lt;p&gt;Bring a laptop with your development tools of choice to use
during coding exercises, if you can.&lt;/p&gt;

&lt;p&gt;The meeting doesn't technically start until 6:00 PM, but people
can arrive as early as 5:30 PM.&lt;/p&gt;
</description></item><item><title>Software Engineering 101 - Cleveland 2011</title><link>http://nimblepros.com/news-and-events/software-engineering-101---cleveland-2011.aspx</link><pubDate>Fri, 29 Jul 2011 15:23:58 GMT</pubDate><guid>http://nimblepros.com/news-and-events/software-engineering-101---cleveland-2011.aspx</guid><description>
&lt;p&gt;This is a one-day, FREE event designed to improve your software
development skills.&amp;nbsp; Rather than focusing on introductions to
new technologies or tools, this conference will help you get better
at your craft.&amp;nbsp; The morning sessions will focus on fundamental
principles, patterns, and practices of software development, and
the afternoon will be spent on practical exercises that put these
fundamentals into action.&amp;nbsp; While the sessions will mostly make
use of .NET and Visual Studio, these topics apply to any language
or platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agenda - Friday, 7 October 2011 (subject to
change)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;08:30 - 08:45 Welcome (Announce Prizes/Sponsors)&lt;/p&gt;

&lt;p&gt;08:45 - 09:15 Tasty Nuggets for Daily Development - Nuget and
Mercurial (presented by Kevin Kuebler)&lt;/p&gt;

&lt;p&gt;09:20 - 10:20 Test the Rainbow - Introducing Different Types of
Testing (Presented by Todd Ropog)&lt;/p&gt;

&lt;p&gt;10:20 - 10:30 Break and Snack&lt;/p&gt;

&lt;p&gt;10:30 - 12:30 Hands on Exercises&lt;/p&gt;

&lt;p&gt;12:30 - 1:30 Lunch (not provided)&lt;/p&gt;

&lt;p&gt;1:30 - 2:30 SOLIDifying Existing Code - SOLID + Refactoring
(Presented by Steve Smith)&lt;/p&gt;

&lt;p&gt;2:35 - 3:15 If You Keep Mocking Me, I May Get Testy - Advanced
Testing including Mocks (Presented by Brendan Enrick)&lt;/p&gt;

&lt;p&gt;3:25 - 4:45 Hands on Exercises&lt;/p&gt;

&lt;p&gt;4:45 - 5:00 Conclusion/Evaluations/Prizes&lt;/p&gt;

&lt;p&gt;If possible, bring your own laptop for use in the hands on
sessions, with your choice of development and testing tools
installed.&amp;nbsp; We will have prepared material for Visual Studio
2008/2010 and C#, but other environments are welcome.&amp;nbsp; If you
cannot bring a laptop, don't worry - we'll be pairing together so
as long as half the attendees have laptops, it will be fine.&lt;/p&gt;

&lt;p&gt;This event is being modelled after last year's SWE101 event and
other recent successful events in &lt;a
href="http://frazzleddad.blogspot.com/2009/08/save-date-software-engineering-101-on.html"&gt;
Columbus&lt;/a&gt; and &lt;a
href="http://brianhprince.blogspot.com/2010/02/software-engineering-101-southern-style.html"&gt;
Nashville&lt;/a&gt;, and is being organized by &lt;a
href="//"&gt;NimblePros&lt;/a&gt; and &lt;a
href="http://hudsonsc.com/"&gt;HudsonSC&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Event Resources&lt;/h3&gt;

&lt;p&gt;&lt;a href="/download/SWE101-Oct2011.zip"
title="Software Engineering 101 Slides and Demos"&gt;Software
Engineering 101 Slides and Demos&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>The Nimble Team Room:  The Heart of an Agile Workspace</title><link>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-5/the-nimble-team-room--the-heart-of-an-agile-workspace.aspx</link><pubDate>Thu, 02 Jun 2011 12:17:14 GMT</pubDate><guid>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-5/the-nimble-team-room--the-heart-of-an-agile-workspace.aspx</guid><description>
&lt;p&gt;At a recent Hudson Software Craftsmanship meeting, the group was
discussing how teams can transition to agile.&amp;nbsp; To kick off
this discussion, we asked, "What does agile look like?&amp;nbsp; If you
were to walk into an agile team's team room, what kinds of things
would you be able to observe that would indicate they were
practicing agile methods?"&amp;nbsp; One of the first answers was, "The
fact that they have a team room is a huge indicator!"&amp;nbsp; Team
rooms are a big part of being able to communicate and work together
as a team, and teamwork is extremely important if agile is to be
successfully used for a project.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/39653/team-room-1_419x281.jpg"  width="419"  height="281" alt="team-room-1" style="float: right; margin-left: 10px;"/&gt;Although there are many components of
an Agile space, the piece that is literally at the heart of an
effective Agile workspace is the team room.&amp;nbsp; This is the room
where the developers spend most of their working hours, and it is
an area that NimblePros put a lot of thought into when we were
designing our new office space.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The most basic component of this space is the room
itself.&lt;/strong&gt; It should be large enough to hold your entire
team, and should be largely free of any fixed constraints like
walls or large pieces of furniture that limit movement of people or
placement of desks and chairs.&amp;nbsp; This can actually be
accomplished with a little effort and creativity in nearly any
setting; throw out the cubicles, clear out the room, and gather
your team.&amp;nbsp; We've made this work ourselves in less than ideal
circumstances in previous spaces - even a few small offices linked
together will do in a pinch.&amp;nbsp; Fortunately, we have created a
large center room in our new building that is designed just for
this purpose.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/39658/team-room-2_419x281.jpg"  width="419"  height="281" alt="team-room-2" style="float: right; margin-left: 10px;"/&gt;&lt;strong&gt;Location is another important
consideration.&lt;/strong&gt; The team room is where the&amp;nbsp;developers
will be working most of the time, but it is not ideal for taking
phone calls or for working on solo tasks like writing
proposals.&amp;nbsp; For those tasks, the team should have separate
offices available.&amp;nbsp; These spaces may be shared in most cases,
and should be convenient to the team room to ensure that the entire
team is in close contact throughout the day. This absolutely
includes managers; there is no greater barrier to communication
than distance, and too often managers and other staff locate their
offices in corner towers far from the team that they are supposed
to be managing.&amp;nbsp; In our case, we are in a one-floor building,
so corner tower offices weren't an option anyway.&amp;nbsp; However, we
did make a concerted effort to locate ALL of the offices around the
perimeter of the team room to ensure that ALL members of the team
were communicating and collaborating throughout the day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Collaboration really is the key,&lt;/strong&gt; and nothing
discourages collaboration more than the wrong furniture.&amp;nbsp; The
wrong furniture makes it hard to gather around a single
workstation, or to sit side-by-side to review a document or a bit
of code.&amp;nbsp; The worst furniture is the "L" or "U" shaped desk,
which are specifically designed for an individual to conveniently
access all areas of the workspace from a fixed point.&amp;nbsp; At
NimblePros, much of our programming is done in pairs, so having the
right desks was critical.&amp;nbsp; We love our Balt Flipper training
tables for this - not only are they a simple design that easily
accommodates two developers as well as multiple monitors and
keyboards, they are also on wheels and fold down.&amp;nbsp; This means
that we can easily reconfigure our space and even move furniture to
different rooms to accommodate our ever-changing project
needs.&amp;nbsp; Again, it's all about being Nimble.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/39663/office-entry_300x340.jpg"  width="300"  height="340" alt="Office-Entry" style="float: right; margin-left: 10px;"/&gt;&lt;strong&gt;There are a few other
details&lt;/strong&gt; that really help to bring the space
together.&amp;nbsp; The lighting, which mimics natural light, reduces
glare and improves developer happiness - no coding away in dark
caves here!&amp;nbsp; The floor is a hard laminate, which assists in
easy movement of chairs and other furniture.&amp;nbsp; For those times
when people want to work standing up, we've put in a counter that
is the perfect height and size to accommodate a row of
laptops.&amp;nbsp; And, of course, no space would be complete without
copious white boards (although we're still getting those into
place, since they require a bit more commitment and handyman skills
than some of our other furnishings).&lt;/p&gt;

&lt;p&gt;We're pretty pleased with the space - it's a joy to work in
(really!), and it does a great job of supporting the Agile
development style that NimblePros is known for.&amp;nbsp; The rest of
the office is pretty cool as well, and we'll share some more
details in upcoming newsletters and on our site.&amp;nbsp; In the
meantime, though, if you are in the Hudson, Ohio area and would
like to drop in for a tour, we'd love to have you!&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description></item><item><title>Hudson Software Craftsmanship 6/2011</title><link>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-62011.aspx</link><pubDate>Fri, 20 May 2011 13:06:12 GMT</pubDate><guid>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-62011.aspx</guid><description>
&lt;p&gt;The next Hudson Software Craftsmanship meeting is June 15, 2011
and will take place at Henning Software's offices, located
here:&lt;/p&gt;

&lt;p&gt;102 First St, Suite 211&lt;/p&gt;

&lt;p&gt;Hudson, Ohio 44236&lt;/p&gt;

&lt;p&gt;If you plan on coming, &lt;a
href="http://hudsonsc0611.eventbrite.com/"
title="HudsonSC Registration"&gt;please register here&lt;/a&gt; so we plan
for the right number of people. Registration is FREE.&lt;/p&gt;

&lt;p&gt;You can park on First Street, or between the meeting location
and the library (off of library street).&amp;nbsp; The First Street
entrance is just south of the Tomato Grill restaurant.&lt;/p&gt;

&lt;p&gt;Bring a laptop with your development tools of choice to use
during coding exercises, if you can.&lt;/p&gt;

&lt;p&gt;The meeting doesn't technically start until 6:00 PM, but people
can arrive as early as 5:30 PM.&lt;/p&gt;
</description></item><item><title>Hudson Software Craftsmanship 5/2011</title><link>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-52011.aspx</link><pubDate>Thu, 05 May 2011 09:40:55 GMT</pubDate><guid>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-52011.aspx</guid><description>
&lt;p&gt;The next Hudson Software Craftsmanship meeting is May 18, 2011
and will take place at Henning Software's offices, located
here:&lt;/p&gt;

&lt;p&gt;102 First St, Suite 211&lt;/p&gt;

&lt;p&gt;Hudson, Ohio 44236&lt;/p&gt;

&lt;p&gt;If you plan on coming, &lt;a
href="http://hudsonsc0511.eventbrite.com/"
title="HudsonSC Registration"&gt;please register here&lt;/a&gt; so we plan
for the right number of people. Registration is FREE.&lt;/p&gt;

&lt;p&gt;You can park on First Street, or between the meeting location
and the library (off of library street).&amp;nbsp; The First Street
entrance is just south of the Tomato Grill restaurant.&lt;/p&gt;

&lt;p&gt;Bring a laptop with your development tools of choice to use
during coding exercises, if you can.&lt;/p&gt;

&lt;p&gt;The meeting doesn't technically start until 6:00 PM, but people
can arrive as early as 5:30 PM.&lt;/p&gt;
</description></item><item><title>Hudson Software Craftsmanship 4/2011</title><link>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-42011.aspx</link><pubDate>Wed, 23 Mar 2011 09:25:17 GMT</pubDate><guid>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-42011.aspx</guid><description>
&lt;p&gt;The next Hudson Software Craftsmanship meeting is April 20, 2011
and will take place at Henning Software's offices, located
here:&lt;/p&gt;

&lt;p&gt;102 First St, Suite 211&lt;/p&gt;

&lt;p&gt;Hudson, Ohio 44236&lt;/p&gt;

&lt;p&gt;If you plan on coming, &lt;a
href="http://hudsonsc0411.eventbrite.com/"
title="HudsonSC Registration"&gt;please register here&lt;/a&gt; so we plan
for the right number of people. Registration is FREE.&lt;/p&gt;

&lt;p&gt;You can park on First Street, or between the meeting location
and the library (off of library street).&amp;nbsp; The First Street
entrance is just south of the Tomato Grill restaurant.&lt;/p&gt;

&lt;p&gt;Bring a laptop with your development tools of choice to use
during coding exercises, if you can.&lt;/p&gt;

&lt;p&gt;The meeting doesn't technically start until 6:00 PM, but people
can arrive as early as 5:30 PM.&lt;/p&gt;
</description></item><item><title>Hudson Software Craftsmanship 12/2010</title><link>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-122010.aspx</link><pubDate>Thu, 18 Nov 2010 13:43:54 GMT</pubDate><guid>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-122010.aspx</guid><description>
&lt;p&gt;The next Hudson Software Craftsmanship meeting is Wednesday,
December 15, 2010 and will take place at Henning Software's
offices, located here:&lt;/p&gt;

&lt;p&gt;102 First St, Suite 211&lt;/p&gt;

&lt;p&gt;Hudson, Ohio 44236&lt;/p&gt;

&lt;p&gt;If you plan on coming, &lt;a
href="http://hudsonsc1210.eventbrite.com/"
title="HudsonSC Registration"&gt;please register here&lt;/a&gt; so we plan
for the right number of people. Registration is FREE.&lt;/p&gt;

&lt;p&gt;You can park on First Street, or between the meeting location
and the library (off of library street).&amp;nbsp; The First Street
entrance is just south of the Tomato Grill restaurant.&lt;/p&gt;

&lt;p&gt;Bring a laptop with your development tools of choice to use
during coding exercises, if you can.&lt;/p&gt;

&lt;p&gt;The meeting doesn't technically start until 6:00 PM, but people
can arrive as early as 5:30 PM.&lt;/p&gt;
</description></item><item><title>CodeMash 2011</title><link>http://nimblepros.com/news-and-events/codemash-2011.aspx</link><pubDate>Fri, 29 Oct 2010 11:13:47 GMT</pubDate><guid>http://nimblepros.com/news-and-events/codemash-2011.aspx</guid><description>
&lt;p&gt;CodeMash is a unique event that will educate developers on
current practices, methodologies and technology trends in variety
of platforms and development languages such as Java, .NET, Ruby and
PHP. Held January 12-14, 2011, at the lush &lt;a
href="http://www.kalahariresort.com/" target="_blank"&gt;Kalahari
Resort&lt;/a&gt; in Sandusky, Ohio, attendees will be able to attend a
world-class technical conference amid Ohio's largest indoor
waterpark. Nobody will frown if you show up in shorts, sandals, and
your loudest t-shirt. You might even win a prize for doing so.&lt;/p&gt;

&lt;p&gt;The Software Craftmanship session will be presented by &lt;a
href="/who-we-are.aspx" title="Who we are"&gt;Brendan Enrick&lt;/a&gt; and
&lt;a href="/who-we-are.aspx" title="Who we are"&gt;Steve Smith&lt;/a&gt; (a
co-founder of NimblePros). Join your peers and fellow craftsmen in
a variety of coding kata and exercises designed to improve your
skills as a software developer. Experienced developers from all
backgrounds are welcome, as are beginners.&lt;/p&gt;
</description></item><item><title>Hudson Software Craftsmanship 11/2010</title><link>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-112010.aspx</link><pubDate>Wed, 20 Oct 2010 14:40:46 GMT</pubDate><guid>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-112010.aspx</guid><description>
&lt;p&gt;The next Hudson Software Craftsmanship meeting is November 17,
2010 and will take place at Henning Software's offices, located
here:&lt;/p&gt;

&lt;p&gt;102 First St, Suite 211&lt;/p&gt;

&lt;p&gt;Hudson, Ohio 44236&lt;/p&gt;

&lt;p&gt;You can park on First Street, or between the meeting location
and the library (off of library street).&amp;nbsp; The First Street
entrance is just south of the Tomato Grill restaurant.&lt;/p&gt;

&lt;p&gt;Bring a laptop with your development tools of choice to use
during coding exercises, if you can.&lt;/p&gt;

&lt;p&gt;The meeting doesn't technically start until 6:00 PM, but people
can arrive as early as 5:30 PM.&lt;/p&gt;
</description></item><item><title>Hudson Software Craftsmanship 10/2010</title><link>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-102010.aspx</link><pubDate>Thu, 30 Sep 2010 08:36:27 GMT</pubDate><guid>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-102010.aspx</guid><description>
&lt;p&gt;The next Hudson Software Craftsmanship meeting is October 20,
2010 and will take place at Henning Software's offices, located
here:&lt;/p&gt;

&lt;p&gt;102 First St, Suite 211&lt;/p&gt;

&lt;p&gt;Hudson, Ohio 44236&lt;/p&gt;

&lt;p&gt;You can park on First Street, or between the meeting location
and the library (off of library street).&amp;nbsp; The First Street
entrance is just south of the Tomato Grill restaurant.&lt;/p&gt;

&lt;p&gt;Bring a laptop with your development tools of choice to use
during coding exercises, if you can.&lt;/p&gt;

&lt;p&gt;The meeting doesn't technically start until 6:00 PM, but people
can arrive as early as 5:30 PM.&lt;/p&gt;
</description></item><item><title>Setting up VisualSVN Server</title><link>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-4/setting-up-visualsvn-server.aspx</link><pubDate>Fri, 02 Jul 2010 09:25:50 GMT</pubDate><guid>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-4/setting-up-visualsvn-server.aspx</guid><description>
&lt;p&gt;VisualSVN Server is a great free tool which sits on top of
Subversion (SVN) and makes its installation and management a
breeze. Subversion's UI is a command line UI, and VisualSVN
provides a management UI. It also handles the installation of the
server, which can run on your computer as a Windows Service.&lt;/p&gt;

&lt;h4&gt;Get VisualSVN Server&lt;/h4&gt;

&lt;p&gt;&lt;a href="http://www.visualsvn.com/server/"&gt;VisualSVN Server&lt;/a&gt;
is available freely and has a downloadable install file.&lt;/p&gt;

&lt;h4&gt;Install VisualSVN Server&lt;/h4&gt;

&lt;p&gt;The install of VisualSVN Server is a matter of clicking next a
bunch of times while making only a couple of simple changes when
necessary.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26277/1a_498x390.jpg"  width="498"  height="390" alt="VisualSVN Setup"/&gt;&lt;/p&gt;

&lt;p&gt;Feel free to read about the product you're installing and then
click "Next".&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26282/2a_497x390.jpg"  width="497"  height="390" alt="VisualSVN License"/&gt;&lt;/p&gt;

&lt;p&gt;Carefully read through the license agreement and then click
"Next".&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26287/3a_499x390.jpg"  width="499"  height="390" alt="VisualSVN Options"/&gt;&lt;/p&gt;

&lt;p&gt;Here you want the first option, which will install both the
Server and the GUI application to manage it. The second option,
which installs only the management console is intended to be put on
another machine so you can remotely manage things. This is a great
idea if you're installing VisualSVN on a remote server. Once things
are set up you can run this installer on your local machine to
manage SVN locally.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26292/4a_499x390.jpg"  width="499"  height="390" alt="VisualSVN Custom"/&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Location - the install location of VisualSVN Server.&lt;/li&gt;

&lt;li&gt;Repositories - the location where all of your repositories are
stored. This should probably go on a data drive as this is the
revision history of all of your source code and could grow large if
your projects are large.&lt;/li&gt;

&lt;li&gt;Server Port - choose any port you like. The default, 443, is a
standard secure port, however, you can use any port you like.&lt;/li&gt;

&lt;li&gt;Use secure connection - I recommend this. Unless you have a
reason to not use a secure connection it is better this way. (If
you don't have a signed certificate you'll get a warning when you
first connect to the server informing the connecting user that the
certificate is not signed.) Once they accept it they never see the
warning again.&lt;/li&gt;

&lt;li&gt;Authentication - up to you which you want to use. For this
tutorial I will use Subversion authentication to demonstrate it,
but the Windows authentication will work well if you would prefer
that.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src="/media/26297/5a_499x390.jpg"  width="499"  height="390" alt="VisualSVN Ready"/&gt;&lt;/p&gt;

&lt;p&gt;If you're sure you got everything set up correctly, hit
"Install".&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26302/7a_499x390.jpg"  width="499"  height="390" alt="VisualSVN Progress"/&gt;&lt;/p&gt;

&lt;p&gt;Watch the progress bar.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26307/8a_497x390.jpg"  width="497"  height="390" alt="VisualSVN Complete"/&gt;&lt;/p&gt;

&lt;p&gt;Congratulations! You have a Subversion server installed. Let the
installer start VisualSVN Server Manager, so you can start adding
users, groups, and repositories. Click "Finish".&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26312/9a_500x379.jpg"  width="500"  height="379" alt="VisualSVN Console"/&gt;&lt;/p&gt;

&lt;p&gt;This is the management console of VisualSVN.&lt;/p&gt;

&lt;h4&gt;Create Users&lt;/h4&gt;

&lt;p&gt;Now that you have your server set up, you can start creating
users. This will show how to set up subversion users.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26317/10a.png" width="237" height="294" alt="VisualSVN Create User"/&gt;&lt;/p&gt;

&lt;p&gt;You want to start by right-clicking on the "Users" folder and
selecting "Create User..."&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26322/11a.png" width="365" height="215" alt="VisualSVN Create User 2"/&gt;&lt;/p&gt;

&lt;p&gt;This window will be shown and you can easily create users from
this.&lt;/p&gt;

&lt;p&gt;Create as many users as you want.&lt;/p&gt;

&lt;h4&gt;Create Groups&lt;/h4&gt;

&lt;p&gt;With our users created we can create groups in which we will put
those users.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26327/12a.png" width="262" height="342" alt="VisualSVN Create Group"/&gt;&lt;/p&gt;

&lt;p&gt;Simply right-click on the "Groups" folder and select "Create
Group..."&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26332/13a.png" width="365" height="376" alt="VisualSVN Create Group 2"/&gt;&lt;/p&gt;

&lt;p&gt;This window is designed to let us name our group and add new
members to the group. We can change membership in the group later,
and we will add our user to this group by clicking the "Add..."
button.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26337/14a.png" width="367" height="375" alt="VisualSVN Create Group 3"/&gt;&lt;/p&gt;

&lt;p&gt;In this window we have a list of all of the users and groups in
the system. For now there is only one user, so we can select the
user and click "OK".&lt;/p&gt;

&lt;p&gt;When we return to the previous window we can click "OK" again
and our group will be created.&lt;/p&gt;

&lt;h4&gt;Create Repositories&lt;/h4&gt;

&lt;p&gt;Repositories are the places where we will be storing our source
code in Subversion. We will need to create at least one of these
before we can begin using Subversion.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26342/15a.png" width="336" height="370" alt="VisualSVN Create Repository"/&gt;&lt;/p&gt;

&lt;p&gt;Right-clicking on the "Repositories" icon will bring up this
context menu in which we want to select "Create New
Repository..."&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26347/16a.png" width="403" height="220" alt="VisualSVN Create Repository 2"/&gt;&lt;/p&gt;

&lt;p&gt;Give your repository a name. I recommend giving it the name of a
project. Create the default structure. It is a very effective
structure and is also widely known and recognized. If you are
unfamiliar with the structure you can find plenty of information
about it. To get you started, put your source code in the
trunk.&lt;/p&gt;

&lt;h4&gt;Setting Repository Permissions&lt;/h4&gt;

&lt;p&gt;Permissions in VisualSVN are configured using a familiar
windows-like interface.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26352/17a.png" width="314" height="399" alt="VisualSVN Permissions"/&gt;&lt;/p&gt;

&lt;p&gt;The first step is to selection the location you want to set the
permissions of and right-click and select "Properties..." Here I
have selected my "Nitriq" repository for which to configure
permissions.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26357/18a.png" width="381" height="489" alt="VisualSVN Properties"/&gt;&lt;/p&gt;

&lt;p&gt;From here you can customize the permissions any way you like. I
recommend adding individuals and groups which are allowed access to
this repository and give them "Read / Write" Permission. Then
select "Everyone" and assign "No Access",&amp;nbsp; you can get simpler
or more advanced depending on your needs.&lt;/p&gt;

&lt;h4&gt;Next Steps&lt;/h4&gt;

&lt;p&gt;Now that you have VisualSVN Server installed you can continue
adding users, groups, and repositories and add as many permissions
as you like.&lt;/p&gt;

&lt;p&gt;From here you'll want to connect to the source control system
using a subversion client program. There are plenty of free ones
available. I recommend TortoiseSVN.&lt;/p&gt;

&lt;p&gt;Read my article on &lt;strong&gt;Setting up a TortoiseSVN
Client&lt;/strong&gt; to learn how to connect to a Subversion Server.&lt;/p&gt;
</description></item><item><title>Setting up the TortoiseSVN Client</title><link>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-4/setting-up-the-tortoisesvn-client.aspx</link><pubDate>Fri, 02 Jul 2010 08:44:37 GMT</pubDate><guid>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-4/setting-up-the-tortoisesvn-client.aspx</guid><description>
&lt;p&gt;Tortoise SVN is a freely downloadable client used to access
Subversion source control repositories. The tool integrates into
the Windows shell, which makes it a breeze to use. It uses visual
clues to let you know which files are new, changed, and unchanged
from the latest version you have obtained from the source control
server.&lt;/p&gt;

&lt;h4&gt;Get TortoiseSVN Client&lt;/h4&gt;

&lt;p&gt;The first step is to &lt;a
href="http://tortoisesvn.net/downloads"&gt;download TortoiseSVN&lt;/a&gt;.
If you're on a 64-bit computer you can use the 64-bit client. If
you're on 32-bit or if you're unsure, then just get the 32-bit
client.&lt;/p&gt;

&lt;h4&gt;Install TortoiseSVN Client&lt;/h4&gt;

&lt;p&gt;The install of TortoiseSVN is simple and is just a matter of
clicking "Next" a bunch of times.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26144/1_499x390.jpg"  width="499"  height="390" alt="Tortoise Setup"/&gt;&lt;/p&gt;

&lt;p&gt;Feel free to read about the wizard you're about to run and then
click "Next".&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26149/2_498x390.jpg"  width="498"  height="390" alt="Tortoise License"/&gt;&lt;/p&gt;

&lt;p&gt;Carefully read through the End-User License Agreement, and then
accept the terms and click "Next".&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26154/3_500x390.jpg"  width="500"  height="390" alt="Tortoise Options"/&gt;&lt;/p&gt;

&lt;p&gt;The install size of this application is so small that there is
not really a need to make any changes here. I removed the GB
dictionary, but it makes almost no difference. Click "Next".&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26159/4_500x389.jpg"  width="500"  height="389" alt="Tortoise Install"/&gt;&lt;/p&gt;

&lt;p&gt;If you're ready to install, just click the "Install" button.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26164/5_499x390.jpg"  width="499"  height="390" alt="Tortoise Progress"/&gt;&lt;/p&gt;

&lt;p&gt;Sit and wait for the install to complete. It doesn't take very
long.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;And you're done! The installer is complete.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26169/9.png" width="374" height="176" alt="Tortoise Restart"/&gt;&lt;/p&gt;

&lt;p&gt;Sadly, the shell integration in TortoiseSVN will require that
you restart the computer.&lt;/p&gt;

&lt;h4&gt;Check Out Source Code&lt;/h4&gt;

&lt;p&gt;In Subversion the term for getting source code the first time
from source control is called checking out the source code. Now
that you've restarted your computer you should see new options in
the context menu in Windows Explorer.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26174/10_500x400.jpg"  width="500"  height="400" alt="Tortoise Source"/&gt;&lt;/p&gt;

&lt;p&gt;From this context menu you just need to select "SVN
Checkout..."&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26179/11.png" width="468" height="364" alt="Tortoise Checkout"/&gt;&lt;/p&gt;

&lt;p&gt;This is the checkout window. It looks a bit complicated. For now
just focus on two fields.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;URL of repository&lt;/strong&gt; - this is where you put the
location of the code you want to get.&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;Checkout direction&lt;/strong&gt; - this is the location on
your local computer where you want to store the files locally.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src="/media/26184/12.png" width="468" height="363" alt="Tortoise Checkout 2"/&gt;&lt;/p&gt;

&lt;p&gt;This is an example connection to a repository called Nitriq.
Here I am connecting directly to the root of the repository called
"Nitriq" on my SVN server "benrick-VPC".&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26189/13_500x229.jpg"  width="500"  height="229" alt="Tortoise Certificate"/&gt;&lt;/p&gt;

&lt;p&gt;This is a common message if you used a secure connection on your
Subversion server. Since it can't validate the certificate it is
just giving this warning. Since I know that the connection is safe
I will just say "Accept permanently".&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26194/14_500x229.jpg"  width="500"  height="229" alt="Tortoise Authentication"/&gt;&lt;/p&gt;

&lt;p&gt;Now we need to give our username and password. I recommend
saving the authentication since SVN has a handshake it does. If you
don't save the password you might get stuck typing it more than
once. That's usually annoying.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26199/15_500x229.jpg"  width="500"  height="229" alt="Tortoise Finished"/&gt;&lt;/p&gt;

&lt;p&gt;After authenticating you'll get messages like these, which will
inform you of the changes made to your directory. These are just
folders, but if there were files they would have been obtained as
well.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26204/16_500x400.jpg"  width="500"  height="400" alt="Tortoise Folders"/&gt;&lt;/p&gt;

&lt;p&gt;When you first check out a repository from Subversion you will
see the files have been obtained. Notice here the green icons.
These indicate that I have no local changes. We'll see a few more
icons later.&lt;/p&gt;

&lt;h4&gt;Making Changes and Committing Changes&lt;/h4&gt;

&lt;p&gt;Now that we have the files we need to see how to add new files
and make changes to existing files. When we send our changes to the
source control server that is called a "Commit" to the source
control repository.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26209/17_500x400.jpg"  width="500"  height="400" alt="Tortoise Files"/&gt;&lt;/p&gt;

&lt;p&gt;Here I have created five new text documents. These files all
have blue question mark icons. This indicates that these files are
in a subversion folder and are not yet versioned by SVN. In order
to get them into SVN I will either need to add them manually or I
can do that when committing my changes.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26214/18_500x400.jpg"  width="500"  height="400" alt="Tortoise Files 2"/&gt;&lt;/p&gt;

&lt;p&gt;By right-clicking, I open this context menu and select the "SVN
Commit..." option.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26219/19_500x495.jpg"  width="500"  height="495" alt="Tortoise Commit"/&gt;&lt;/p&gt;

&lt;p&gt;In this window I will check the box next to each file I want to
commit the changes of. Since these are non-versioned files it will
add them into source control and send the updates to the server. I
will also fill in a message in the "Message" text box.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26224/20_500x230.jpg"  width="500"  height="230" alt="Tortoise Confirmation"/&gt;&lt;/p&gt;

&lt;p&gt;After committing a window like this one will appear displaying
the actions taken by TortoiseSVN.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26229/21_500x400.jpg"  width="500"  height="400" alt="Tortoise Files 3"/&gt;&lt;/p&gt;

&lt;p&gt;Now that I have no changes, these files display with the green
checkmark icons indicating that I haven't made any changes.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26234/22_500x400.jpg"  width="500"  height="400" alt="Tortoise Changes"/&gt;&lt;/p&gt;

&lt;p&gt;Next I will make a change to one of the documents by adding in
some text and saving the file.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26239/23_500x400.jpg"  width="500"  height="400" alt="Tortoise Files 4"/&gt;&lt;/p&gt;

&lt;p&gt;This new red exclamation point indicates that I have pending
local changes which need to be committed to the source control
repository. I will now need to commit these changes.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26244/24_500x493.jpg"  width="500"  height="493" alt="Tortoise Commit 2"/&gt;&lt;/p&gt;

&lt;p&gt;After selecting "SVN Commit..." from the context menu again, I
will see this window again, but now it is displaying the modified
file. From here I can add in a message describing the change I've
made and click "OK".&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26249/25_500x229.jpg"  width="500"  height="229" alt="Tortoise Finished 2"/&gt;&lt;/p&gt;

&lt;p&gt;TortoiseSVN will again bring up this window and display the
steps it has taken to commit the changes.&lt;/p&gt;

&lt;h4&gt;Updating Local Copy&lt;/h4&gt;

&lt;p&gt;In order to keep up-to-date with the changes made by other
developers, we will need to get the latest changes from the source
control repository. In order to do this we will "Update".&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26254/26_500x399.jpg"  width="500"  height="399" alt="Tortoise Update"/&gt;&lt;/p&gt;

&lt;p&gt;Updating from SVN is as easy as another context menu. When you
want to get others' changes to the source code you right-click and
select "SVN Update", which will recursively get you the latest
version of the source code starting from the folder on which you
clicked.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/26259/27_500x230.jpg"  width="500"  height="230" alt="Tortoise Complete"/&gt;&lt;/p&gt;

&lt;p&gt;When the update is finished you will get a message in this
window saying "Completed". Now you're ready to make changes as you
like with your local copy. Remember that others will not get your
updates until you commit them to the source control repository.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
</description></item><item><title>Source Control Setup</title><link>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-4/source-control-setup.aspx</link><pubDate>Thu, 01 Jul 2010 16:34:08 GMT</pubDate><guid>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-4/source-control-setup.aspx</guid><description>
&lt;h4&gt;&lt;strong&gt;The Basics&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;&lt;img src="/media/26362/istock_000000717595xsmall.jpg" width="284" height="423" alt="Source Control Image" style="float: right; padding-left: 10px;"/&gt;Source control systems, also known as version
control systems or revision control systems, serve a few valuable
purposes in software development: they're a centralized storage
location that provides easy access to the code, they provide
detailed version history, they maintain file integrity in case of
individual corruptions, and facilitate the integration of
separately developed software. These tools are a must have asset
for all software development projects with at least one
developer.&lt;/p&gt;

&lt;p&gt;The freedom provided by these systems allows developers to take
greater chances, and to also keep code cleaner.&amp;nbsp; You don't
need to save old code; source control does that. You don't need to
worry about deleting things; source control has a copy. You don't
need painfully merge your changes with someone else's; modern
source control systems handle this. You don't need to inform
everyone of the changes you made; they can see them in the revision
history along with your comments describing the changes.&lt;/p&gt;

&lt;p&gt;Rather than continuing to herald the great benefits of source
control, I'll show how easy it is to set up a source control setup
that works effectively for any size project or team.&lt;/p&gt;

&lt;p&gt;Most source control systems involve client computers connecting
to a central source control server, we will need to look at both
setting up the server and the client.&lt;/p&gt;

&lt;p&gt;There are plenty of source control systems on the market today,
more than I could possibly name here. One of the most flexible and
widely used source control systems is called Subversion (SVN). It
is a free source control system, which can be set up and running
within 15 minutes. I recommend setting up VisualSVN as your first
source control system as it is free and has an easy-to-use
installer.&lt;/p&gt;

&lt;p&gt;You can read my articles on &lt;a href="/what-we-say/newsletters/agile-perspectives-issue-4/setting-up-visualsvn-server.aspx"
title="Setting up VisualSVN Server"&gt;&lt;strong&gt;Setting up VisualSVN
Server&lt;/strong&gt;&lt;/a&gt; and &lt;a href="/what-we-say/newsletters/agile-perspectives-issue-4/setting-up-the-tortoisesvn-client.aspx"
title="Setting up the TortoiseSVN Client"&gt;&lt;strong&gt;Setting up the
TortoiseSVN Client&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;Repositories&lt;/h4&gt;

&lt;p&gt;Source control repositories are created in a source control
system and are the highest level of grouping done on a source
control system. These are usually a one-to-one mapping with a
project. This scheme will work for nearly all development teams. If
you will have more than a couple dozen projects you might want to
make your repository be a group of projects (based on client
perhaps).&lt;/p&gt;

&lt;p&gt;If I were to set up Nitriq in source control, I would create a
Nitriq repository and would set permissions to allow the Nitriq
development team access to the code.&lt;/p&gt;

&lt;h4&gt;Repository Structure&lt;/h4&gt;

&lt;p&gt;The structure in which we store our files and folders is very
important, and there are some standards which will guide us towards
effective structures. At the root most level of our repository we
want to have three folders: trunk, tags, and branches. This is a
highly recognized highly accepted standard. I would recommend
against deviated from this without a very good reason.&lt;/p&gt;

&lt;h4&gt;Trunk&lt;/h4&gt;

&lt;p&gt;This is the main portion of the repository. The current state of
the project will always be in the trunk. If anyone wants to get the
latest version of the application, this is where it is.&lt;/p&gt;

&lt;h4&gt;Tags&lt;/h4&gt;

&lt;p&gt;Think of tags as being snapshots in time. Perhaps every version
of your application or every release might be represented as a tag.
It is extremely important to keep these so you can get access to
old versions of the source code.&lt;/p&gt;

&lt;p&gt;Tags will allow you to manage your releases effectively. Without
them you'll have quite a time trying to find the version of the
project you released sixteen months ago.&lt;/p&gt;

&lt;h4&gt;Branches&lt;/h4&gt;

&lt;p&gt;As we want to try something new, we branch out. We create copies
of the trunk and put them here in the branches folder. These give
us the opportunity to try new things or just work separately from
others. The uses of branches changes depending on the size of your
team as well as your process. Regardless of that though, all teams
should be using branches at some level.&lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;What to Store in Source Control&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;Everything that can go in source control should go in source
control. The main things you want to avoid are files that are
created when building your project. Those files usually don't go in
source control. This will include most "bin" and "obj" folders.&lt;/p&gt;

&lt;p&gt;Keep your documentation in source control. Remember that
documentation changes while the app changes, so this keeps each
version of the documents with the correct version of the code.&lt;/p&gt;

&lt;p&gt;Referenced assemblies you might be using should also be in
source control. This might include your unit testing framework or
the charting controls that you purchased from your favorite
component vendor. Keeping these in source control allows you to
maintain the correct versions of the controls with the correct
versions of the source code just like with the documentation. This
is also useful for deploying to testing, staging, and production
environments and when adding new team members.&lt;/p&gt;

&lt;p&gt;My rule is that if it's required to run my code and is not my
operating system, browser, runtime, or IDE then it needs to be in
source control.&lt;/p&gt;
</description></item><item><title>Clean Out Your Closets with Source Control</title><link>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-4/clean-out-your-closets-with-source-control.aspx</link><pubDate>Thu, 01 Jul 2010 16:29:41 GMT</pubDate><guid>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-4/clean-out-your-closets-with-source-control.aspx</guid><description>
&lt;p&gt;&lt;em&gt;My DVR is full of shows about how to straighten up my house
and office, and I have a pile of books here about how to take
control of clutter….&amp;nbsp; If only they all were organized! I feel
so overwhelmed!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Actually, things aren't quite that bad around here, but the
sentiment above is a really common one these days.&amp;nbsp; Every day
we are being bombarded with STUFF - things that have to be looked
at, sorted, and acted upon, and it is really easy to feel
overwhelmed.&amp;nbsp; And it isn't just physical stuff - we all have
our little digital repositories of photos, records, and files that
we might need - someday.&lt;/p&gt;

&lt;p&gt;"Some day" and "just in case" clutter can be a serious issue
though.&amp;nbsp; We don't like to get rid of it, because Murphy's Law
says that if we do, we will need it next week.&amp;nbsp; But we often
lack a way to deal with it, and so we are paralyzed, do nothing,
and it continues to accumulate until we couldn't find the item that
we needed even if our lives depended upon it.&lt;/p&gt;

&lt;p&gt;For many businesses, this clutter takes the form of old
code.&amp;nbsp; Managers and developers are always concerned that they
may, someday, need to roll back the system to some specific version
that was in place in August 2005.&amp;nbsp; What's more, "that code
cost money to develop, so it must be valuable and we don't want to
throw it away."&amp;nbsp; And so the files accumulate, often with no
real rhyme or reason, and typically with only a half-hearted
attempt at organization.&lt;/p&gt;

&lt;p&gt;In the worst cases, the old code is just left in the application
and commented out.&amp;nbsp; That is a disaster, and that code really
DOES cost you real money.&amp;nbsp; It slows down your development
process today and it may make it nearly impossible for any work to
be done at a later date.&amp;nbsp; In not-quite-as-bad cases, the code
is stored away somewhere in a file repository, where it collects in
some state of chaos that prevents it from being useful "some day,"
even if it is needed.&lt;/p&gt;

&lt;p&gt;There is a better way, however, and that is Source
Control.&amp;nbsp; Source Control takes care of your "just in case"
code, and it does so in such a way that that you can actually find
the files that you need later.&amp;nbsp; Sounds great, right?&amp;nbsp; If
you want to read more about how to implement this best practice in
your development environment, please read Brendan's article, &lt;a
href="/what-we-say/newsletters/agile-perspectives-issue-4/source-control-setup.aspx"
title="Source Control Setup"&gt;&lt;strong&gt;Source Control
Setup&lt;/strong&gt;&lt;/a&gt;.&amp;nbsp; This really is one of those solutions
that pays for itself in a short period of time.&lt;/p&gt;

&lt;p&gt;And if you still feel a little overwhelmed, don't panic.&amp;nbsp;
NimblePros offers full set-up and mentoring on Source Control
solutions for companies that want to ensure that they are on the
right track.&amp;nbsp; (Just don't ask us to organize your storage
closet.)&lt;/p&gt;
</description></item><item><title>Software Engineering 101 - Cleveland</title><link>http://nimblepros.com/news-and-events/software-engineering-101---cleveland.aspx</link><pubDate>Thu, 01 Jul 2010 16:00:26 GMT</pubDate><guid>http://nimblepros.com/news-and-events/software-engineering-101---cleveland.aspx</guid><description>
&lt;p&gt;This is a one-day, FREE event designed to improve your software
development skills.&amp;nbsp; Rather than focusing on introductions to
new technologies or tools, this conference will help you get better
at your craft.&amp;nbsp; The morning sessions will focus on fundamental
principles, patterns, and practices of software development, and
the afternoon will be spent on practical exercises that put these
fundamentals into action.&amp;nbsp; While the sessions will mostly make
use of .NET and Visual Studio, these topics apply to any language
or platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agenda - Friday, 16 July 2010 (subject to
change)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;08:30 - 08:45 Welcome&lt;/p&gt;

&lt;p&gt;08:45 - 09:45 Principles of OOP&lt;/p&gt;

&lt;p&gt;09:50 - 11:05 SOLID Software Development&lt;/p&gt;

&lt;p&gt;11:10 - 12:30 Software Testing&lt;/p&gt;

&lt;p&gt;12:30 - 13:30 Lunch (not provided)&lt;/p&gt;

&lt;p&gt;13:30 - 16:00 Hands-On Exercises / Practical TDD&lt;/p&gt;

&lt;p&gt;If possible, bring your own laptop for use in the afternoon's
session, with your choice of development and testing tools
installed.&amp;nbsp; We will have prepared material for Visual Studio
2008/2010 and C#, but other environments are welcome.&amp;nbsp; If
cannot bring a laptop, don't worry - we'll be spending the
afternoon pairing together so as long as half the attendees have
laptops, it will be fine.&lt;/p&gt;

&lt;p&gt;This event is being modelled after recent successful events in
&lt;a
href="http://frazzleddad.blogspot.com/2009/08/save-date-software-engineering-101-on.html"&gt;
Columbus&lt;/a&gt; and &lt;a
href="http://brianhprince.blogspot.com/2010/02/software-engineering-101-southern-style.html"&gt;
Nashville&lt;/a&gt;, and is being organized by &lt;a
href="//"&gt;NimblePros&lt;/a&gt; and &lt;a
href="http://hudsonsc.com/"&gt;HudsonSC&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This event also serves as a great kick-off for the &lt;a
href="http://www.clevelandgivecamp.org/"&gt;Cleveland Give Camp&lt;/a&gt;,
which takes place the weekend of 16-18 July and begins at 5pm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; The &lt;a
href="/media/26706/swe101-july2010.zip"
title="Software Engineering 101 Slides and Demos"&gt;Software
Engineering 101 slides and demos&lt;/a&gt; from the event are now
available for download.&lt;/p&gt;

&lt;p&gt;Steve Smith did two videos of the greed kata: one in which Steve
performs the &lt;a href="http://vimeo.com/13247511"&gt;Greed Kata without
using TDD&lt;/a&gt; and one in which Steve solves the &lt;a
href="http://vimeo.com/13253110"&gt;Greed Kata using TDD&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you sponsors!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="/"&gt;NimblePros&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://hudsonsc.com/"&gt;HudsonSC&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a
href="http://www.pluralsight-training.net/microsoft/"&gt;Pluralsight&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://devexpress.com/"&gt;DevExpress&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.jetbrains.com/"&gt;JetBrains&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.preemptive.com/"&gt;PreEmptive
Solutions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description></item><item><title>Hudson Software Craftsmanship 6/2010</title><link>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-62010.aspx</link><pubDate>Thu, 10 Jun 2010 10:46:50 GMT</pubDate><guid>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-62010.aspx</guid><description>
&lt;p&gt;Our next meeting is Wednesday, 16 June 2010.&amp;nbsp; Show up
between 5:30 and 6pm (or a bit later if that's when you can make
it). It starts at 6:00 and goes until 8:00pm.&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://hudsonsc.com/" target="_blank"
title="HudsonSC Home"&gt;Hudson Software Craftmanship User Group&lt;/a&gt;
(HUDSONSC) is a non-profit association of people who are improving
their skills as software craftsmen. We gather on the third
Wednesday of each month in Hudson, Ohio at Henning Software's
offices, 102 First St, Suite 211 Hudson, Ohio 44236), and look
forward to seeing you at the next meeting.&lt;/p&gt;
</description></item><item><title>Congratulations to Jim Arthur</title><link>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-2/congratulations-to-jim-arthur.aspx</link><pubDate>Wed, 14 Apr 2010 18:07:01 GMT</pubDate><guid>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-2/congratulations-to-jim-arthur.aspx</guid><description>
&lt;p&gt;&lt;img src="/media/9077/zune-bubble_167x166.jpg"  width="167"  height="166" alt="Zune in Bubble" style="float: right;"/&gt;Thank
you to all who participated in our free Zune contest. Our winner is
Jim Arthur.&lt;/p&gt;
</description></item><item><title>Say Hello at one of our upcoming events</title><link>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-3/say-hello-at-one-of-our-upcoming-events.aspx</link><pubDate>Wed, 14 Apr 2010 16:04:59 GMT</pubDate><guid>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-3/say-hello-at-one-of-our-upcoming-events.aspx</guid><description>
&lt;p&gt;&lt;img src="/media/19129/events-icon.png" width="142" height="129" alt="Events Icon" style="float: right;"/&gt;&lt;/p&gt;

&lt;p&gt;We'd love to meet you at one of our upcoming events!&lt;/p&gt;

&lt;p&gt;You can find us at &lt;a href="http://hudsonsc.com" target="_blank"
title="Hudson Software Craftsmanship 4/2010"&gt;Hudson Software
Craftmanship&lt;/a&gt; on the third Wednesday of every month. &amp;nbsp;Join
us on Wednesday, April 21st at Henning Software in Hudson, OH for
lighting talks, code katas, and pizza. Get the address and more
info about the group &lt;a href="http://hudsonsc.com" target="_blank"
title="Hudson Software Craftsmanship"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
 And if you are looking for a great one day conference, check out
the &lt;a href="/news-and-events/stir-trek.aspx" title="Stir Trek"&gt;Stir Trek
conference&lt;/a&gt; in Columbus, OH on May 7th. Where else will you get
the opportunity to hear about cutting edge technology AND see Iron
Man 2 in the same venue?&amp;nbsp; They are hosting a number of notable
speakers from the developer community, including our founder, Steve
Smith, and it is sure to be a fabulous program!&lt;/p&gt;

&lt;p&gt;We'd love to meet you at one of these &lt;a
href="/news-and-events.aspx" target="_blank" title="Events"&gt;events&lt;/a&gt;.
If you have an opportunity to go, please say, "Hi".&lt;/p&gt;
</description></item><item><title>FREE Download Nitriq Code Analysis</title><link>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-3/free-download-nitriq-code-analysis.aspx</link><pubDate>Wed, 14 Apr 2010 15:55:32 GMT</pubDate><guid>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-3/free-download-nitriq-code-analysis.aspx</guid><description>
&lt;p&gt;&lt;strong&gt;&lt;a href="/products/nitriq/download.aspx" title="Download"&gt;&lt;img src="/media/9316/nitriq-logo.png" width="240" height="126" alt="Nitriq Logo" style="float: left;"/&gt;&lt;/a&gt;Nitriq Code Analysis&lt;/strong&gt; is a powerful
tool for analyzing your .NET code. The provided LINQ queries and
any custom written ones can be used to perform advanced code
analysis easily. Hierarchical query results, code visualization,
and intelliprompt make Nitriq easy to understand and use.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://nitriq.com"&gt;Learn more&lt;/a&gt; or &lt;a
href="/products/nitriq/download.aspx" title="Download"&gt;download it free&lt;/a&gt;
today!&lt;/p&gt;
</description></item><item><title>Customer Collaboration</title><link>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-3/customer-collaboration.aspx</link><pubDate>Wed, 14 Apr 2010 15:33:38 GMT</pubDate><guid>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-3/customer-collaboration.aspx</guid><description>
&lt;p&gt;Every software development project requires some level of
customer involvement. Without the customer there is no reason to
develop the software in the first place. The &lt;a
href="/defined-terms/agile-software-development.aspx" title="Agile Software Development"
class="cluetip-remote"&gt;Agile Manifesto&lt;/a&gt; describes the agile
customer relationship as, "Customer collaboration over contract
negotiation".&lt;/p&gt;

&lt;p&gt;The manifesto prioritizes different aspects of software
development. In this case we're defining our relationship with
customers. The customer should be involved daily in the
decision-making of the project. As each aspect of the application
is completed, the customer should be there accepting that it
functions as desired. When the team has a question, the customer
should be there to answer that question. Never guess or assume what
the customer wants.&lt;/p&gt;

&lt;p&gt;A more traditional approach to software development is to
negotiate with the customer in advance to find out exactly what the
end result should be, and then go and complete the project and
return with the finished result. The painful part is how well this
comic explains those types of projects.&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/18713/software_development_600x230.jpg"  width="600"  height="230" alt="Software Development Process"/&gt;&lt;/p&gt;

&lt;p&gt;With agile we avoid this by having the customer involved through
the entire process. It seems crazy to a lot of people at first, but
the customer should be in the same room as the developers. Take the
steps required to get a customer on-site if at all possible. This
will make the project run much more smoothly when all questions can
be asked when answers are needed. The customer knows that
everything is done the way it should be done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Planning Sessions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Teams often have scheduled planning sessions where they decide
what needs to be worked on, how much can be completed in the time
span, and in what order everything will be completed.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bring the customer in for your planning session with the
collection of user stories ordered&amp;nbsp; by business value. (This
allows you to focus on customer priorities not the teams
guesses.)&lt;/li&gt;

&lt;li&gt;Have the customer briefly explain each story to make sure you
have an understanding of what needs to be accomplished. (This gives
the team the chance to ask the customer questions.)&lt;/li&gt;

&lt;li&gt;Create a time estimate for each one through discussion. (This
lets the customer know &lt;em&gt;why&lt;/em&gt; something takes as long as it
does.)&lt;/li&gt;

&lt;li&gt;Choose how many of the stories you can complete in the time
frame based on previous &lt;a href="/defined-terms/velocity.aspx"
title="Velocity" class="cluetip-remote"&gt;velocity&lt;/a&gt;. Everyone
needs to commit to getting it all done.(The customer can now plan
based on your estimate.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Day-to-day Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As you complete a story, make sure that you discuss the story
with the customer. Show what you've accomplished, and make sure it
is as the customer expected. If it isn't you can find out what
needs to change and change it. Imagine waiting a week to find out
that what you've done is wrong. Then you have to dive back into it.
If you could fix it now, it would be faster and easier.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not sure what the customer meant when writing one of the
stories? Ask for an explanation.&lt;/li&gt;

&lt;li&gt;Need to know how to handle an edge case? Ask.&lt;/li&gt;

&lt;li&gt;Have a great idea for something? Tell the customer immediately;
work on it later.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As teams move towards agile, they rediscover why they got into
software development. Stressful customer relationships are not why
any of us got into development. We are challenged every day by the
software, not by figuring out what the customer wanted. Let the
customer figure that out. Your job is making great software.&lt;/p&gt;
</description></item><item><title>Agile Customer Service</title><link>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-3/agile-customer-service.aspx</link><pubDate>Wed, 14 Apr 2010 15:31:51 GMT</pubDate><guid>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-3/agile-customer-service.aspx</guid><description>
&lt;p&gt;&lt;img src="/media/19034/communication-bubbles.png" width="206" height="129" alt="Communication Bubbles" style="float: right;"/&gt;As a small business owner as well as a consumer,
one of my biggest interests is customer service.&amp;nbsp; Sure,
customers will judge you on price and craftsmanship.&amp;nbsp; But more
than anything else, the thing that will differentiate you from
other companies is your excellent customer service and good
communication skills.&lt;/p&gt;

&lt;p&gt;One of the beauties of the agile process is that it is all about
delivering exactly what the customer wants.&amp;nbsp; Because the
customer is involved in the process at every iteration, the
customer is able to guide the project with their own vision.&amp;nbsp;
It isn't about what the developer thinks the customer wants (or in
the worst case, what the developer wants), but rather how the
customer envisions the end result.&lt;/p&gt;

&lt;p&gt;This level of involvement also lends itself well to changes in
the project.&amp;nbsp; It is very difficult to predict every possible
need of a system while it is on the drawing board, so most software
projects are bloated with unnecessary and unused "just in case"
features.&amp;nbsp; However, by developing in small, usable increments,
the developer team can use real world feedback to determine which
features are actually needed by system users.&amp;nbsp; Often, this
allows the team to add options which were not even part of the
initial project plan. Projects developed agilely have a lot less
buyer remorse, with fewer regrets of "what might have been."&lt;/p&gt;

&lt;p&gt;However, in order to develop a successful agile project,
developers also need to learn to communicate with their
customers.&lt;/p&gt;

&lt;p&gt;The ability to speak and write clearly is an obvious advantage,
but one that is too often overlooked in software development.&amp;nbsp;
Traditionally, developers have been tasked to write code; client
communication was limited to project managers or a few senior
people.&amp;nbsp; However, in order for agile development to work,
every developer must be able to communicate clearly with the client
and with other team members. &amp;nbsp; This limits miscommunications
(remember the children's game of Telephone?), and also decreases
the time taken up waiting for a response to be passed through long
and convoluted channels.&amp;nbsp; (That is not to say that every
developer will be communicating with every customer on a regular
basis; it is still helpful to have some designated points of
contact.&amp;nbsp; However, the fewer artificial barriers that are
constructed, the more effective the relationship with the client
will be.)&lt;/p&gt;

&lt;p&gt;Listening is an even more important component of
communication.&amp;nbsp; Developers need to take input from the
customer on a regular basis, and to learn that the customer's
feedback has substantial value.&amp;nbsp; Many times, the customer is
not technically adept (which is why they outsourced the project in
the first place), and they may not know exactly what they
want.&amp;nbsp; However, they DO know the problem that they want to
solve, and it is the responsibility of the project manager or
developer to meet that objective.&amp;nbsp; This means being able to
communicate effectively, to ask critical questions, and to allow
the customer to determine what is really important in the end
product.&amp;nbsp; It also means respecting the customer, which is at
the very heart of good customer service.&lt;/p&gt;

&lt;p&gt;At NimblePros, we place a special emphasis on communication
skills when we are recruiting new team members.&amp;nbsp; We expect
that our developers will have excellent technical skills.&amp;nbsp;
However, if they cannot communicate clearly, they cannot put those
skills to their full use. Developers who are good communicators, on
the other hand, are better at understanding the client's needs as
well as better able to work in the team environment.&lt;/p&gt;

&lt;p&gt;Fortunately, just like technical skills, communication skills
can be learned and honed over time.&amp;nbsp; There are a variety of
resources available dealing with this topic, from books and videos
to coaches and seminars.&amp;nbsp; In our office, we also encourage our
team to participate in user groups and conferences; practice is the
very best way to become more confident and comfortable in your
ability to communicate.&lt;/p&gt;

&lt;p&gt;Yet another tenant of good communication skills is to be
brief.&amp;nbsp; And so, until next month, happy coding!&lt;/p&gt;
</description></item><item><title>Cheap Code Is More Expensive</title><link>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-2/cheap-code-is-more-expensive.aspx</link><pubDate>Wed, 14 Apr 2010 13:49:27 GMT</pubDate><guid>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-2/cheap-code-is-more-expensive.aspx</guid><description>
&lt;p&gt;&lt;strong&gt;&lt;img src="/media/9087/penny-vice-grip.png" width="211" height="159" alt="Penny Pinching" style="float: right;"/&gt;(Or "Why Not to Have Your
Neighbor's Nephew Write Your App")&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every business has made this mistake at some point:&amp;nbsp; You
need an application to do something.&amp;nbsp; Let's say you want to
track orders more effectively.&amp;nbsp; Off the shelf software is too
limited, so you decide the only option is to have someone write
it.&amp;nbsp; You mention the project to your neighbor, and he tells
you about his sister's kid who is a computer wiz.&amp;nbsp; He's in
college, says your neighbor, so he will work for cheap, and it
would be a great opportunity for him.&amp;nbsp; Sounds perfect, you
say, and work begins….&lt;/p&gt;

&lt;p&gt;This scenario is pretty typical in small businesses.&amp;nbsp; And
it isn't always an unmitigated disaster - there are a lot of
talented students and freelancers who can write some pretty
effective code.&amp;nbsp; Especially in these economic times, cheap is
a word that is hard to ignore.&lt;/p&gt;

&lt;p&gt;The problem with this scenario is that the payment for this code
doesn't come until much later, and it doesn't come cheap at
all.&lt;/p&gt;

&lt;p&gt;Let's say that the application works well at the start.&amp;nbsp;
But then you want to modify it.&amp;nbsp; Is the kid still around to
make changes?&amp;nbsp; Does he remember what he did?&amp;nbsp; Can anyone
figure out what section of code does what, and what the
interdependencies are?&amp;nbsp; What if performance is an issue?&amp;nbsp;
At this point, it will cost less to rewrite the whole thing from
scratch, rather than trying to work with a tangled mess of legacy
code that no one can follow, much less modify.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Poorly written code is expensive.&amp;nbsp; Its real cost is
in future time and money.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cheap code, that is, code that is poorly written and that comes
with a significant future cost of time and money, can significantly
damage a business when the bill comes due.&lt;/p&gt;

&lt;p&gt;The cost may be obvious, in terms of increased maintenance
expenses.&amp;nbsp; It takes longer to fix bugs and make minor
alterations.&amp;nbsp; These are costs that your company may even
"budget" into the initial development, and you might find these to
be acceptable when you look at the "bottom line."&lt;/p&gt;

&lt;p&gt;Unfortunately, the real cost is generally unseen, and that is
opportunity cost.&amp;nbsp; While your competitors are innovating and
working on new products and services, you are mired down in minor
updates to poorly written legacy code.&amp;nbsp; You can't figure out
how to add a new product to your website, let alone track the
current production in the system on the new widget line.&amp;nbsp; And
that doesn't even touch on the headaches in shipping…&amp;nbsp; And the
list goes on and on.&lt;/p&gt;

&lt;p&gt;Next time, we'll talk a little more about how to make your code
"be all that it can be." But for today, just remember this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Well written software is an investment.&amp;nbsp; It gives
your company a competitive edge.&amp;nbsp; And that is an opportunity
that you can't afford to lose.&lt;/strong&gt;&lt;/p&gt;
</description></item><item><title>Integrate Early and Integrate Often</title><link>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-2/integrate-early-and-integrate-often.aspx</link><pubDate>Tue, 13 Apr 2010 14:14:41 GMT</pubDate><guid>http://nimblepros.com/what-we-say/newsletters/agile-perspectives-issue-2/integrate-early-and-integrate-often.aspx</guid><description>
&lt;p&gt;&lt;img src="/media/9082/puzzle.png" width="211" height="159" alt="Integration Puzzle" style="float: right;"/&gt;As an industry we've come to realize
that waiting until the last minute to integrate is a bad idea. With
deadlines looming we can't afford to spend a lot of time trying to
get all of the pieces playing well together. An unexpected issue
can derail a project after months of development. If only someone
had tried putting all of the pieces together sooner this could have
been handled well in advance.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;So how do we avoid waiting until the last minute?
Integrating our work is a difficult, long task. If we did it
earlier we'd have to do it multiple times.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This source of pain has caused many teams (including mine) to
turn to &lt;a
href="http://en.wikipedia.org/wiki/Continuous_integration"&gt;continuous
integration&lt;/a&gt;. Using continuous integration means that every
piece of code added in to the system is immediately integrated into
the rest of the system.&lt;/p&gt;

&lt;p&gt;Adding continuous integration to your software development
process is a great way to mitigate the pains of integration. Making
integration a daily part of your development keeps every change as
small as possible allowing the process to be far less painful.
There is also no surprise at the end since you've been keeping
everything integrated all along. You're also automating the
process, so developers need not spend time integrating the code by
hand.&lt;/p&gt;

&lt;p&gt;If you haven't heard of unit testing or test driven development
then you've mastered the art of avoiding current software buzz. I
will propagate this buzz further by mentioning that unit testing
should be a part of everyone's integration process.&lt;/p&gt;

&lt;p&gt;Let me now take this opportunity to give a brief overview of the
process we use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All of our source code is stored in SVN repositories.&lt;/li&gt;

&lt;li&gt;We use a continuous integration server which will begin
building, testing, and deploying our application with every commit.
We've used &lt;a
href="http://ccnet.thoughtworks.com/"&gt;CruiseControl.NET&lt;/a&gt; and &lt;a
href="http://www.jetbrains.com/teamcity/"&gt;Team City&lt;/a&gt;, and I
would recommend either one of these two.&lt;/li&gt;

&lt;li&gt;Each project has build scripts written in &lt;a
href="http://nant.sourceforge.net/"&gt;NAnt&lt;/a&gt;. These scripts are
what the continuous integration server use to build the
software.&lt;/li&gt;

&lt;li&gt;Our source code is tested using &lt;a
href="http://www.nunit.org/"&gt;NUnit&lt;/a&gt;, and these tests are run
when builds are triggered on the continuous integration
server.&lt;/li&gt;

&lt;li&gt;We automate our database changes using &lt;a
href="http://code.google.com/p/tarantino/"&gt;Tarantino&lt;/a&gt;, so that
our testing environments are kept up to date even on the
integration server.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This process allows us to do what we do best, write code. We
don't waste time integrating, and we don't waste time worrying
about integrating later. We get things done and integrated in
immediately. Integrating constantly allows for instant feedback
with every change.&lt;/p&gt;
</description></item><item><title>Hudson Software Craftsmanship 4/2010</title><link>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-42010.aspx</link><pubDate>Fri, 26 Mar 2010 11:44:06 GMT</pubDate><guid>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-42010.aspx</guid><description>
&lt;p&gt;Our next meeting is Wednesday, 21 April 2010.&amp;nbsp; Show up
between 5:30 and 6pm (or a bit later if that's when you can make
it). It starts at 6:00 and goes until 8:00pm.&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://hudsonsc.com/" target="_blank"
title="HudsonSC Home"&gt;Hudson Software Craftmanship User Group&lt;/a&gt;
(HUDSONSC) is a non-profit association of people who are improving
their skills as software craftsmen. We gather on the third
Wednesday of each month in Hudson, Ohio at Henning Software's
offices, 102 First St, Suite 211 Hudson, Ohio 44236), and look
forward to seeing you at the next meeting.&lt;/p&gt;
</description></item><item><title>Devconnections - Microsoft ASP.NET Connections</title><link>http://nimblepros.com/news-and-events/devconnections---microsoft-aspnet-connections.aspx</link><pubDate>Fri, 26 Mar 2010 10:19:53 GMT</pubDate><guid>http://nimblepros.com/news-and-events/devconnections---microsoft-aspnet-connections.aspx</guid><description>
&lt;p&gt;Microsoft, DevConnections Magazine, and Tech Conferences join
forces to bring the launch of Visual Studio 2010 and the latest
info about Silverlight 4, plus a celebration of the upcoming
release of Microsoft SQL Server code-name "Killimanjaro" to Las
Vegas.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
 Steve Smith will be giving three presentations about ASP.NET at
this event.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWF304:&amp;nbsp;Pragmatic ASP.NET Tips, Tricks, and
Tools&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every experienced ASP.NET developer has picked up a few cool
tricks or useful tools that they put to use on every new project
after they've learned them. This session draws upon the experience
of many successful ASP.NET developers and distills this knowledge
into a collection of tips and tricks you can start using in your
work today. Some of the topics covered in this session include
error handling, tracing, caching, base page classes, site layout
and architecture, and data access best practices. You'll learn
about highly reusable Http Modules and Handlers and a few code
routines you may want to add to your personal library.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AMV305:&amp;nbsp;Applying SOLID Principles to Your ASP.NET
MVC 2 Application&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Do your larger applications suffer from code rot to the point
where there are parts of the application that everyone is afraid to
touch? Would you characterize your app's architecture as "elegant"
or is it a "big ball of mud?" In this session, learn how to apply
various OOP best practices such as Robert Martin's SOLID principles
to keep code simple and maintainable. The session introduces a
simple ASP.NET MVC application which doesn't follow best practices
and gradually refactors it as each principle is introduced,
resulting in much cleaner, more maintainable code. No prior
experience with ASP.NET MVC is expected, and most of the principles
discussed apply equally well to non-MVC or even non-web
applications as well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AMV306:&amp;nbsp;What's New in ASP.NET MVC 2?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this session, Steve will quickly highlight the new features
available in ASP.NET MVC 2. ASP.NET MVC offers a new way to develop
ASP.NET applications that allows for finer control of the
application's behavior and greater separation of concerns within
the architecture. ASP.NET MVC 2 builds on this platform by adding
several new features, such as Areas, which can be used to break
apart a large site into several deployable subsections. Another
much-anticipated new feature centers on validation, and the new
version includes support for model validation providers which can
be used as-is or swapped out with a custom implementation, and
client side validation support using jQuery. The new release also
includes templated helpers and strongly typed UI helpers, which can
make it much quicker to create views for displaying and capturing
data.&lt;/p&gt;
</description></item><item><title>Stir Trek</title><link>http://nimblepros.com/news-and-events/stir-trek.aspx</link><pubDate>Fri, 26 Mar 2010 10:00:46 GMT</pubDate><guid>http://nimblepros.com/news-and-events/stir-trek.aspx</guid><description>
&lt;p&gt;Stir Trek is an opportunity to learn about the newest advances
in web and mobile development. There will be 20 sessions, in four
tracks, so you'll be able to pick the content that interests you
the most.&lt;/p&gt;

&lt;p&gt;Steve Smith will be speaking from 3:00-4:00PM about ASP.NET
4.0.&lt;/p&gt;

&lt;p&gt;In addition, the day will include lunch, a raffle with some
significant prizes, and a private screening of the new &lt;a
href="http://ironmanmovie.marvel.com/"&gt;IronMan 2&lt;/a&gt; movie, which
opens in theaters the day of this event.&lt;/p&gt;
</description></item><item><title>Hudson Software Craftsmanship 1/2010</title><link>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-12010.aspx</link><pubDate>Thu, 17 Dec 2009 11:48:55 GMT</pubDate><guid>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-12010.aspx</guid><description>
&lt;p&gt;Our next meeting is this Wednesday, 20 January 2010.&amp;nbsp; Show
up between 5:30 and 6pm (or a bit later if that's when you can make
it).&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://hudsonsc.com/" target="_blank"
title="HudsonSC Home"&gt;Hudson Software Craftmanship User Group&lt;/a&gt;
(HUDSONSC) is a non-profit association of people who are improving
their skills as software craftsmen. We gather monthly in Hudson,
Ohio at Henning Software's offices, 102 First St, Suite 211 Hudson,
Ohio 44236), and look forward to seeing you at the next
meeting.&lt;/p&gt;

&lt;p&gt;It starts at 5:30 and goes until 8:00pm.&lt;/p&gt;
</description></item><item><title>CodeMash 2010</title><link>http://nimblepros.com/news-and-events/codemash-2010.aspx</link><pubDate>Thu, 17 Dec 2009 11:26:34 GMT</pubDate><guid>http://nimblepros.com/news-and-events/codemash-2010.aspx</guid><description>
&lt;p&gt;CodeMash is a unique event that will educate developers on
current practices, methodologies and technology trends in variety
of platforms and development languages such as Java, .NET, Ruby and
PHP. Held January 13-15, 2010, at the lush &lt;a
href="http://www.kalahariresort.com/" target="_blank"&gt;Kalahari
Resort&lt;/a&gt; in Sandusky, Ohio, attendees will be able to attend a
world-class technical conference amid Ohio's largest indoor
waterpark. Nobody will frown if you show up in shorts, sandals, and
your loudest t-shirt. You might even win a prize for doing so.&lt;/p&gt;

&lt;p&gt;The Software Craftmanship session will be presented by &lt;a
href="/who-we-are.aspx" title="Who we are"&gt;Brendan Enrick&lt;/a&gt; and
&lt;a href="/who-we-are.aspx" title="Who we are"&gt;Steve Smith&lt;/a&gt; (a
co-founder of NimblePros). Join your peers and fellow craftsmen in
a variety of coding kata and exercises designed to improve your
skills as a software developer. Experienced developers from all
backgrounds are welcome, as are beginners.&lt;/p&gt;
</description></item><item><title>Hudson Software Craftsmanship 12/2009</title><link>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-122009.aspx</link><pubDate>Fri, 06 Nov 2009 11:03:02 GMT</pubDate><guid>http://nimblepros.com/news-and-events/hudson-software-craftsmanship-122009.aspx</guid><description>
&lt;p&gt;Due to travel on the part of both &lt;a
href="http://henningsoftware.com/"&gt;Henning Software&lt;/a&gt; and &lt;a
href="/home.aspx" title="Home"&gt;NimblePros&lt;/a&gt; people who
coordinate the group, &lt;strong&gt;there will be no meeting in
November&lt;/strong&gt;. The next meeting of Hudson Software
Craftsmanship will be on 16 December 2009. As usual, arrive between
5:30 and 6pm and we'll get started at 6.&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://hudsonsc.com" target="_blank"
title="HudsonSC Home"&gt;Hudson Software Craftmanship User Group&lt;/a&gt;
(HUDSONSC) is a non-profit association of people who are improving
their skills as software craftsmen. We gather monthly in Hudson,
Ohio at Henning Software's offices, 102 First St, Suite 211 Hudson,
Ohio 44236), and look forward to seeing you at the next
meeting.&lt;/p&gt;
</description></item><item><title>Hudson Software Craftsmanship</title><link>http://nimblepros.com/news-and-events/hudson-software-craftsmanship.aspx</link><pubDate>Wed, 05 Aug 2009 13:12:57 GMT</pubDate><guid>http://nimblepros.com/news-and-events/hudson-software-craftsmanship.aspx</guid><description>
&lt;p&gt;We're excited to have our first meeting scheduled for 19 August
2009 &lt;strong&gt;at 5:30pm&lt;/strong&gt;.&amp;nbsp; The meeting will take place
at Henning Software's offices. Don't forget to &lt;a
href="http://www.eventbrite.com/event/404008400" target="_blank"
title="HudsonSC online registration"&gt;register and reserve your
seat&lt;/a&gt; if you're planning to join us.&lt;/p&gt;
</description></item><item><title>Microsoft PDC</title><link>http://nimblepros.com/news-and-events/microsoft-pdc.aspx</link><pubDate>Mon, 22 Jun 2009 08:08:51 GMT</pubDate><guid>http://nimblepros.com/news-and-events/microsoft-pdc.aspx</guid><description>
&lt;p&gt;PDC09, Professional Developers Conference, will be held in Los
Angeles from November 17-19, 2009. We will be attending, however
our plans for speaking haven't been finalized yet.&lt;/p&gt;
</description></item><item><title>Cleveland .NET SIG</title><link>http://nimblepros.com/news-and-events/cleveland-net-sig.aspx</link><pubDate>Fri, 19 Jun 2009 14:49:14 GMT</pubDate><guid>http://nimblepros.com/news-and-events/cleveland-net-sig.aspx</guid><description>
&lt;p&gt;Just because you use ASP.NET MVC doesn't mean you get the
benefits for free. You still need to write code that follows best
practices. This presentation goes through a Robert Martin's SOLID
principles of Object Oriented Programming, with examples of
violations of these principles in a simple ASP.NET MVC application.
The principles are then applied, resulting in a much more elegant
and maintainable application.&lt;/p&gt;
</description></item></channel></rss>
