Tag Personal

A Technical Plan for 2011

The Last Ten Years

My career has been particularly interesting. I’ve been very fortunate to work with a variety of different languages, platforms, databases, frameworks, and people. I started off working with Perl on HP-UX. As I started automating more of my job, I added ASP.NET to the mix. Eventually I learned about databases, first with Oracle, then SQL Server, then with PostgreSQL, and finally back to SQL Server. Along the way I’ve held job a variety of different job titles – system administrator, system engineer, developer, consultant, architect, and database administrator.

I’ve worked with a lot of different systems, architectures, and design philosophies. The one thing that’s stuck with me is that there is no one size fits all answer. That extends beyond languages and design patterns – it goes right down to the way we’re storing data. One of the most interesting things going on right now is that it’s easier than ever to pick the right tools for the job.

The Next Twelve Months

Over the next twelves months, I’m going to be digging into hybrid database solutions. Some people call it polyglot persistence. You can call it what you like, but the fact remains that it is no longer necessary to store all of our data in a relational database. Frankly, I’m encouraging people to look into ways to store their data outside of a relational database. Not because RDBMSes are bad or wrong, but because there is a lot of data that doesn’t need to be in a relational database – session data, cached data, and flexible data.

Why Focus on Hybrid Data?

The idea behind hybrid data is that we use multiple databases instead of one database. Let’s say that we have an online store where we sell musical equipment. We want to store customer data in a relational database, but where should we store the rest of our information? Conventional thinking says that we should keep storing our data in a relational database. Sessions might be stored in memory somewhere and shopping carts might get stored in the database, but they’ll end up on faster, more expensive, solid state drives.

There are other ways to store data.

Let’s think about all of this for a minute. Why do we force our databases into existing paradigms? Why aren’t we thinking about new and interesting ways to store our data?

Sessions are a great place to start. Sure, we could use something like memcached, but why not examine Redis or App Fabric Cache? Both of these databases have support for strongly typed data. They both allow the data to be persisted to disk, if needed, and they allow for data to be expired over time. This is perfect for working with any kind of cached data – it stays in a format our applications need but we can expire it or save it as needed.

The flexibility to store our data the way that applications use it is important. Session data should be rapidly accessible. Other applications don’t need to read it. It doesn’t need to be reportable. It merely needs to be fast.

Shopping carts are different. Amazon’s own use cases and needs drove the development of Dynamo to be a durable, eventually consistent, distributed key-value store. Shopping carts are write heavy environments. It’s rare that users need to view everything that’s in a shopping car, but they need to be able to review it quickly when the time comes. Likewise, when the time comes to review a shopping cart, any delay or slowdown means there’s a chance the user will simply abandon the cart. Dynamo fills these requirements quite well.

Since Dynamo is only available inside of Amazon, how are we supposed to work with it ourselves? Riak is a clone of Dynamo that meets our need for a shopping cart. It’s a key/value database; it’s fault tolerant, and it’s fast.

Why not store a shopping cart in a relational database? It is, after all, a pretty simple collection of a user identifier, an item number, an item description, price, and quantity. Shopping carts are highly transient. Once an order has been placed, the shopping cart is cleared out and the data in the cart moves into the ordering system. Most shopping carts will be active for a very short period of time – a matter of minutes at most. Over their short lives shopping carts will almost entirely be written to and only read a few times. Instead of building complex sharding mechanisms to spread load out across a number of database servers, why not use a database designed to handle large load spread across a number of servers?

Where Does This Fit Into the Enterprise?

Enterprises should be adopting these technologies as fast as they can. Not because they are replacing the relational database, but because they free the relation database from things it’s bad at and leave it to perform tasks that it excels at. Relational databases are great for core business logic – they have a lot of baked in functionality like data integrity and validation. As we’ve already discussed, relational databases are not well suited to storing highly volatile data.

By moving volatile data into better suited types of database, enterprises can increase the capacity of their database systems, provide redundancy, and increase scalability by using off the shelf solutions. The trick, of course, lies in integrating them. And that is what I’m going to be playing around with this year.

Personal Goals for 2011

These aren’t all of my goals, to be sure, but I thought that it’d be a good idea to get some of them out in public and start sharing a bit more.

Be More Personal

I want to be more personal on this blog. Historically, I haven’t injected a lot of my personal details into my writing. I did it a few times last year when I talked about a bit of personal history and again when I talked about leaving the PASS Board of Directors. According to my blog, I’ve using the “goats” tag more than I’ve use the “personal” tag. Even when I do blog something personal, it’s almost entirely related to databases, presenting, or presenting about databases. I’m not going to start talking about my innermost secrets, desires, or even my home address.

