What projects benefit most from “agile” methods?

I’ve been asked a few times recently what I feel the best projects for “agile” methods are.

As I mentioned in a previous posting, I view “agile”/”rup” etc as more tactical versus more strategic methods of attaining goals.

Therefore I obviously believe that projects that are more “researchy” or “startupy” make more sense as far as taking a more tactical approach.

Eg, if you don’t know what the UI is going to look like, what features the customer wants, etc, then doing little to no design up front makes sense, and small iterations are handy for generating consensus and a road map of what to do next.

However, projects that have a concrete spec, where the goals are well defined, and the interfaces are well defined would tend to benefit from a more traditional, and less chaotic approach.

I believe all projects can benefit from an incremental and iterative development process; however the increments would tend to be small for the more “agile”/tactical projects and larger for the more traditional projects.

Note: I use “agile” with a small “a” not a large “A”; that is because I believe agile is a tactical mindset, and the tactical approaches to be used are up to the user. I do not believe in the “dogmatic” forms of agile, such as XP, nor do I consider some of the XP edicts as beneficial on any project (Pair Programming all the time, Refactor Mercilessly, Collective Code Ownership across tiers, etc are never on my radar).

I still believe in specialists and enough upfront design to avoid “merciless” refactoring; (I’d rather have merciless design and prototyping so that the production code doesn’t need to be mercilessly refactored).

I believe in concentration too so of course I’m not a big fan of pairs or noisy team rooms.

I’m happy to work shoulder to shoulder as the need arises, but I don’t confuse that as a substitute for lack of documentation by having people work shoulder to shoulder constantly in an effort to avoid having appropriate documents.

However much some methodologies claim to “lower the cost of change”, change is still lower cost to achieve at the paper/design level before it is turned into code. Therefore I like to leverage that cost savings as appropriate (eg, more design, less refactoring).

My approach is to combine what’s good and appropriate about all the methodologies and combine them in a way that makes sense for the project at hand.

Jordan

My Thoughts on Unit Testing, TDD, TDI, etc

I just wanted to clarify my position on Unit Testing a bit.

First of all, I am a big believer in Unit Testing Production Code, during development and prior to internal or external releases.

As a matter of fact, I first started enforcing this type of testing on projects as early as the early 1990’s.

So, if “TDD” means “Test Driven Development”, I am all for that.

As far as “Test Driven Design”, as one can probably surmise from my blog, I view that as inefficient and cumbersome for a number of reasons; in any case it seems especially pointless to unit test prototype code that will be thrown away or redesigned in short order; once things stabilize a bit on the design front and begins to become part of the production code base, Unit Tests should be written and maintained for it.

Further, since “TDD” can mean both “Test Driven Design” and “Test Driven Development” I propose that “TDI” — “Test Driven Implementation” — might serve as a useful disambiguation.

Jordan

Having trouble hosting Silverlight? Just change .xap to .zip!

I was having trouble hosting a Silverlight 2 .xap on my ISP; apparently they don’t (yet) support .xap as a Mime type.

However, I was able to get around that simply by changing .xap to .zip on the .xap file name on the filesystem, as well as in the object tag of the page reference.

Voila, it worked without a hitch. You may want to give this a try if you are having trouble hosting Silverlight on your shared ISP.

Silverlight 2 Controls Demo Updated to run on Release to World Version of Silverlight 2

I have updated the Silverlight 2 Controls Demo to run on the Release version of Silverlight 2.

If you have been trying to run the old b2 demo on the Microsoft site and have been unable to since updating your Silverlight to the release version, then you have come to the right place!

Simply go here to run my version which runs in the Release version of Silverlight.

New Cassini for Framework 3.5

Cassini is a stand-alone web server that you can use to deploy your ASP.NET web applications.

Cassini has been updated by it’s author to now run as a single .exe without needing to be deployed in the GAC! This is great news.

Additional features:

  • Supported IPv6-only configurations
  • Upgraded to support .NET Framework 3.5
  • Includes VS project file 
  • License changed to Ms-PL

Get it here: http://blogs.msdn.com/dmitryr/archive/2008/10/03/cassini-for-framework-3-5.aspx

Some Photos from San Francisco

I was up in SF for a couple of days last week and took a few shots….

More shots + captions will appear soon…

 

Read the rest of this entry »

Fairly Evaluting Consultant Versus Full Time Rates, Part I

Any Consultant will Frequently be engaged in rate discussions with potential clients.  Many times these are hiring managers, not HR folks.

Sometimes, these hiring managers expect consultants to work for the same hourly rate a full timer would perform the same task for.

If they are quoted a rate higher than that, they feel they are being “ripped off”.  Are they?

Read the rest of this entry »

Agile & Waterfall are two sides of the exact same Coin

Agile & Waterfall are two sides of the exact same Coin, and are equally good or bad.

Agile enthusiasts enjoy lambasting waterfall while espousing “Agile”, however the two techniques are exactly the same.

“Waterfall” is basically a Strategic method of attaining goals, and “Agile” is basically a Tactical method for achieving goals.

Both are equally limited; strategy without tactics is ineffective, and tactics without strategy are especially ineffective, especially over a longer term.

Read the rest of this entry »

Are you charging too little?

I found a great little list over at Freelance Switch.

http://freelanceswitch.com/humour/top-ten-signs-you-may-be-charging-too-little/

One of my favorites:

Number 6:
Clients pay your invoices in cash from their wallet.

 

Also check out:

http://freelanceswitch.com/humour/top-ten-signs-you-may-be-charging-too-much/

Number 9:
You’re still living off a job you finished in 2005.

Get me to the appointment on time, James

Losing space on Drive C? Check your WER ReportQueue

I had been losing space on Drive C for awhile and it seemed odd to me as I rarely store things on Drive C, therefore the space should not be going down.

It ended up I had 255 GB (!) of files stacked up in the Windows Error Reporting Service queue in C:\programdata\microsoft\windows\wer\reportqueue

Definitely worth checking from time to time if you have apps that crash a lot and use Windows Vista