CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Darrell Norton's Blog [MVP]

Fill in description here...

March 2006 - Posts

  • US Army Program blends Agile and Traditional Processes with Success

    In the April 2006 issue of CrossTalk, The Journal of Defense Software Engineering (USA), there is an interesting article called Army Simulation Program Balances Agile and Traditional Methods With Success. The authors note that traditional methods are driven by the need for predictability and control, whereas the agile methods focus on flexibility and innovation. And their experience tells them that:

    "The new art of software development is finding the appropriate balance point among the available practices."

    It is a balancing act for software development teams to be as flexible as possible while still meeting stakeholder concerns regarding documentation, project plans, and up-front analysis.

    "Interestingly enough, the customer base for [the software program] was more comfortable with traditional pedantic software-development methods, even though they contributed to an environment with ill-defined and often-changing requirements." (authors' emphasis)

    The answer to the customer's objections was, of course, education:

    "The program spent a great deal of time educating the user representatives on XP and other agile methods."

    The program used the following agile methods:

    • Continuous Integration - a home-grown continuous integration server called BuildBoy automatically runs 3000+ tests every time code is checked in
    • Collocation - everyone on the project was collocated in a single building from 10-12 companies at any given time
    • Iterative development - iterations 8-10 weeks in length (compared to normal government times of 1 year+, this was FAST)
    • On-site customers - representatives from all customer stakeholder groups were present all the time

    The program has not quite implemented Test-Driven Development, although unit tests are part of the deliverables. Also the program does extensive documentation that is compiled into a user's manual and online help at the same time, plus extensive code notes and diagrams. At least they make it all available on a web site, and parts of the process are automated.

    Posted Mar 28 2006, 06:24 AM by darrell with 2 comment(s)
    Filed under:
  • Making Outlook work for Getting Things Done

    I'm trying to implement the whole Getting Things Done approach by David Allen. One of the big recommendations is to sort your work into "contexts." For example, sort your next actions into contexts like "on the phone", "at the computer", "running errands", etc. That way when you're able to use your phone for 10 minutes, you have a ready-made list of next actions that you can do and make productive use of that 10 minutes instead of playing Bubble Breaker on your PDA.

    Merlin over at 43folders has a post about people's suggested contexts, and what he calls meta-contexts:

    I’m using this to make three “meta-contexts” that mirror the very general types of work into which all my tasks (and their parent contexts) belong.

    • Real World - Primarily physical or location-based stuff (esentially: “non-computer” contexts)
    • Think - Brain work, decision-making, and creative stuff — which usually occurs in the proximity of a Mac, but absolutely does not have to.
    • Compute - Tasks that by their nature require direct computer interaction: this is the “@computer” uber-category

    Merlin uses an Apple, so his example shows how to use iCal to have multiple calendars, each assigned to a meta-context and a sub-level context. His meta-context and context breakdown is this:

    • Real World
      • errands
      • chores
      • calls
      • read
    • Think
      • brainstorm
      • decide
      • research
      • schedule
      • write
    • Compute
      • desk
      • design & code
      • email
      • google
      • mac anyplace
      • print
      • web
      • monitoring

    So I started looking to see if Outlook 2003 could do the same thing. Luckily after a very brief search, I found an Outlook 2003 Views Add-in (links to the article, the download is in the upper right) that did pretty much the same thing, except Outlook calls them categories and labels instead of separate calendars. Assign items on your schedule to one or more categories and/or labels. Then create a custom view to display only the items you want. There are built-in categories and labels, and you can add your own with user-defined colors. Sweet!

     

  • Training is Useless

    David Maister, the guru of Consulting, talks about his extensive experience in training:
    "I now believe that the overwhelming majority of all business training, by me and by everyone else, is a complete waste of money and time."
    Why would someone who has earned boatloads of money doing it think training, of all things, is a waste?
    "The main reason is that companies keep trying to bring about changes in behavior by training their people in new things, and then sending them back to their operating groups subject to the same measures and management approaches as before."
    This is a standard metrics problem. People work toward what is measured, so training itself will fail unless the metrics are aligned with the business strategy (that's a fancy way of saying your metrics make your employees do what you want them to do). Althought it's a standard problem, the cure is worse than wasting money, for managers anyway:
    "The correct process would be to sit top management down, ask ‘What are people not doing that we want them to be doing?’ and then figuring out a complete sequence of actions to address the questions – how do we actually get people to change their behavior? What measurements need to change? – what behaviors by top management need to change to convince people that the new behaviors are really required, not ust encouraged? – what has to happen before the training sessions to bring about the change? What has to be in place the very day they finish?"
    This explains why when your company has "yet another <type of improvement> improvement program", you just nod and smile knowing that it's not going to affect you one bit.
  • Great Service Oriented website

    ServiceOrientation.org

    Founded by SOA luminary Thomas Erl, the same Thomas Erl that wrote Service-Oriented Architecture: Concepts, Technology, and Design. From what I've read so far, it's a great site.
  • Detect duplicate C# code with Simian

    Howard van Rooijen has an excellent article on setting up Simian to detect duplicate code. Then he takes the next step and creates MonkeyWrangler, an add-in that takes the Simian output and converts it so that you can double-click on the text and Visual Studio will take you to the file and line of code!

    Found 9 duplicate lines in the following files:
     
    D:\Projects\Conchango\Conchango.Gluon\Conchango.Gluon.Plugins.Interface\ConfigSettings.cs (163) 171
     D:\Projects\Conchango\Conchango.Gluon\Conchango.Gluon.Plugins.Interface\ConfigSettings.cs (141) 150


    Posted Mar 15 2006, 06:47 AM by darrell with 3 comment(s)
    Filed under:
  • QuickTime for .NET and COM Developers book

    A coworker recently sent me a link to this book, QuickTime for .NET and COM Developers. He's put in an order for it, and I'm interested in checking it out. From the back of the book:
    A general introduction to QuickTime is followed by a detailed explanation of the QuickTime architecture from a.NET and COM perspective, liberally accompanied by code snippets. A number of implementation examples illustrate key QuickTime features, ranging from a simple movie player to a sophisticated interactive application. Also covered is QuickTime scripting in both QuickTime Player (using Windows Scripting) and in Microsoft Office applications (using VBA). Brief guides to developing with QuickTime in Delphi and ATL/WTL are also included.
    Posted Mar 14 2006, 07:40 AM by darrell with no comments
    Filed under:
  • Yahoo! posts Design Pattern Library

    Yahoo! has posted a nice Design Pattern Library:
    Welcome to the Yahoo! Design Pattern Library. We are very happy to be sharing our library with the design and development community. This is our first drop of what we hope to be a monthly release cycle for the publication of patterns. In many cases we have bundled the patterns with pointers to related code from the Yahoo! User Interface Code Library. We hope this is a useful resource and look forward to your feedback.

    [via Dave Oliver]

    Posted Mar 14 2006, 06:41 AM by darrell with no comments
    Filed under: ,
  • Tips for reading Excel data using ADO.NET

    Yes, we've all seen this code a thousand times. However, this blog post does more than just rehash the same old Microsoft KB article. In it Joe Morrison shows how to read line-by-line, how to hack past ADO.NET's guessing of the data type with the first 8 rows, and more.
    Posted Mar 13 2006, 07:23 AM by darrell with no comments
    Filed under:
  • GoF Patterns DSL for Team System 2005

    Clipcode has released a GoF Domain Specific Language built using Microsoft's DSL tools for Visual Studio 2005. The currently available snapshot build of Clipcode-GoF-DSL supports the GoF creational patterns (prototype, singleton, builder, abstract factory and factory method). Future builds will support the other GoF patterns.


    [Click to view larger image (redirects to Clipcode site)]

    Posted Mar 13 2006, 06:31 AM by darrell with 2 comment(s)
    Filed under: ,
  • Article on AVICap

    Wei-Meng Lee wrote an excellent article on how to incorporate a webcam into a .NET 2.0 Windows Forms, oops, er... Smart Client app. I'm not particularly interested in the webcam part, but in it he shows you how to directly integrate a video device with a PictureBox control. He also covers a lot about the AVICap.dll API. Highly recommended.
    Posted Mar 10 2006, 07:17 AM by darrell with no comments
    Filed under:
  • Citeknet or IFilterShop filters for MSN Desktop Search?

    Anyone know why the Citeknet filters for MSN Desktop Search are almost always way smaller than IFilterShop's filters?
  • Free Management Library

    I ran across this excellent site, Free Management Library. There are 75 categories with 675 topics covered.
  • DDCPX After-market solutions blog

    Microsoft's DDCPX Team Blog has a category for "after-market solutions." Their goal is to "help ease your pain by providing solutions for problems for which hotfixes and service packs don’t make sense."

    What are some examples of after-market solutions?

    To put this more concretely, here are some types of after-market solutions that can make your life easier when you use Microsoft’s developer products:

    • Power Toys
    • SDKs and samples
    • Diagnostic tools
    • Product extensions that help with your productivity
    They already have a few tools up, such as the Team Foundation Server user admin tool and MSBEE:
    What is the MSBee tool?  MSBee (Microsoft Build in Everett Environment) allows a user to use MSBUILD to target the .NET Framework version 1.1 (codename Everett), instead of the .NET Framework 2.0 (codename Whidbey).
    Check it out at http://blogs.msdn.com/ddcpxblg/archive/category/11083.aspx
    Posted Mar 08 2006, 11:37 PM by darrell with no comments
    Filed under:
  • Test Driven Development for non-techies

    Clarke Ching is working on a white paper that shows how to use Test-Driven Development in Excel to solve Roman numeral problems. He's looking for your feedback!
    Posted Mar 08 2006, 07:10 AM by darrell with no comments
    Filed under:
  • Lean Software Development book 2: An Implementation Guide

    Mary Poppendieck is working on a new book, Lean Software Development: An Implementation Guide. As the title implies this book shows how to do all the things we learned in the first book. The web site offers rough drafts of as Mary completes them. It also links to the Yahoo discussion group. It looks great so far.
    Posted Mar 07 2006, 07:05 AM by darrell with no comments
    Filed under:
More Posts Next page »