The highest demand skill in the IT consulting business is never asked for explicitly by clients and has nothing to with technology. The highest demand skill in the IT consulting business is the ability to undo the mess your client got himself into—and I deliberately use him because this is really a guy thing. We have all heard tales about guys that refuse to ask directions when driving completely lost. Now imagine trying to be a “team player” with a guy that is in your opinion lost—and you know that your opinion has little effect on the situation even though you have been hired as a “consultant.” This has been the running theme for most of my career—only in recent years has my work with clients made a turn for the better.

An excellent mental health exercise for an IT consultant is to examine the word professional—instead of just blurting it out. Inside this word is profess—what this means to me is that a professional has the ability to “claim openly” or publically. The ideal engine driving one to make such “open” claims is fueled by accurate, researched information. In the IT business, accurate information comes from the tool makers like Microsoft, Oracle (Sun), or the auspices of an Open Source project—maybe a University. When your client fails to recognize the existence of this third-party research while at the same time using said third party’s tools then in my opinion you are up shit creek—a creek probably polluted by the company that hired you…

Here are some things that can happen while you are up shit creek:

  • The definition of “professional” changes into the ability to put lipstick on a pig in an elegant, quiet, polite manner. Pay that mortgage and shut the f’ up.
  • Your client is effectively in conflict with their tool makers. This means you are fighting on about three fronts: battling the actual business “challenge”; battling the tool maker; and battling legacy issues associated with the new “challenge.”
  • Your client may wonder why you are unable to perform “professionally” under these circumstances instead of actually looking at the real problem. It’s a childish, fascist impulse that is almost impossible to resist.

FOWA 08 - Password Anti Pattern

In the same manner Warren Buffet would refuse to invest in company he does not “understand,” you have the human right to invest your energy in other companies, organizations and other parties that appear to actually have a professional technology plan. In the same manner that business planners are expected to summarize their strategy with a single coherent sentence, your clients should have provided you with enough information to profess their technology plan with a single coherent sentence. Sometimes we may confess instead of profess (listen to “this developers life 1.1.1: scars”)…

From my experience, the leading reason why clients get themselves into a mess (they have tacitly asked you to get them out of) is because they have ignored/defied their tool maker. Your client and you are swimming a soup that the tool maker never told you to cook. It has taken me way, way too long along the timeline of my career to actually get proactive and begin to look for patterns (actually anti-patterns perhaps) of such ignorance and defiance. I confess that I tend to concentrate on researching my tool maker (Microsoft) instead of researching “bad” (but cash rich) clients. I am unable to even recall a book about this subject—especially in the Microsoft world. I have no pipeline in place to collect such information. My attitude has been one of aggressive divestment a la Warren Buffet—which should strongly suggest that I have no mortgage to pay. Oh, when will I grow up?

Here are some Microsoft-centric 30,000-foot anti-patterns I can barely recall:

  • Using Microsoft Access (*.MDB) as a LAN-based DBMS for dozens of users, when it was designed for one user on one desktop (c. 1996).
  • Using Microsoft Access as a database for a web site (early 2000s).
  • Running ASP sites with global DLLs that get locked by the Web server process (early 2000s).
  • Using Microsoft Office effectively as a frontend (without SharePoint) while using Java-based server technology as a backend (UCLA MCCS, early 2000s to present).
  • Using Microsoft FrontPage for anything (all eternity).
  • Using Windows Forms 1.0 for anything (all eternity).
  • Using ASP.NET Web Forms and Server Controls with a view to being standards-compliant and cross-browser compatible (early 2000s to 2010, yes 2010).
  • Using JavaScript according to the Microsoft-tooled vision of Jscript (early 2000s to 2009, with jQuery).
  • Using more than a handful of ASMX Web Services per ASP.NET project (for all time: use WCF).
  • Attempting to customize SharePoint (for the lifetime of the product to the present …perhaps).

One of the mature things I have accomplished recently is consciously accepting that my tool vendor, Microsoft, was not exactly fostering a culture of tool-maker compliance for many years. Microsoft has profited to the tune of billions with the rollicking banjo music of wild-west mentality… The earliest technology evangelists from Microsoft that I can recall are: Alison Balter (1994), Paul D. Sherriff (1991), and Don Box (turn of the century)—none of these folks left me with professional theories that I can recall (apart from Relational Theory and this little thing called “OOP”). Now we have the Scott Guthrie generation at Microsoft, trying to introduce a cornucopia of publically-accessible theories to customers with acronyms like MVC and MVVM in the face of massive legacy—Wild-West, COM-based legacy written in HTML (using all caps for tag names) and this weird thing called “HTC”…

