Buck Woody from Microsoft.
Greg Low: Introducing Show 41 with guest Buck Woody. Our guest today is Buck Woody from Microsoft. Welcome back.
Buck Woody: Thank you sir. It’s good to be here.
Greg Low: As I do with everyone, I’ll start with how on earth you came to be involved with SQL Server.
Buck Woody: My background is in technology. Back when I was about 17 years old, I built my first computer. Had one whole K of ram, using dialogue chip. I wired up the board myself, cut off every radio in the house when it was on. Wooden box to store it in., television for output, cassette tape player for storage. I was really impressed with myself. Word processor in assembly. Assembly debugger because of code. Took me months to write the 40-character wide program. I grew up poor, military. While in military, I was an admin, working with computers everywhere. In military for six years. When I got out, I moved to Florida, my home. Lived there working at IBM reseller as technology support. I went to work as contractor at NASA, then U.S. Space Command. Worked in their IT department, worked for consulting firm, did training, manufacturing firm as data architect. For past 22 years, all databases in one form or another. Mainframe with COBOL, Oracle, Sybase, SQL Server 4.2. multiple databases, AS 400, things like that.
Greg Low: Did you ever do anything serious with SQL Server 4.2?
Buck Woody: No.
Greg Low: I never really felt it could do what I wanted it to do.
Buck Woody: It was the first desktop database I worked with. The others weren’t really true databases. No relational.
Greg Low: Anything without server process responsibility for the database?
Buck Woody: Yes. That was the first one for me on a database. Other than mainframe. I had dealt with mainframes before. Even on Oracle I was a cluster. Difference there. Having that power on the server had advantages. We did small thing. Training database. Something like that. Always backup databases. Was president of SQL Server user group for four to five years.
Greg Low: We have two chapters there. BI chapter.
Buck Woody: All the guys are great.
Greg Low: We’re at the PASS Summit as we do this podcast.
Buck Woody: I wrote about five books around SQL Server, usually exam prep books, in addition to administration books. There weren’t many DBA books then. I was contacted by a Microsoft field office and asked if I was interested in talking with them. The rest is history. I came into the user education group. They do the white papers, books on line, online help. Things like that. I wrote a lot. After about a year, I left and went into a program manager role. I’m in the MPU, the Manageability Product Unit. Microsoft, is different than everywhere else. Program manager role is different than other roles I’ve had. PM, project or product or grogram manager. They’re all distinct roles at Microsoft. Program manager role, which I have now, there are several types. Those who do things with the product, product PM. We develop features. I own a few features in Management Studio. For example, object explore details and object explorer, query window. All are owned by different people. Feature PM responsibility for that area. They scour market, competition, marketing, and customers, finding out what would be good. Expected to have good idea of what would be used. They pitch a feature to the team of what we should put in. Everyone is doing this. Only so many things that can be done by next release. Your suggestion is put on a list, it’s moved up and down the list, and either makes the cut or not. You’ll submit several not just one. Feature PM then goes from evaluating and getting ready to launch feature to being the one who writes the specifications. We have stringent specs. We write up and turn in designer. We do functional specs. Delivered to development team. Developers work on it creating design and test specs. By now you sort of become part of development team. You’re not a manger, but work with that team to get your feature done. Sheparding everything at this point. Documenting, working with user education, getting that done. Legal, marketing, all kinds of people, designing and building feature. Then you turn around and do the process oriented work, process manager piece, schedule, time, resource. When done you go to PASS and evangelize your feature. In meantime, as soon as we roll release, we begin next one. As you’re evangelizing, you’re working on the next version. Sometimes it’s things you wanted in the previous, most of the time new directions. That’s a feature PM, what I used to do in my group. There’s also the process PM, making sure things are built, shipped, tests are run. Lots of testing, escrow accounts created for code, branching, team services. That requires amazing logistics. That logistic pm. Third one is community PM, the role I fill now. We work with vendors, partners, clients, MVPs, PASS. I own all these areas to make sure my group gets their message out and that those customers messages, including general customers get back in the group. I make sure right person is plugged in at right places talking to the right vendor about things impacted by new features. That’s my current role. There are three program managers at Microsoft in SQL Server groups. Every major development group at Microsoft is different. What I’ve described is the buckets most fall into. I should say not every team has an evangelism PM. Have to be big enough and product customer facing enough to warrant. Security might not have one. There are evangelism roles at Microsoft that are different. My role is in the product group. I’m not in sales. I don’t directly engaged in sales. Literally make sure there’s input and output between my group and community. There are marketing evangelists. There to ensure broad public and general public understands what in product and why. Some overlap. Unusual in that large enough group with individual evangelism role. I’m still a PM in my group.
Greg Low: What about product managers?
Buck Woody: Depending on group, there is a PM role in SQL Server. Largely that title is in marketing. They own particular feature set that is sold. They work with sales and budget side. We work with those folks but don’t have product managers.
Greg Low: Tend to see newer people in the product manager role. Seems to be early role. I remember calling a program manager a product manager. Obviously wrong thing to do.
Buck Woody: When I was first there someone was called PM and I naturally assumed product manager. At Microsoft, project managers exist but in different group. The person wasn’t offended, but set me straight. In my previous role, project manager was pretty high. I was on path to project management certification. Not treated same way at Microsoft. We’re all product managers, even developers. Expected to do that.
Greg Low: Our topic is current passion, PowerShell. I’ve started using myself in policy based management. People look at it and think cute, but what would to do with. Navigating around SQL Server like directory is cute, but how useful?
Buck Woody: What is it, what do I do with it? Why is it interesting? I come from Oracle industry where world runs on PURL. The shirt about replacing with a two-line PURL script. Can’t read when don.
Greg Low: Some .NET classes I taught, saw complete algorithm implementation in two lines.
Buck Woody: Amazing what you can do with PURL. When I first heard of PowerShell, I thought that’s just what the world needs. Another scripting program. We just don’t have enough, even at Microsoft. The list goes on. I wasn’t impressed at first. My group was the manageability team, Mikael Worries is the man’s name, incredibly brilliant, created this provider. I still didn’t know what it meant or care. I saw the early prototypes and he’d type the EIR and the you’d see the database names, and he’d change directories to a database. Kinda interesting. He’d type the EIR and there was the table spit out. I thought OK, fine. But why? I’ve got management Studio. Writing code was code'y. Most EBAs are busy with more than one role. Windows, Exchange Admin, do it all. that’s been my role. When I was an Oracle DBA, I was dropped into SQL Plus command line. I couldn’t do anything on VAX. I was a DBA. Work with data. I didn’t know or care about memory, storage. Handled by system admin. SQL Server, opposite. Amazing amount of information to keep in your head. I’ll see developers look at DBA and just learn to code, but there’s more. I just don’t have time. I’m not lazy, it’s not that I’m not smart. I don’t have time for that, to learn to code. When I looked at PowerShell, realized it's a shell. Widgets, big ideas of command lists. Often aliases which you can do in PURL. Things like get child items, DIR. Also alias to LS. If you’re UNIX you are comfortable with. So I was in environment I was familiar w. took care of probs. I didn’t have to relearn. Mildly useful. Looked at things to do in PowerShell, not SQL Server. Simple command, read event logs. OK. Kind of interesting. We had toys that did that, kits, before. But I could write to those logs. That was more interesting. Same command I read, there’s a get and set. I can do something. Command leveraged. Event logs I can put things in. I have the resource kit tool that would read the event logs and make a web page. Well that was interesting.
Greg Low: Alternative, XP write log.
Buck Woody: Even so, just for SQL things. I might be asked to do more than SQL Server. This talks to lots of Windows things, WMI. Show me registry key? What’s state of service? Or even more important to DBA, change pw on service from script. Now that’s interesting. It talks to MOM and Exchange and all kinds of stuff. OK. That’s mildly interesting. Next, piping. I can take what’s on left and send to the right. Hmmm... I’m familiar with this as DBA. I select something and interjoin. OK. I get the idea of taking data and comparing and doing something with. That’s a pipe. Interesting. Then, I can put another pipe on it. I can do even more. Read event logs, look for something that say s error, then send email in short easy to understandable string, LEGO block it. I choose my notification choice and check my logs, drive, services. I can do all three, send to web page for my boss to see and send me email on things wrong. Now it’s interesting. Then they added SQL Provider. OK. Interesting. Not just DIR. Third thing is idea of variable. $ whatever I want to call it, strong or non. I can create variable and make equal to DIR command. That’s interesting as I’ve taken DIR output whatever form and look at. Developers have always had dot syntax. I’ve never had. Now I have them. I can take database and get a number back. I can set that database equal to $ db1 and compare to database and see if backed up recently. If greater than today, find a drive using commands, make emergency backup, send me an email. Repeatable. Now I’ve thought through and done once. Now toss in variables. DIR all databases and do. DBA has power developers have always had. Suddenly available to me quickly. I can save. I’ll script table object to variable. Make change to table. I’ll script to another variable. I can write to clouds. Compare object will compare A to B and show me where more or less columns, sending me an email on changes. Or store each night and I have code coverage. Able to check transact and compare in single line, daily, in email or event logs. I’m doing things DBAs care about. Difficult to do, saving, comparing, showing differences. Not easily done. Repeatedly over many and unknown number of databases. Another thing. Let’s me work with XML easily. I’m not an XML guy but I understand them. Xpath, etc. Non-trivial. I want to do. I’m still a DBA. I have a couple jobs I do outside Microsoft. Now I have one DBA feed a database and table into XML using nice form, Word or Excel. I read in PowerShell, navigate automatically and perform actions entered. He has level of control, I have my level of control. He stacks against. One line, easy to understand code. I built into blocks. Learned to make function. Once did, I can make reusable scripts. That same driver file can do multiple things, send emails, web pages, etc. Incredibly useful, learned and implemented management solution that’s script based, easily. When you’re talking hundreds of servers, scripting way to go.
Greg Low: I used to see the same things with people doing Windows Server admin. Moving users. Almost looked like they sat with GUI tool moving one at a time. They needed to learn a ten line script to do it all. excel or something. Same thing for DBAs. If you’re making significant changes to settings or policy, script is the way.
Buck Woody: Yes and you can create other objects. Key is you’re in .NET. if you need to create a new object in Excel, navigate, insert third row, you can do, simply. For non-developer, that’s powerful. Excel is world’s largest database. Having that access and script code is amazing.
Greg Low: I’ve heard arguments that Excel Macros most popular programming language in world.
Buck Woody: I wouldn’t be surprised we did business analysis, found 30 to 40 percent of our critical business paths involved Excel.
Greg Low: Completely true.
Buck Woody: I’d imagine if you delved into large technology companies that take shots at Microsoft, they run on Excel.
Greg Low: Always the case. Go back to 1980’s, discussion around most popular program language. It was Lotus Macro.
Buck Woody: Incredibly bad, unprotected. That’s how I found it useful. If PURL addict or processes down, great. I challenge them this. 5x5x5x5x5 problem. Five databases, five instances, in each 5 servers, 5 users, 5 different permission, 5 different tables. Do in graphical interface. I’d love to see happen. Will take hours to do graphically.
Greg Low: Typical SQL Server DBA would write TSQL script generating text and execute.
Buck Woody: I do templates. I build database, right click and script, change to variables, feed variables. You can do in PowerShell or PURL. I’d ask interviewee’s about this. They’d have to think along time on it. Ten minutes to get what I had asked for.
Greg Low: Will this affect comfort level for Oracle DBA?
Buck Woody: I’d love, me not Microsoft, to do PURL Sharp. There was discussion around that. PURL CodePlex thing out there. That’s great. Would have gotten more mindshare for Oracle, managing SQL Server. PURL idea not based around .NET where PowerShell is. One guy in 500-person company managed Oracle, SQL Server, Exchange, web presence, Windows, Solaris installation. Wow. Depth, breadth. With these scripts you can be flexible. Don’t know if Oracle sell. .NET, and load across and write.
Greg Low: Comparison. I could build in integration services.
Buck Woody: Sure. Graphical.
Greg Low: Looping container.
Buck Woody: Connecting to Excel. I’m wondering how to deliver around. How much you want your Windows Admin to run for you. DBA could build PowerShell script and SQL work, hand to Windows Admin, run on Thursday’s on servers I can’t touch. SSIS package, saying open Management Studio.
Greg Low: Pre packaged package.
Buck Woody: Yes. Imagine one over the other. I’d vote PowerShell.
Greg Low: In SQL Server 8 there’s a PowerShell job step.
Buck Woody: In 2008, good point. Gives me ability to schedule. Agent. Schedule PowerShell step. Now a PowerShell scripting step. Dump in there, SQL will run. Combine with Master Job and now distribute things across enterprise from one location with PW. Understandable, transparent, easy to use, same permissions as log on.
Greg Low: You specify credentials.
Buck Woody: I don’t view as either/or. PURL OK. Management Studio OK. Way to extend. If you script, more than 400 to 500 servers, option.
Greg Low: Time for a break.
Greg Low: Welcome back. Now the question, is there life outside SQL Server?
Buck Woody: I’m the Community PM. It just happened to work that I was at TechEd Brazil. 24-hour flight from Seattle. A week later, went to TechEd Barcelona.
Greg Low: I was there. I just missed you.
Buck Woody: Yes. I was there for the IT Pro week. I got nine hours of sleep that week. I had three presentations each day there. Several nights, when I was done, Redmond would send me things that needed to be done now. I’d end up working through the night. First night about five hours of sleep, third night about four, and that was it.
Greg Low: This morning’s keynote, Tom Casey mentioned that the group is spread over, sun doesn’t set.
Buck Woody: To answer your question, I’m jealous of my Saturday’s, church on Sunday with my family. Saturdays we alternate weekends. I write for MIT.COM and have that do. I teach a college class on Wednesday night. It’s on database admin. Three-part course. I teach the first semester. I get them into relational databases. I give vague requirements, they have to find out what I didn’t ask. First homework assignment is literally, I need more information. Always more questions. I trick them by giving them forms that the “company”, a veterinary company, by giving them forms to see if they start designing from the forms. They come back with questions, then we pull out nouns and verbs. Group into entities, then Entity Relationship Diagram. A good three or four weeks into the class before we turn on a PC. They’re surprised by that. We go from that through all physical objects to create tables, users, databases, scripting, transact SQL, stored procedures, triggers, cursors, maintenance, tuning. University of Washington. Weekends, we alternate. One weekend, I have to work, the other we go into a city like Seattle or Tacoma, do something like a museum, science fair. The other weekend, we’re outside. Hiking, skiing, mountain climbing. We’re from Florida. We decided cold and rain doesn’t matter.
Greg Low: Funny you mention. I have friends that moved to Seattle. They first had Seattle blues, but finally gave up. Go for walks in rain. Life goes on.
Buck Woody: It not that rain where you can’t see your hand in front of you, lightening is dancing around and you can feel it. Here, rain is a light sprinkle or mist. It’s irritating. You don’t need raincoat. Just a hoodie does it. My wife and I were in military. You make best with where you are. It’s gorgeous here so we just get out. Our daughter loves it, dog goes with us. I do blog at carpedatum.spaces.live.com and put pix there of our adventures. Seize the Datum. We go out. I’m jealous of those times. Kids grow up quick. Drink every moment we can. Work hard during week and jealous of weekend as much as I can be.
Greg Low: PowerShell language. For those who haven’t looked at, complexity. Compare to what?
Buck Woody: Between standard command shell, simple, and VB script. Piping, variable key, then three command. Get-help, type command to right and you get help on that command. Similar to MAN in UNIX. Alias to MAN. Get-command which shows you all the commands. Begin with get or set. Things named obviously. Verb/noun. Get-member. Once you have object. $myfile=c:test.txt. If you have test.txt, you can then type myfile and test.txt comes up. $myfile vertical bar, get-member and see all the things you can to do myfile. Size. Append. So on. Logical and I learn what I need to know, then add as I have time. Way I work.
Greg Low: Which DBAs would find value in learning this?
Buck Woody: Two DBAs. The one where DBA is just part of what they do. I do Windows, web server, etc. I find one tool that works with all an automate. Let PCs do what they’re good at.
Greg Low: You might want to affect both.
Buck Woody: Yes. Read event lots and Windows error logs at same time. Add user to Windows, Exchange, group in SQL all at once.
Greg Low: Often accounts in databases.
Buck Woody: Find quickly, pair, remarry. Other DBA would be the one that huge, complicated databases and databases are their world. Repetitive tasks, multiple servers. SQL unique. It needs to know OS and SQL. Not true in UNIX. Line between Oracle or MySQL admin and admin of box. SQL, most every DBA could install Windows Server. They’d know the memory, networking layer. Not always true with Oracle DBAs. No separation in SQL. Certification requires you learn about networking. Unique. Not every database needs to know network layer.
Greg Low: Week before Barcelona, I was in new SQL Master Certification. Teaching six days of that. It’s an intense three weeks. Most people had underestimated time involved. Most days ran from 8-6 with short breaks. Often study groups late in evening. Friday, labs to be done by Monday. Each Monday, exams from previous week and pre-reading. Final Saturday, two-hour exam, six-hour lab. They picked challenging things in that. Tooling not enough to work as it comes out of box. Interesting environment.
Buck Woody: Intense. Large scale DBA could benefit.
Greg Low: Interesting is amount of time we spent on detail like low level IO, most DBAs haven’t seen. L2 cache.
Buck Woody: We experimented around money to spend. Spend on L2 cache, adding significant cost to server, decreasing physical memory. Smaller amount of L2 cache, beat out having another gig of RAM.
Greg Low: Those proportions, I remember. Interesting, we spent day doing session on SQL OS and SQL Memory, Architecture. Good. Low level details compared to what you see with DBAs.
Buck Woody: Difference. I’m not disparaging them. They know their platform. I know more than my platform better. All knowledge useful.
Greg Low: Common tasks. PowerShell used in several demos. Executing policy. That’s one. Other things?
Buck Woody: Quickest to understand, I build up for demo, best real live use. Sometimes you need to teach. What you’re teaching more valuable than end product. This is both. Show DIR, DIR over tables using select object. Select object grabs tables over certain value. Sort object follows, arranging them. Convert to HTML follows. Finds using DIR, top ten sizes of tables by row count, descending. If you store and look at tomorrow and have PowerShell tell you up or down and percentage. One line. I see spike. My log files monstrous today. Why? I look in my logs and can see side by side, Windows and OS. Can see hard drive almost out of space, etc. Can backup, log, etc. Reaction to recovery mode is what’s important.
Greg Low: Something my wife was doing was remote DBA work. I see Monday morning, log failures. An operation over the weekend, and running out of disk space. Strikes me they tend to teach new DBAs what to do each Monday to fix. That should be script.
Buck Woody: Another interesting thing. When I manage multiple servers, do I manage 1,000 servers? You don’t. You react to the one or two doing something you don’t expect. Manage by exception. My grandmother had 12 kids. She said one child takes up all your time so what difference could 11 more make? Respond to the one at the moment. When you have 1,000 servers, you won’t check logs. You have something else check, send you error email. Respond to the one having a bad day. I was at TechEd Europe talking this with current tools. By combining reporting services, PowerShell, etc., you can determine centralized, parallel, etc. You can deploy and manage with tools you have, and you’ll see us develop management concept further.
Greg Low: Where are we with tooling in terms of many servers?
Buck Woody: In beginning. Microsoft commanded mid market immediately. You can manage and deploy in one or two servers quickly. Back to the 80’s in UNIX shop. Not every department had server. Mini frame, SUN system in corner. Microsoft and Novell flourished because they took power from IT and into hands of departments. Get larger again, and you had sneaker net, Ethernet. Now, need to look across all. Policy based management first play. This policy, description of server to be or not, look at servers to do. In PowerShell, interesting you mentioned, policy based engine not in SQL Server 2005, but in 2008. Can run in 2008 automatically as engine there. What about those without engines? You can take that agent job in PowerShell, run script that runs policy against multiple servers. Running from 2008, local system, against running whole enterprise against standards, standard configuration you want server in. When people understand that, servers violating policy, exception based management. When we start answering develop, deploy, manage, Kilimanjaro, you’ll see us move out into mature model.
Greg Low: How long to move to declarative or intent based thing rather than after the event? I want to prevent occurrences.
Buck Woody: Interesting when not wrapped in transaction. When you create database, not done in transaction or SQL. Physical operation at OS level with entry pointing to files in master database, stamp of database across that. Non-SQL version thing. SQL Server event. Trigger rearchitected at that level. Non-trivial. You’ll see more policy based management.
Greg Low: Most cases, I want to control if event occurred, before it occurs.
Buck Woody: You’ll see policies go further back in stack. Exactly our intent, intent based management. You declare how you want your server and it happens. Right click server object in SQL 2008 in instance, you’ll see facet SQL Server installation. Push out server as it’s installed. You can prevent from installing itself with wrong parameters.
Greg Low: I see actions you can’t roll back or actions that you don’t want someone to do, and want to undo. I have a brother who is ER nurse. Odd. Entire background things like blowing up mountains as civil engineer, suddenly ER nurse.
Buck Woody: When I was in military, I thought I wanted to get into medical. I started pre-med classes. I rode in an ambulance and that convinced me I wanted to fix things that didn’t bleed when broken. Here in U.S. we see Australian shows. When I was in England, saw a lot of American TV. They thought we were all A-Team, heavily armed. Impression that Australians have no fear. Will do anything with your bodies. Rugged place. We’re scared of you. That you have relationship with someone in ER environment is awe inspiring to me.
Greg Low: Variety of things people can do to themselves. Or have happen.
Buck Woody: Different level in Australia!
Greg Low: Things that can hurt you. We have all them.
Buck Woody: In Florida we have most of the U.S.’s poisonous snakes. In Australia you have all the things that can kill you.
Greg Low: Yeah. In terms of snakes, ten most poisonous, we have seven.
Buck Woody: You can keep them and the spiders that kill you and the snakes that swim and the great big gigantic sharks.
Greg Low: I find amusing the people that deal with those on regular basis, not in city areas, obviously. How laid back they are. Saw TV interview of guy who runs crocodile farm. He was on TV because he had arm bitten off by crocodile. In interview talked of how the crocodile had never done that before. I thought clearly, you still had your arm!
Buck Woody: Maybe that’s why we see so many tough Australians. They’re the only ones that have survived.
Greg Low: Some of the books I read. There’s one called Down Under. We tend to have named things after explorers who weren’t very good. They went out and died. Never came back. Not good explorers.
Buck Woody: Good explorers, just not good returners. Maybe a criteria is you have to come back and tell us about it.
Greg Low: Archaeologists and geologists and people who crawl around Europe. Yet we have areas no one has ever seen. Scientists have gone out and found missing link type things, then can’t find next time.
Buck Woody: I went to New Zealand. Made mistake saying it was like Australia. I was set straight by the Kiwi’s quickly. Same argument if I did same in Australia. My daughter was born in Melbourne. But Melbourne, Florida. The person who named it was from Melbourne Australia. They had a naming contest back in the 1800s or whenever it was. The guy who won couldn’t think of anything different. My daughter is from Melbourne, Florida.
Greg Low: Well, that brings us to time. Where will people be seeing you?
Buck Woody: I’m all over the place. I have a few blogs, email@example.com/buckwoody, carpedatum.spaces.live.com is my personal life. Buckwoody.com has the books I’ve written. I do the realworlddba podcast, a more simplistic podcast than one like this. Basic features in SQL Server. There are a lot of advanced. That’s on edge.technet.com. If you click on the DBA tag, you’ll find me there. I come to TechEd, PASS, most conferences. I’m in and out lately.
Greg Low: Well, thank you for your time today.
Buck Woody: Thank you.