I will put a bit more of myself out there for people to see.

Contribute

I’ve taken a lot from the community over the years. It’s safe to say that we all have, it’s part of why community exists. I’d like to contribute in a more direct way and in a way that I love. Over the course of the year I’m going to contribute directly to open source projects where I can help out. Contributing to the open source world is about writing documentation, testing, and giving back. It’s something that we all do every day, but for me it’s about putting my money where my mouth is and actively supporting free and open software.

Yes, I am aware that I work for a massive multi-national corporation that makes large profits through the sale of proprietary software. No, this isn’t a reaction.

I will give back and help people build better software.

Write

You could say that I write here on this blog, and that might be true, but it’s not the same as actively practicing writing. I used to write a lot more. There were have been a few months where I know that I have averaged close to a blog post a week day. While I don’t know that I
can always produce great content five days a week, I want to write more frequently. Writing is a craft. If you don’t practice it you get worse at it.

I will set aside time every day for writing.

On Being Wrong

When I first started blogging, I was nervous because I might be wrong. Not just “wrong” like “Gee Ted, I don’t know if I agree with your opinion about using Irish children as forced labor,” but factually wrong. And if I was wrong on the internet, people would see it forever and ever. Well, Google would know about it forever and ever. A friend of mine advised me that I would certainly be wrong on the internet, just like I’ve been fantastically wrong in real life, and that the only thing you can do is get up, admit you were wrong, and keep going again.

I had this opportunity the other day after blogging about Cassandra and HBase. I made a lot of mistakes in that post. At first I couldn’t understand what I had said or done wrong, so I reached out to the people who took issue with my post and said “Hey, help me correct my mistakes, leave a comment.” Todd Lipcon left a comment on my blog post. Ben Black emailed me. I looked at their suggestions and fixed to my post.

Turns out I was still missing something. Ben looked up my contact info again and talked to me directly via instant messenger. He helped me figure out what I was missing and why before walking me through some core concepts.

This wasn’t about SQL Server; this was about HBase, Cassandra, and Facebook. I’m a newcomer in that community. I effectively know every little. Yes, I was wrong, but people took the time to help me understand, learn, and correct my mistakes. That’s what great community is about: helping each other.

Being right or wrong isn’t important. How you react to being right or wrong is.

They See Things Differently

Every once in a while, I’ll be talking with a friend about presentations and they mention that they really like the visual flow or the artwork or something about the presentation. After I get over being flattered (trust me, it’s easy to do), we’ll start talking about how I came up with the material in the presentation. I’d love to say that the photographs are mine, but they aren’t. There are a few techniques I use to help me make presentations that work well.

Tell Me a Story

When I’m giving a presentation, I try to be acutely aware about how the material flows. I don’t want to take the audience on a wild ride across a bunch of topics. It’s difficult enough to sit still for 60+ minutes and listen to a single topic. But sitting still for over 60 minutes and listening to a variety of topics? That’s nearly impossible.

Instead of trying to cover a bunch of topics, I cover one topic. I break the topic down and I find a logical beginning, middle, and end. Sometimes this part is easy, sometimes it isn’t. The point of the exercise, though, it to find a good way to teach a topic. Kevin Kline (blog | twitter) has a great presentation about the SQL Server internals where he visualizes the presentation from the perspective of a query traveling through SQL Server.

Telling a story makes the presentation more than a series of facts. Telling a story takes a series of facts and gives them a personal connection. Rather than list a bunch of facts, tell your audience how you got somewhere. In a presentation I give on dynamic SQL, I share with the audience how I learned to write good dynamic SQL by showing them examples of bad dynamic SQL. It’s a technique that works well because we’re sharing our embarrassment at the bad code we’ve written and then we learn how to get better. Buck Woody’s (blog | twitter) presentations are so popular because he peppers them with anecdotes. (It probably helps that Buck knows what he’s doing, but let me stick to only one point, okay?) The anecdotes do the same thing – they break make the material relatable.

Let’s Play Word Association

I do a lot of word association when I’m working on presentations. This isn’t some kind of goofy improv theater troupe exercise; it’s how I find great images for my presentations. I’ve been known to spend a lot of time agonizing over a single image to get the message just right.

