(Planning the project)
Hi all, and sorry for the slow updates. My new job has had me so busy that I have not found any time at all to work on my plant watering project. In addition, with the release of Visual Studio 2013 the gadgeteer project that I had going no longer works, since the .Net micro framework and Gadgeteer APIâ€™s need to be upgraded for the latest version of Visual Studio! I also need to get a new mainboard for the project as the one I have does not support WiFi!!
Visual Studio Online â€“ The project planning tool
Today, I want to tell you about using Visual Studio Online (VSO). Thatâ€™s the new name to â€œTeam Foundation Serviceâ€ which was introduced a while ago.
VSO is free to use in projects up to five people, and if you are an MSDN subscriber, you do not even count towards those five. So, for all your hobby needs, you should need no more than this to get started on your next project. I will look at the agile planning part of VSO today, so this is not only for the .Net people!
Let me repeat this:
It does not matter what language you develop in, or even if you are a developer at all. VSO is a purebreed project planning tool that will see your Agile project needs fulfilled!
When you plan a project, you typically have some different areas and concepts that need to be defined. These areas, or features as theyâ€™re called in VSO (â€œepicsâ€ in Jira) allow you to group together a set of user stories for which you plan your work. My Water My Plants (WMP) project is split into the following epic parts:
Using features, itâ€™s easy to find a home for all the backlog items in the project. As you can see from the image above, I have 6 main features in my WMP project, each with their set of backlog items. For a more general LOB application, you could have features such as â€œinvoicingâ€ or â€œmapsâ€. Some books describe epics as user stories that represent too much work for one single sprint.
With the above list of features done, I can easilly just change viewmode to â€œfeatures to backlog itemsâ€ in order to start planning the user stories. This viewmode basically adds a huge plus-sign to the left of the highlighted feature and clicking it add a new user story below it. You can see in the next image that Iâ€™m working on â€œWindows Azureâ€ and setting up some work that needs to be done there:
Backlog items are user stories, and not tasks. In a large project, you would plan for the features and backlog items together with the stakeholders of the project (such as the company owner, project lead etc) and once youâ€™ve got a Product Backlog, you order it by priority so that the developer team can start planning their work.
The sprint planning process is identical to backlog creation; assemble your developers, and walk through the backlog items having selected view â€œBacklog items to tasksâ€.
As you can see, now youâ€™re clicking the big plus-sign on a backlog item in order to define what tasks need to be done in order to deliver the backlog item. The tasks are described and estimated. The smaller (in time/complexity) the task, the better, because smaller tasks are easier to estimate. Your team commits entire backlog items (with all the tasks) for a sprint â€“ as may as they think they can manage in the alloted period.
It is important to remember that your team commits entire backlog items to the sprint, and not individual tasks! I canâ€™t begin to tell you how many times I see teams trying to deliver individual tasks in sprints. This gives no value to the stakeholders, because as long as there is a missing task to the backlog item, then it cannot be delivered and tested.
Once your team has planned enough tasks to last the duration of the sprint, they can now focus on the work getting done, and follow their progress on the burndown graph.
What I like about VSO is the clean interface, and tight integration with Visual studio. Inside Visual Studio, I have a prioritized â€œAssigned to meâ€ query that has been put in my team page:
Clicking on this gives me the work items that are either bugs or tasks todo or in progress. I can then easilly associate each check-in with the task that I was working on. The order of the tasks is, as youâ€™d expect, the order of priority that I arrange the backlog items that the tasks belong to.
Systems like these are the recepy for success in any modern software project. I honestly believe that VSO has no match because of the tight integration with Visual Studio and MS Office.
(you can hook up Excel to this just as easilly).
So there you have it, this is how my plant watering project is managed on a larger scale.
– and lets hope that the APIâ€™s for working with Gadgeteer comes to Visual Studio 2013 soon!