6

I just had a little discussion about this with a few coworkers but we did not come to a conclusion yet. We have a bunch of projects that are actively maintained and developed using scrum, with fixed two week sprints, TFS backlog integration, etc.

We also have a separate project, called Mobiltec.Framework, which is intended to be an extension to the default .Net framework (most of our projects are C# projects). This utility project is intended to support every other project in the company with general functionality not bound to any specific product, and is located in it's own TeamProject in TFS, independent of any other projects.

We are in the process of starting anew with this one, in a migration to TFS 2013, and I immediately wondered:

What TFS process template will I use with this?

This is obviously specific to TFS, but I think the question stands generic enough: what is the best method to use to develop such on-demand utility project? Scrum makes absolutely no sense to me for it. Features are rarely added to it, and it is quite stable. There is no concept of sprint, and we don't have a special team to handle the project at all (any developer in the whole company could theoretically add things to it, if they are not product specific).

I feel there should still be a backlog of sorts with tasks / user stories mapped to it to at least track what is being done, but I fail to see how I should integrate this in the whole agile pipeline. Should I just completely ignore the 'iterations' idea (both conceptually and in TFS) and just develop and release directly from the main source, creating user stories and bugs along the way?

Is there an example of a project like this, in which the functionalities are all on demand and there is no intrinsic concept of sprints or iterations, on which I could base our project on?

  • Do you need to track the work of those developers who will work on this project??Please more information on how much you need work items' tracking (tasks, features, backlogs, bugs, change requests). Scrum has its own work item structure and dependencies, there is a very new good feature in TFS 2013 scrum template called 'feature' and which is mainly for portfolio building and can be very helpful for you. So, what exactly do you want from TFS? Its version control or work item tracking or both? – saakian Feb 27 '14 at 17:57
  • @saakyan I'd say I need everything but iterations. Notice that this is not so much about the TFS template as it is about using scrum/agile itself. The only thing that really makes no sense at all in our situation is the static time divisions for iterations. – julealgon Feb 27 '14 at 18:48
  • 1
    You can look into Lean Software Development and Kanban. You can definitely have your backlog and bugs which you can track using the Kanban board. – Aziz Shaikh Feb 28 '14 at 12:43
6

In Team Foundation Server 2013, there are 3 templates available for team project by default

  1. Microsoft Visual Studio Scrum 2013
  2. MSF for Agile Software Development 2013
  3. MSF for CMMI Process Improvement 2013

All of them agile enough to accommodate your needs, but I think the first two are more convenient. The Scrum template is designed to support the Scrum methodology as defined by the Scrum organization. However, if your project should not deliver value in iterative and incremental way configured by sprints and iterations, you are free to not configure them at all.

In TFS 2013, there is a command 'Configure schedule and iterations...' for each team project. You can leave this part without configuration and use the scrum template just for writing and tracking work items.

The only thing you need, is , while creating a new work item, the iteration should be the project itself. E.g. if you create a task for Mobiltec.Framework, the iteration of task will be Mobiltec.Framework, and not Mobiltec.Framework->Release 1->Sprint 1. By doing this, you may create queries with a clause 'Iteration->>Mobiltec.Framework' and have all the user stories, bugs, tasks in one place.

You may also customize each project template according to your needs using this.

Besides this, in TFS 2013 you may have different teams working on the same project and can see each team's contribution to the project.

Hope this helps

  • This is nothing I did not know about, but I'm certain it would be of help to a lot of people. This is actually our current approach. I just created the project yesterday and chose the scrum template for consistency with our other projects and also the fact that it tracks bugs by default, which is nice for such kind of project, but I'm planning to ignore the iterations aspect completely. – julealgon Feb 28 '14 at 13:48
  • @julealgon yes you just have to ignore them – saakian Feb 28 '14 at 15:03
4

I would suggest taking a look at MS kanban 1.0 template. Which is more of a continuous delivery process instead of iteration based approach.

  • That's interesting, never heard there was a template that used just kanban, I'll certainly take a look at that later on. Do you happen to know if there is an updated version that uses VS/TFS 2013? – julealgon Mar 12 '14 at 13:50
3

This question raises a big question to me - is this actually a project in itself, or something that will be altered as part of other projects? If the latter, it may not need anything around it other than source control.

Removing the TFS element from this question, Kanban is an agile methodology without time boxing that could be applied. These situations are where you need to look to the agile principles, rather than processes, and come up with a solution that fits your needs. You could approach this from starting with something similar to Scrum and remove the time boxing if this is where your experience lies, but you will need to consider how you will ensure to progress on the project (if that is important).

  • It certainly is a standalone project in my mind. We have various projects in our company, each mapped to a Team Project in TFS, and all of them should heavily use this library project. I can't see how we would maintain it as a "project inside another project" at all. I think it might even be possible that we publish this project on public nuget for instance. I feel it is generic enough for that. – julealgon Mar 12 '14 at 13:52
2

You can use the Kanban boards attached to each backlog for a continuous flow process.

https://msdn.microsoft.com/en-us/library/jj838789.aspx

One minor issue:

In VSO (I haven't tested on latest on-premises TFS), these boards work with Story / Feature / Epic items (Agile process) and Feature / Backlog Items (Scrum process). It means that the Task boards, showing individual Tasks per Story swimlane, still sits within Iterations / Sprints.

2

As others have said, kanban seems like a good fit based on your criteria. I would also highly advise you to ignore tools and management software when first considering how to most effectively work. :)

Edit: I think that starting with a specific tool or tech places too much of a constraint on the initial view of the work, and will limit the potential approaches. It will also often (unfortunately) remain a constraint and the team will conform to it rather than vice versa. A classic example is management or stakeholders wanting to have a specific view of the work being done, such as a dashboard, and requiring all teams within the org to use a "standardized" project management tool that shows them this view. This tool's workflow and local team view/data will then be forced on the team and will constrain them, which can even influence their culture and view of themselves as an org (never mind the command-and-control/lack of trust issues it exhibits). By starting with no tool constraints, the team may come up with a great way to manage and view their work locally, and then translate it into another tool by syncing once a week, etc. so that both parties' needs are met. Hope this helps clarify. :)

  • Can you explain the reasoning for the recommendation that tools and management software should be ignored? That would further strengthen your answer, I believe. – Iain9688 Jun 15 '15 at 21:13
1

In my opinion you need to make a custom template, strip it off a little bit. Take agile template. Leave only two item types, just like in kanban: "Card" and for instance "Bug/Problem" just for type separation. Then you have only one iteration as mentioned before which is project root. Next, you make a parking state "Pending/Backlog" and other states for in progress (process steps to deliver item). Think that covers basic simple utility approach as you need Kanban for sure.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.