Symbols are the instruments which convert raw intelligence into culture. Without them, explained Lewis Mumfor, ‘man’s life would be one of immediate appetites, immediate sensations, limited to a past shorter than his own lifetime, at the mercy of a future he could never anticipate, never prepare for. In such a world, out of hearing would be out of reach and out of sight would be out of mind.’

Alan Fletcher – The Art of Looking Sideways

Finding the right symbol to trigger a memory is difficult. There are many different ways to convey an idea, but only one will bring the idea to life. How do you find the image that brings an idea to life? Searching.

In my presentation on SQL Server internals, I use this image to help describe row and index operations. The linear form of the building kind of looks like a table with rows and columns. It doesn’t look exactly like a table might look (you could call that Excel), but it is an image that we’re all familiar with.

Finding Inspiration

The obvious question is “How do you come up with this stuff?”

The unfortunate answer is “I don’t know.”

I spend a decent amount of time looking at art – be it photos, drawings, paintings, whatever. I really enjoy visual communication in all of its forms, so I try to partake every chance I get. I think that has influence the way I find images to use in presentations.

When I’m looking for images, I go through a process of searching through flickr. I don’t necessarily search for funny pictures or pictures with any specific word association. Sometimes I just watch the flickr panda and hope that something interesting and creative commons licensed pops up. This can be a good way to find interesting pictures that set a mood or a tone. Or maybe the image will just continue on whatever theme I’m using through the slide deck. It’s not always important that I pick the right image for any single slide, but that the image fits the presentation as a whole.

Sometimes I’ll even watch the panda when I’m not creating a presentation. I’ll have it up in the background and I’ll save off interesting pictures that I’ve found. The key when I’m doing that is to make sure I have some way to capture the photo’s metadata so I can give credit later. Sometimes it’s easiest to save a text file with the same name as the photo so you know exactly what metadata belongs to each photo. It doesn’t matter how you do it, just make sure you can give credit where credit is due.

Another way I find inspiration is to read a lot of magazines. I don’t necessarily subscribe to them, but I look through them. Advertising is something that we normally bypass when we’re searching for an article we want to read. Advertisers, on the other hand, are trying to get your attention and convey a message with a single image and as few words as possible. Take a look at how advertisers are trying to get your attention. There are a lot of techniques that you can pick up from successful ads without even knowing what you’re doing – composition, layout, the amount of text to use.

There’s inspiration everywhere. Find it and use it.

The Board of Directors and You

The deadline for nominations to the PASS Board of Directors is rapidly approaching. I figured that it would be great if I chimed in and mentioned what I’ve learned on the Board, what I think would be typical for a board member, and… I don’t know what else, but I really felt that this list needed a third item. Mainly because I wanted to show off that I know how to properly use an Oxford comma.

What Do These People Want From Me?!

When I stepped up and ran for the PASS Board of Directors, I had no idea what I was doing. I knew that I wanted to help make PASS better. Better how? I had a few ideas. We were going to change the world! There would be speaker mentoring and education for all! A chicken in every garage and mittens on our feet! It turns out that my chickens and mittens proposal isn’t going so well, but we’re working on a speaker mentoring program and I’ve been working with Microsoft to get your feedback to them about certifications.

Enough about me! More about you!

Have a Plan

KPBB-12So, this Board of Directors thing, you should have a strong idea of what you would like to change. That could be changes to how we’re governed, increasing our revenue streams, or finding a new Summit location. The point is that you should have a vision of the future. Beyond a vision, it would be helpful if you have some ideas about how you’re going to fulfill that vision. You don’t need to have a complete business plan, although that never hurts.

I can’t stress how important having a strong vision is. The goal is to have Board members act in a strategic role. Rather than plan things and implement them, you should be coming up with broad plans. Once you’ve come up with plans and goals you’ll work with PASS HQ and a few key volunteers to implement things. That isn’t always how things work out, but that should be the goal.

Without a strong vision, it’s very easy to get swept along. This is a two year commitment. if you’re being swept along for two years, you’re going to feel very lost, purposeless, and burnt out. Make sure that you know you have something that you plan to accomplish. When you’re finished with your term you can look back and say “I did that and I’m damn proud of it.” I know that when I’m done, we will have happily gone through and codified and documented more of the abstract selection process. There will be less tribal knowledge and more of it will be available for easy public consumption. I’m going to be happy about that. Know what you’re doing. Have a goal, make a plan. Don’t be afraid to revise it.

The Time of Your Life

Pinhole: Clock

People always say that you need to be willing to donate “a few hours a week” of your time if you want to be on the PASS Board of Directors. (They say this for just about anything else, too.) So, how much time does it really require?

