Do I have the answer yet? Not really

So previously I posed a question, which in it’s simplest form is: Should you write code for the rest of your group (or at their proficency level), or should you write code as advanced as you need. and let it serve as an example for those on your team who are less advanced in their abilities. The practical answer I have come up with is, like most answers of this type, “It depends”. ...

8 February 2009 · 2 min

Use of a "Personal Branch" for long-running stories

At Envisage, we have a 1 week iteration. This means that we typically don’t want a single story to go longer than one week. We also change up the pair rotation once per week. The estimation process is not perfect, though, and we have a lot of support from management to choose doing things right, rather than doing things now, which leads to stories going beyond a single iteration. So when this happens, there is usually a small rock/paper/scissors session with the developers involved to determine who will be taking the story. More often then not, the story goes with the machine (and the developer) that was used to do the work, since it is usually not practical to check in changes at the end of the week (also, our QA builds on Fri for a demo, so a green build is needed on Fri). ...

8 February 2009 · 3 min

How important is your Code Audience?

We had a friend visiting from out of town last night, and she is apparently fond of “Top Chef”. This was the first time I had encountered this particular “reality” based show, and I found in a lot of ways it was like the majority of the rest of the shows out there; trying hard to create drama where there really isn’t any. In this particular episode there was a challenge to cook food for a neighborhood block party. The group that did the worst in this particular case cited the fact that they were preparing food for everyone including kids, as a reason for not getting jiggy with the menu (in a culinary sense). The response from the judges was that good food would speak for itself, and they should have considered it their responsibility to raise the collective bar of quality for the neighborhood. ...

8 April 2008 · 3 min

The evolution of design, and the continued search for "The Way"

I’m currently finding myself in the midst of an evolutionary change. And I’m not talking about my super-human mutant powers, I’m talking about the way I’m thinking about solving a specific set of problems. Let’s start with a sample….Lets take something like processing credit-cards as a benign and IP free place to start. As a subject that I really have no practical experience with, it seems like an appropriate choice. I’m going to assume that there are different rules for doing checksum validation on credit card numbers, depending on what the card is (Mastercard/Visa/Discover/etc). Now, here is evolutionary step 1: Use a basic case statement to process the various cards. Here is what something like that would look like: ...

2 October 2007 · 7 min

I'm getting more fluent...and its kinda strange

About two weeks ago I crafted my first Fluent Interface. Since then I’m finding myself seeing more and more places where I think such an approach would be useful. The part that I’m finding odd is that it is something that just recently became a possibility for me. The big motivating factor behind that I believe was reading the post that Martin Fowler did on the subject, in which he basically describes it as a super-great idea (okay, I’m paraphrasing, but you get the idea). The concept is fairly simple; write an API that reads like a sentence. ...

15 September 2007 · 2 min

Forcing redirection to HTTPS in ASP.Net

I ran into this issue today when trying to find a quick and dirty script to enforce redirection from HTTP to HTTPS for an intranet site we’re enabling for HTTPS (yes, I know SSL on an intranet??? One word - Audit). I thought this would be easy…I half expected that there would be an IIS setting to handle this for me; I was wrong on both counts. So what I ended up doing is using an old DNN HttpModule which was set up to allow the user to specify specific tabs in DNN for SSL, and greatly simplifying things to work to my advantage. I thought I would post it so I wouldn’t have to look for it again. ...

17 August 2007 · 3 min

Taking the CodeRush Plunge

I recently decided to take the plunge and get CodeRush and Refactor! Pro (along with DxCore) loaded instead of Resharper. Now, don’t get me wrong, there is a lot I like about Resharper, but overall the performance was becoming an issue. There were often problems with VS freezing for no particular reason, and then coming back as if nothing was wrong…I swear it was like my IDE had narcolepsy or something. One of the things I noticed immediately about CodeRush was the fact that there was a single installer, and when I went to run it I was able to install it on all versions of Visual Studio, including the Orcas Beta. This was nice when compared to Resharper’s separate install for vs 2005 and vs 2003. It also makes me feel good about improvements in the product being available for all versions of the IDE. One thing that I noticed about R# was that there was some work being done in the VS 2005 version around performance, but that did not seem to trickle down to the VS 2003 version. I think the big reason for this is the fact that CodeRush and Refactor! are implemented on top of DxCore, which provides a very clean abstraction from the scariness that is the Visual Studio integration layer. ...

13 July 2007 · 4 min

More On Testing and "Friend" Assemblies

So if you recall from some of my earlier posts, I’ve talked about the concept of the “Friend” class in C++ and how it could apply to TDD within .Net. Well, today, with the help of Roy Osherove, I just stumbled upon the InternalsVisibleToAttribute within .Net 2.0. This allows you to specify within one assembly, another assembly that should have access to the internal members of your assembly. This is genius, and goes a long way towards allowing you to keep your code encapsulated, while still being testable. If we could just get them to go one step farther, and allow for access to private and protected members as well, life would be good, and there would be no more of this OOD vs TOOD junk. ...

18 June 2007 · 2 min

Struggles with the UpdaterApplicationBlock

The project I’m working on now has a huge need for auto-update. Strangely enough, there aren’t a whole lot of documented solutions for an auto-update application for .Net 1.1. In the 2.0 world you have ClickOnce, which handles those sorts of things for you (and in a way that isn’t terribly difficult to manage as a developer…as long as you pay attention to what your doing), but the only real option you get from MS on this is the AutoUpdater Application Block from the Patterns and Practices guys. I took a look at this when it was in it’s 1.0 version a while back, and really didn’t care for it much. The big reason was that it required you set up an AppStart.exe file, which would take a look at your config file to determine which directory to start the app from. When updates arrived, they were put in new directories based on versions. This seemed like a lot of effort, and a lot of overhead. The good news is that there is now a 2.0 version of the application block, and it looks like it is much more configurable, and has the ability to do inproc updates. ...

11 June 2007 · 3 min

You got your DDD in my SOA!

I’ve been trying to catch up on past episodes of .Net Rocks while on my hour+ drive to work everyday, and this morning listened to the interview with Jimmy Nilsson (episode # 191) on Domain Driven Design. I’ll admit now that I have not had time to read his book all the way through, but it is one of the ones that I’m most eager to dig into, since not only is he talking about DDD, but he’s also talking about the Martin Fowler design patterns from PoEEA. ...

5 June 2007 · 3 min