Wednesday, February 24, 2010

Use Case Points for Project Estimating

Use Case Points is a project estimating technique that helps you to determine complexity level of use cases, human participants, non-functional requirements, and software environments (Cohn, 2005).

Due to the rapid development nature of SharePoint, I think Use Case Points may be an efficient estimating tool for large SharePoint projects which are being formally managed. Such projects typically have an upfront investment in business analysis and likely have documented outputs including use cases. Use cases can be written like a sequential script of steps and exceptions to explain various ways that the system will be used. I think use cases themselves provide a great deal of value on a portal or search project because they provide greater visibility and detail about the requirements of the solution.

So, taking an artifact (use cases) that might already exist for a SharePoint project, you can simply use this information and apply the Use Case Points technique to gain other insights about time and cost estimates for the project.


Clemmons, R. (2006). Project Estimation With Use Case Points. Retrieved February 24, 2010 from http://www.stsc.hill.af.mil/crosstalk/2006/02/0602Clemmons.pdf

Cohn, M. (2005). Estimating With Use Case Points. Retrieved February 24, 2010 from http://www.methodsandtools.com/archive/archive.php?id=25.

Koirala, S. (2004). How to Prepare Quotation Using Use Case Points. Retrieved February 24, 2010 from http://www.codeproject.com/KB/architecture/usecasepoints.aspx.

Thursday, February 18, 2010

Ten Reasons Why I Love VMWare for SQL Server

Sometimes it seems as if there is a "do not virtualize SQL Server" echo in the SharePoint community, at conferences, and events. For many practical reasons, I reject this sentiment and believe that SQL should be one of the first roles to virtualize.

Here's ten quick reasons:

1. Storage - SAN storage, local drives or ISCSI drives. Storage can grow as requirements change.

2. Performance - Yes, SQL Server requires a lot of resources, but if you use resource governor in SQL Server 2008 and later you can control a lot of the spikes. In a virtualized environment, the pool of shared resources provides good spillover coverage for member servers.

3. HA - VMotion. Enough said. Sure, you can still leverage SQL native HA features such as clustering, replication, log shipping...but hardware failures occurring at a local site can be covered seamlessly with VMotion and require far less configuration at the DBMS level.

4. VMWare Snapshots - Right-click and snapshot before making configuration changes. Big sigh of relief for QA processes.

5. VMware Templates - Build an operating system, template it, re-use it over and over again.

6. SAN Snapshots - Many of the current storage arrays, such as Dell EquaLogic, ship with snapshot capabilities.

7. Centralized Management - Yeah, I like being able to access the whole farm from one console and monitor what is going on, quickly remote into systems.

8. Disaster Recovery - Advanced features to help facilitate remote site recovery. Several more layers of data and configuration protection than physical environments.

9. Physical to Virtual - Drivers aren't an issue, capture and protect important systems that happen to be running on legacy hardware.

10. Little Conveniences - How about an ISO drive where you can store and back up all of your ISO images for operating systems, software applications, etc.

Wednesday, February 17, 2010

Program Evaluation and Review Technique (PERT)

Having worked in many different types and sizes of companies, I have always found there to be a great variance in how long it takes to accomplish certain tasks. For example, one organization might have lots of hardware at it's disposal, while another might need to order hardware. Or, another good one is the task of setting up DNS records. I've been in places where I can simply log into Active Directory myself and create what I need without hesitation, while other places can take upwards to a week to get a DNS record pointing to an IP address.

Whatever the case, the majority of the time it is the company's processes and resources that define how long something takes.

This week, I've been using the Program Evaluation and Review Technique (PERT) to estimate the duration of an extranet portal project. Fortunately, I have a very good sense for the company's processes so I can factor these things in fairly accurately. Still, I really like to include PERT calcualtions in my project plan because it allows me to factor in optimism and pessimism and come up with an accurate duration.

With PERT you calculate a weighted average by doing this:
Optimistic Time + (4 * Most Likely Time) + Pessimistic Time / 6 (Schwalbe, 2009)

So, if I wanted to estimate the time it takes to spin up some virtual machines and configure a SharePoint 2010 Farm completely from scratch, I might do something like this:

3 workdays + (4 * 5 workdays) + 10 wordays / 6
Result = 7.5 workdays


Schwalbe, K. (2009). Information Technology Project Management (6th Edition). Boston: Course Technology.