That all depends on how much work you take on, how much you can delegate, and your own personal comfort level. The amount of time that I spend on my own portfolio is not typical – that’s not to say that they work less, it’s just that my time commitments come in spikes where I’ll be incredibly busy for three or four months and then a lot of the year things are very quiet. I’m hoping that other Board members will comment here and put forward their opinions and help to add to this article and clear things up for the people who are thinking about running for the Board of Directors. The point is: there’s no fixed amount of time. It’s as much or as little time as you want to put into it.

There’s a one hour conference call once a month. As often as once a quarter there will be an in-person Board meeting. You’ll typically spend a day traveling to and from the meeting and two days on site. This ends up being four week days, in my experience. Of course, one of these in person Board meetings ends up being the PASS Community Summit. So that’s one less week that you have to take off from work.

Skills in Magic

hella dope

What kind of skills do you need to be on the PASS Board of Directors? We’ve already covered one: planning. You should be reasonably good at planning. You don’t need to be a genius strategist, but you should be able to put together a simple plan and execute on it. These are the skills that you’ve built as a DBA or database developer. You know how to make a list, prioritize, delegate, and execute on that list. If you can do that effectively, you’re halfway there.

The other skills that you would use in running a business the size of PASS… it would help if you had them before starting, but they’re not necessary.

The Free MBA

The PASS Board of Directors is the cheapest and most entertaining MBA program I have found. Nowhere else will you find the opportunity to manage a 7 figure budget while dining on bacon.

You can quote me on that.

One of the greatest things about the PASS Board of Directors is that it really is like an MBA program. I’ve learned about budgeting on a 7 figure scale, about how decisions play out, how to think strategically, how to plan, delegate, project, and all of the other things that they talk about in fancy business classes. Instead of one instructor and a few students, you’re one student with many other instructors. There are five other board members, three members of the Executive Committee, four vendor board members, the immediate past president, and let’s not forget our non-voting representative from Europe. Right there, you’re going to be learning from fourteen other people.

In the last seven months, I’ve learned more about my abilities as a manager than in the rest of my career. I was speaking with a friend recently, and he asked me what I thought about the PASS Board of Directors. Knowing that this friend was in management I said “It’s an awful lot like being a manager without the benefit of a company car and a reserved parking space.” After a hearty chuckle, we proceeded to play golf using a corporate AmEx. Okay, maybe that was a lie. But we did talk about the experience. The one thing that struck me is what I’ve mentioned here – it’s been the greatest education about business and about myself. There are days when I joke that I don’t know why people complain about being managers, all you do is tell people to do something and wait until they get it done. There are other days when I want to shove my head in a mailbox and scream.

The biggest thing that I’ve learned is how to listen. I don’t always see eye-to-eye with my fellow board members. But I’ve learned to listen to what they’re saying and to try to understand where they’re coming from. Sure, we all say things like this, right? That’s what marriages and friendships are about. When you’re making large decisions about the PASS Community Summit or a spring event or a budgetary decision, you suddenly realize how little you listened before and how much you need to listen. You want to know something funny? I don’t find myself agreeing with people any more than I did before I started listening closely, but I do find myself understanding them. That alone has made a huge difference for me professionally and personally.

The Round Up

That’s not a ringing endorsement, but there are bad days. The good days and the learning experiences far outweigh the bad days and the stress.

In the end, it’s been worth it. If I had to do it again, would I still run for election? Absolutely.

This Is How We Handle Problems

I had a production issue tonight. Still am, actually. I’ve admitted to it and here’s the email I’m sending to my management.

At 9:00PM I took a backup of database_a and database_b prior to running the database migration scripts. Once the backups were finished, I began the migration process at approximately 9:20.

I stopped the migration process at 10:15 after multiple failures and restarts. There are too many unknown cross-dependencies to go on with the roll forward. At this time I called SUPPORT PERSON and explained the situation. I also called MANAGEMENT and left a voice mail. I then began the process of restoring the production databases on SERVER_A.

No changes were made to SERVER_FIGHTING_MONGOOSE or SERVER_C.

Once I had restored database_b and database_a on SERVER_A, I began seeing multiple failures from replication and the rest of SQL Server indicating severe problems with the physical disk structure. I immediately stopped all replication involving database_a and database_b on SERVER_A and I have begun a physical drive integrity check using SQL Server’s built-in integrity check tool: DBCC CHECKDB. The CHECKDB for database_b finished at 11:15 with a clean bill of health. database_a is still running as of 11:31PM.

