Keith Rowe's WebLog

Project Management and Visual Studio Team System

  • MSF for CMMI Process Improvement

    We were at the SEI's SEPG conference 10 days ago and announced the second of our MSF offerings: MSF for CMMI Process Improvement. 

    CMMI (Capability Maturity Model Integration) is a method of measuring the maturity of a software development organization.   It's a pretty detailed model that talks about all the aspects of software development from requirements management through technical solution to validation.  CMMI establishes five levels of maturity from Level 1, Initial, through Level 5, Optimizing. 

    MSF for CMMI Process Improvement will provide process guidance, work item schema, default reports, document templates and project roadmaps to allow an individual project team to operate at CMMI Level 3.  We are working with the SEI to ensure that we meet this level.

    Like MSF for Agile Software Development, this will ship with Visual Studio Team System.  Our intent is to show how you can use the VSTS tool set in very different ways depending on the needs of your organization and project.  Our design goal is to make the Agile and CMMI processes points on a spectrum.  Other partners and customers will fill in the spectrum with additional process templates that model the process their application development team uses.

    We'll post early review copies of the "MSF for CMMI Process Improvement" guidance materials on our MSF Workshop later this year.

     

  • Announcing MSF for Agile Software Development - beta release

    First, sorry for the long lag between postings. 

    Second, I'm very happy to announce a fresh update to the MSF v4 material.  "MSF for Agile Software Development" will be part of the upcoming VS 2005 Team System Beta 2 release.  But we just couldn't wait to get your input. 

    With a lot of help from Randy Miller and Rob Caron, we've created a new Workshop area on MSDN.   Workshops are your one stop shop to pick up latest builds, read our blogs and give us feedback through newsgroups - all on the subject of MSF.

    This beta release of MSF for Agile Software Development is nearly complete.  We are doing one more pass over this to add some more overview materials and add some more navigation paths.  We'll post that when it's ready, too.

    Go have a look at http://lab.msdn.microsoft.com/teamsystem/workshop/msfagile/default.aspx and tell us what you think.

    We'll be shutting down the older Got Dot Net site in favor of this MSDN site.  I hope to see you there!

     

     

  • Problems with GDN cleared up - try downloading MSF Agile again.

    I just heard that the problems we were having with GotDotNet have been cleared up.  If you had trouble downloading the MSF Agile preview docs last time go to http://workspaces.gotdotnet.com/msfv4 and try again.

    If you had a pending membership that didn't return, it should have cleared the system by now.

    We've opened up the workspace, so you don't need a membership to download.  You will need one to post comments in the workspace area.  I hope you will give us some feedback!

     

     

  • MSF Agile preview is now available!

    So I'm back from India.  It was hot.  It was crowded. It was chaotic.  But it was fascinating to see how quickly the technology industries are transforming the country.  I met a lot of great people and I learned a lot about software practices, distributed development and even how to keep score in Cricket.

    And now, as promised, I'm pleased to announce that we have the first preview of MSF Agile available.  As I said in a previous post, MSF Agile is one of our new methodologies.  These methodologies will be baked directly into the tool.  By selecting one, you will change the way the source control, work item tracking, reporting, and many other tool features work.  Of course, they are extensible and replaceable if you want to do something different.

    Randy Miller, the principle designer of MSF Agile, is letting me crib his description:

    Microsoft Solutions Framework (MSF) Agile is a scenario-driven, context-based, agile software development process for building and improving .NET and other object-oriented applications. MSF Agile directly incorporates practices for handling quality of service requirements such as performance and security. It is also context-based and uses a context-driven approach to determine how to operate the project. This approach helps create an adaptive process that overcomes the boundary conditions (such as project size and system criticality) of most agile software development processes while achieving the objectives set out in the vision of the project.

    MSF Agile is highly customizable, scalable, and will be fully integrated with Visual Studio 2005 Team System. The tooling and processes will work together to provide a more productive user experience than the process or tooling could provide alone. This is because both tooling and processes are built using the same meta-model. In other words, MSF harvests proven guidance from inside and outside of Microsoft and provides a seamless experience with Visual Studio 2005 Team System for process automation and guidance within the software development life cycle.

    And now (ta-da!) you can go get the zip file and look at what we have so far yourself.  Go to http://www.gotdotnet.com/workspaces/directory.aspx and search for "msf". (Update: try http://workspaces.gotdotnet.com/msfv4 - it should be publically available now). It's a zip file containing a collection of web pages.  Unzip into a convenient directory and start browsing around.  It's not quite complete yet and there will definitely be more changes as we go. 

    I look forward to hearing from you.  The workspace provides a discussion area, or you can post your comments here. 

  • Let me buy you a lassi!

    I'm traveling through India over the next two weeks.  I'll be presenting at TechEd India in Bangalore on 8/4 and again in Chennai on 8/11.  If you're interested in VS Team System and you're in the neighborhood, I'd love to meet you.

    We've got the next version of MSF Agile out for review with some of our partners.  When I get back to Redmond, I'll blog more about how that's coming along.

     

  • Usability testing - lessons learned

    One of the great things about developing products at Microsoft is the access to great tools.  Usability testing is one of my favorite.  Last week, the VSTS team ran a weeklong series of usability tests across the whole product to see what happens when you put regular joes (and janes) in front of the new VS Team System. 

    Usability labs here are very high tech.  One way mirrors, video recorders, machine logging, detailed scripts written and analyzed by human factors specialists.  It can be a bit unnerving to be under the microscope like that.  I was on the shiny side of that one-way mirror once for a test of XBox Live and it's hard to concentrate when you think someone is watching you mess around looking for how to throw a forward pass in NFL Fever. 

    We brought in typical project managers from around the greater Puget Sound area.  These people all work in the kind of IT Application Development environment we're targeting.  Many had 10 or more years of experience and were quite technical.

    We had a great turn out from my team.  About 15 people including program managers, testers and developers all came out to see what real people thought of their work.  It was pretty humbling.  All of us wanted to leap through the mirror and shout, “Don't you get it??? What's the matter with you!!“  But, after taking a deep breath, we all know that it's not the users' fault.  It just shows us where we have more work to do.

    The code is still pre-alpha, so there are a lot of rough spots.  Things we could dance around during the demos caused these poor souls to stub their toes again and again.  We'll be changing some menus, adjusting some of the buttons and generally making it more obvious what's going on.  We have one really interesting design problem to solve that involves how to show people they are interacting with the work item database while they're editing in Excel or Project.  People have a long established model for what happens when you open and edit an Excel spreadsheet and we're adding new stuff here.  I'll talk more about that next time.

    The good news is we have one more round of coding to do before we start heading for beta.  The bad news is that we're already jammed up with a lot to do!  But the team is excited at all the stuff they've learned and can't wait to make it better for next time.

  • Reporting

    On the long list of exciting new features in Visual Studio Team System is our very rich reporting system.

    We are building a single data warehouse with SQL Server that is hosted on the Team Foundation Server.  All the tools are aware of this warehouse and can submit results to it.  We are gathering data from

    • the source code control system
    • the work item tracking system
    • the build engine
    • the test suite manager
    • the code coverage tool
    • the performance monitoring tools

    We will expose this interface and schema so third parties can splice their own tools' data into the same warehouse.

    Then, we use SQL Reporting Services to assemble reports.  Since we have so much data about the project, the range of reports you can build is pretty rich.  Here's some sample reports we can generate with the alpha code:

    • bug find and fix rates
    • test pass/fail reports
    • code churn
    • code coverage
    • requirements and scenario stability - how much have requirements changed per time period
    • schedule progress - tasks completed and outstanding, mapping plan vs actual

    Most of the above can be re-organized by build, by project team, by date as needed.  As we roll out to our own internal dogfooding (using the pre-alpha VSTS on our own team), I expect we'll create a bunch of new reports.  My test manager is salivating at the opportunity to slice and dice this data a dozen new ways.

    Since all the projects on one Team Foundation Server feed into the same data warehouse, we can also devise cross-project reports to compare trend lines among projects.  This work is still in development and we haven't come up with good demos of this feature yet.

    All of these reports can be surfaced on the SharePoint project site that we create for you, so you can publish your reports broadly to the team and to the stake holders.

    We're still crafting the final set of reports that will be in the box.  People are coming to us with great new ideas every day.  What reports would you like to see?

     

  • Methodologies - our process, your process, no process

    Since 1994, Microsoft has had an application development methodology called the Microsoft Solution Framework.  While it's been available through Microsoft Consulting Services and in various MCSD trainings, we've never shipped it in a product.  In Visual Studio Team System, we are including a new version of MSF with several important updates.

    First, we are releasing multiple flavors of MSF.  One process can't work for every project - so we're restructuring MSF with a base definition layer and a series of instantations.  In the first release, we will have two:

    1.  MSF Formal - aimed at larger scale, traditional projects that need and want a lot of “ceremony“ around handing off work products from group to group and phase to phase. 
    2.  MSF Agile - aimed at smaller iterative development projects.  We are very lucky to have hired Randy Miller, one of the big thinkers in the Agile movement, to help us design this version of MSF.  It's still in development so I'll describe this in more detail in future postings.

    Second, methodologies can drive the tools.  We are introducing “methodology templates“ to the toolset.  At project inception, you can select one of the methodology templates stored on your VS Team System server.  This template describes:

    1. the work item types (”bug”, “scenario”, “risk”, etc) and their state transitions - this implements project workflow 
    2. predefined work item instances (“gather all user stories“) to guide the work
    3. check in rules that enforce policy around what a legal check-in looks like (e.g. “all check-ins must be run through a buddy build“)
    4. report layouts used by the data warehouse to show project status
    5. help files that describe how the methodology works

    Thus, you can shape the behavior of the tools so that all team members can easily follow the prescribed methodology.

    But, don't fear.  We aren't shoving this down your throat.  The templates are all editable.  You can create your own or elect to not use one at all.  We're already working with a number of third parties who plan to create their own methodology templates and I expect that there will be lots of them available from industrious individuals who want to show their own techniques.  In my talks with customers so far, I expect everyone will end up editing these templates for their own use. 

    So with VS Team System, we'll let you use “our process, your process or no process“.

     

     

  • What was that about Excel?

    When we started designing the project management features in VS Team System, we had a pretty idealized view of the world.  Project managers would sit in their cubicles and grind away in MS Project.  The resulting tasks would funnel into VS Team System to be handed around to all the rest of the team.  We got pretty far along on that model.

    We knew that internal to MS, lots of people built spreadsheets to track stuff.  But we just chalked that up to the, how would one say, “loose” way that MS engineers sometimes manage projects.  Surely, IT shops would all be using Project?

    Then we went to visit customers.  We were delighted and surprised to see that everyone else uses Excel as much as we do.  So, back to the drawing board, a few more late nights with bad pizza (ok, a lot of late nights), and, voila, Team System integrates with Excel.  I think this is going to be a feature that gets a lot of use in the real world for things like:

    1. Light-weight project management - I don't have MS Project.  I don't want to learn all that stuff.  I just want to write out my list of tasks and track them quickly.  For the impromptu project manager, Excel will be a great way to pull together work items quickly.  And you're more likely to have Excel on your desktop than Project.

    2. Custom views of the project - you can build a query against the VSTS work item database and attach it to an Excel spreadsheet.  Then, whenever you sync the spreadsheet to the underlying database, you get a current view on only the stuff you care about.  It may be a set of tasks or requirements; it may be a special organization of the tasks that matters to you (organize tasks by component or by use case or by team); it may be a custom project management model you're using (like a SCRUM sprint).  All these and a lot more are possible.  And they all sync back to the one true database, so they're always current and up-to-date.

    3. Bulk editing - you need to grab all the tasks assigned to “Bob” and reassign them to “Mary”?  With the Excel integration, you can dump the tasks in a spreadsheet, click the mouse once or twice and drop them back into the database.

    4. Reporting - VSTS will have rich reporting through our data warehouse tied to SQL Server (more on that another day).  But, you might not want to learn how to do all that, and you already draw cool graphs in Excel.  Pull over the work items you're interested in and go nuts!

    Excel integration will bring a lot of flexibility to VSTS project management.  We'll be bundling in some sample spreadsheets, but we expect to see a lot more good ones out there as people explore what this can do.

    Which do you use more, Project or Excel?

  • VS Team System and MS Project

    When we started building the project management features of Visual Studio Team System, we had a lot of pieces to work with, but they didn't fit together very well. 

    The Team Foundation provides a Work Item Database.  It's a significantly enhanced version of the internal tool we use at Microsoft to track bugs in the product.  We've extended it by generalizing it to support any kind of work item you can describe - requirements, tasks, issues, scenarios, features, etc.  We've also pulled it into the VS environment so you can query for a collection of work items you care about, edit them, attach additional information to them, hand them to other people on your team, etc.

    We also saw that MS Project is great at manipulating collections of tasks, tracking dependencies, and building out work plans.  But when you've built the project file, it's challenging to get everyone on your team to read it and it's hard to keep it current as people actually complete their tasks. 

    We saw the opportunity to integrate these two pieces and make a better solution for everyone.  If you have both VS Team System and MS Project Professional, you can build a query to assemble a list of work items of interest (usually tasks, but it could be other things).  The results of that query can then be loaded into MS Project so you can load balance the team, edit the individual tasks to assign out to team members, calculate start and finish dates, reorganize to your heart's content and then publish.  When you publish, all the edited tasks are brought back into the VS Team System database.  Now, other team members can see their assignments, even if they stay in the IDE all the time (like good developers should :-) )

    And we can track changes.  As developers, testers and other team members complete work, they can update their work items from the IDE (or through Sharepoint).  The project manager can open her project file and with a resynch, she gathers all the updates to the work items she's tracking.

    It's a very powerful mechanism to keep projects and teams in synch with each other.  As we roll out pre-alpha, we look forward to seeing how you all will use it to co-ordinate and communicate your project plans to the team.

  • Announcing Visual Studio Team System

    Yesterday, Microsoft announced the new Visual Studio Team System.  This new offering will allow teams of developers, testers, architects and project managers to work together in designing and shipping great solutions.  There are new tools here for all those groups and a new system to allow all these people to communicate what needs to be and what they're doing.  You can get a good overview at http://msdn.microsoft.com/vstudio/teamsystem.

    My name is Keith Rowe and I'm the Product Unit Manager  focusing on the project management tools within VSTS.  I'll be talking about how our tools allow you to create new projects, move from requirements to scenarios to tasks in the project plan, distribute work items to all your team members, track their progress and build many rich reports.  I'll be showing how we integrate VSTS with Sharepoint, MS Project and Excel to make this easy and seamless.

    Another major component of the VS Team System is our support for methodologies.  Out of the box, we will support two new flavors of the Microsoft Solution Framework - MSF Agile and MSF Formal.  These methodologies provide specific guidance on how to move projects through the lifecycle and, more importantly, they reconfigure the rest of the VSTS tools to encourage the team to follow the steps.  I'll be explaining all this in much more detail.

    We've announced the product, but we're still a long way from shipping.  I hope to hear from everyone out there to understand how we can make these tools work for you.

     


© 2008 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker