Agile

With my new job, I’ve not been able to take advantage of a lot of Agile/XP practices. In a company of four, where each is effectively working on a different project, collaboration is minimal. Also, for the projects that I am working on, the customer is very adamant about getting a detailed proposal up front, including a list of all of the screens and how they will operate. I’ve managed to get by without too much detail, but it is still more than I am generally comfortable with. TDD and Continuous ......
Recently, the CEO of Sprint could be seen in TV commercials stating "Technology is only great when you know how to use it." Here is an article that digs a little deeper into this ad campaign. The purpose of the campaign is to highlight Sprint's customer service, which of course is vitally important to any company providing products or services. I am not here to criticize Sprint. In fact, if you read the article, you will see that they are addressing technology simplicity as well as customer service. ......
Recently I posted a comment to an article talking about only billing hourly and not entering into fixed bid contracts. I agree with the post (for the most part), but felt compelled to respond to one of the comments. I thought I would include this in my blog because I think it is an interesting topic. The focus here is not how we estimate from an Agile approach (read Agile Estimating and Planning if you are looking for that). Here, I am addressing a specific argument that Agilists "can’t estimate ......
Whoa! Why does it need fixing if it is not broken? I'd like to explore the definition of "broken". Here is a modest list of signs of broken code. A test is failing (I know, painfully obvious) The code doesn't do what the user expects. (Likely, you actually have a broken test or it's missing altogether.) The code is hard to read, hard to enhance and brittle. I think the first two bullets are obvious and the customer will see the value in fixing the code. The final bullet leads us to refactoring. How ......
Clearly MS hasn’t caught up with the third party tools that are out there? Which do you guys use? ReSharper Refactor! Pro C# Refactory Visual Assist X I've used Refactor!Pro on a previous project and liked it quite a bit. I assume a lot of these include the same basic features. Perhaps the difference is in the number of refactorings and additional features outside of refactoring. ReSharper seems to be the most widely used. But, does it give the most bang for your buck? Does it meet the needs of a ......
I received quite a bit of feedback regarding my Join extension to IEnumerable that generates a comma separated list. The purpose was to emulate string.Join(), but to add more flexibility as to what is "joined". I took some time aside to investigate some of the suggestions and alternatives to my implementation. I should note, that I would not normally do this. I try to avoid premature optimization. However, there are certain practices that can be learned that improve performance in general (like using ......
So, I've settled on a pattern that I found somewhere on the web to safely override Equals. I don't remember where I found it, and there are certainly many other good implementations (probably better than mine). Regardless, I found that I do have a repeating pattern. I decided to set out to limit this duplication if I could. Here is what I came up with. 1: public static bool SafeEquals<T>( this T left, object right, Predicate<T> test ) 2: { 3: if( right != null && right.GetType().Equals( ......
I've had a few people ask me about my custom GridView and whether I can help them with theirs. Though, I cannot share my code directly, I can provide some guidelines. In the coming weeks I plan to post segments stepping through customizing a GridView. My customizations are by no means perfect, and I have had to tweak things as I encounter issues. I look forward to sharing my experiences. I will probably post a multi-part article that walks through customizing a GridView. Again, I will not be posting ......
I had the opportunity today to write some more complex LINQ queries. First, I started with a simple group by expression allowing me to subtotal some data for a particular key. Certainly I could have done this in the database. Many would argue that that the database is the expert at these sorts of things, so we should let the expert take care of it. I have a couple of reasons for placing the group by in the LINQ query. First, I don't have a lot of control over the data layer. Second, I can unit test ......
So I was about to create a dump of my subversion repository so I could split multiple projects into separate repositories. But then I got to thinking. Why do I want to create a dump? Well, the only good reason I could come up with was revision history. That reason wasn't good enough. The source that I wanted to split out was some common/shared libraries. Collaborating with a team member, we decided there were two compelling reasons why we don't need the history up to this point in time. First, the ......