{"id":263,"date":"2008-08-22T06:34:44","date_gmt":"2008-08-22T13:34:44","guid":{"rendered":"http:\/\/blogs.law.harvard.edu\/cqtwo\/?p=263"},"modified":"2008-08-22T06:34:44","modified_gmt":"2008-08-22T13:34:44","slug":"send-in-the-consultants","status":"publish","type":"post","link":"https:\/\/archive.blogs.harvard.edu\/cqtwo\/2008\/08\/22\/send-in-the-consultants\/","title":{"rendered":"Send in the consultants"},"content":{"rendered":"<p>I&#8217;ve recently moved into a new job at Novell, working on our strategy for worldwide services and planning for our next fiscal year is keeping me busy.\u00a0 But I still, fortunately, deal with real clients and real problems too.\u00a0 This one is classic: the client has several hundred old Unix and RHEL servers that they want to move to SLES.\u00a0 Great!\u00a0 We want to help.\u00a0 So they negotiate the server deal and then want to know the cost to migrate.\u00a0 How much is it going to cost, in total, to go from what they have today to what they want tomorrow?\u00a0 They ask for estimates on a per-server basis; how many hours would it take to migrate a Solaris server to SLES?\u00a0 Ten hours?\u00a0 A thousand hours?\u00a0 So they bring in the consultants, the dreaded consultants.\u00a0 They&#8217;ve tried to avoid slowing down the deal but there&#8217;s no avoiding it now.<\/p>\n<p>Well, you&#8217;ve done this before, they say, you&#8217;re grizzled veterans of the data center; is it two or ten hours for a server?\u00a0 And the consultant &#8212; and I&#8217;ve been in this situation, believe me, it sucks &#8212; has to say, &#8220;Well, it depends.\u00a0 It could be a thousand hours.&#8221;\u00a0 Which is what everyone is expecting him to say because you can&#8217;t get a straight answer out of a consultant.\u00a0 They&#8217;re <strong><em>always <\/em><\/strong>going to tell you &#8220;it depends.&#8221;\u00a0 Right.<\/p>\n<p>And even if there is all the time in the world, this particular answer needs to be in writing on the buyer&#8217;s desk by EOD today or the sales guy isn&#8217;t going to make his number for the quarter which means that he&#8217;s not going to make &#8216;club&#8217; (his incentive travel event), which his wife is really looking forward to, so this damned consultant is not only not answering a simple, reasonable question from the beloved customer but they are also very directly making his wife mad at him, with the attendant consequences.<\/p>\n<p>Perhaps you think I joke?\u00a0 Or exaggerate?<\/p>\n<p>Making matters worse, some nerd named Chad has downloaded OpenSUSE onto a machine in their testing lab and moved a couple of apps without incident (some directory changes, a few lines of code) and based on that experience has estimated that moving the three hundred servers will take approximately an hour each.\u00a0 Seriously: we have clients who want us to tell them that moving unknown production workloads from one operating system to another will take less than two hours per server.<\/p>\n<p>So the consultant sighs and starts to ask questions: What do the workloads on these servers actually do?\u00a0 Online banking is different from warehouse management.\u00a0 What platforms are they running?\u00a0 (What version of J2EE?\u00a0 What version of RHEL?\u00a0 What version of Manugistics?)\u00a0 Are they going to change anything else besides the operating system when they do this move?\u00a0 Is the software custom or off-the-shelf?\u00a0 What&#8217;s it written in?\u00a0 If they say something like current Java apps running on a 2.6 kernel going to the same JVM on another distribution, that would be one thing.\u00a0 If you are looking at non-ANSI C custom code on RHEL 3 on a complex multi-tiered app, that&#8217;s something else.\u00a0 (Moving from the 2.4 kernel to the 2.6 kernel on any distribution is much harder than moving from one current distribution to another.)\u00a0 What about storage, and backup, and disaster recovery?\u00a0 Systems management?\u00a0 There are a thousand more architectural details that you need to understand (one data center or many?\u00a0 resource utilization?) but everyone is getting impatient with you and your endless questions.<\/p>\n<p>Then you start getting into the enterprise-y aspects, which is where the real time and cost come in.\u00a0 There&#8217;s a difference between Chad moving an app from one platform to another as a technical exercise and the actual time that it takes production applications to go from one to another.\u00a0 What&#8217;s the testing regime?\u00a0 I would expect that production code moving from one distribution to another would require real testing (stress\/performance, UAT, etc.).\u00a0 Would you include that in the estimate?\u00a0 What about security?\u00a0 Does the new OS have to go through a security audit at the company?\u00a0 (Answer: yes, and it&#8217;s going to take a long time for the online banking app, believe me.)\u00a0 Documentation?<\/p>\n<p>This is all super-boring and bureaucratic and definitely not technical so the nerds aren&#8217;t interested and think it&#8217;s worthless and the sales guy is hearing his wife screaming at him and the buyer is saying, &#8220;Why is this so complicated?&#8221;<\/p>\n<p>So, should we skip the backup part?<\/p>\n<p>Really, the way to do this kind of thing is to do a quick assessment and figure out some kind of prioritization and rough sequencing, but that would require the client to spend time and money helping you to figure out how much to charge them and they are naturally leery of such a thing.\u00a0 You desperately want to avoid getting locked into a fixed figure because you still have no real idea how complex the problem your being asked to solve is, but that is what the client and the others are asking for.<\/p>\n<p>So you end up with a fudge; you commit to moving some edge servers and a cluster of supposedly simple apps and you sign up to do a security-approved core build and an assessment for the rest so that the project can get started and the customer can show progress to their boss and the sales guy can make his number.<\/p>\n<p>Now you&#8217;re faced with months in the lab at the client site with Chad explaining to you how completely screwed up their environment is and how there&#8217;s no way that he&#8217;s going to give up his Solaris servers and anyway they&#8217;ve tried to do this themselves a bunch of times already and it never works because it&#8217;s not really a current release of Manugistics and they did some customization that they probably shouldn&#8217;t have&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>this damned consultant is not only not answering a simple, reasonable question from the beloved customer but they are also very directly making his wife mad at him, with the attendant consequences. <a href=\"https:\/\/archive.blogs.harvard.edu\/cqtwo\/2008\/08\/22\/send-in-the-consultants\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1116,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1061,1425,1029,1422],"tags":[],"class_list":["post-263","post","type-post","status-publish","format-standard","hentry","category-architecture","category-novell","category-open-source","category-strategy"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8jQA6-4f","jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/archive.blogs.harvard.edu\/cqtwo\/wp-json\/wp\/v2\/posts\/263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/archive.blogs.harvard.edu\/cqtwo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/archive.blogs.harvard.edu\/cqtwo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/cqtwo\/wp-json\/wp\/v2\/users\/1116"}],"replies":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/cqtwo\/wp-json\/wp\/v2\/comments?post=263"}],"version-history":[{"count":0,"href":"https:\/\/archive.blogs.harvard.edu\/cqtwo\/wp-json\/wp\/v2\/posts\/263\/revisions"}],"wp:attachment":[{"href":"https:\/\/archive.blogs.harvard.edu\/cqtwo\/wp-json\/wp\/v2\/media?parent=263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/cqtwo\/wp-json\/wp\/v2\/categories?post=263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/cqtwo\/wp-json\/wp\/v2\/tags?post=263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}