Susan IbachTechnical Evangelist
Visual Studio with TFS is more than just for coding, you can use it for the whole lifecycle of a project. In this post we’ll explore how you add requirements.
If you haven’t got TFS yet, you’ll want to check out this post on getting started with TFS so you can set up your project, then you can start adding requirements
Regardless of whether you are doing Agile or Waterfall methodologies for your application development, you need to capture the requirements for the app you will be building. Let’s take a look at how to add requirements in TFS. Those requirements become tasks we assign to the programmers on our team.
In this blog we will see
If you are already comfortable with this topic scroll down to ‘How do I add a User Story in TFS’
In Agile methodologies we capture requirements with User Stories. A User story basically describes something a user wants to do. For example:
Customers can check in for a flight
Customers can book a flight
Customers can select seats for a flight
Now remember in the real world, these user stories come from the stakeholders/users/customers not the developers! When you are doing a class project you might act as the stakeholders, but in the real world or maybe even in some class projects you might have someone such as a business analyst interviewing users and collecting the user stories.
Please, please remember, the number one rule of gathering requirements
User stories capture WHAT the system can do. User stories DO NOT capture HOW the system will do it!
As developers we have a bad habit of jumping straight to the how and thinking of a requirement as ‘there will be a web service used to allow seat reservations’ THAT IS NOT A REQUIREMENT! Did I say that loud enough, should I increase the font size? I used to teach requirements courses and this concept however simple is something that many developers struggle with. A user story simply states what the users will be able to do when they use the completed system. There is nothing in a user story about using SQL Server, or clicking on a menu item, those all describe ‘HOW’ something will be done. User stories are all about what can a user do. The idea is that the users tell you what they need the system to do by providing you with these user stories. Nobody knows what they need the system to do better than the users who do the work every day. After you have collected the use stories, that’s when you, the programmer, figure out the best way to do it (the how).You have the technical knowledge to figure out the best way to implement their requirements (web services, classes, databases, etc…)
Chances are your user stories will evolve as you get further into the project. One user story might get broken down into multiple smaller or more specific user stories, priorities for different user stories change, and new user stories are identified. I can pretty much guarantee your first list of user stories is wrong. That’s not because you didn’t do a good job collecting them, it’s just the nature of colleting requirements. I have NEVER been on a project where the requirements did not change. So don’t expect to get all the user stories exactly right on your first attempt, it can’t be done! Someone will neglect to mention something, or there will be a user you didn’t talk to who knows about some weird requirement no-one else deals with, or a brand new requirement will come up part-way through the project. Your goal is to get the requirements good enough to get started and to make sure your project is agile enough to handle the new requirements and changes when they happen.
Okay so you have your user stories, either from meetings with your users, or if you are doing a class project, maybe you got the user stories from a little brainstorming with your classmates. Now it’s time to enter the stories in TFS.
You can enter the requirements using the browser, that’s important because remember in the real world, you often have business analysts collecting the user stories. A Business analyst probably doesn’t know anything about Visual Studio. This way, anyone with a browser who is added to your TFS project can add new user stories, Visual Studio is not required to add a User Story.
Go to your project page in the browser and select Add a User Story. For more information on TFS and User Stories read up on MSDN
On the User Story Details page fill out the fields. The most important fields to fill out are title, priority/rank and Story Points.
Title – is the short description of the User Story
Description and History can be used to provide more details about the user story
Assigned To – is the name of the person assigned to own the user story (that doesn’t necessarily mean the person who will code it, it means the person who best understands and can answer questions about that user story, or who can talk to the user about that user story)
Rank – is just a number you assign could be 1-10, 1-5 that gives it a rank vs other user stories
Story Points – is a number you assign, could be 1-100, could be 100-1000, that gives an indication of how much work you think it will be. This is relative to other user stories. So it doesn’t matter if you assign 20 points or 50 points to the first user story. What matters is if you have another story that is twice as difficult you assign it double the points. If you have a much easier user story the story points should be proportionally lower.
Priority – should indicate level of importance to the user from 1 –4 (1 is the highest priority)
Area and Iteration – leave at their default values for now, when you are ready to plan what will be built when, that’s when you will assign values to these fields
After you add the User stories, they will appear to the assigned user in Visual Studio in the Team Explorer window, if they expand “My Work”
These user stories are also added to your project backlog, which you can view on your TFS project page by select “View Backlog” from the Activities menu.
The backlog allows you to see all the work that is waiting to be completde on your project. There are different ways to view your backlog on this page. For example, you can see the backlog per iteration or per assigned user.
So I can now enter all my user stories in TFS. Next up we’ll look at how you create tasks for the user stories so you can assign the actual work associated with coding a user story to members of your programming team.
Don’t forget students can get Visual Studio Professional for free at DreamSpark and anyone can get Team Foundation Service for up to 5 users for free. Professional tools at no charge? What are you waiting for?
Team Sano from the University of Calgary took home the KFC Russia award at Microsoft Imagine Cup worldwide finals. Their project will be featured at the Kentucky Fried Chicken flagship Store in Moscow and they received a $10,000 cash prize.
“We are sitting we are nervous thinking we will get it, we wont get it, we will get it, you can never tell and suddenly they said Team Sano, and we were just sitting and suddenly they said from Canada and we started shouting we went to the stage and it was very very nice, very exciting.” – Omar Addam, Team Sano.
It’s hard to put into words the atmosphere at the Imagine Cup worldwide finals awards ceremony. But I’ll try. First you have to understand the bulid up.
There are 71 countries and over 80 teams at world finals. Each team was selected as either top in their country or because they were outstanding in their category. For the past 3 days these teams have sacrificed sleep and any non-essential activities. Instead they are putting the finishing touches on their projects, demos, and presentations.
When I went to bed at 2 AM (the white nights and time zone changes mess you up), there are students still working. When I got up at 5 AM, students were asleep on bean bag chairs, or hard at work updating code and practicing pitches.
Most of these students have already spent 6 months, a year, or more, working on their projects, if one more sleepless night will help them win at the world finals, then it’s worth it.
Matt Smith (aka Dr Who) was our MC for the evening and had a chance to see a few projects before the big night (you can read his interview on The Next Web). When asked what he thought of the work by the students, he said he was impressed. He arrived expecting paper volcanoes, but instead saw a project from Uganda that is using a phone to help diagnose Malaria.
Each team has a 10 minute presentation to a panel of four judges. Each judge gets 15 minutes (timed to the second!) to visit your booth and see the project first hand. After that there is nothing more the students can do. You would think they would catch up on sleep, but they are surrounded by other brilliant students from around the world who are just as passionate about technology as they are. Don’t forget we are in St Petersburg, Russia, so they take part in an amazing evening of cultural activities that includes getting your picture taken with a live bear!
Meanwhile the judges have deliberated, decisions have been made.
We arrive by bus to the stunning Alexdranski theatre. The teams are sitting on the lower level clutching their flags. A nervous chatter abounds. Emotion and tensions run high. This is what they’ve been working for, this is the moment where they find out if that hard work has paid off. Whenever a presenter walks on stage to announce the winner of a category, there is a hush shortly followed by a few screams as the winning team realizes they have just been called to the stage. Of course when Team Sano from Canada was announced there were screams from the balcony as well, I was more than a little excited!
So what happens next? Well Team Sano won the KFC Russia Award. That means they get $10,000 and their application will be featured at the KFC flagship store in Moscow. The team from KFC is really excited about Team Sano’s work. They can’t wait to start working with the team!
Congratulations Team Sano! You worked hard, you earned this! I can’t wait to see what happens next!
Thank you HTC for sponsoring the Canadian finals, and Alberta Innovates for your work encouraging teams like Sano to take part.
Today Canada’s Team Sano presented to the judges, then had time to recover before they meet the press tonight.
9:45 AM that’s the time Canada’s team Sano drew for their presentation to the judges this morning. We arrived at the check-in desk on time at 9:30. We waited outside the room, Team BearClaw from the US was presenting before us. When they finished we entered the room. Team Sano, OmarTamer have 10 minutes to get set up and ready to go. At 9:50 Omar begins their presentation and finishes with about 45 seconds to spare. For the next 10 minutes the judges (A Bulgarian, and a venture capitalist from California among others) ask questions. Then the team has 5 minutes to pack up and leave the room so the next team can start.
And we’re done. That was fast! Well we aren’t completed finished, tonight the teams will be showing their projects to the many members of the press attending and tomorrow the team has hands-on judging. Each of the four judges will spend 15 minutes at the team booth getting a chance to try the application first hand. After the hands-on judging it’s all in the hands of the judges so the team can finally take a minute to relax.
There are lots of different ways to take a break at the event, I thought I’d share a few pics to give you an idea of what it’s like on the ground this week in St Petersburg. Keep an eye on #ImagineCup to keep up with the latest news!
Team Sano from University of Calgary is in St Petersburg ready to present at the Worldwide Imagine Cup Finals in St Petersburg, Russia!
Imagine an event with teams of students from 71 different countries each with an incredible project to share. Some teams have built games, some have built great business ideas, some have built projects to help others. What they all have in common is a love of technology and a passion to do amazing things with technology. Welcome to Imagine Cup Worldwide finals.
Team Sano, from the University of Calgary is representing Canada this year in St Petersburg: Omar Zaarour, Omar Addam, Tamer Jarada, Fatemeh Keshavarz and their mentor Reda Alhajj. Unfortunately Fatemeh was not able to attend the finals in person, but her work will be respresented by the rest of the team.
Today started off with a briefing on what to expect over the next three days, followed by a group photo of all the students. A brass band played, streamers flew through the air as students from across the globe cheered and waved their flags. Then there was just enough time to grab a bite to eat before the jet lag started to take it’s toll. So now the team is getting in one last review and some sleep. Tomorrow at 9:45 AM they will present to a panel of 4 judges in the first part of the judging. Tomorrow night they’ll get to demonstrate their project to the over 100 members of the press in attendance.
There’s no rest for the wicked, and there’s no rest for the students at Imagine Cup for the next 72 hours. We’ll keep you posted as the event continues! Follow the Imagine Cup world finals on Twitter hashtag #ImagineCup to keep up with the latest news! The competition is tough but Sano is ready! Go Canada Go!
Windows Azure education grants allow you to use Windows Azure in your courses and the students do not need to enter any credit card information.
Microsoft provides grants for educators who want to use Windows Azure in their courses. When you receive a grant you receive Academic passes for you and your students. The educator gets a 12 month pass and 5 month passes for the students (valid from the date they are redeemed.)
You can apply here. You can find an FAQ here
You do need to sign a gifting letter to ensure compliance with all applicable government gift and ethics rules.
Help your students explore the potential of cloud computing, apply for an Azure education grant today
You can’t get an education grant, but anyone can try Azure for free