{"id":1188,"date":"2007-01-23T12:00:00","date_gmt":"2007-01-23T12:00:00","guid":{"rendered":"http:\/\/orcldoug.com\/blog\/?p=1188"},"modified":"2007-01-23T12:00:00","modified_gmt":"2007-01-23T12:00:00","slug":"documentation-and-asking-questions","status":"publish","type":"post","link":"http:\/\/orcldoug.com\/blog\/2007\/01\/23\/documentation-and-asking-questions\/","title":{"rendered":"Documentation and Asking Questions"},"content":{"rendered":"<p>(Rant warning. Well, if I never write anything contentious, you might all drop off to sleep without me noticing &#8230;)<\/p>\n<p>Over the past few years I&#8217;ve had many conversations with different DBAs (at least four teams worth!), System Administrators, Managers and even her indoors (poor woman!). It&#8217;s a subject that&#8217;s very dear to my heart as several of the unfortunate recipients of my arguments would tell you &#128521; Frankly, people are sick of me rabbiting on about documentation and processes, so this blog has been bubbling around in my little brain for a long time. (i.e. Can I just emphasise that this blog describes just about every new site I turn up at and not just the latest?! That statement is completely true and I&#8217;d be upset if this was taken as a description of how things are at Pythian. In fact, they&#8217;re far better than average when it comes to documentation and particularly processes but, like all places, they&#8217;re not perfect. Not least, because the place is stuffed full of DBAs &#128521;)<\/p>\n<p>Other recent inspirations include <a href=\"http:\/\/marist89.blogspot.com\/2007\/01\/cookbooks.html\">Jeff Hunter&#8217;s blog on Cookbooks<\/a>, which I agree with wholeheartedly, and one of the quotations on the front of <a href=\"http:\/\/jonathanlewis.wordpress.com\/\">Jonathan Lewis&#8217; blog<\/a>.<\/p>\n<p>&#8220;<strong>Sun Tzu<\/strong>: <em>When trouble is solved before it forms, who calls that clever?<\/em>&#8220;<\/p>\n<p>I don&#8217;t think good documentation was the motivation for that, but it does to get to the heart of my distrust of the &#8216;Hero&#8217; DBA.<\/p>\n<p>Let&#8217;s start with advice repeated many times on the Internet in guidelines for newsgroup postings, blogs, articles, flame-mail (even <a href=\"http:\/\/sharp-developer.net\/Fun\/Bart-Question.aspx\">the funny ones<\/a>, between friends). You should look for an answer for yourself <i>first<\/i> before firing off questions to large communities, looking for easy answers. Not to do so is lazy and leads to constant repetition of the same questions. You&#8217;re also less likely to learn new things in the search for answers to your specific questions. The gist of this argument is that people will normally be happier to answer your questions if you&#8217;ve tried to find out the answer for yourself first.<\/p>\n<p>I have some sympathy with this point of view, particularly when there is plentiful vendor documentation freely available. In an office populated mainly by people who operate in today&#8217;s electronic domain, it isn&#8217;t surprising that there&#8217;s a certain kudos attached to those that can work things out for themselves without constantly asking questions.<\/p>\n<p>Let me explain why I think this approach is utterly wrong for the workplace and that everything that&#8217;s been done before should be passed on to the next person as clearly as possible. <\/p>\n<p><i>What a waste of time.<\/i> When I&#8217;m working, I want specific, accurate answers as soon as possible. Whilst I might learn some interesting new facts whilst searching for the salient ones, I might also waste a lot of time chasing up blind alleys. If someone else knows the answer and it&#8217;ll take them 30 seconds to tell me it, I struggle to see the value in taking 10 minutes to work it out for myself, beyond some sort of boost to my tech ego. This is a job we&#8217;re doing, not an interesting little hobby (and I say that as someone who seems to enjoy it more than most). Multiply that 10 minutes for each new employee and maybe it&#8217;s better just to write it down and tell people where it is. It&#8217;s one of the reasons Pythian keep a record of everything the DBAs do &#8211; so that you can look at previous work.<\/p>\n<p>Look, I know about Oracle, but I don&#8217;t know about each individual site&#8217;s processes, procedures, hostnames, passwords, which bloke to talk to get an ID card, which lady can create me a secure account on server y, what that specific error means and so on. Of course <i>you<\/i> know the information &#8211; you&#8217;ve worked in the place for 2 years! Maybe you had to work it out for yourself and it took you a month or two to get everything sorted out, in dribs and drabs. Don&#8217;t you think it might be a tad wasteful for each person to go through the same process? Maybe some people think &#8211; &#8216;well I had to learn it the hard way, why shouldn&#8217;t he?&#8217; &#8211; but I just don&#8217;t get that point of view.<\/p>\n<p><i>What a waste of skill.<\/i> I don&#8217;t mean me but, let&#8217;s face it, most people who work as DBAs are pretty highly paid and I&#8217;d hope that we&#8217;re not getting paid to flail around, trying to work out what we&#8217;re doing. i.e. There are better ways of spending our time, including &#8211; shock, horror &#8211; documenting things so that only one person has to go through the cycle of learning and then share it with everyone else. We have enough on our plate keeping up with new features, new problems that no-one&#8217;s ever seen before and new applications coming through the door. Let&#8217;s maximise our time on what&#8217;s new and interesting, not re-work.<\/p>\n<p><i><\/i><i>Documentation imposes self-discipline<\/i>. If you can&#8217;t document it, there&#8217;s probably something wrong with the way you&#8217;re doing it. The minute someone starts saying to me, &#8216;Ah, well, that shouldn&#8217;t normally happen, so don&#8217;t worry about it, or go and speak to John when it does and he&#8217;ll help&#8217;, I start to worry about the process itself. Maybe by documenting it, it&#8217;ll flush out the flaws in the process. Is there really a process <i>so<\/i> complicated that only one person can do it? Better still, when someone else attempts a task that &#8216;only John&#8217; can do, it&#8217;s the perfect test of the documentation. The chances are it will fail &#8211; it always does &#8211; but that&#8217;s when you get the chance to improve things.<\/p>\n<p><i>Individual information and power<\/i>. Speaking of &#8216;only John&#8217;, none of us should be indispensable, although it&#8217;s natural for most people to enjoy the feeling. When I see a situation where there&#8217;s only one person who can perform a task, I question the management. It&#8217;s not John&#8217;s fault that he&#8217;s the only guy who can perform the task. In fact, good on him for having the skills (although he might start getting sick of the workload and pressure, too!). However, it&#8217;s bad for business &#8211; what happens when he gets run over by a bus? (I suppose he&#8217;ll at least go with the knowledge that he was the only true expert on process Y, but I doubt that would give much comfort.)<\/p>\n<p><i>Information and skills are incomplete. <\/i>If everyone learns things through some initial basic knowledge and then on-the-job learning through trial and error then everyone ends up with different skills which are almost inevitably incomplete. The best example I can think of here is Unix shell programming (of all varieties). I bet experienced DBAs will recognise this straight away. My shell programming skills are limited. Why? Because I learnt them by looking at other people&#8217;s scripts, hacking around, having a go myself and learning through trial and error. Now that might have been rewarding for me, but is that <i>really<\/i> the best way to learn an important skill for my job and can I <i>really<\/i> be sure that I&#8217;m not one small misunderstanding away from screwing things up really badly? When I do, will it be an interesting exercise to fix it, or just plain amateurism? Wouldn&#8217;t it be better to learn the thing properly than to impress people with the myriad subjects I know a bit about and can &#8216;get by&#8217; on?<\/p>\n<p>Let&#8217;s say that I do manage to work almost everything out for myself? What happens when I find out that actually there&#8217;s a few snippets I missed here and there? Does everyone have to make the same mistakes based on the same little bits that they were missing? Doesn&#8217;t that make you as miserable as it makes me and, for what, so we can admire our ability to think on our feet?<\/p>\n<p><i>Caring about our colleagues<\/i>. I know that might sound a bit touchy-feely but, ultimately, the aspect of this that upsets me most is that it&#8217;s so damn <i>selfish<\/i>. I love making sure that other people know what they&#8217;re doing because I know what a horrible feeling it is to <i>not<\/i> know what you&#8217;re doing. I wouldn&#8217;t wish it on anyone. It&#8217;s selfish in the wider sense, too. Are we all to remain geeks, sitting in our corners, stuffed full of pride at the things we know that others don&#8217;t, or are we in it together and want to become better as a team? I realise writing good documentation and answering people&#8217;s apparently dumb questions is time-consuming and can be a bit frustrating sometimes, but don&#8217;t we all grow better together as a result?<\/p>\n<p>Phew, I think I need a lie down!<\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>(Rant warning. Well, if I never write anything contentious, you might all drop off to sleep without me noticing &#8230;) Over the past few years I&#8217;ve had many conversations with different DBAs (at least four teams worth!), System Administrators, Managers and even her indoors (poor woman!). It&#8217;s a subject that&#8217;s very dear to my heart&hellip; <a class=\"more-link\" href=\"http:\/\/orcldoug.com\/blog\/2007\/01\/23\/documentation-and-asking-questions\/\">Continue reading <span class=\"screen-reader-text\">Documentation and Asking Questions<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1188","post","type-post","status-publish","format-standard","hentry","category-uncategorized","entry"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":1261,"url":"http:\/\/orcldoug.com\/blog\/2007\/04\/29\/not-quite-leaving-pythian\/","url_meta":{"origin":1188,"position":0},"title":"Not Quite Leaving Pythian","date":"April 29, 2007","format":false,"excerpt":"When I decided to stop working with Pythian, I was particularly disappointed about a couple of things. I've mentioned missing the friends I've made already, but I was also disappointed that I would have to abandon the 'Dirty Dozen' blog series. Although they'd proved more difficult to write than I\u2026","rel":"","context":"With 2 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1508,"url":"http:\/\/orcldoug.com\/blog\/2009\/07\/21\/the-best-oracle-parallel-execution-paper\/","url_meta":{"origin":1188,"position":1},"title":"The Best Oracle Parallel Execution Paper","date":"July 21, 2009","format":false,"excerpt":"I'd already made a note to read and blog about Greg Rahn's Parallel Execution over RAC blog post which is excellent, as usual, but Jonathan Lewis beat me to it \ud83d\ude09 What struck me when I eventually took the time to read it, though, was the link in his post\u2026","rel":"","context":"With 7 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1604,"url":"http:\/\/orcldoug.com\/blog\/2010\/05\/17\/resource-manager-and-11g\/","url_meta":{"origin":1188,"position":2},"title":"Resource Manager and 11g","date":"May 17, 2010","format":false,"excerpt":"I will get back to the stats stuff at some point, but I'm quite busy at the moment working on something that I can't talk too much about, but which is throwing up enough generic issues to talk about. This is one that I meant to blog about ages ago\u2026","rel":"","context":"With 5 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1308,"url":"http:\/\/orcldoug.com\/blog\/2007\/08\/11\/does-anyone-know-when-11g-will-be-released\/","url_meta":{"origin":1188,"position":3},"title":"Does Anyone Know When 11g Will Be Released?","date":"August 11, 2007","format":false,"excerpt":"Sorry, I shouldn't be so sarcastic, but try to show some sympathy for my schedule.Thursday 9th August 22:30 BST - Go to bed, unusually early.Friday 10th 06:00 BST - Wake up, check Netvibes and noticed several 11g release blogs, including Eddie's initial notification and Howard's installation!07:30 BST - Leave for\u2026","rel":"","context":"With 4 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1207,"url":"http:\/\/orcldoug.com\/blog\/2007\/02\/17\/dst\/","url_meta":{"origin":1188,"position":4},"title":"DST","date":"February 17, 2007","format":false,"excerpt":"Three letters that I am positively sick of hearing. I remember reading about this first on Peter K's blog and - shame on me - it registered but wasn't top of my to do list. Well, it is now. Several other bloggers including Chris Foot have talked about the changes\u2026","rel":"","context":"With 5 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1267,"url":"http:\/\/orcldoug.com\/blog\/2007\/05\/18\/log-buffer-45\/","url_meta":{"origin":1188,"position":5},"title":"Log Buffer #45","date":"May 18, 2007","format":false,"excerpt":"It's my turn again and, looking back at Log Buffer #4, I was amazed to realise that we're up to number 45 already and that my previous attempt was last August. Good work from Dave Edwards, who bears the organisational burden every week. Sooner him than me!I'll kick off this\u2026","rel":"","context":"With 2 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts\/1188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/comments?post=1188"}],"version-history":[{"count":0,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts\/1188\/revisions"}],"wp:attachment":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/media?parent=1188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/categories?post=1188"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/tags?post=1188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}