How do I create a Release Plan?
- Use an Excel template calculator to enter all your work items specific to the release including the estimates on the particular work items (enter estimates in days)
- Run a test please on the Release
- When the Release is approved by the client create a Release Plan in TFS and publish the excel to SharePoint.
We also set our SharePoint document library's default template to be this file to allow developers to find it easily.
NB: It would be great if TFS Web Access had functionality to add standard items to a Release (aka iteration)
Why Microsoft Project isn't recommended
- Tasks are auto scheduled based on dependency and resource allocation (who is assigned to it). This generates an estimated completion date which is never accurate, due to annual leave, public holidays and general shuffling of people in the team
- It gets the summing wrong (the totals don't seem to update and no way to trigger it)
- It's hard to synchronize with timesheets (as it doesn't connect to 3rd party timesheet systems out of the box – however, it does have its own time sheeting system, that is missing billing information!)
You cannot allocate two people to a task. This create a lot of additional overhead to get it right. **fixed in TFS 2008**
How to create a Release Plan
Figure: Use SharePoint Document Library Template for creating consistent ballpark Figure: Read the instructions about how to use this template
Figure: Use Menu Calculator to understand the common estimates
Figure: Use Resources sheet to assign resources
Figure: Use the Release sheet to enter all the work items and calculate ballpark
Finally, you should copy and paste this Release sheet into an email and send to your client. Before that, make sure you talk your client through it first.
Figure: Send the ballpark by Email
Winning the Project- Publish these Work Items to TFS
- Open Visual Studio
- Create a new Project in Team Explorer
3. Define new Iterations

Figure: Accessing the Areas and Iterations menu from your project in Team Explorer
Figure: Add appropriate named iterations
4. In SharePoint, open your Release Summary
5. Create a new Worksheet in the same Workbook for your release plan. Rename it to "TFS Work Items"
6. From the "Team" ribbon tab, click "New List"
7. Select the Team Project you Created

8. Click "Input List". This will connect Excel to TFS, and allow you to enter Work Items to be published

After you do this, it will generate a worksheet that looks like this:
9. Click "Choose Columns", and make sure these columns are selected in the following order:
a. ID (will be included automatically);
b. Title
c. Baseline Work
d. Work Item Type


10. Copy the first four columns of the release summary onto a blank section of the TFS Work Items work sheet

11. Delete the Resources and Hours per resource column

12. Cut the Task and Man Hours column and paste it into the input list. You MUST use “Paste-Special”, and select Values, otherwise you will get an error.
13. Set the "Work Item Type":
a. Subheading/Categories are considered "Scenarios" in TFS
b. Work Items are set as "Task"
14. Click the "Publish" button from the ribbon.

