Michael's profileMike's RavingsBlogLists Tools Help

Blog


    September 30

    Consulting and the death of customer service

               So, as you probably guessed I have some experience in the consulting arena. One thing that has always surprised me (the longer I do this the less it does) is the absolute horror stories I hear from clients about previous engagements they have suffered through with other consultants. These horror stories generally fall into 2 categories, the trickster and the selfish.
       Tricksters
               The trickster is the guy who KNOWS what he is doing is wrong. He is not interested in providing value, not really concerned with the client relationship, he/she is a parasite their only reason to interact with the client is to keep the engagement alive long enough for them to drain it dry. As their goal has nothing to do with true consulting, there is not much you can do with these guys but beware. As a consumer, you need to talk to their references. Believe it or not, sometimes these guys will actually give you references who would say horrific things about them on the bet that you will never check them. And 9 times out of 10 they are right.
              At one of my previous employers we had a company we'd engaged already (with limited success) on another engagement. When we had another huge project come up that was critical to the success of the company, our PM decided he would open up bidding to other companies, and took it upon himself to check the references provided. He checked the biggest reference from the company we had been dealing with, and they could not say enough bad things about them. As we dug, we found the addresses on their business cards were actually the address of their client and they, in fact, had absolutely no US presenece at all.
      Selfish
          So, on to the other group. The selfish. Before I get into this name let me first explain some of my thoughts on consulting. The first of which is why in the world does a client call in a consultant? They could hire a contractor, they could hire their own staff. They could train their own staff. Why in the world did they call that gold certified partner and pay all that money? We could hash out plenty of reasons but here are what I see as the tops (whether they know it or not). In most cases, it comes down to 1 item, risk. You train your own staff, you hire a contractor, hire a new guy, they all involved potentially high levels of risk. They could fail, you already know or suspect your internal resources are not enough, if this all fails, you have no recourse, and there is a good potential that it may. On the other hand, the consultant comes in with knowledge, the support (from his/her company), and the tools to do the job. What I am tyring to highlight here, is that they client has handed over a good deal of trust in the consulting company, they are allowing you to manage their risk, they are counting on you for the success for thier project, and very often paying a LOT more than their managers thought they would have to, in essence. they are putting their butt on the line on the bet that YOU will get the job done.
         Now to take it to the consultant side of things. Why in the world are we consultants? Do we like not really having a home office? Travelling away from our families? The pressure? Well maybe, but the big driving forces are that we often get to play with the latest/greatest technology, we get to see many different facets of business and many verticles, and yes we do get to visit some cool places. Personally, I love the interaction with clients, I love to see a positive impact on their business, to leave my mark so to speak. Oh yes, the other motivating factor, the one that leads me into the selfish classification, we ALL want to make some MONEY.
          Let's be honest, if we were not being paid, we would not be doing this or any other job. As much as I like consulting, I would rather be chest deep in a trout stream. We are driven to increase those bill rates, to get the bigger better project, to make more and more. This is the side of consulting, that needs to be carefully managed. The consultant that focuses solely or to heavily on this side quickly slips into the selfish category.  The selfish consultant forgets the one key ingrediant to successful consulting, IT IS NOT ABOUT YOU. The engagement, is not about you, it is not about the consultant, his/her making money, the consultants ego(s). The engagement is about meeting and exceeding the expectations that have been set with the customer.
          The selfish consultant tend to forget this. They become embroiled with their side of things. They worry a lot about nickel and diming the client. They will sometimes make negative comments to the client about their work environment, their hours, etc. They lose focus on the project and spend a lot more time looking at those bill rates and the total $$$ coming in. They neglect the customer, they don't hear their concerns, they don't recognize that they are missing those expectations, and even if they somehow manage to deliver, they still may end up with an unhappy customer and a lost opportunity for repeat business.
       
          Obvisously, your consulting manager (or equivalent title in your org) would not be too happy with you telling them that you no longer care about utilization, bill rates, revenue. However, this highlights an important point, that is THEIR problem. I have worked at a few shops and I will tell you, you come in a little low on utilization, and still bring them happy clients, repeat business (which costs a LOT less on the sales end of things), and good references, you will find pressure from the consulting manager lessen. If this is what they do care about more serving their clients, then you need to consider moving to another shop cause they don't really care about serving those clients.
          In any consulting engagment their is risk for BOTH sides, and their should be. You are asking the client to step towards the cliff, you should be willing to get a bit closer yourself. The amount of risk can be mitigated by proper documentation, contracts, and consultant skill but either way, both parties are taking risks. The successful consultant will manage client expectations, throughout an engagement, for the reasons of risk, but more importantly because they care. They care that they are keep the client happy, they care that the client is comfortable with the trust they have placed in them, they care that they engagement is completed at or above the standards and expectations set by the client.
         In my opinion, they key to this lies in the ability to empathize with your client. You need to put yourself in their shoes. Consider their side of things in every turn you make through the engagement.  Establish trust with them. A good way to do this, do not be afraid to say things like "I Don't know." I can't tell you how many clients I have heard bash someone for spewing ovious or outright lieing BS rather than say, I do not know and giving them a estimate for when they will know. You don't need to know everything, remember they have bought into your support mechinism as well (your company, tools, etc). As a consultant you do not need ot know everything, just be able to show some confidence that you first of all are in control and will find them the answer they need (I usually will give them an explicit window of time in which I will get them an answer). More than anything, honesty conveys trust.  If they can't trust in what you are saying, they cannot trust that you are going to get the job done. Another key to that, take integrity over revenue. I was once on a client site where our work load significantly fell to the point where they gave me "keep busy" work. I went up to their IT manager and advised him that I walk away for 1-2 weeks, and let the heavy work build up for me. Since his staff was more than able to manage the work they had given me, and I saw no justification for him paying the bill rates for the work he had given me. Yes, it cost me 2 weeks of revenue and utilization. That client bought into 5 more MAJOR projects after that. We did not have to compete with any other companies for them, we did not have to bicker ever again about a bill rate, an estimate, etc. He knew at that point that I understood his side of things and that I was there to do everything in my power to ensure his trust in me was validated and his projects were going to be completed.
          I feel compelled to note, I am not ignorant to the fact that yes, this can get expensive and yes their will be clients that abuse this type of thing. There will be those engagements where no matter what you do, no matter how good you are, expectations will be unreasonable and unattainable. These can be minimized by properly laying out expectations on your side, properly documenting, and having the ability to recognize those projects that fall into this category. If you have properly documented and planned everything, you can confront those clients with that reality as soon as it is recognized. There is no benefit in continuing with a project that has no realistic chance of success. It will leave a trail of devastation on your reputation that will not be worth any amount of revenue. You client will suffer and burn through countless dollars, and time in attempting to complete the project, those expectations will never be met, and in the end your efforts will be deamed a failure. In bringing up the situation and walking away from a project like this, you will be fullfilling the whole concept of customer service which is validating that trust. You will be protecting the client from of all things, themselves, and while they will likely engage one of your competitors, it is important to note that your flag will not be flying upon the shipwreck.
          So a couple important points in all that mess. First of all, keep in mind, the engagement is not about you, it is about those expectations, you have to meet those at any cost. Second, true customer service requires an investment. It is not in just sending those thank you for your business cards, the lip service, it is a true commitment to your clients, and having the guts to put their needs ahead of your revenue at times. In the short run, yes it may cost you some money. In the long run though, with the vast majority of clients, it will buy you repeat business at a reduced sales cycle and a solid revenue stream. Which are things that anyone in your organization appreciates.
        
     
    September 21

    Configuring MOSS 2007 for SQL Authentication

              MOSS 2007 has been one of my latest all consuming learning tasks as of late. It has a lot of improvements over the previous version (SharePoint Portal server 2003). In going through my studies one huge issue has been enabling SQL Authentication for connections to all the databases.
              So why is this a big deal? Well let's say I would like an external portal ou in my DMZ however, what I do not want is a SQL farm, with all my configuration info sitting out in the DMZ. I also do not want to go through the exercise of properly configuring trusts between my public domain and private domain(s) and having to manage the potential security issue associated with that. Now I am NOT a windows security expert and I would not even be able to play on on TV so anytime I can avoid needing a windows ecurity expert or mucking with trusts and potentially messing up something a true expert has set up, I do.
               After plenty of searching and a half a dozen unsuccesful attempts to install and configure MOSS 2007  to use SQL Auth instead of Windows I had just about given up until I came across a blog from Marcus Hass (http://blogs.technet.com/mhass/comments/444052.aspx ) that indicated that it was in fact possible to do what I wanted to do. So I set about attemping on my own to once again accomplish this holy grail of installs. Once again after a few additional installs I was unable to accomplish this. So I once again went to Mr. Hass for assistance, as luck would have it he was in the midst of doing a new install and checked  it out. Fortunately, he was successful in his endevour and provided me the following info:

    Command-line reference for the SharePoint Products and Technologies Configuration Wizard

    In SharePoint Products and Technologies, you can use the psconfig.exe command-line tool as an alternate interface to perform several operations that control how the SharePoint Products and Technologies are configured. You must be a member of the Administrators group on the local computer to perform these operations.

    In this article

    How to use psconfig.exe commands
    Available commands and parameters


    How to use psconfig.exe commands

    When you run psconfig.exe from the command line, you can specify commands to control how the tool runs. To run psconfig.exe from the command line, navigate to the %WINDIR%\Program Files\Common Files\Microsoft Shared\web server extensions\12\bin folder, and then type the commands by using the following syntax:

    psconfig.exe -cmd <command> [optional parameters]

    The reference table in the next section contains several examples. There is also Help available from the command-line interface. To view Help, on the command line, type:

    psconfig.exe -?

    To get Help about a specific command, type:

    psconfig.exe -help <command name>

    The commands in psconfig.exe need to be run in a specific order to run successfully. If you use the SharePoint Products and Technologies Configuration Wizard to configure your installation, it calls the commands (also called configuration tasks) in the correct order for you. However, if you use the command line to run psconfig.exe, you need to be sure you are performing the tasks in the correct order. The psconfig.exe commands must be performed in the following order:

    1. configdb
    2. helpcollections
    3. secureresources
    4. services
    5. installfeatures
    6. adminvs
    7. evalprovision (only for stand-alone installations)
    8. applicationcontent

    Important  If psconfig.exe detects that the server farm needs to be upgraded, it will automatically start an upgrade when run (even if you did not choose the upgrade command).

    You can specify all of the commands to run in a single command-line string. If you do this, then psconfig.exe runs all of the commands in the correct order. For example, on the command line, you can run a command similar to the following:

    psconfig.exe –cmd configdb <parameters> 
     
    –cmd helpcollections <parameters> 
     
    –cmd secureresources <parameters> 
     
    –cmd services <parameters> 
     
    –cmd installfeatures <parameters> 
     
    –cmd adminvs <parameters> 
     
    –cmd evalprovision <parameters> 
     
    –cmd applicationcontent <parameters>

    For more information about configuring your server or server farm from the command line, see the Windows SharePoint Services TechCenter.

     Top of Page

    Available commands and parameters

    In the SharePoint Products and Technologies Configuration Wizard, the following command-line options are recognized.

    Command

    Description, parameters, and examples

    ?

    Displays the commands available for use with psconfig.exe.

    Example

    psconfig.exe -?

    help <command name>

    Displays the commands available for use with psconfig.exe. If a command name is specified, displays help for that command.

    Example

    psconfig.exe -help adminvs

    adminvs

    Manages the SharePoint Central Administration Web application on the local computer. Takes the following optional parameters:

    [-provision]

    Provisions the SharePoint Central Administration Web application on this server. Provisioning creates a new SharePoint Central Administration Web application and an application pool running under the server farm administrator's account.

    [-unprovision]

    Unprovisions the SharePoint Central Administration Web application from this server. Unprovisioning removes the SharePoint Central Administration Web application and its application pool.

    [-port <port number>]

    The SharePoint Central Administration Web application port is a global setting to the server farm. When changing the port, a SharePoint Timer service job is dispatched to synchronize the port for all SharePoint Central Administration Web applications in the server farm. If a port is not specified, the port used for existing SharePoint Central Administration Web applications in the server farm is used. If a SharePoint Central Administration web Application has not been provisioned in the server farm, the default port chosen will be random if a port is not specified.

    [-windowsauthprovider <enablekerberos | onlyusentlm>]

    The SharePoint Central Administration Web application authentication provider is a global setting to the server farm. When changing the authentication provider, a SharePoint Timer service job will be dispatched to synchronize the provider on all SharePoint Central Administration Web aApplications in the server farm. If onlyusentlm is specified, NTLM will be the exclusive authentication provider for all SharePoint Central Administration Web applications. All other authentication providers are disabled and NTLM will be the only authentication provider allowed. If enablekerberos is specified, Kerberos authentication is enabled for all SharePoint Central Administration Web applications. If an authentication provider is not specified, the provider used for existing SharePoint Central Administration Web applications in the server farm will be used. If a SharePoint Central Administration Web application has not been provisioned in the server farm, then the Kerberos authentication provider will be enabled if an authentication provider is not specified.

    Examples

    psconfig.exe -cmd adminvs -provision -port 8080 -windowsauthprovider onlyusentlm

    psconfig.exe -cmd adminvs -unprovision

    applicationcontent

    Manages shared application content. Takes the following required parameter:

    -install

    Copies shared application data (for example, resource files, Web application binaries) to existing Web application virtual directories.

    Example

    psconfig.exe -cmd applicationcontent -install

    configdb

    Creates, connects, or disconnects this server from the server farm. Takes the following optional parameters:

    [-create]

    Creates a new configuration database and thus establishes a new server farm. If this server is already connected to a configuration database, the server will be disconnected first, and then the new configuration database will be created.

    [-disconnect]

    Disconnects this server from the configuration database and thus disconnects this server from the server farm.

    [-connect]

    Connects to an existing configuration database and thus joins this server to an existing server farm. If this server is already connected to a configuration database, the server will be disconnected first, and then connected to the existing configuration database.

    [-server <SQLServerName>]

    The computer running SQL Server where the configuration database is located.

    [-database <SQLDatabaseName>]

    The configuration database name.

    [-dbuser <value>]

    The user name used for SQL authentication.

    [-dbpassword <value>]

    The password used for SQL authentication.

    [-user <Domain\User>]

    The server farm administrator user account.

    [-password <Password>]

    The server farm administrator user account password.

    [-addomain <value>]

    The Active Directory domain name used for the server farm.

    [-adorgunit <value>]

    The Active Directory organization unit name used for the server farm.

    [-admincontentdatabase <SQLAdminContentDatabaseName>]

    The Central Administration Web application content database name.

    Examples

    psconfig.exe -cmd configdb -create -server Server_name -database Database_name -dbuser DOMAIN\username -dbpassword password -user DOMAIN\username -password password -addomain domain_name -adorgunit org_unit -admincontentdatabase Database_name

    psconfig.exe -cmd configdb -disconnect

    psconfig.exe -cmd configdb -connect -server Server_name -database Database_name -dbuser DOMAIN\username -dbpassword password

    evalprovision

    Provisions this server as a stand-alone (evaluation mode) server. Takes the following required and optional parameters:

    -provision

    Performs stand-alone mode provisioning on this server.

    [-port <port number>]

    The port number assigned to the default SharePoint Web application. If not specified, then port 80 is used. If a SharePoint Web application already exists using the port, the existing site will be overwritten. If an existing site is using the port and is not a SharePoint Web application, the site will be disabled and a new SharePoint Web application will be created using the port.

    [-overwrite]

    Specifies whether to overwrite any existing Microsoft Windows SharePoint Services 3.0 Web site during installation. If not specified, the site is not deleted.

    Example

    psconfig.exe -cmd evalprovision -provision -port 1100

    helpcollections

    Managed help collections. Takes the following required parameter:

    -installall

    Installs all available help collections.

    Example

    psconfig.exe -cmd helpcollections -installall

    installfeatures

    Registers any SharePoint Products and Technologies features located on the file system of this server with the server farm.

    Example

    psconfig.exe -cmd installfeatures

    quiet

    Runs the SharePoint Products and Technologies Configuration Wizard in quiet mode. Output is written to to the log file named PSCONFIG.EXE_MM_DD_YY_HH_MM_SS_MS.log, where "_MM_DD_YY_HH_MM_SS_MS" is the full date and time that the utility was run. The log file is stored in the %WINDIR%\Program Files\Common Files\Microsoft Shared\web server extensions\12\LOGS directory.

    Example

    psconfig.exe -cmd quiet

    secureresources

    Performs SharePoint Products and Technologies resource security enforcement on the server. For example, security is enforced on files, folders, and registry keys.

    Example

    psconfig.exe -cmd secureresources

    services

    Manages SharePoint Products and Technologies services. Takes the following optional parameters:

    [-install]

    Registers the services in the server farm that are located on this server.

    [-provision]

    Provisions the services that are located on this server and sets the services as online if SharePoint Products and Technologies are installed in stand-alone mode. Provisioning services also ensures that they are registered.

    Example

    psconfig.exe -cmd services -install

    psconfig.exe -cmd services -provision

    setup

    Performs configuration for SharePoint Products and Technologies based on the installation mode. Also repairs the configuration. If the product or technology is installed in stand-alone mode, then stand-alone configuration is done. If the product or technology is not in stand-alone mode, you must complete the initial configuration by using the SharePoint Products and Technologies Configuration Wizard instead of the psconfig.exe command-line utility. To run the wizard, on the Start menu, point to All Programs, point to Administrative Tools, and then click SharePoint Products and Technologies Configuration Wizard.

    If you want to repair a stand-alone installation, first run setup /repair (for more information, see the Setup Help system), and then psconfig.exe -setup. For server farm installations, after running setup /repair, use the SharePoint Products and Technologies Configuration Wizard instead of the psconfig.exe command-line utility.

    Takes the following optional parameter:

    [-lcid <1033>]

    The locale ID (LCID) that specifies the installation language.

    Example

    psconfig.exe -cmd setup

    standaloneconfig

    Performs a stand-alone configuration for SharePoint Products and Technologies. Takes the following optional parameters:

    [-lcid <1033>]

    The locale ID (LCID) that specifies the installation language.

    Example

    psconfig.exe -cmd standaloneconfig

    upgrade

    Performs an upgrade of SharePoint Products and Technologies. This command is automatically run when running the SharePoint Products and Technologies Configuration Wizard if the product or technology needs to be upgraded. Takes the following optional parameters:

    [-wait]

    If specified, the SharePoint Products and Technologies Configuration Wizard does not return until upgrade completes. If not specified, the wizard returns after dispatching a SharePoint Timer Service job to perform upgrade. To view the upgrade job status, you can access the SharePoint Central Administration Web application by using your Web browser.

    [-force]

    If specified, the SharePoint Products and Technologies Configuration Wizard stops any currently running upgrade actions, and then restarts upgrade.

    [-reghostonupgrade]

    If specified, the SharePoint Products and Technologies Configuration Wizard will reset all content to the site definition version during the upgrade.

    [-finalize]

    If specified, the SharePoint Products and Technologies Configuration Wizard will finalize the current upgrade. Perform this action only when you have successfully upgraded all sites and no longer need a connection to the previous version. You will not be able to undo this action.

    [-inplace <v2v|b2b>]

    If specified, the SharePoint Products and Technologies Configuration Wizard will perform an in-place upgrade. If v2v is specified, then an in-place version to version upgrade is performed. If b2b is specified, then an in-place build to build upgrade is performed.

    [-sidebyside]

    If specified, the SharePoint Products and Technologies Configuration Wizard will perform a gradual upgrade.

    Examples

    psconfig.exe -cmd upgrade -inplace v2v -wait

    psconfig.exe -cmd upgrade -sidebyside -reghostonupgrade

    psconfig.exe -cmd upgrade -finalize

     

    September 19

    International Talk like a Pirate Day 2006

    Ahoy mateys!! I got me a pirate name: Mad William Vane Every pirate is a little bit crazy. You, though, are more than just a little bit. You tend to blend into the background occaisionally, but that's okay, because it's much easier to sneak up on people and disembowel them that way. Arr! check out:http://www.piratequiz.com for yours