Once the CHECKDB process for database_a is complete, I will begin re-initialize the subscription for the database_a database on SERVER_A. Following the successful completion of the database_a re-initialization, I will begin the process of re-initializing the subscription to database_b.

If you have any questions, feel free to contact me at 867-5309.

See what I did there?

  • I stated how we got into this mess – I dropped a running chainsaw into the SAN.
  • I outlined my decision making process and took ownership of rolling back our production migration.
  • I described the situation after the migration was rolled back and provided an assessment based on what I had observed.
  • I outlined a course of action to mitigate our problems and restore our production database to an operational state as soon as possible.

Am I proud? Not really. I like it when things work. Am I tired and cranky? Yes.

Will I get this fixed before I go to bed? Hell yeah.

Is this something that I, in a sick way, live for? Only because it reminds me to keep studying and to stay on my toes.

Pay Attention

Suck it, Gilgamesh!

Are we not men? No, we are Hammurabi!

What are you doing right now? How many different things are you trying to balance? Stop all of them and pay attention. No, seriously, do it. Nobody is going to die in the next five minutes. Unless you’re in surgery or something. In which case go do your job.

I’m here reminding you that you need to pay attention.

This isn’t like in Middle School history when you were learning about the Epic of Gilgamesh and how he killed a demi-god with the help of a hairy little man and together they survive watching the movie Ishtar and end up wearing a cow’s ass as a hat or something. Did you pay attention to that story? Yeah, me neither. This is nothing like that.

I’ve noticed something that bothers me – we constantly distract ourselves. People are always on the phone or listening to music or basically not paying attention. Stop it.

Breathe

Take a deep breath and let it out slowly. Breathe in. Breathe out. Fill up your lungs, focus on breathing.

Do you feel that? That’s you calming your tiny little primate brain and making it pay attention to one very simple thing that it already does on its own. Feels good, doesn’t it?

Keeping doing for a bit. Focus on your breathing. If you drift off for a second, just focus on your breathing. Your mind is still there, you just shifted your focus. This page will still be here when you get frustrated.

Think

What’s the point of this?

Honestly, the point was to get you to stop for a minute.

Think about how often you’re constantly worried about what to do next. Think about how often you’re thinking about a meeting you had earlier in the week, an argument, or anything else that happened in the past. You think about the past and the future a lot, don’t you?

Now, think about how much time you spend focusing on right now. Be really honest with yourself. I bet it’s not a lot.

Have you smelled this finger?

This is really mature, guys.

We constantly distract ourselves. I have friends who listen to books while they run because running is boring. People talk on their phones while they shop and drive because it’s boring. People will do anything to distract themselves from the task at hand because it’s boring.

You’re boring.

Did you perk up and pay attention just now? I thought so. You probably aren’t boring. You’re probably a fascinating person with diverse and varied interests and I’m sorry if I hurt your feelings, but you’re boring the shit out of me. Fact: life is not full of roller coasters and orgasms. Sometimes you have to peel potatoes. When you’re peeling the potatoes, peel the potatoes. Don’t think about how you’re going to have pie for dessert or how your 14 disk box set of Quantum Leap is going to come in the mail in a few days. Just peel the potatoes.

Be

Zen students are with their masters at least ten years before the presume to teach others. Nan-in was visited by Tenno, who, having passed his apprenticeship, had become a teacher. The day happened to be rainy, so Tenno wore wooden clogs and carried an umbrella. After greeting him, Nan-in remarked “I suppose you left your wooden clogs in the vestibule. I want to know if your umbrella is on the right or left side of the clogs.”

Tenno, confused, had no instant answer. He realized that he was unable to carry his Zen every minute. He became Nan-in’s pupil, and he studied six more years to accomplish his every-minute Zen.

from Zen Flesh Zen Bones, compiled by Paul Reps and Nyogen Senzaki

To put it another way – an ordained monk was so humbled by his own inattention that he once again became a student. We all slip up, but if you try you can manage to pay a little bit more attention to what you’re doing. Take pleasure in the things you’re doing. When it’s time to peel the potatoes, peel the potatoes. When it’s time to indulge in your Margaret Thatcher fetish, don’t call me.

How the Hell Did I Get Here?

Paul Randal started this chain post. He tagged Steve Jones who, in turn, tagged Jack Corbett who finally tagged me. I’m pretty sure everyone who nominally makes sense has already been tagged at this point thus leaving Jack to scrape the bottom of the barrel.

