July 2008 Entries

This may be in the documentation somewhere, but I certainly missed it and cannot find it. I thought I’d make a little post about it, so that I’d remember it, and maybe help someone else who missed it in the documentation too.

Remember to set the Build Action property on all *.hbm.xml files to “Embedded Resource”. The NHibernate config file looks for these files as Embedded resources and will not pick it up if it is left at the default “Content” property.

Hope this helps someone.

~Lee

This will be the first in a series to document my organization's adoption of an agile development process (specifically Extreme Programming). I want to document this process for three main reasons: 1. Basic posterity. I may want to look back on this process and reflect on the mistakes we made. 2. So that others can learn from our mistakes. 3. So that others can possibly help keep me from making their mistakes. Seems like a lot of mistakes being made in agile development. That's actually kind of the point: fail fast. Hurry up and get it wrong the first time, so you can learn from those mistakes and move forward.

Our first challenge is defining what Extreme Programming IS. We got copies of The Art of Agile Development for all the members of the team. It is an EXCELLENT resource for getting everyone on the same page when it comes to XP practices and, more importantly, the purpose of those practices. That is the main fundamental that I have tried to push to my team (and push to myself): the purpose of the practice is more important than the practice itself. The point of TDD is to create a feeling of confidence in the stability and design of your code. If it is not doing that, you need to punt it and find something that DOES do that. The point of Incremental Design, is to develop only functionality that provides business value. If you find yourself outside that scope, either you've wandered off the XP farm, or Incremental design is not working for you... get rid of it.

The whole point of Agile development is making change the heart of your process, don't be afraid to change your process, tools, code, the design, etc. That's what this process is all about.

Until next time...

~Lee

I find that most programmers have a music that they prefer listening to while coding. Just wondering what the gamut of developer soundtracks there are. While I LOVE listening to Sister Hazel, Foo Fighters, Cold Play, Ben Folds, and Bob Schneider for coding, I find myself drawn to the space station most of the time when coding.

What's YOU'RE developer soundtrack?

I saw this book in Borders and, when I read the table of contents, I KNEW I wanted to read it. I had just returned from Headspring & Jeffrey Palermo's Agile .NET Boot Camp class in Austin, and this covered a lot of the same things (and a few others), so that made it very poignant. Code Leader (Wrox) by Patrick Cauldwell

I am adding this book to my must read list. I got through it in about a week. It is VERY easy to read. For developers looking to take their development skills to the next level and are not able to go to Jeffrey's course, this is perfect. Agile .NET Boot Camp covered some more concrete things like NHibernate and the practice of TDD and Pair-Programming. This book covers all the main concepts for setting up a professional development shop. Most of the practices it talks about are main practices in agile software development.

 

This book is broken into four parts. Part one is about the philosophy of code leadership. It talks about some of the philosophy behind test-driven development, continuous integration, and the main buy vs build decision. Not so much how to do TDD or continuous integration (even though, there are concrete examples). but why to use these practices. Part two, is all about the processes. Starting with how you know when you're really done, how to properly do testing, how to use source control and how to use and understand static code analysis. The third section concentrated on how to actually put code together. Cauldwell talks about how to develop using interfaces and how to find and limit dependencies. Section three also covers the model-view-presenter pattern of application development, and some good guidance on how to use tracin and how to do error handling. The final section just kind of puts all the other sections together in a case study: building a calculator.

Definitely added to bookshelf and recommendation list!

 

~Lee

Just some photos I took the other day of Merriam City Park. Another thing to love about this city.

DadNKidInFlagsFlagsIIFlagsVFlagsIIIFlagsVIFlagsIV 

Happy Independence Day!

 

~Lee