May 2007 Entries

Understanding the Basics

Oren's been creating a lot of discussion on the web recently with his thought provoking and, apparently, controversial blog posts.  One of his more recent posts hits on the topic of tools being a weak replacement for a solid understanding of what you're trying to do.  I had a bit of a discussion on this with JP when we were at DevTeach and I'm* both of us are firmly on side with Oren.  Anyone can teach another programmer a new tool, like nHibernate, but that person won't benefit from the knowledge unless they understand the reason the tool is needed and how it's...

Roy Osherove at Edmug

We were lucky enough, with the help of MSDN Canada and DevTeach (thanks Wendy and Jean-Rene), to have Roy Osherove of ISerializable.com in Edmonton to talk on Agile software development.  Roy was kind enough to give up some more time away from his new family back home in Israel and travel out to Edmonton and Winnipeg to present to our User Group.  The event was fantastic.  We had our largest crowd since our inaugural meeting and there was a great buzz in the room.  Like all his talks, Roy finished off with a song.  For us we got his...

Geek Dinner tonight

Roy Osherove just arrived in town for his Edmug presentation tomorrow (May 22nd).  We're going to be out tonight at Ric's Grill downtown (104th Street and 102nd Ave.) at 7:30 pm.  There will be a reservation under my name, but leave a comment here if you'll be joining us.

DevTeach 2007 -- Pair Programming BoF addendum (Wendy and Oksana)

Okay, it was noted today by Wendy that although attending the BoF on Pair Programming, no notes were posted here.  I can't speak for everyone, but my thought is that the BoF session was one of the most informative.  I've never participated in a BoF session before (and only for about 10 minutes of this one), but I was found the format very engaging.  I'm not one who gets up and asks many questions in a presentation (okay, never), but I felt like I needed to jump in and participate in the discussion.  I'm definitely going to make a point of trying to...

DevTeach 2007 -- Famous quotes

Can you fetch that for me?  Eric Cote to Wendy (Hot Agilista) Large, succulient balls?  (Active Nick) I've got nuts in my throat. (Sean Solback) I have a question.  How is it that I won you heart? (Dave Woods to Beth Massi during her presentation) Couscous.  Twice as good and twice the fun. (Scott Bellware) I love your accent except when you talk. (anonymous) Eh!  Bryan Adams, eh!  Great Canadian eh! (your's truly when Roy started his regex song) More can be found here courtesy of Oren.

DevTeach 2007 -- Wrapup

DevTeach came to a close today.  For some it was probably earlier than for others.  For me, it is ending at 3am after an evening of amazing conversation, great laughs, good food and good drinks.  A fantastic way to end a spectacular conference. We ended up at the Spaghetti Warehouse in Old Montreal tonight.  Eric Cote and I shared a couple of bottles of wine (by shared, I mean he had 2 or 3 glasses while I drank the rest).  The food was great although the service at Dave Woods table was less than amazing apparently.  Oh well, I got...

DevTeach 2007 -- Design Patterns for Maintainable WinForms (Jeremy Miller)

Starting early cause he has too much to go through for the allotted time. You don't need CAB to do large maintainable apps. UI code is time intensive.  It deals with an extremely unpredictable external dependency (users) and it changes frequently. It's worth your while to test the UI. Screen Responsibilities Presentation Responding to User input input validation and business rules more that I missed.... Small controls can be tested right in nUnit.  No need for nUnitForms. Maintainable Code Checklist Can I find the code? Can I "see" what the code is doing? Can I make changes with...

DevTeach 2007 -- Building Silverlight Applications Using .NET (Yair Alan Griver)

So I missed part 1 of this session and I walked into this one late,  so I'm feeling a little lost in the first demo of the slot. Silverlight has it's own networking stack that works through the browsers networking stack.  You have access to everything the browser does.  i.e. headers, cookies etc.  Alpha version only supports same domain access. Silverlight supports XmlReader and XmlWriter.  Nothing else is currently being offered in an attempt to keep the download size below 4mb.  Linq to Xml will be added in the future (post Alpha). Wow.  The Fantasy Baseball demo app that Alan is...