Like Jack, I think I could approach this in a number of different ways. I think I’ve already answered the professional route that I took. If I haven’t, it’s probably because my professional route isn’t all that interesting and it’s also all available on LinkedIn. You can, and should, fill in the job changes on my resume with something interesting like “After being attacked by a bear in the janitor’s closet at CareWorks Technologies, Jeremiah decided to take a safer job at HMB (they have no bears on staff as janitors).”

Anyway, you asked for it, you got it: how the hell did I get here?

I’m a Rock and Roll Machine

I love being on stage and in front of people, even though it terrifies the crap out of me. Apparently, I like that adrenaline surge. I’ve been playing guitar since I was 13 years old. When I was 23 I answered an advertisement and auditioned for a band. I got the job after 5 minutes.

Being a musician takes a lot of hard work, dedication, and practice. You work for hours and hours as a group, and hours and hours on your own preparing for a show. At that show, you’re going to walk up on stage and try to steal the attention of a room full of people who would, frankly, rather be doing one of a million other things – playing pool, talking to friends, hitting on that girl across the bar – than listening to you. As musicians, it was our job to get their attention, hold it for an hour, and make sure that they were happy about it. That job gets even harder when you’re in a band that only plays original material.

What seemed really fun – being in a band – turned out to be a lot of work – practicing three nights a week for four hours a night with the band and then practicing even more on my own. I learned a lot about myself – my tolerance for bullshit, how to get attention, and how to act in front of a crowd of people – while I was in the band. I also learned a lot about how to budget scarce resources – money and time – while still getting the job done – getting to the show.

The band eventually fell apart, as most do, but I learned many valuable lessons that I carry with me – time and resource management, performing skills, and how to make an ass of yourself and be okay with it. Most importantly, I learned that passion alone isn’t enough. You have to work for something if you really want to be good at it.

Everything to Everyone

The fact is, I’m not everything to everyone. But for a long time, I thought that I could do it.

Before and while I was in the band, I was married. The band took up a lot of time and it took a lot of time away from my marriage. While being in a band didn’t cause my eventual divorce, I’m sure it contributed to it (I quit the band about a year before my ex-wife and I quit the marriage). I remarried pretty quickly and that marriage ended almost as fast as it started.

Throughout all of this, though, there’s a huge undercurrent – I was trying to make everyone happy. I was trying to be a good husband, musician, developer, friend, son, brother, step-father, and about a million other things. I stretched myself thin and I broke.

These days, I know that I can only be me and that I’m the only person I need to make happy. There’s a reason why I work with SQL Server but I program with Ruby, why I listen to old school hardcore punk but I play a bizarre blend of folk and country, why I devote more time to my friends and family than I have before – these things all make me happy. If it doesn’t make me happy and I don’t need to do it to live, I don’t do it.

Self-Fulfilling Catastrophe

A couple of paragraphs ago I said “I stretched myself thin and I broke.” I really do mean that. During the first divorce, I moved into a tiny house on the ass end of Columbus, stopped paying most of my bills, and ended up living on as little as $20 a week. The funny part, though, is that I always found the cash to go out and party, or to stay in and party. This became a bad habit even once the divorce was done and I should have been back on my feet. Over the next 4 years everything spiralled completely out of control.

I’m pretty sure there were more than a few times I nearly lost my job. I frequently called in “sick” from the crowded patio of a bar at 1:30AM, had my car repossessed, racked up so much debt that people were calling my family members to find out where I was, and I partied seven nights a week. I lost a lot of my friends and damaged most of my remaining friendships irrepairably in the process. Throughout this ordeal, a few of my friends stood by me. They didn’t give up on me despite my ardent attempts to turn myself into a drooling train wreck of a human being.

In June of 2008, I gave it all up. I realized that I was a total train wreck and that everything around me was completely out of control. My career was stagnant. I was sliding backwards as a person. I wasn’t meeting any of my goals for myself because I was too busy slowly killing myself.

I stopped drinking. I got the help I needed and I began the long, painful, process of pulling myself up by my shoelaces. I dried out.

By August, I had completed the SQL Server 2005 MCITP: Database Developer certification. I started the Columbus chapter of PASS in October. I started paying back all of my bad debt (only a few months left to go). Nine months after I quit drinking, I quit my one to two pack a day smoking habit (sorry about that one, Mom and Dad) – I never would have thought I could end my 13 year addiction to nicotine.

I have a great relationship with my family and friends now, it’s better than anything I could ever hope for.

