Thursday, October 25, 2007

Agile Development and Requirements Tracking

I'm currently in the process of building a business-case for wider-adoption of Visual Studio Team System and Team Foundation Server within our company. During this process, I've come to learn a couple of things:

  1. Agile Development ROCKS - I've stated before that I believe any Business Intelligence project is going to be best served by an agile process, and since my life over the last year has been deeply rooted in business intelligence, I've been living this. Having had to stick my head up over the wall and take stock of what others are doing, I can only say that I am so happy that I'm doing what I am... :)
  2. Agile is not for everyone! - This is a well-known fact, but it bears repeating here. Many development teams have their lives dictated to them by a series of requirements and are used to functioning in that manner. They tend to want to know exactly what they're building when they start.

One of the big differences between Agile projects and more traditional methods is the way in which requirements are gathered and tracked. In an Agile project, requirements are thought of in terms of business scenarios, which can be related roughly to use-cases. While in the requirements phase of an Agile project, Product and Project Managers spend the bulk of their time developing the scenario. The process generally looks like this:

  1. Product Manager interviews potential customers to determine basic functionality. Product Manager compiles customer feedback into a series of "things" that they want to accomplish with the product.
  2. Product Manager writes a business scenario for each of the high-level "things" that the customer wants to accomplish.
  3. Project Manager examines each business scenario and gathers input from the team on how difficult it is.
  4. Project Manager takes a SWAG (if you haven't heard this term before, WikiPedia it - second bullet under initialism) as to how long each scenario will take.
  5. Product and Project Managers negotiate a rough development schedule that everyone agrees will change. (This bullet is by far the most important one in the process and is the number one cause in my opinion as to why Agile isn't for everyone!)

For this reason, the Microsoft Solutions Framework (MSF) for Agile process template that is included with Team Foundation Server does not include a "Requirement" Work Item type. Over the next few days, I'm going to be spending time adding the CMMI "Requirement" WorkItem type to the Agile template and customizing the linkage between a scenario and a requirement.

Wednesday, October 24, 2007

Visual Studio Team System Resources

I was doing a bit of research today and hit Anton Delsink's blog and found this very nice mind map of Visual Studio Team System resources. If you are looking for something that has to do with VSTS, this is what you need!

Tuesday, October 23, 2007

Managing Documentation Projects in TFS

The Work Item Tracking (WIT), Tools and Reporting team for Microsoft Visual Studio Team System has created a blog post on their experiences using TFS to track documentation (as opposed to code) projects. Interesting stuff. Check it out here:

Team Development with Team Foundation Server

The Microsoft Patterns and Practices team has recently released the "Team Development with Visual Studio Team Foundation Server" guide. It's chock-full of great information to get you started with TFS.

There's so much content and extra "stuff" available for Team Foundation Server, so it really shouldn't surprise me when I come across something that I've not seen before. What's irritating about *this* particular guide however, is that it's something that I really could have put to serious use over the last couple of months...

There is a page on CodePlex that describes the guide here:

Oh well.


Monday, October 22, 2007

Server Requirements for Team Foundation Server 2008

As anyone who knows me has come to realize, I'm a huge fan of Microsoft Team Foundation Server. I can't really explain in a simple post why it is that I like it so much, but I can say that most of it comes back to the fact that the TFS toolset is almost invisible. I don't have to go out of my way to interact with source control or the project portal, it's just there when I need it...

With TFS 2008, Microsoft has improved performance and operation to the point that they have come out with a new set of hardware recommendations. Brian Harry has blogged about the requirements here:

Friday, October 12, 2007

Agile Project Management

One of the tenets of agile Programming is "working software", which can be interpreted any number of ways, but always boils down to the fact that agile developers should plan on delivering a "shippable" build more frequently than developers using traditional methods. This actually puts a lot of focus on the agile project manager, because they need to more closely monitor both the quality of code as well as the coupling of code to other systems and services. In my experience, most project managers tend to look at agile development methodologies and classify them as valid for small projects. They tend to ignore them for larger projects, which in my opinion is a huge mistake.

Service Oriented Architectures and Agile Projects

When Service Oriented Architecture (SOA) started becoming the buzzword in the software industry, developers began to look at their products and made a concerted effort to break the components into building blocks that were all disconnected from one another yet functioned together as a whole. This process fits well with the object oriented world, and most development toolkits and patterns take SOA for granted these days. In my opinion this same transformation needs to occur in the Project Management world. Project Managers need to do the same thing with their projects. Break them down into sub-projects and then look at each of those as a candidate for using agile development methodologies.

Decoupling and the Agile Manifesto

Remember that the Agile Manifesto states that customer collaboration should be valued more than contract negotiation (which in this context means that you let the customer drive your requirements as opposed to developing to a strict set or predefined ones). This is very hard for many project managers to accept, but can be very helpful when trying to decompose, or decouple larger projects into smaller, more agile ones. Take for example a highly-coupled software system (say that it performs a configuration management function) that has a 1 year development cycle for each release. Trying to switch the entire project to an agile-based methodology would be doomed to failure. Decoupling both the software components and the projects around them however stands a fair chance for working well in the Agile world.

Thursday, October 11, 2007

MDX Studio CTP Release

One of the issues that we face in the Microsoft-centric Business Intelligence world is the fact that the tools (From the client stack all the way to the development environment) make things relatively easy for the "happy path" (That place where most of the people want to go) but any time you step off that path, you really have to interact with the MultiDimensional Query eXpressions (MDX) language. To say that MDX is complicated would be tantamount to saying that the Grand Canyon is deep.

Fortunately, Mosha Pasumansky (The "father" of MDX) understands this, and has recently released a tool to assist developers that need to interact with MDX. The tool is called, "MDX Studio" (imagine that!) and is available for free download from the new Microsoft Live skydrive service here:

Here's a screen shot of MDX studio running on my laptop:


Wednesday, October 10, 2007

SQL Server Reporting Services and SharePoint Integration video

The geekSpeak session that I did last month has been posted to Channel 9. You can view it here:


geekSpeak - SQL Server Reporting Service with Ted Malone

Listen in on this geekSpeak where expert Ted Malone shares his real-world experience implementing SQL Server Reporting Services and more.  His company Configuresoft has created a a product built out around all of Microsoft's BI and collaboration tools. 
Ted in an architect and developer who works with SharePoint, SQL Server Analysis Services, SQL Service Integration Services and, of course, SQL Server Reporting Services. 
Co-hosts Glen Gordon and G. Andrew Duthie get listener questions to Ted.  They also engage in a useful discussion of 'What is BI?'
Demos and discussion also includes the what, why, when and where of SharePoint and SQL Server Reporting services integration, data and collaborative tools all working together.  His talk also includes information about the BDC, or the Business Data Catalog.

Visual Studio Team System - DBPRO Power Tools

I have been very busy over the last few months in the Business Intelligence world, so I've been sort of neglecting the work that my friends over on the Visual Studio Team System team have been doing (Fortunately there's no good technical editors that read my blog or I'd probably get dinged for that last sentence!). Back in August, the DBPRo team released the Microsoft Visual Studio Team System for Database Developers Power Tools, which includes some very nice functionality for the Database developer who wants to move into the Agile world.

Chief among the features that are added to DBPRO with the power tools is something I've been harping about for a LONG time, and that's the ability to build a dependency graph directly in the development environment. This is especially helpful when you're trying to track down the impact of any refactoring changes.

Other tools delivered with this add-on are:

Code Analysis

• Static Code Analysis - A precursor to the functionality that will be in future versions of VSTS that will allow you to perform Static Code Analysis on T-SQL code.


• “Move Schema” Refactoring - Allows a user to right click on an object and move it to a different but existing schema
• SP Rename Generation - Generate a new script that will contain sp_renames for all rename refactored objects that the user can then execute.
• Wildcard Expansion - Automatically expand the wildcard in a select to the appropriate columns.
• Fully-Qualified Name Support - Automatically inject fully-qualified names when absent in a script
• Refactoring extended to Dataset - Refactor into strongly typed dataset definitions

MSBuild Tasks

• Data / Schema Compare Build Tasks - MSBuild tasks that can generate scripts as if the user had run the Data / Schema compare UI

Schema View

• API Access to Schema View - Insert / Update / Delete to schema View and list schema objects and their associated files

Miscellaneous Tools

• Script Preprocessor - Expand SQLCMD variables and include files and command line version (sqlspp.exe) & an MSBuild version ( wraps the command line version )

Changes to Microsoft Office SharePoint Server 2007 Licensing

Well, this apparently escaped my notice last month.. Microsoft has quietly relaxed some of the restrictions on MOSS 2007 licensing. One of the things that larger customers were faced with was the fact that you could not legally include both internal (intranet) and external (Internet) content on the same SharePoint farm. Well, according to the License FAQ, now you can:


Accommodation for simultaneous use of server software under Office SharePoint Server 2007 and Office SharePoint Server 2007 for Internet sites:

The same software is licensed under Office SharePoint Server 2007 and Office SharePoint Server 2007 for Internet sites under different use rights.  Office SharePoint Server 2007's use rights support private intranet sites and require CALs for licensed access, while Office SharePoint Server 2007 for Internet Sites does not require CALs, but does require that all content, information and applications be accessible through the internet to non-employees.  Please refer to the Product Use Rights (PUR) document for these products' use rights.

As an accommodation for possible deployment scenarios, customers wishing to consolidate their SharePoint needs under a single deployment may acquire licenses for both products, assign those licenses to the same server, and use the same running instance of the software simultaneously under both licenses.  However, customers must acquire CALs as required under the Office SharePoint Server 2007 use rights for users and devices accessing content in any manner not permitted under the Office SharePoint Server 2007 for Internet sites use rights.  

Tuesday, October 9, 2007

SharePoint 2007 sizing tool by HP

One of the biggest challenges faced by organizations that are deploying the latest generation of server-based products from Microsoft (SharePoint, Exchange, SQL Server, SMS, etc) is that Microsoft appears to have the idea that hardware is cheap and their customers are willing to spend whatever is necessary to deploy the latest and greatest.. Back in the "old days" (you know, when 64K RAM was all you were ever going to need) we focused on memory and CPU speed. I remember teaching SQL classes where I'd comment that you treated SQL server just like an airplane, "If it doesn't fly fast enough, just put a bigger engine on it". (Of course that was always said in jest, but unfortunately it was a strategy that was employed all too often)

These days, it's all about matching the IO subsystem to the application that you're running on the server. Memory and CPU speed are *almost* a byproduct. When customers purchase our product, we spend more time educating them on the IO subsystem that any other aspect of the hardware acquisition.

Well, it appears that HP is recognizing this trend as well, and (to give them credit) they're trying to stay out in front by offering a new tool to assist organizations that are about to deploy SharePoint 2007. The tool, which is available from HP as a free download (but does require registration), is pretty cool and does a good job.

Installing and Running the Sizing Tool

After you download the tool from HP, unzip the executable and run it. (If you're running Vista with UAC enabled, you'll need to answer the annoying UAC prompt). The tool takes a few moments to install, and then you'll be prompted to install the StorageWorks IO sizing tool as shown below:


Once the tools are installed, you execute them from the program files shortcut, which will launch the "sizer home" as shown below:


Basically the tool is a wizard-based tool that asks a few questions and then uses your answers to figure out the best deployment strategy. In my case (selecting a typical use-case for our Configuration Intelligence Analytics solution) the answer is:


Once I agree that a single-server solution is the right one for my SharePoint deployment, the tool calculates the total cost and generates a "pick list" for the server components as shown here:



Nice to see that the hardware vendors are picking up on the fact that people really do need to spec out the entire server, not just the CPU/memory configurations.

Wednesday, October 3, 2007

Big news from Microsoft - aka WOOT!

This is just fantastic news. Microsoft announced today that they will be releasing the source code libraries for .NET 3.5, *and* they'll be allowing integrated VS 2008 debugging on the framework itself..

Simply put, WOW