Many projects and teams are moving from the waterfall methodology to agile. As the iteration cycle of agile is intended to be shorter, there is a stronger focus on work vs schedule. A major tool of choice for project managers is Microsoft Project - and making the agile transition may have its complexities - and today we'll address one of those.
Most MS Project files default to manually schedule tasks based on duration and allocation. While this is a valid approach, many developers use the Kanban tool for the agile process - which assigns hour estimates to tasks. It would be much more convenient if everything matched.
Fortunately, there is an easy way to do this using macros in MS Project.
The first step is to ensure your project file is macro-enabled. Then open the visual basic editor (alt+f11) and create a new module. Inside the module, you can use the following code:
Sub ConvertAllSubtasksToFixedWork() ' Macro ConvertAllSubtasksToFixedWork ' Wed 4/7/10 by Wirz, Christopher R For Each t In ActiveProject.Tasks If Not t Is Nothing Then If t.Subproject <> "" Then SubProjId = t.ID ElseIf Not t.Summary Then SelectRow Row:=SubProjId + t.ID, rowrelative:=False ' Set to fixed work SetTaskField Field:="Type", Value:="Fixed Work", AllSelectedTasks:=True ' Set to auto-schedule SetTaskField Field:="Task Mode", Value:="No", AllSelectedTasks:=True End If End If Next t End Sub
What's next? Go ahead and try it yourself in your own projects that are transitioning to agile. You can also download the .bas file to get started faster.