I learned a lot of things from this.

  1. I can be horribly selfish.
  2. There’s nothing better than not being that selfish.
  3. I can do damn near anything I want to do if I put my mind to it.
  4. There are some things in life that are so important you can’t afford to overlook them.

Afterward

This summer, one of my friends (someone who met me at my lowest and stuck by me through everything) is giving me the greatest honor I could ever hope for: on June 19th I’ll be officiating his wedding. Like a lot of people, I wouldn’t change a thing about my life.

Knowing and not Knowing

In the IT field, people have the expectation that we’ll always have an answer or a solution. The problem is that we usually don’t have the answer. A lot of the time, we don’t even have the beginnings of a clue. Your reaction when you don’t have an answer speaks volumes. I’m going to use a story to illustrate this point.

The Story

Adam and Bill work together at Amalgamated Spats. During a design meeting Adam mentions a product that could solve some of the problems the developers at Amalgamated Spats are facing. Although Adam is a specialist, he has a great deal of work on his plate and Bill is designated to develop the features. Bill isn’t a specialist, he’s a generalist. Bill is a great developer, but he’s unfamiliar with this specific product.

Over the course of development, Bill makes great strides. Unfortunately, there are some features that he isn’t able to solve programmatically even though they are included in the product. These features are features that were sold as part of reason to use the product. When Adam and Bill’s manager talks to Bill about his progress, Bill tells the manager that he wasn’t able to get the features done because it isn’t possible using the product. The problem is that the features do exist in the product, they just weren’t available the way Bill was using it.

Adam and Bill’s manager is upset that they’ve put so much faith in this product. While the manager trusts Adam, Bill has been working with the product day in and day out, trying to implement these features – why wouldn’t Bill tell the truth? As a result, Adam loses credibility. He can get that credibility back, and certainly will, but for a while it’s gone.

The Problem

There are a couple of problems with this situation:

  1. Bill has effectively thrown Adam under the bus (we call this bussing). Adam has lost credibility with the manager because he gave “wrong” advice.
  2. Bill said “No” when he should have said “I don’t know.”

Of these, the second is far worse. Ultimately, the first problem will go away and Adam will gain that respect back and everyone will be happy again. But the second problem speaks volumes.

It’s Not Okay to Say “I don’t know”

But I just said that Bill should have said “I don’t know,” right? Wrong. Saying “I don’t know” and ending it at that is not acceptable. In this crazy software development world, it’s our job to find the solutions to problems. Did you read that correctly? I didn’t say that it’s our job to code the solutions to problems, it’s our job to find the solutions to problems. Sometimes the solution is to use an existing solution or feature which you can only find through research. Do you see what I’m getting at yet? “I don’t know” isn’t acceptable but saying “I don’t know, but I’ll find out” is perfectly acceptable.

What’s the difference?

When you say “I don’t know” and you stop there you’re effectively throwing your hands in the air and giving up. You’re not only admitting that you don’t know, but that your lack of knowing is the end of it. It ends the conversation

If you say “I don’t know, but let’s find out,” you’re telling the other person that you don’t know the answer and it bothers you. It bothers you so much that you’re going to find out the answer. You’re advertising your inquisitive mindset and the way you solve problems.

What Should I Do?

The next time someone asks you a question where you don’t know the answer, tell them you don’t know. Be completely upfront about it. Follow that up with “but I’ll find out.” Then, actually find out the answer. Research the problem, research the product, and consult with experts – even if you think you are one.

Your Own Personal Development Plan

It’s September. I think that means that autumn is upon us. It also means that it’s time for me – and my coworkers – to work on our Professional Development Plans. I’m not going to lie, I love the idea behind doing a PDP (I’m already sick of typing Professional Development Plan). You should probably think of the phrase Personal Development Plan instead of Professional Development Plan whenever you see PDP. Why? Because you don’t work with me, probably.

What Are You On About Now?

A PDP is basically a big list that you agonize about for days on end until you rush through it at the very last minute and turn it in to the owners of your company only to say, 5 minutes later, “Oh, shit! I completely left off the only project where I actually did any work!” Unfortunately, this description does nothing for you because you weren’t sitting in my cubicle during the 45 minutes I frantically slapped my PDP together. (Just kidding, boss, I carefully crafted my PDP over several long days. After hours. On non-billable time.)

No, Seriously, What is a PDP?