DevTeach 2007 -- Complex Business Rules with DDD and O/R Mapping (Udi Dahan)

Complexity kills There are problems that technology, no matter how new, will not solve. Scalability isn't always about hardware.  It could be about scaling the size of the developer team. Elegance is recognized on sight. What's a business rule?  If <x> then do <y> Complexity arises from the fact that we have a lot of intertwining business rules.  Almost like a house of cards, you remove one rule and some or all of the others start to collapse. Encapsulation is the answer. Domain Model Pattern.  The DM is isolated and each component works with properties, methods and events.  Properties are...

DevTeach 2007 -- Test-Driven Architecture (Mario Cardinal)

Mario is going to record his presentation and posting it at his blog (www.mariocardinal.com). Architecture establishes the context for implementation. Damn Jeremy Miller!!!  His big head is now blocking my view.  Oh, now it's not. Architects reduce complexity of the problem space by taking fundamental decisions that are costly to reverse. Tests remove ambiguity 2 classes of stakeholders Deciders who need to understand the constraint and limitation of the solutions (narrative specification) Implementers who need to build and run the solution narrative spec doesn't provide concise information about design and decisions tests provide an explicit consensus about...

DevTeach 2007 -- Continuous Integration with .NET (Roy Osherove)

I sat in on this presentation yesterday and didn't live blog it as I needed a typing break.  Roy's presentation was great.  If you've never seen it before, I've posted a link to a TechEd Europe video of what is essentially the same thing.

DevTeach 2007 -- What to Test, and When (Udi Dahan)

