public static T Generate <T>()
            where T : PipelineConfiguration, new()
        {
            var self = new T()
            {
                SourceConnection = new ConnectionInfo()
                {
                    CollectionUrl = "http://localhost:8080/tfs/DefaultCollection",
                    ProjectName   = "yourSourceProject",
                    User          = "******",
                    Password      = "******"
                },
                DestinationConnection = new ConnectionInfo()
                {
                    CollectionUrl = "http://localhost:8080/tfs/DefaultCollection",
                    ProjectName   = "yourTargetProject",
                    User          = "******",
                    Password      = "******"
                },
                PipelineStages = new List <string>()
                {
                    "step1", "step2"
                },
                StopPipelineOnFirstError = true,
                TestOnly      = true,
                Logging       = LoggingLevel.Diagnostic,
                ChangeLogFile = "changes.csv",
                LogFile       = "log.txt",
                // let them say
                AreasAndIterationsStage = AreasAndIterationsStageConfiguration.Generate(),
                GlobalListsStage        = GlobalListsStageConfiguration.Generate(),
                WorkItemsStage          = WorkItemsStageConfiguration.Generate()
            };

            return(self);
        }