The Initial Release Plan is a summary of the work required to complete the client's project and provides a ballpark estimate. The Initial Release Plan will contain the following elements:
- Figure: Remember, a batter aims to hit the ball way out of the ballpark. Don't set an indefensible boundary too early
- An architectural roadmap recommending technical solutions
- Time allocated for further specification work to be included in each Release. At SSW we only create detailed specifications for 3 releases at a time
- A breakdown of the required software application into its core components, likely to include the approximate number of main features (e.g. screens, reports or sitemap)
- An integration plan
- A deployment strategy
- A 'future functionality' wish list - requiring the client to set the priorities for the project through defining what is in and out of scope
- A detailed list of 'issues' associated with the existing system which impact future development and maintenance
- Hardware and licensed software recommendations
- A sample mock-up screen where the project is less than one month
Sample Initial Release Plan
- Release 1 (1.5 man months) - Database schema design
- Release 2 (1.5 man months) - Development Module 1 Customers
- Release 3 (1.5 man months) - Development Module 2 Products
- Release 4 (1.5 man months) - Development Module 3 Orders
- Release 5 (1.5 man months) - Development Module 4 Suppliers
- Release 6 (1.5 man months) - Development Modules 5 Employees
With the Initial Release Plan, the client can see whether SSW understands their business and the requirements for their software development project. The ballpark estimate allows them to decide whether the project is feasible for their budget and time-frame.
It’s important to have clear options for how a client can engage your services. You need to be clear on any differences between them in both billing and project management. SSW offers both fixed price and time and materials contracts although all specification work is done on a time and materials basis.
- Time & Materials: We work to your specification, billing for the number of hours we accrue. The benefit of this type of development is flexibility – you are able to add, remove and reprioritise development tasks during development.
- Prepaid Time & Materials: Time and Materials clients have the option of a prepaid discount – buying blocks of 40 hours per resource in advance entitles you to a $15 per hour discount on the hourly rate of each developer. You should see the specific terms on our Terms & Conditions.
- Fixed Price: Fixed price contracts necessitate having a specification signed off before work commences. This spec can't be altered, so additional items must wait until the fixed price contract is completed. The benefit of this type of development is that your expenditure is fixed. Fixed price projects are charged at a 20% premium to the project cost based on the standard hourly rates.
In VSTS 2008/2005, the MS Project integration was very bad. You cannot publish your hierarchies with your work items. In VSTS 2010, this had been fixed. With the native support for hierarchy work item support in TFS 2010, all of your work in MS Project will be published to TFS 2010.
Figure: VSTS2010 has better MS Project integration support - you can publish your hierarchies to TFS now
An internal architecture review is the application of the Test Please principle against the design phase. An architecture review conducted during every release minimizes errors in design which saves future rectification costs.
Schedule a 4 hour (2 architects x 2 hours) review during all releases. While it may not be so important to conduct a review in every development release, they are compulsory for a specification release.
The following are items that are address in a architecture/code review:
Background information/overview of the project
- Current system
- Objectives of the system
- Number of users (internal, external, edit, read only)
- Current technologies
- Current environment (SOA, SOE)
Points for discussion
- Rich client
- Web client
- Smart client (any disconnected users?)
- Technology choices
- Persistence layer (SQL Server, Access, SQL Express, LINQ, netTiers)
- Business layer
- UI
- Communications
- Workflow
- Integration - external systems
- Requirements for 'package' software
- PerformancePoint
- Reporting Services
- Accounting packages
- SharePoint
- Data migrations
- Data reporting
- User experience
- Network
- Responsibilities/players
- Infrastructure
- Deployment
- Staged implementation
- In parallel
- Development/Test/Staging/Production
- Disaster recovery
- Change control/source control
- Build Server
- Performance
- Scalability
- Extensibility
- Design patterns
- Maintainability
- Reliability (failover servers?)
- 'Sellability' i.e. is the solution appropriate for the client?
Enterprise Architect
- should have a datetime of the last time the diagram was modified so we have an indication of when it is out of date
- should have the ability to mark items as ‘todo’. E.g. it would be nice to have an indication of which items on the diagrams have been completed, and which are still pending
Avoid monolithic tasks. Ideally all tasks should be less than 4 hours. If you are given a task that is going to take days, then split it following this rule.
Subject: Create a Silverlight prototype with web services
Figure: Bad example – This is a monolithic 2 day task Email #1 Subject: Silverlight prototype - Create a web page with firstname and lastname textboxes, a save button (and remmed out code to later call a web service)
Email #2 Subject: Silverlight prototype - Create a table for customer with firstname and lastname and any other fields required for this table
Email #3 Subject: Silverlight prototype - Create a web service with the customer CRUD methods
Silverlight prototype - with firstname and lastname textboxes, a save button (and remmed out code web service
Email #4 Subject: Silverlight prototype - Create methods on webservice exposed to client
Silverlight prototype - with firstname and lastname textboxes, a save button (and remmed out code web serviceFigure: Good example – The same monolithic task, broken down into 4 smaller tasks
The findings of the Spec Review (the Initial Release Plan) should be presented at a meeting with the key decision makers of the project for review and acceptance, generally in the form of a PowerPoint presentation. It is important that all the required people are in a room together to review the Initial Release Plan.
Figure: It's a lot easier to get a signature when you've got the right people in the room
If you've run the Spec Review successfully the client should not be surprised by anything you present. This means discussions should focus on issues such as what particular requirements could be added into the scope in the first phase, or what releases can be completed by what date, rather than spending the meeting helping the client regain consciousness after they blacked out from seeing the price.
The Spec Review presentation should be scheduled by the Project Manager or Account Manager for the afternoon of the final day of the Spec Review.
“I will send you a proposal when I get back to the office.”
Figure: Bad example – a common mistake is to tell the client you will complete it later
“Let’s schedule a meeting now for Wed 2pm. I will send a meeting invite to all the stakeholders.”
Figure: Good example – this is an appointment with specific time for the next schedule
The benefits are:
- You are striking while the iron is hot
- All parties benefit while the information is fresh in their minds
- The client wont experience the inevitable delays when you go back to the office and get stuck on other client issues that appear more urgent
What does the client get at the conclusion of the Spec Review?
- An email, or
- A Word doc, or
- A PPT presentation (recommended)
Once again, the presentation needs to pass a 'test please' from another senior employee before the meeting takes place.
Have you ever received an email from your customer to ask you to add a new requirement for them into your TFS? Do you just go ahead to do that? Yes, that's ok but actually you should encourage them to do this by themselves. See the different response below: Reply "Can you please use TFS Web Access http://xxx/"
Figure: Bad ExampleReply "I have added your task - here is the URL http://xxx/ Next time, you might want to enter it yourself. Save this URL to your IE favourites please. Note: You can also use SharePoint, Excel or Project if you like."
Figure: Good ExampleOnce the client has approved the initial release plan you can immediately start work on the detailed release plan. As you will already be in a contractual relationship with the client it is not absolutely necessary to issue a new proposal for the commencement of Release 1. Agreement for the initial release plan can be verbal with a confirming ' as per our conversation' email from the Project Manager.
A common question for every project manager is "where is my project at"? This question isn't just asked to find out how many tasks are done, but also to understand if all these tasks are done to meet users' requirements.
TFS2010's Agile Template provides a built-in "Stories Overview" report to help you find out where the project is at, as well as to tell you if all the tasks are well tested.
Figure: The developer says he is 90% done... the report shows 25% tested, but 0% passed!
Tip: Set this up on a daily schedule so the Scrum Team get this in their inbox each day.
Suggestion for Microsoft #1: Add a Summary Number in large font at the top, eg. 55% complete.
Suggestion for Microsoft #2: Add this great report to the Microsoft Scrum TFS Process Template.
Where are we at?
TFS’s Stories Overview Report is the best tool to solve the common question project managers ask the developers “Where are we at?”
The problem with the answer is that developers almost always say 90%
@AdamCogan
Need to know $$$, read Do you get regular updates on costs and progress (aka Project Progress, Burndown, Story Overview)? to see which reports you need to get a complete project progress overview.
How much is too much?
An over simplified way of differentiating Agile methods from Waterfall methods is to say Agile does the least amount of preparation required to get something into production, while Waterfall does the most. Taking into account commercial realities we think an agile approach is preferred. But the question remains, for your specific project, how much of the whole project do you need to know in detail before you start coding?
Figure: Schedule time to dig a little deeper. There's always another layer to uncover
The answer varies from project to project and those with the responsibility to provide the answer are the architects on the project - subject to peer review. Having said that, our standard is to schedule specification time in every release, especially time to complete (and review) screen and report mock-ups.
You should use the SharePoint portal in VSTS2010 because it provides you dashboards to monitor your projects as well as quick access to a lot of reports. You are able to create and edit work items via the portal as well.
Figure: SharePoint portal in VSTS 2010
"User Stories" is the new name for "Scenarios" in VSTS 2010, it allows you to collect your user requirements more easily by providing you a template for the title and streamlined UI.
As a <type of User>
I want <some goal>
so that <some reason>
Figure: User Story - template for title
Figure: User Story - Work Item form
Software should be developed in Releases. A Release is a detailed list of work items which will be developed over a 2 week period and 192 hours/24 days of resources time:
- Two developers/system architects working full time
- One Project Manager working 2 days per week
The work items are all the tasks required in that release (including all the specs, forms, mock up screens, and the business rules/customer stories related to those tasks.)
- Figure: Create the Ball Park
The term "release" implies the unit of work is delivered at its completion, but delivery can be either public (i.e. to the client) or private (i.e. just to the development/test environment). The more frequently we delivery releases publicly the better the application will be.
What do I need to include in a Release?
Releases contain two main types of work:
- Work items relating to the particular release (e.g. Create Customers.aspx). We call these Project specific Work Items; and
- Work relating to all releases (e.g. specifications, management, administration, testing, fixes, software audit etc.). We call these "Required Tasks".
Each type of work makes up (generally) 50% of the total project time, meaning each taking 12 days.
Each project has an agreement on the scope of the project; the project manager will break down this agreement to a task list. The task list and agreement is the baseline for the whole development process.
Whenever you receive an request from client, you must:
- Check if the task is in the scope of the agreement/task list before adding to TFS.
- Add the original requirements from the agreement/task list to task description before assigning to developer.
- Check if you can find the original task from agreement/task list.
- If yes, work on this task to implement the original requirements.
- If not, you should send a out of scope note to your project manager with the reason, and give the estimate for this extra work. An alternative is to send this note to your client directly, let them know that the work is out of scope and extra cost is required.
- For those tasks that you are not sure, send them to the project manager with your comments.
Make sure you don’t do any extra work out of the scope. Any extra work should be approved and paid.
Project Specific Work Items
- (e.g. Create Customers.aspx)
- 12 days
Required tasks
- Further specification (including screen and report mock-ups): 2 days
- Unit tests: 1 day
- Testing: 1 day
- Fixes from testing: 2 days
- Software Audit: half day
- Fixes from the Software Audit: half day
- Project Administration: 1 day
- Project Management: 2 days
- Unknowns: 1 day
Projects will change and deviate from the original scope – that is a given in software development. Having the ability to understand the impact of slotting in a new request into the sprint is gold because you can tell management that "If we do X now that means we can’t do Y and Z in this sprint and it will push back the release by another sprint" with the data to back that up. Project Server 2010 gives you that ability with the "Tracking Gantt"
Figure: Project Server 2010 Tracking Gantt tells us the deviations from the baseline estimates
The designer’s job should be defined:
1. Overall PSDs – “concept mockup” (Wakefield)
2. Slice into HTML and Images - “HTML mockup”
3. Make the CSS files for the HTML – “HTML styling”
4. Give back to the developer
Working together is important otherwise:
- Avoid Designer vs Developer
- Designers like it to be perfect, so their designs have the presentation intended
- If they are working they are more understanding and you avoid
- e.g. It is not perfectly centred
- e.g. This pixel is out of alignment
- e.g. Colours are not right... this is 1 shade off due to compression
Figure 1 - How designers work Figure 2 - What happens when the mockups are given to developers
It's been called 'herding cats'. Managing the project team and keeping the client well informed during the release development phase is critical. Keeping development of the release on track involves maintaining transparency on the important variables of project management: time, scope, budget and quality. This is achieved by maintaining a strict project schedule with particular activities taking place regularly like clock-work. Some activities are run internally; some are run with the client.
| Day |
Internal activity |
With the client |
| Monday |
|
|
| |
| Tuesday |
|
|
| |
| Wednesday |
|
|
| |
| Thursday |
|
|
| |
| Friday |
|
|
Figure: Only with a strict project schedule can the manager coach the team to success! Just like a car, applications need servicing and tuning every now and then to stay in top condition. They might need alterations to deal with new business problems, or just tuning to increase efficiency based on changing user patterns.
Different clients need different levels of support. You should offer a number of different support offerings for clients.
Judging how long a project will take is a difficult task as there are many factors to consider like resourcing, leave and blowouts. A client will often ask for a proposal or ballpark for the project. It is very difficult to give them price for a large project without first conducting a specification review.
A Specification Review is paid work conducted after the initial meeting to determine the overall scope, feasibility, and ballpark costs of the project (ie $50k or $500k). We encourage you to also create a detailed "Release Plan" for the first 2 releases. eg. Mr Northwind learns that the idea he presented at the initial meeting will cost approximately $80K and he has to determine if that is feasible to his business or if he will trim the functionality to better manage the cost.
Figure: A ballpark or proposal should start small and not be a big commitmentFrom this initial meeting the ballpark is 6 months and $200K+GST Figure: Bad example - big scary figure From this initial meeting we will first need to conduct a specification review. This first step is $10K - Requirements Workshop (2 x ½ days) - Specification Review (example image)
We will scope out the next two releases. Figure: Good example - work in small chunks of work with details about what you will do
Open conversations
- Figure: Have a frank & open interview style meeting with a data projector to get everything out on the table
The Specification Review is conducted by two experienced developers at the client premises in close consultation with the client. The time allocated for a Spec Review is generally 1 - 5 days depending on initial expectations of the project. The rule of thumb is 1 - 2 days Spec Review per estimated month of project time. The purpose is to understand the whole project but, if the project is greater than six months, focus primarily on the first six months. The Spec Review is a process that will demonstrate to the client whether you have the commercial sense to understand their **business** and have the technical and management capacity to complete the project.
Talk Business Process
- User Story Workshops: Conduct workshops with different groups of users (e.g. management, back office, customer service) to build the "user stories" which the business wants. This ensures you get all users get their say. Some "nice-to-haves" might actually be quite easy to implement. User stories can then be prioritised and fleshed out.
- Review Documentation: Reviewing any documentation the client may already have. Remember clients are mostly looking to software consultants to assist them in solving business problems.
- Technology: Warning: Detailed discussions about technology with the client, unless they have a specific business purpose, are unlikely to be useful. For example most clients won't be interested in a discussion about whether to use MVC or ASP.NET traditional at this stage.
Do something valuable
Most experts at software consulting will be able to provide a small improvement to the current system 'on the fly' during the Spec Review. This may be something as simple as adding an index to a table and thereby increasing the performance of a webpage.
Use 'Corridor Conversations'
- Figure: Use corridor conversations to prevent nasty surprises
While the information collected and the conclusions of the Spec Review are presented formally at the end of the Review it is important that the Project Manager convey key points to the client as they emerge through the course of the Review. The formal presentation is NOT the time to be presenting new information to the client. Formal meetings can have an Us vs Them feel. Addressing key potential sticking points of budget and technology informally during the course of the Spec Review relieves the potential for unwelcome surprises during the Spec Review presentation. Canvassing the issues beforehand in casual 'corridor conversations' clears the decks for an agreement, rather than increasing the risk of heated discussions if you surprise a client at a formal meeting. For example, ask the client "building the cube will add around two months development time, shall we leave this out of the current scope, or do you want it in?" Remember, no politician challenging for the leadership ever calls a vote before he or she knows the numbers; you too will avoid presenting a solution at a meeting if you aren't convinced the client is already agreeable. Through the course of the Spec Review the client will by aware of at least the following:
Budget ballpark indications expressed in terms of man months
Each man month for senior software consultants is generally tens of thousands of dollars. Squabbling over $500 here or there in the ballpark phase is a level of detail neither side can be confident of. Clients needs to be realistic about what they get for their money.
- "Now that we've spent a few days speccing this out, we believe the solution will take approximately 6 months which is $204,000+GST"
- Bad Example - Far too firm a price when you don't know any of the detail
- "Now that we've spent a few days speccing this out, our projection is the project will take a minimum of 6 man months (around $200,000+GST) to complete but this may change depending on what is finally agreed in the Specification. The price will vary depending on resources used and the time that elapses over testing.
We propose to do a $10,000 spec review and firm up a price for the first 2 releases."
- Good Example - leaves some wriggle room at these initial phases
Technology options
At this stage you want to consider the most relevant technologies. For example SSW will likely pursue recent Microsoft technologies. Some clients might want to do their own research or need some time to think about their options before agreeing to newer technologies.
Proposal
You should follow Rules to Better Proposals when documenting a Specification Review.
Test Please
The Project Manager must run a test please by other senior staff before anything is formally presented to the client.
As long as you have work items created and your developers keep them up to date, you can use MS Project to calculate project budget usage in real-time; this helps the project manager to determine the progress in term of $ which is what client really care about.
Note: To have this working properly, you need VSTS 2010 because it has better MS Project integration.
Calculate the total cost for your release:
Follow the steps below to save a baseline and track your project budget usage:
- Open MS Project and connect to your Team Project
Figure: Click “Choose Team Project” and choose the project you want to track
- Query the work items from the team project
Figure: To select the work items that you want to use you should click on “Get Work Items” and choose a query.Note: normally you want to create queries for each of your Releases, then you can quickly import them together.
- To Track progress, we will use the “Team System Task Sheet” view; this can be selected from the “View” menu.
- Your work items will be imported and arranged within a hierarchy. As we are trying to track the progress, we want to keep “Original Estimate”, “Remaining Work” and “Completed Work” together, so drag them after the Work Item Title.
Figure: Arrange your work items so we can easily track their progress
- In order to have the cost calculated, we need to assign a rate to each of the resources. This can be done by going to “View | Resource Sheet”
Figure: Assign resource rates
- When you switch back to “Team System Task Sheet”, you will want to add the following fields so we can see the cost status;
a. Baseline Cost
b. Remaining Cost
c. Actual Cost
You will notice the “Remaining Cost” column has been calculated based on the “Remaining Work” column and the Rate we entered for each task.
Figure: Showing the cost columns
- In order for MS Project to calculate and display a total cost for your current release you will need to add a summary task at the top level of the project tasks.
Choose the 1st task in your project, right click and create a “New Task”
Figure: Create a summary task at the top Name the task as per your release name so you know what this plan is for; also you don’t want this task to be created in your TFS as a work item because it’s just a summary, set “Publish and Refresh” as “No”.
Figure: Don’t publish and refresh this summary task In order to make this a summary item you need to select all the other tasks and indent them. To achieve this click the little red forward arrow in the toolbar.
Figure: Indent tasks Now, your summary task is ready and it’s showing the total cost for your current release: Figure: Total cost is calculated
Baseline management:
Baseline management is very important for every project manager as it helps you to determine the budget usage; once the client approves your initial estimate for the project it will become your baseline. So before you set a baseline in your MS Project, make sure the client approves it.
To set a baseline, choose “Tools, Tracking, Set Baseline” from the menu: Figure: Set Baseline … Figure: Choose “Baseline” and click ok
A handy feature of MS Project is its ability to handle multiple baselines. Use a new baseline to seek approval from clients when they alter the project scope.
Once your baseline is set, you will be able to see the “Baseline Cost” column is showing $, Figure: Baseline Cost is showing $
Track your project on the go
When your project is running, your developers will update the “Remaining Work” and “Completed Work” columns from TFS, they may not use MS Project so you will need to refresh your MS Project file to get these changes, and the $ will be calculated on the fly to give you up-to-date status.
To refresh your project file, simply click on the “Refresh” button in the toolbar. Figure: Click the “Refresh” button to update your project file. Figure: Budget usage is calculated. Note: If you find that the values are not calculating properly, it may be that the calculation mode is set incorrectly. If pressing F9 updates the values you should change the setting “Tools | Options | Calculation” from “Manual” to “Automatic”.
Figure: set the calculation mode to “Automatic”Also make sure “Actual costs are always calculated by Microsoft Office Project” is enabled.
Encouraging your team to evaluate their peers is a proven method to improve working environment and productivity.
All peers that worked together should evaluate each other by filling the Peer Evaluation Email every month.
The evaluation is done by ranking from top to bottom and giving constructive comments in “Start, Stop, Continue”
e.g. (Start...) checking in with better comments
e.g. (Stop...) coding without a user story
e.g. (Continue...) with your helpful SEO comments
Note: Comments must have an option to be anonymous.
If you do not rank a listed peer it means that you have constructive comments to give them but are not qualified to assess the person’s value
e.g. an admin person evaluating a technician and vice versa; or a work experience person new to the company who feels qualified to give comments only.
Unless you are working under an ad-hoc basis you should always be working from a signed release plan. At the start of each release put together a release plan which is then sent to the client for approval. Arrange an appointment (subject "Debrief: Project Name") for your project manager to come in and do a review in 2 weeks. This doesn't set unrealistic schedules, but puts pressure on the developer to have something done by then. Check out what you can do when using Microsoft SharePoint and TFS on file management, such as creating, uploading, and sharing documents with other people. SharePoint and TFS allow collaboration from Developers, Project Managers and other stakeholders.
Quickly store important details:
- Server details (Dev, Test, Production)
- Usernames/Passwords for testing accounts
- Change logs
- Upcoming features
Documents
- Requirements/Specifications
- Mock-ups
Additional Information
- Server settings
- Username/Password
Figure: Bad example – Local directory, emails and working papers aren’t safe solutions to keep your files
Figure: Good example – TFS is where you should keep your files
Figure: Good example – SharePoint is where you should keep your files
|