Issue: Windows Server 2008, JavaScript Blocked on Internet Explorer


On a Windows Server 2008 system, JavaScript is being blocked in Internet Explorer.


1. Open Server Manager
  • Start > Control Panel
  • Programs > Turn Windows features on or off
  • Server Manager
  • Put the cursor on the root node called, "Server Manager"

2. Turn Off the Internet Explorer Enhanced Security Configuration for Administrators and Users.

Wednesday, February 10, 2010

FAST and Windows: A Blessing for Innovation

In a recent post on the Microsoft Enterprise Search Blog, Bjørn Olstad (CTO of FAST) published a post titled, Innovation on Linux and UNIX, which explains the longer term technology strategy for FAST with respect to supported operating systems. The post describes an increased focus of innovation for the product, for Windows operating system installations, while gradually deprecating support for Linux and Unix installations.

I can sort of understand the negative reactions to this announcement and the notion that customers may turn to other search platforms to maintain their Linux/Unix operating standards. However, I believe that this is a truly good decision by Microsoft, which will result in a higher quality product.

The reality is; in order to push innovation of the search platform forward beyond its current boundaries of functionality and performance, it is an inherihent requirement that the low level levels of the architecture be tightly bonded with the operating system. By not making this long term decision, a forced common denomintor is then imposed on the platform at higher levels of the architecture, ultimately inhibiting the product. Multiple OS support for installations actually sets the platform back. We've seen this as recent as 5.3 when we are required to install FAST ESP as a 32 bit application along with Java runtime 32 bit. This is a 64 bit world now, get with the program.

My sense is that the product roadmap will offer great improvements in the document processor and query processor pipelines, linguistics, user experience, etc. These improvements are required to allow search to become the leading functional component for indexing, transforming, and presenting not only content but navigation, functional components, and structures on Web sites. The relationship that search platforms will have with tomorrow's Web applciations, is comparable to the relationship that relational databases have with yesterday's Web sites. This innovation simply cannot afford to be spread thin.

Tuesday, February 09, 2010

Links: Windows PowerShell compiled Help for SharePoint Server 2010

I am relieved that Microsoft has published PowerShell help files for SharePoint. The help files will certainly come in handy. These are available for download:

Windows PowerShell compiled Help for SharePoint Server 2010

This site contains separate help file (.chm) downloads for:
· Access Services
· Excel Services
· InfoPath
· PerformancePoint
· Search
· Secure Store
· SharePoint Foundation Search
· SharePoint Products
· State Service
· User Profile
· Visio Services
· Web Analytics
· Word Services

Monday, February 01, 2010

Strange Computer Virus

This might be the first time I am posting a computer cleanup instruction on this blog, but I feel compelled since several people around me have been complaining about a common set of symptoms hitting their computers recently. I thought I could share some steps that a colleague took to successfully clean an infected system.


The purpose of this post is for informational purposes only and to share some steps performed on an infected system to fix a computer virus, related to symptoms described in the Problem section of this post. I don't know the name of the virus at this time. And, please don't go and modify the registry unless you know what you are doing.


System virus, automatically redirects internet explorer to a site that requests purchase of an anti-virus product. Task manager becomes blocked and inaccessible.


Part I

* Boot the infected system and at the BIOS Press [F8] (Prior to Windows Displaying)
* Select “Safe Mode”
* Log in with the local administrator account
* Start, Run, Type MSCONFIG, and click OK
* Open Windows Explorer, and invoke the file property view and select “show hide files..”

* Look for a strange file type without much detail pointing directly to a user profile, sub to the application directory. Eg. “Document and Settings” > “User Profile”…..”
* Deselect the file and write the file name down. This will prevent it from launching during start up.
* Reboot into Safe Mode again.
* Log in as the local Administrator account.
* Browse to: “Document and Settings” > “User Profile”….. abs search for file name written down in the previous step.

Part II

* On a separate computer, download ATF-Cleaner
* Copy ATF-Cleaner.exe to a USB drive so that you can move it onto the infected system
* Copy ATF-Cleaner.exe to the desktop of the infected system
* Double-click and run ATF-Cleaner.exe
* Click “Select and Delete All”
* Now review search results and delete directory where file is contained.
* Open Regedit – and Export a copy of the registry
* Select Edit > Find and Search for file.
* Delete file reference key
* Reboot
* Login in Windows in normal mode and test

Blog Archive