Consider voting for my Birds of a Feather session at Tech Ed – level 100

I have submitted two BoF sessions for consideration.  These two subjects are ones I deal with ona  day-to-day basis.  If you are going to Tech Ed and are interested in these topics, go to https://www.msteched.com/cfp/bofvoting.aspx and vote.

Voting closes on Friday!

Executable requirements with FIT and FitNesse

What
if your requirements documents could be fed into a tool and executed to
validate the software? That’s exactly what FIT is. The customer can
define requirements and run them. Not only can software be validated at
any time, but requirements are guaranteed to remain current
documentation of the system. Come discuss this emerging concept and
tools to support it.

Intended Audience: IT Pro; Developer
Submitted By: Jeffrey Palermo, DataCert, Inc

Agile Development with .Net

Agile
development is gaining wide adoption and for good reason. Come discuss
the range of practices available to speed development with .Net. We’ll
discuss the many practices in the Agile umbrella that can be used by
themselves and combined together. This discussion will also talk about
tools available to help with development.

Intended Audience: Developer
Submitted By: Jeffrey Palermo, DataCert, Inc

Rocky gets it all wrong about Test-Driven Development (TDD) – level 200

I’m listening to the latest .Net Rocks show with Rocky Lhotka, and I’m saddened that he gets it so wrong about TDD.  DNR’s last episode ROCKED with Jean Paul Boodhoo,
who talked about TDD and other Agile concepts.  Jean Paul is a
practitioner of TDD, as am I, and he explained the process and its
benefits very well.  Congrats, Jean Paul on a job well done.

Rocky, on the other hand, gets it all wrong.  I respect Rocky and
his contributions to the developer community, but he’s wrong on this
issue.  Let me recap:

At the beginning of the dnr show, he comments on TDD.  He makes
some invalid points.  His points are bulleted, and my responses
are in green:

  • It comes from the premise that you don’t have intellisense in the IDE.
    • I’m really not sure how he came up with this since most other good IDEs have intellisense. 
  • In the Microsoft space, you lose so much by going down the road to TDD.
    • This is a very vague statement, but I’ve
      gained so much by doing TDD.  My rate of development has sped up
      because my debugging time has gone almost down to zero!
  • Rocky misunderstands the process because he states that it involves writing a bunch of tests first before coding.
    • TDD involves writing a single test first and writing code to fulfill it.
  • He states that on large systems, you can’t do it one test method at a time.
    • Can’t?  Any large system is made up
      of smaller parts, down to actual classes and methods as the building
      blocks.  TDD helps define the classes and methods.  TDD
      forces you to start small, but helps build a solid foundation.
  • He says that developers don’t think the way of “test-first”.
    • This is actually a true statement but in
      no way is a weakness of TDD.  Test-first is a learned method just
      like programming as a whole.  Learning to think first is very
      similar to understanding the purpose of the code first.  If you
      can understand the purpose of the code before writing the code, you end
      up with less code churn and a clean class design.
  • Rocky relates that he has always made small test projects or console apps to be test harnesses to test code.
    • I used to do that also, until I graduated to NUnit.
    • These test harnesses are valuable, but as
      you accumulate them, they are hard to manage, and since they are
      valuable, you don’t want to throw them away.  NUnit allows these
      test harnesses to be managed effectively.  Each test method is a
      test harness.

Another false point made in conversation is that once these test
fixtures are created, developers will be hesitant to refactor code
because it would cause them to have to refactor all the tests that use
the code.  Let me say from experience that unit test coverage
makes me want to refactore MORE!  I am so comfortable refactoring
because I have unit test coverage that assures me that I haven’t broken
anything.  In fact, when I am in parts of the code that is older
and doesn’t have good test coverage, I am scared of refactoring because
I have no way of being sure that I didn’t break anything.  Note,
that I also use Resharper, and I would not want to code at all without
it or the DevExpress tools.

I love .Net Rocks, and I’ve listened to it from the very first show (and I’ve been a guest),
and I’m glad all viewpoints are represented, but the above bullet
points are incorrect, and I hope some of you will comment on them as well.

INETA speaker Miguel Castro at ADNUG tonight – level 000

