Understanding XP in Simple Way
XP contains four phases that can be worked onsite or global (it's called Global Extreme Programming). The four phases are exploration, planning, iteration, and production phase. Each iteration provides one or more artifacts. Artifacts are usefull document that support the software development. Frankly speaking, artifacts are anything except the codes itself. In XP, there are user story, task, bug sheet and others.
User story captures the requirements of the software in ecploration phase. User story is detailed in planning game session by creating several tasks. In casual way, each user story will create several tasks. In iteration phase, user story and task will be assigned to a team member. The team creates codes and test it based on the tasks ownership. The task is finalized by doing unit test and integrating it with others. The code is tested by several tester using the user story list. The tester posts bug in a list and the bug will be solved by the developer. The iteration phase will be executed iteratively until the software quality can be accepted by the stakeholder. It happens iteratively so each working component will be integrated in production phase. Production phase will become a final phase for a user story to be tested and validated.Adopting XP in TFS
In this section, it will show you step by step to apply XP in your software project. This section assumes you already has online TFS. This article will limit eploration and planning phaseCreating a project in your online TFS.
and sign in using your Microsoft Account. After sign in you can visit your personal TFS url. Your TFS URL should be https://(name
).visualstudio.com. You can click the link and select New Team Project as shown in Figure 1
Figure 1. Team Foundation Service
In create new team project dialog you can write your project name, your description and your template. In this article, we choose template MSF for Agile Software Development 6.1 as shown in Figure 2. After the project creation, you can navigate a project page.
Figure 2. Creating a projectComposing team member
Team member is anything that collaborate with your application, include your customer. Team roles in xp are tester, interaction designers, architects, project manager, product manager, technical writer, developers, users, executives, and human resources. If you have limited team member, you can adopt the combination tricks. For example, product manager with project manager. However, it is important to avoid double role as developer and tester. Developer and tester should dedicated in XP for quality purpose. In this step, at least you add the product manager, interaction designers, architect, developer, tester, and technical writer. For better productivity, it is recommended for them to use same Visual Studio version.You can add the member by a manage all members link. After that you can add a single user or a TFS group. Connecting the team member to TFS
This step somewhat simple. Each member should login with his own Visual Studio and choose connect to Team Foundation Server. It can be selected through a Visual Studio Homepage as shown in Figure 3.
Figure 3. Connect to Team Foundation Server
You should put your TFS URL as mentioned in Step 1 and click ok without bothering any input such as port and others. The login dialog in Microsoft Account login will be displayed. After login, Visual Studio will let you choose the project as shown in Figure 4. You can click connect and the Visual Studio will display a Team Explorer to manage the project.
Figure 4. Project Selection in Visual Studio Creating user story
This is a vital step in XP, you should create user stories to the system as a main requierements. The user story creation can be done through Visual Studio or Team Foundation Server. In this article, we will create it by using Team foundation server.
You can visit your personal project page in TFS and start to create a user story by clicking user story menu as shown in Figure 5. You can use as a <role> I want to <action> so that <benefit> . In the detail you can describe the detail of the story.
Figure 5. User Story Sample
The user story should be assigned to someone. You will see a dropdownlist in status field. The state will be New, Closed, Removed, Resolved, and Active. New is a state when the user story still in design, the new state will be escalated to active state when the team works the story. The story will be closed when team already finished the story. It will become resolved when need additional inspection. Removed state is happen when the story is dropped by the client during the execution of the project. Never feel overwhelming with the state in XP you can use New, Active, Closed, and Removed only. You can fill in a reason field for additional description.
Planning and classification can be done later in Planning Game session. Before Planning Game session, we should complete our analysis first through a storyboardCreating a storyboard
Everybody love story. Therefore, storyboard will help team to understand the proposed solution. Storyboard is a collaboration activity in exploration phase. In TFS, you can use Powerpoint as a storyboarding tool. In order to do that, select the Storyboards menu and click start storyboarding as is shown in Figure 6. TFS will invoke Powerpoint for you to start storyboarding activity. You can also use existing document that you already created (e.g. word document, visio, etc) by pointing the url of the document.
Figure 6. Storyboard Menu
PowerPoint gives you a getting started shape for storyboarding. You can start to use the shape without building from scratch. Figure 7 shows a sample of a storyboard. The storyboard should be saved in internet. You should save the file to OneDrive, Sharepoint, Azure, or your own website that can be accessed thorough http. It is ok to build one storyboard in one PowerPoint file for a simple app (let say Windows Phone App). However, when your application consists of several sub system or modules (let's say you build a portal). You should build the storyboard for each module. The key of storyboard is depedency, when you find a feature that is quite complex and independence, you can build separate storyboard file.
Figure 7. PowerPoint Storyboard SampleThe Planning Game
The great collaboration in XP team start from here. Planning game do estimation for each user story in the backlog. There are two main activities in planning game which are estimating and planning. Estimating discusses the complexity of the story and gives a points to them. A points is adjusted through a poker cards as shown in Figure 8. There is a good estimation technique that already discussed on MSDN at here http://msdn.microsoft.com/en-us/library/hh765979.aspx
. Poker card gives you an insight about user story points and its risks.
Figure 8. Poker Card (Courtesy of MSDN)
The planning activity classifies an user story to an iteration. Iteration is an activity where a team creating tasks, tests, and codes. The iteration in XP is considered as a checkpoint of the development. For example, we have 20 days of development. Therefore, we called 20 days as a release plan. Release plan means a set of features that should be delivered on a project. The release plan consists of a checkpoint milestone called an iteration. If we put 10 days for each iteration, we have two iterations for a release.
The information about story points, risks, and iteration can be updated to the user story dialog in TFS. In this step, I encourage you to fullfill points and risks in each clear user story, you can also changes a state of user story to active when you are ready to work on it.Creating an iteration
An iteration will help the team to know what to do right now, and tomorrow. The iteration can be created in TFS by following these steps.
Visit your project HomePage. In the Tab Administration, you can select Configure Schedule and Iterations. In the dialog, you can set the estimation date, numbers of iteration, and the details of iteration. TFS will help you to set the same iteration length after you input the first iteration. Figure 9 shows you an iteration dialog
Figure 9. Managing Iteration in TFS
After creating an iteration, the team can allocates the user story into the iteration. One way to do that is by visiting a backlog dialog and modify each stories toa specific iteration. You can see the Work menu, select Backlog, and then Board sub-menu. Click the user story and after that you can change the user story iteration in the classification dialog. Figure 10 shows a board on TFS
Figure 10. User Story BoardExecuting the Iteration
Now it's time to start coding by finishing the user story. You can add tasks when necessary. Task is a detail of activity to finish the user story. XP never push you to focus in user story and others artifacts more than the codes. if you feel enough, its time to develop the codes. We will discuss the iteration and production phase in the next phase and in the next article. Conclusion
This article is the first part of applying XP method. It focuses in exploration and planning phase. In this artile, we already develop a user story, create a plan, and develop an iteration. In the next article we will discuss the execution and monitoring activity using TFS and Visual Studio.References
- Team Fiundation Services
- Visual Studio 2012 ALM
- Creating user story in Visual Studio
- Getting Started with TFS Online