We're paid to create business value (amen). Finding bugs does not create any business value. Fixing bugs creates the business value. Preventing bugs creates more business value. Brian Marick's test type matrix (http://www.testing.com/cgi-bin/blog/2003/08/22). A lot of bugs are found through exploratory testing (Business Facing & Critiquing the Product). Depending on your requirements (business, industry, etc.) some types of testing may be more important to start early (i.e. security testing for defense industry software). Tests tell us where we are from a business point of view. If we're here to primarily provide business value, we need to be concerned with what...

DevTeach 2007 -- Interaction Based Testing with Rhino Mocks (Oren Eini)

Wow....nobody is in Oren's presentation.  They must be getting their heads exploded in JP's. Wow...Oren just said he posts at his blog "every now and then". Interaction based testing does have any state to check, so you must test the collaborations (complex or simple) between objects.  Objects don't work in isolation.  Mocking dependencies allows us to test the main code in isolation.  You can accomplish this with Mocks, Stubs and Fakes. Fakes:  working implementation, but not a useful one (a DAL that returns from a dataset rather than a database) Stub:  empty implementation which may optionally record the calls...

DevTeach 2007 -- Behaviour Driven Design (Scott Bellware)

This could be interesting in more ways that one. And he starts with the "I don't feel embarrassed about perfect feedback scores" statement. Sub title on the presentation is From Unit Testing to Behaviour Driven Design. Common statements to challenge: Unit tests are documentation TDD is design You must look at tests as documentation for anyone but you. Scott's going to show the evolution of unit tests (using nUnit) over the years. Story represents functionality, not specification.  It's for naming/identifying and then moving through planning.  Also known as placeholders for conversation. Preferred customer discount example is a good one....

DevTeach 2007 -- Executable Specifications with FIT (Jeremy Miller)

FIT can be used for both ASP.NET and WinForms applications.  This is a very good book according to Jeremy. What's wrong with traditional requirements BAs create an English language spec doc.  Developers interpret the spec doc to build code.  Testers interpret the spec doc to write test plans.  Then bug volleyball begins. This can: Ambiguity in requirements.  English language docs leave too much room for interpretation. Often lacking in fine grained detail.  This is a problem with English docs. Often users don't know what they want until you are coding. Test plans are a duplication of spec docs Sequential development...

Montreal can suck

I had to walk over from my hotel to the conference hotel (about 5 blocks) like every other day.  I looked out the window this morning and saw that it was raining, but I wasn't prepared for the wind.  It was, well, staggering.  This morning was the first time I've ever seen an umbrella, sans operator, moving down the middle of a street faster than traffic.  I also was shocked to see that every trash bin on the sidewalk had one or two umbrellas stuffed in them. I'm definitely glad to be indoors today.

DevTeach 2007 -- Feature Driven Development with Joel Semeniuk

This is a methodology.  It should be used like a design pattern. "We think most process initiatives are silly.  Well intentioned managers and teams get so wrapped up in executing process that they forget that they are being paid for results, not process execution" -- Coad, Lefebvre, De Luca 19999 Process makes you think "The process is not as creative as it used to be" and then you quit. History First appeared in 1999.  Was a result of many failed attempts at the same project and a demoralized team. Definition A process designed and proven to deliver frequent, tangible, working...

DevTeach 2007 -- Techniques for Testing Data Access Code with Roy Osherove

Roy's writing a book.  The Art of Unit Testing.  Sample chapter available. Why should I care  Automated testing and regressions, data layer also can contain logic and the cost of changes is lowered.  How do you know if the impact of changes if you are asked to change something like a primary key definition after the application has gone into production?  Test and fix cycles will allow you to see defects, fix them and do it in a timely fashion. How do you test logic that exists in triggers?  It's real logic and it needs to be tested. Definition of a...

DevTeach 2007 -- Laws of Agile Design with Jeremy Miller

In agile you want: ROI Good enough design make best design possible, but don't spend years on it flexible delivery options customer doesn't know what they want they learn as the project goes be able to make a complete turn in the code base move low priority features to the end -- this can save a project sustainable development through maintainable code understandable testable changeability avoid brittle avoid rippling changes Do one thing at a time.  Too much is overwhelming.  The complexity is overwhelming.  Build little and assemble the pieces. Minimize wasted motion.  Don't work on...

DevTeach Agile Development Q and A with Roy Osherove and Guests

Roy will accept your emails, but he doesn't guarantee that he will read them. The presentation is going to follow an agile method.  We're choosing the list of topics, then we get to vote on them and the highest votes will be discussed first.  Here's the list Scaling Agile to large teams (Scrum) -- 9 votes Scaling Agile in the Enterprise -- 7 votes Adopting Agile in organizations -- 25 votes Agile in distributed teams -- 35 votes (example of estimation gone wrong) Overview of Agile processes -- 20 votes Introducing into a team -- 20 votes Is Agile...

DevTeach 2007 Keynote

Jean-Rene has started and is announcing that DevTeach will be a twice yearly event.  The next show is in Vancouver Nov 26th to Nov 30th.  JR rocks.  Yesterday he said that he was worried about the number of attendees that he'd have at it.  I think DevTeach Vancouver is going to rock and I'm certainly going to be there.  Venue to be announced after this event.  JR has already told me and it's going to be a sweet location! JR is showing the swag that will be drawn after each session.  Sweet...and an Internet cafe (10 laptops courtesy of Technet)...

DevTeach 2007.

Folks, if you aren't going to DevTeach next week you really need to.  The content is fantastic, the venue is remarkable and the city is spectacular.  Top that off with good proximity to Rue Crescent, anglo-pub-central so I'm told, and you have a sure fire guarantee of fun (and me getting drunk). Unlike Jeffery Palermo, I'm not organized enough to setup a Party with Palermo inspired event.  Instead I'm just going to head out to Les Trois Brasseurs (the one on Rue Crescent...direction here) on Tuesday night at 730pm.  There is no swag to give away (unless some great sponsor...

CruiseControl.Net Remoting Error

On Friday afternoon I noticed that our CC.Net server had stopped working.  I spent the entire afternoon looking into the cause of the problem to no avail.  Finally I resigned the idea that I was going to have it working before I left for a weekend out of town.  Today when I got back to work it appeared as though the elves that I was hoping were going to fix this issue, had actually taken the weekend off too.  I hunkered down and began troubleshooting again. The symptoms that I was running into were these: CruiseControl.Net service would start...