Team Foundation Server forces teams toward open source solutions

Source control is the lowest common denominator with software development. All (...ok...most) software development teams have a system in place to manage the version of their software source code.

Within the Microsoft eco-system there are 2 options provided by Microsoft:

  • Microsoft Source Safe
  • Microsoft Team Foundation Server

SourceSafe has a bad reputation so within the last couple years, teams that develop on the Microsoft stack have been forced to limp along with Source Safe or upgrade to Team Foundation Server.

I don't want any one to get the impression that I don't like TFS; because I do. I like the integrated lifecycle, powerful reporting, task and project management tools. I like these things when they are needed. However, most mid-market software development shops don't need (or can't afford) all those tools.

But what if you want the tools? Have you ever tried to determine the pricing for a Team Systems rollout? Can somebody tell me how much it will cost to roll out TFS for a development team of 10 developers? I've tried to do the pricing, but can't navigate the licensing.

So what should you do if you need a source control tool?

a.) Spend a couple days putting together a proposal to submit to your boss, who will submit it to her boss which will ultimately be rejected for "Budgeting Reasons".

b.) Do you stick with Source Safe? Not because you want to or think it's the best solution but because it's the only other alternative from Microsoft?

c.) Or do you install a Subversion Repository (free + time) on an existing server (free), install TortoiseSVN (free + time) on the developer workstations and hold a day of training with the development staff (time)?

Agile defined with one photo

I got this photo today at work when a co-worker recommend a couple alternative strategies. I love it and had to share!

 
From: http://www.michaelsalamon.com/?p=20

Trackback Spam or "sex vt adult tv free online"

After checking my blog for the first time in months, I noticed that over 470,000 trackbacks and noticed in my Google Web Master tools that I had some interesting searches showing up.

webmastertools

I spent a couple hours this last weekend cleaning up and have turned off trackbacks...sorry but it's embarrassing being the the third result when you search for "porno streamong". I should be first!

Twin$

Jody, Sadie and I are expecting twins (one boy/one girl) in April. . We are excited and freaking out all at the same time.

To prepare, we are building a new 4 bedroom home west of Jordan Creek Town Center.

Wish us luck!

Full Time "Gig"

After a short contract at a major financial company, I have accepted a full time job at Two Rivers Marketing.

We have a fairly large team (~15) of software developers, user interface designers, and Flash designers.

Tools are not the most important part of a company, but they can tell you about the "development eco-system". What do these tools tell you about our eco-system?

Subversion
NHibernate
NUnit
Log4Net
Rhino Mocks
NAnt

dasBlog Theme Contest

I don't use dasBlog personally, but Ben is a true believer and is willing to put his (and Scott Hanselman's) money were his blog is. He and Scott are offering a $100 Amazon Gift card to the winner of their dasBlog Theme Contest. Hurry! The deadline is Midnight, July 12th.

If I could design my way out of a wet paper sack, I would submit one..hmm..how about a wet paper sack theme?

Lean is the new Agile

I'm happy to see more people everyday are interested in Agile methods, however I'm saddened by the misinterpretation and perceptions of Agile by people who have never experienced it.

I've discovered that when I mention Agile to a group of IT Professionals, there is an initial reaction of shock and defensive posturing.

"Agile isn't for us. We don't want the developers coding without any direction."

or

"If we're going to use XP, that's fine. I'll just find another team!"

It's hard enough to have people listen about the spirit of agility when they have already made their minds up...which leads me to the topic of this post.

Lean is the new Agile

Recently I've been hearing more and more about Lean software development. It's not new, but I believe the agile community is looking for another way to market agility outside the software industry. And it makes sense to use Lean Manufacturing as the model. Every business person in the world has heard about lean manufacturing. Not only have they heard the term, there is an engrained positive feeling about it. Lean sounds like it costs less with more quality. They associate lean with Toyota which they associate with quality...Oh what a feeling!

Agile, on the other hand, is associated with XP (Extreme Programming). Nobody in business wants anything to do with anything that is extreme. Extreme equates to Risk and the business world is all about reducing risks (or as we say, "mitigating risks").

So give it a shot. Next time someone is discussing your software development methodology, tell them you use a lean software development methodology based on the principles from the Toyota Production System and see how they react.

One Simple Metric