Miguel Castro will be talking about custom web controls tonight at the Austin .Net User Group.  If you’ve heard his .Net Rocks show or watched his DNR TV episode1 and episode2, you know that it’ll be a great talk for those wanted to create their own custom controls.

Miguel came into town (Austin, TX) Saturday night, and I spent Sunday showing him around the area.  It’s beautiful hill country, and he was amazed that while driving past houses, complete strangers would smile and wave.  The greater Austin area is so much more than just the city of Austin.  I would say that the city is the smallest part.  The surrounding area is really the draw.  I live two towns away in Leander, TX, and it still only takes me 30 minutes to get in to Austin to work. 

One of the things that amazed Miguel most is that here in Texas, our Wal-marts have gun departments. 🙂

Austin MSDN Code Camp was a huge success – level 000

This past Saturday, March 4, my user group, ADNUG, hosted its first MSDN Code Camp.  We had some cool sponsors including Microsoft, St. Edward’s Professional Education Center, Wrox Press, 101X radio station, CyberJocks, and Catapult Systems

We had 17 unique sessions from local developers on tracks: Web, Smart Client, Data, and Agile.  My talk was “Pragmatic ASP.NET 2.0:  What features do I need?”.  All the sessions got very positive comments on our survey.  We targeted 150 developers, and we hit very close to our goal.  At one point, we thought we were going to be swamped because of the huge number of registrants, but the event went off really well.

Thanks to all our sponsors for helping make this event a success.

Austin .Net User Group hosting an MSDN Code Camp March 4th – level 000

What: Austin MSDN Code Camp – register at www.adnug.org

When: March 4, 2006 – 8:30 AM – 5PM

Where: St. Edwards professional learning center, Austin, TX

NOTE:  3 Code Camp speakers are from CodeBetter.com

An MSDN Code Camp is a free
local conference for developers and by developers.  We, as a community are the speakers as well
as the attendees.  See the Code Camp
Manifesto for more information:  http://www.bostondotnet.org/codecamp/default.aspx/CodeCamp/CodeCampManifesto.html

Austin Code Camp is looking for ways to make its
first MSDN Code Camp the best it can be. 
The secret is you! This is an Austin
developer community based event that requires both speakers and attendees. The
goal of the Code Camp is to provide an intensive developer to developer
learning experience that is fun and technically stimulating. The primary focus
is on delivering programming information and sample code that can be used
immediately.
The
event is free and all slides, manuals and demo code are provided
free!  Every attendee will receive a free lunch courtesy of
Microsoft, free t-shirt, free programming book from Wrox, free 1-hour
gift certificate to CyberJocks, and other goodies.  CyberJocks
will even have an XBox gaming room set up at lunch.  This event is
open to all, and is going to be great!

This one-day camp is hosted
at the St. Edwards professional learning center. The Code Camp will contain 1 –
1.5 hours sessions on topics the local community values; these session depend
on the speakers and attendees.

Sessions up for voting now:

Jeremy
Miller                                     
Code Smells
Scott
Bellware                                    
Test-Driven Development Techniques
Jeffrey
Palermo                                   
Pragmatic ASP.NET 2.0 (which features do I need?)
Jeremy
Miller                                     
Dependency Injection – What is it, and what is it good for?
Scott
Bellware                                    
Domain-Driven Design Essentials
Cody
Powell                                       
Writing Maintainable, Multi-threaded Code
Scott
Bellware                                    
C# 3.0 and LINQ
Terry
Meyer                                       
Intro to CSS for .Net Developers
J
Sawyer                                          
Introduction to Windows Workflow Foundation
Eric
Pollitt                                      
Error Management in SQL Server 2005
Steve
Donie                                       
CruiseControl.NET – basic to advanced
J
Sawyer                                          
Building Activities for Windows Workflow Foundation
Blake
Caraway                                     
Smart smart-client architecture
Joe
Celko                                         
Trees in SQL
Ray
Houston                                       
Expanding ASP.NET
Chad
Myers                                        
Designing Extensible Applications
Anil
Desai                                        
Automating Development and Testing Through Virtualization
Paul
Jones                                        
Fault Management – Performance Monitoring