The point of a PDP is to help us proactively manage our career. As a consultant I’m not always working directly with people from my company. Not that I can blame my clients, but my career advancement isn’t really their top priority. Even when I am working with my fellow consultants, they’re usually reporting to me and are more concerned about their needs than my long term career goals. This PDP thing serves as a road map – something to revisit and revise throughout the year to help me stay on track. It’s incredibly important to have a good grasp of your goals, especially when you don’t have a lot of contact with the person doing your performance review.

Roadmap. Think of a PDP as a roadmap. A roadmap you’re drawing on as you move forward. You’ve probably also got some sticky notes (those cool ones with arrows) pointing to highlights along the way. I’m hoping that your career is filled with pit stops like the Christmas barn that’s between Columbus and Cleveland along I-71.

How Do I Do This Thing?

I’m going to assume, for the sake of argument, that you have never done one of these before. That’s okay. It really isn’t a difficult process, but you’ll probably want to take about a day for this, certainly a few hours.

What Have You Done?

Basically, the first step is to review what’s happened. If you’ve never done this before, this could take a while. You’ll want to take a look at your career and your major accomplishments since your last review. Make a list. Also make a list of everything you’ve learned over the last year – this could be your successes, your failures, your missed opportunities, anywhere you had the opportunity to learn. The important thing here is to make a big list of everything. If you can think of somewhere that you feel like you should’ve done something but you didn’t, make a note of that too.

I write about what I’m the most proud of first. This gets the juices flowing, so to speak. By writing about something that I’m proud of and passionate about I’m going to fill myself with energy and ideas. I’m going to describe every little thing about what I’ve done. And when I’m done I’m going to want to keep talking about all of the awesome things that I’ve done because I think they’re fascinating. Once I’m full of energy and enthusiasm, I’m going to keep on writing until I don’t have ideas. And that’s what you want.

How Did You Get Here?

Don’t stop with a list of accomplishments! Move on to the next step make a list of your key strengths. This is going to be very important later on. The key is to actually look at your own abilities and be honest about your skills. Are you really an Excel expert or do you just know how to use the auto sum feature? Be brutally honest. It’s okay. Being honest gives you the opportunity to learn more.

This used to be my favorite part of doing these kind of reviews until I realized that I was breaking all of my skills down to minute specialties in order to have more bullet points. Just be honest. Don’t mention every nook and cranny of C# that you know. Just write down “Strong C# development skills” – you aren’t trying to impress anyone with the list of esoteric APIs you’ve memorized.

What Could You Have Done Better?

This is the part where I literally ask myself “What could I have done better over the last year?” It’s a rough question to ask yourself, but the key here is that you probably have answered this question without even realizing it when you made a list of everything you’ve done over the last year. Remember how I said to include your failures, missed opportunities, and anywhere you had the opportunity to learn? Well, you can elaborate on these opportunities here. When you’re making this list, remind yourself that these aren’t your failings, they are really just places that you could have done something better. Everyone drops the ball every now and the. It’s okay. The key is to get back up and learn from what happened.

Once you have a list of places you could have improved, go over the list and think about each item one at a time. How can you get better? Is there a book you can read? A class you can take? Is there someone you can talk to about mentoring you?

What are your goals?

You need to be thinking about your goals. What do you want to do?

We’re not talking about what you want to do for lunch. You need to be thinking about what you want to be doing with your career. Think about the next year, the next three years, and the next five years. Do you want to be running your own department? Starting your own consulting company? Retired?

For some help in setting your goals, take a look at the idea of SMART goals. Basically, you want to make sure your goals are Specific, Measurable, Attainable, Realistic, and Timely. The important thing to keep in mind is that the farther out the goal the less specific it needs to be.

How are you going to get there?

At this point, you have a list of everything you’ve done well, everything you could have done better, and your goals. Now it’s time to set up plans to achieve your goals. Make sure that your plans and your goals are realistic. Share these goals with a mentor, co-worker, or friend to get some input and guidance. It’s important to get some external validation. I know that I have a habit of being too hard on myself and I set up goals that are a bit out of range, so I seek the advice of a few trusted advisors.

I make it a point to review my plan and goals every month. Once every three months or so, I meet and talk with a few people – mentors, friends, and the owners of my company. The whole point of this is to stay on track and make sure I’m working toward my goals. If I’m straying away from my goals, or if I’m accomplishing them faster or slower than normal, it’s good to re-center and get back on track.

What’s Next?

Every year conduct a review. Look at yourself critically, but honestly, and always strive to keep improving and keep your career and your goals aligned.

This site is protected with Urban Giraffe's plugin 'HTML Purified' and Edward Z. Yang's Powered by HTML Purifier. 219 items have been purified.