At our last Agile Iowa meeting on Thursday, Jared Richardson, he was talking about Agile Testing Strategies. He mentioned a metric he used that I found very interesting. He took three variables and created a report that listed the top 10 method/assemblies that were at risk.

Here is the (simple) equation:

Cyclomatic Complexity (CC):

Usage (U): How many other methods/classes rely on this code.

Test Coverage Percentage (TC): The percentage of the code that is exercised by a unit test

Risk Factor = CC x U x (1 - TC)

Let's look at a couple examples:

This first table shows a method used by 50 other methods (Usage) with a Cyclomatic complexity (CC) of 20. I then vary the code coverage for this method. Without any unit tests, the risk factor is a cool "g" (or Grand). As the test coverage increases the Risk Factor decreases. When the test coverage reaches 100%, the Risk Factor is reduced to zero. The function is linear, so decreasing the usage or the complexity will also reduce the Risk Factor. So it make sense that if a method isn't used, it has a risk factor of zero.

CC Usage Code Coverage Risk Factor
20 50 0 1,000
20 50 0.1 900
20 50 0.5 500
20 50 0.9 100

The following methods all have the same risk factor of 250. Do you think this is reasonable? Should one of these factors be weighted heavier?

CC Usage Code Coverage Risk Factor
10 50 .5 250
50 10 0.5 250
50 50 0.9 250

For now I'm going to see how I can get the usage and the code coverage numbers automated... I can tweak the algorithm more later.

Vote for out little angel

My wife did such a great job writing this up on Sadie's blog that I couldn't help but post it and plead for more votes.

-Tim

A few months ago, Sadie participated in a "Little Angels" photo shoot for the Leukemia & Lymphoma Society. For a small donation, local photographer Lori Nordstrom photographs your child dressed and posed as a little angel. The pictures are adorable and all donations go to the Leukemia & Lymphoma Society, which made perfect sense to me, so we signed up.

After the shoots, selected photos are then posted on a website where people can vote for their favorite photos with the top 12 vote-getters slated for the 2008 Little Angels calendar to be published this September. Each vote is $1 and, again, all the proceeds go to the Leukemia & Lymphoma Society.

We've spent thousands of dollars on photos of Sadie at this point. Between all the ones we've taken, in addition to all the ones we've had done professionally, I would guess we could support a small village. So, with that in mind, I thought this was a great way for us - and friends and family - to give back.

This is where you come in...Voting closes June 30th. To place your vote:
1) Go to www.picturemyportraitonline.com
2) Enter the event code - angel - all in lower case letters. Click continue when the studio information comes up. When the page with photos opens, scroll down at the top to list 40 photos per page. Sadie is about halfway down, second from the left. "little angel_022" is above her picture. She's the one with the pearls.
3) Then, in order to vote, click on her picture and "place an order," it is $1.00 per vote. You can vote in any amount you want to. The scroll down menu allows you to pick the number of votes you want. Keep in mind all votes are TAX DEDUCTIBLE. It is a direct donation to the Leukemia & Lymphoma Society and will show up on your credit card as such.

You can also pre-order the calendar on this site. Once again, all proceeds will go to the Leukemia & Lymphoma Society. The calendars will also be available at various retailers around the city starting in September.

Thanks, in advance, for your support of this wonderful cause.

Single or Multi Threaded Projects

There are two strategies to complete the things you want to get done:

  1. Start them all at the same time
  2. Work on one at a time until it is completed, then work on the next highest priority

How do you do it in your daily life? If you have a list of tasks that you need to get done which approach do you use?

Let's think about how your company completes project. Which approach do they use? Are they the same?

Let's weigh the Pros and Cons of each approach. Let's assume your team needs to complete 3 similar sized projects (Project A, Project B, Project C) within 3 months.

Start all the projects at the same time (Multi-threaded)

Pros:

All project stakeholders are told their project has started

Cons:

Tracking each project's status is difficult

People on the project frequently have to switch thinking between each project

Each project will take 3 months duration to finish

Don't start earning returns on the projects

If there are overruns, each project is affected

One project at a time (Single-threaded)

Pros:

Only need to track a single project at a time

People on the project are focused

Each project should finish in one month

Project A will earn returns for 2 months

Project B will earn 1 month of returns

Overruns affect fewer projects

Cons:

Project stakeholders are told their project hasn't started

 

Am I missing any Pro/Cons for either of these scenarios?