Microsoft has two massive product spaces: Dynamics CRM and SharePoint. As of this writing, deep into the 21st century, none of these products reflect the new Scott-Guthrie-style professionalism that should make serious investors happy. Microsoft itself has a Wild-West legacy load that it is digging itself out of… because old cash cows can’t be abandoned for greener pastures…

Related Links

Influenced by recent events, I’m taking SharePoint links off of my active TODO list. My strategy is pathetically simple: don’t do a thing with SharePoint until the next version comes out based on the forlorn hope that the next version will come with a big apology for all previous versions in the form of new, pronounced levels of usability and elegance. Meanwhile, these:

Buy this Book at! In episode 3, the SharePoint performance episode, one important point was verifying that SQL 2005 (or perhaps 2008) is not set by default to “autogrow” by one 1MB. This can be a serious performance hit for a search crawler, scanning and recording huge areas of files.

I’m almost sure that this is the episode where the issue of running SharePoint in a virtual machine is explored. The short answer is run SharePoint on metal. However, for developers one preferred setup is running a virtual machine on the desktop (this allows the developer to control snapshot-making without having to ask operations folks tending some centralized blade of VMs—SharePoint can break; being able to roll back to a snapshot helps).

In episode 4 and episode 6, “SharePoint Governance, Engagement, and Taxonomy” (with SharePoint MVP, author, and consultant Rob Bogue), it was suggested that Governance is just a non-technical-manager keyword for telling people what to do indirectly with SharePoint; Engagement I missed but seemed to be related to training (and the difficulty of training users who don’t care about the technology of SharePoint—and they should not care)—and it seemed to be related to using My Site to encourage business people to learn SharePoint because of their self-interest in My Site; Taxonomy is just another pretty word for getting people to add metadata to their SharePoint files (based on some kind of elegant sense of order) so that data can be found through “navigation” (lots of clicking) or search (more important).

In episode 7, “MOSS Enterprise Search and SharePoint Workflow,” we get an introduction to Search Server 2008, which is separate product that is installed (kind of) with Infrastructure Update for Microsoft Office Servers (KB951297).

This March 2009 video from self-described New Zealand Hobbit, Chris Auld, is the first video of the auspices of Microsoft that shows before a live audience how to customize SharePoint using themes in an automated, professional manner:

Some important points:

Theme generation and deployment is shown in this video using a brand-new tool for Visual Studio 2008 called Visual Studio 2008 extensions for SharePoint (VSeWSS) 1.3

Theme development does not touch any HTML—only CSS and images are involved. According to the speaker this is “easier” and faster than using SharePoint designer to modify Master Pages. But, to get “easier” in perspective, please see Heather Solomon’s SharePoint 2007 CSS Reference Chart—this chart is about 14 pages long!

For more information please read these entries from New Zealand: “My Sessions from MIX09 last week,” “Useful Stuff for Building SharePoint Themes” and “Creating the Structure for a SharePoint Theme in VSeWSS v1.3.”

Buy this Book at! Here among the cubicles, a consultant from Microsoft told us to install SQL Server 2005 with Microsoft Office SharePoint Services. Since my development VM disk suffered hard disk sector and index problems for the first time, I am thinking of reasons why he told us to stay away from SQL Server 2008.

The Application Log of my VM was defiled by actual errors! It was SharePoint trying to log into my SQL Server 2008 instance but it wasn’t ‘ready’ to accept connections… I strongly suspect that SharePoint services will try to access the database during system startup and shutdown—when services SPTimerV3, SPTrace, SPAdmin and SPSearch are set to start automatically. What’s a dangerous possibility is that SharePoint might try to write to the database during a system shutdown. The 2008 SQL instance might ‘abandon’ SharePoint, leaving it to perhaps damage the disk with its unmanaged, wild-ass DCOM parts.

So it turns out that I have already written a PowerShell script to shut down services so I can run SyncToy 2.0 against things like *.mdf files. I run these backups from my VM before shutdown. Now with SharePoint and SQL Server 2008, I’m going to have to run this script after startup—to kick off the SharePoint services (SPTimerV3, SPTrace, SPAdmin and SPSearch) I have set to “manual.”

It’s been a tough week.