Discovery… Not Just for Explorers

In the scramble to get hands on keyboards in a development shop, one of the most important phases of development often gets short shrift.  That phase is discovery.  I was lucky enough to spend a few weeks with one of our clients working through a formal discovery phase, and was reminded how valuable this time and effort can be.  It also got me thinking… How can any developer, regardless of project role, gather the information that normally comes out of a discovery effort?

Discovery Who? 

So what is Discovery, exactly?  Discovery is the part of development where you answer a few key and seemingly basic questions about the work you think you want to do.  These questions include:  Why? What? Who? When?  There are a few key outputs of a discovery cycle, including:

  • Problem statement – a short, concise explanation of what’s in need of improvement/enhancement/rework
  • Solution statement – a short, concise statement about what’s going to be done about the problem
  • Scope – a list of things that will be done, as well as a list of things that won’t be done
  • Assumptions – any assumptions that have been made about environment, people, technology, complexity, etc. in regards to the project
  • Risks – a list of things that can derail the project, which might include company direction, technology changes, dependent projects, or that “simple” external system that you need to integrate but haven’t had a chance to see yet
  • High-level time estimates – a high level SWAG (Stupid Wild-Ass Guess) at how long it should take to complete the work, or a time window based on other external factors
  • High-level resource needs – a high level list of people (or skill sets) and technology resources (hardware, software) that are needed to complete the project

Notably absent is one thing:  How?  That’s because the how is design, not discovery.  Resist the overwhelming urge to start designing the solution before you fully define the problem.  This is the part that I struggle with every time I’m asked to help out with the discovery phase.

A Developer’s Life

Discovery information will come at you in one of two ways:  either you’ll be asked to answer the above questions and help define the project, or someone might come to you with all or part of this information and expect you to be involved in the subsequent phases of the project.  In both cases, it is absolutely vital that you (Yes, you… the dashing figure reading this post) feel comfortable with the outputs of discovery before you start designing or developing anything.  This is known (in my head) as Sneaky Discovery.   (Credit to Julie for her invention, the Sneaky Proof of Concept… I’ve adapted the concept for Discovery) It ain’t as evil as it sounds, I promise.  Let’s talk about this one for a bit.

I know… it can be uncomfortable to question a project’s intent or setup, especially when you haven’t been asked to.  But bear with me for a moment.  I’m not asking you to put on your fedora w/optional press pass tucked into the band and annoy the ever loving crap out of the people around you while sporting your best Humphrey Bogart voice.  I’m just asking you to take 30-60 minutes and make sure that you feel good about the work you’re about to do.  Let’s look at a dramatic reenactment of a common situation:

 

Scene: John, a diligent data professional is at his desk, working on the latest product release.  Enter Manager (Mike).

Manager: Hey! Bob!  How are you?

John: It’s, um, it’s John.  Not Bob.  I’m good.  What can I do for you?

Mike:  Good, Bob, good.  Glad to hear it.  I just walked out of a Very Important Meeting with Very Important People, and I have a new set of tasks for you.  We’re going to speed up Database X.  Also, I have these 17 new reports that need to be developed… um, somewhere.  Let me check my notes… Ah, there we are!  I’ll e-mail this right over to you so you can get started.  How long do you think this will take?  Can you have it by next Friday?

John takes a deep breath, and time stops.  Enter Mysterious Announcer (MA).

MA:  Right now, John is faced with a career conundrum.  His fate is in his hands, even though he doesn’t realize it right now.  He can either nod and say “Yessir, right on that, sir” and make his manager feel temporarily happy about his decision to hire John, or he can ask a few questions that might make his manager feel a bit uncomfortable in the short term, but will save the company thousands of dollars in the long term.  Let’s see how John handles it.

Time restarts. John turns to his Manager.

John:  Gee, Mike.  That’s a lot to absorb.  I have a few questions to ask before I commit to a time estimate.  Mind if we sit down and talk through the project together?

Mike: (uncertain) Sure?  I think we can do that.

Angels sing, bells ring, beautiful and intelligent women begin to notice John’s unconventional good looks and charming, yet adorably shy, personality

 

Friends, this is your moment to shine.  When faced with a situation like this, it’s up to you to do your own version of Sneaky Discovery and make sure that you’re not diving into the shallow end head-first.

When John gets a chance to talk to his manager, here are a few basic questions he should be asking:

1)      Why are we doing this?  What is the problem we’re trying to solve here?  (Problem Statement)

2)      What’s the solution that we’re going with?  Is it the only one available?  Why did we pick this one? (Solution Statement)

3)      What are the things that we’re going to do, and how does each of them help solve the problem we’re fixing?  What are we NOT doing? (Scope)

4)      Any assumptions about technology direction, complexity, or anything else that led us to the next Friday deadline? (Assumptions)

5)      Anything I should know that can cause us to get off track? (Risks)

6)      How long did you assume this project would take?  Have you made any commitments about delivery?  (High-level time)

7)      Who else is working on this? Do we have a dedicated development environment? (High-level resources)

8)      BONUS QUESTIONS #1: Who is impacted by this change?  Is it okay if I check in with them?

9)      BONUS QUESTIONS #2: How are we testing this?  How are we deploying it?

This conversation will probably take less than an hour for a narrow scope of work.  It does two things:  1) you step into the project with more information than you had initially and, 2) you show your manager that you want to understand the work you’re doing.  Good managers appreciate this.  If you’ve a manager who doesn’t appreciate your questions and desire to understand the work you’re doing, you’ve got a lot to think about, my friend.

Now, the worst case scenario is that John’s manager can’t answer these questions.  What to do then?  In a perfect world, you pull the comically large brake and hit the giant red STOP! button.  Now, it is up to you to decide how to handle the situation.  I’ll tell you how I normally handle stuff like this, because it happens… often.

 

Manager: Um, I don’t really know why we’re doing this.  The CTO asked for it, and I’m here to get it done.  That’s why I’ve been the vice president of middle management for 15 years, damn it!

Audrey:  Okay.  I can do this work.  However, let me lay out some of the risks for you.  We don’t understand why we’re doing it, and we might make poor design decisions because we don’t see the big picture.  Also, without a clear understanding of what problem we’re solving, I don’t know how to tell you that we’re done.

Manager: Okay, works for me.

Audrey:  Can you put that in an e-mail for me?

 

If I feel likely to get burned, I put my concerns/feedback in e-mail.  If I trust my manager to hear me, I tell him in person.  The point is that I never dive into design or development until I’ve either gained broad understanding of the project or at least told someone that I’m working under less than ideal circumstances.

As long as we’re all sharing, let me tell you… we’ve all been there.  We’ve all taken the task, done the work, and delivered something without really knowing why.  It happens.  The trick is to know when you’re dealing with a tough situation and how to mitigate risk to you as well as your team.

You’ll likely find that it is up to you to help flesh out those Assumptions and Risks, and to make suggestions about Scope.  As the in the trenches guy, you’re probably aware of issues that your manager isn’t.  Don’t be shy about sharing that information.  Trust me, ‘tis better to air the dirty laundry at the beginning of the project than to grumble at the end because you “just knew” that this issue was going to come up.

An Aside on Scope

We’ve all heard of it, and if you’ve worked for any amount of time in this business, you’ve lived it.  The dreaded scope creep.  Many times, scope creep happens because discovery was left wanting.  Or, the team isn’t disciplined about sticking to the original scope.  The pain of scope creep is never totally avoided, but it can be minimized.  Foremost, make sure that you have some scope to work with.  Remember how Manager Mike said that he wanted to “speed up Database X”?  Wow, that’s a broad statement.  He also wants to do it pretty quickly.  This means that you probably can’t re-architect the entire system or purchase shiny new hardware to solve this problem.  You might end up with something like this in your scope statement:

Task:  Speed up Database X

In Scope:
1. Tune top 10 worst performing queries
2. Examine index maintenance plan and add key missing indexes
3. Archive old data that is no longer used and remove from primary database
 
Out of Scope:
1. Change logical design of the database
2. Upgrade hardware
3. Rework data access layer

On a highly regulated team, this may end up in a formal document.  If you’re like many developers and things run a little more fast and loose in your shop, there is nothing wrong with shooting off an e-mail or having a conversation about what can be done in the time you have.  You could say, “Mike, we have a week and a half to do this work.  Let’s focus on low-hanging fruit and non-invasive changes.  When we have more time, we can talk about more aggressive changes”.  (Managers love idioms like “low-hanging fruit”)  He might say, “Great!”, or he might come back with, “So if we wanted to address your out of scope items, how long would that take?”  Both are acceptable responses, and you should be ready for them.  Point is, put some boundaries around the work you’re doing, and set expectations about how much can really be done with the time and budget provided.  This allows you to be the guy who never says, “No”, but also protects you from unreasonable requirements.

Final Thoughts

One last thought on discovery within the development cycle.  As developers, we want to know everything up front.  We want details, and we want them now.  Here’s the thing… it ain’t gonna happen.  Take a deep breath, accept the unknowable, and focus your Sneaky Discovery efforts on getting some clarity on why you’re doing what you’re doing, what you’re doing (and not doing), and what might throw the project off.  The rest will shake out during design and development (and possibly testing), and that’s okay.  We’re never going to get it perfectly right, but asking a few of the right questions at the right time can get everyone comfortable with how the rest of the project is going to go.

Now, get out there, get proactive, discover some stuff, and get vocal about how your work fits into the larger picture!  I’m rooting for you!

–Audrey

Great way to begin 2013! (Hint: it involves a TLA)

Quick, happy announcement… My fellow Datachix, Julie Smith, has received the SQL Server MVP award for 2013!  Also, I’ve been renewed as a SQL Server MVP for 2013.  What does this mean?  Yeah… 100% of the people who blog on this site (all two of us) are MVPs!

mvp

So, Julie, while I am not the first to congratulate you, let me be the first to do it on our blog. 🙂

On a personal note, I am grateful and humbled to be a part of the MVP community for another year.  Having experienced 12 months of the program, I’m honored that Microsoft saw fit to include me for another year.

As a bonus, here’s a picture of Julie being awesome:

Wizard

Rock on, my friend!

–Audrey

p.s. Note to self:  It’s been a while since you blogged about anything, Audrey.  Get your act together and post more often!  (Nodding…)

On Epiphanies, Friends, and Career Direction

On Monday, May 25, I woke up to a realization.  I don’t like my job!  I’d like to say it was startling or sudden, but that’s just not true.  But the epiphany wasn’t that I was unhappy doing the work I was doing, it was that I suddenly realized that I could not do it anymore.  Not wouldn’t… couldn’t.  Some switch flipped and I knew with absolute certainty that I wasn’t going to create enough change in my environment to make myself love my job. 

So, while I drove into work, I thought about my epiphany.  I asked myself questions: 

1) Why don’t I like my job? 
2) What am I going to do about it?
3) Am I losing my mind; have I become irrational? 

The answers, respectively, were: 

1) I don’t love Business Intelligence.  It’s a great field, and I thought it was the natural progression of my career, but I just don’t love it.  I am surrounded by people that do, and that just highlights the fact that I’m not passionate about BI the way they are.  That, coupled with the fact that I’ve been in a very tough consulting environment for a few months where I regularly do work that is neither fulfilling nor educational made for a bad combination. 
2) I’m going to change something. 
3) Surprisingly, no. 

Okay, so what to do?  I e-mailed a few trusted SQL friends and told them about my epiphany.  I know that every one of them probably said, “duh, Audrey” as they read the e-mail.  They all intuitively knew that I wasn’t doing something I loved and were all supportive and encouraging of my decision to figure out what to do next.  My dear and always supportive friend Aaron Nelson (Blog | Twitter) pointed out that his company was interviewing candidates for a database developer position over the next few days.  Now, I’ve known Aaron for a while, and he loves his job.  I’ve met his boss and co-worker, and they’re cool guys.  AND… one of my very best friends in the whole world, Ted Hughes, is an application developer over there.  (Tangent:  I know what you’re thinking… I’m friends with an application developer?  I am.  He’s brilliant and awesome, and if I ever need to hide a body, he’s the guy I’m calling.  Partly because I know that he has a truck and proper tools, but also because I know he’d show up. Oh, and he writes good SQL.  That’s how we became friends in the first place.  :End Tangent)

Also, my poor husband got this text from me on Monday:  “Had an epiphany. Don’t love BI. Getting a new job.”  To his credit, he just said, “Do whatever you need to do to be happy”.  Yay, Jeremy.

Long story short, epiphany on Monday, interviewed, loved what I heard about the position, offered position, accepted position, turned in notice on Wednesday.  My last day at Key2 Consulting is June 14.  My first day at ista is June 20.  Yes, I’m taking 3 days off.  Mike, my new boss, will appreciate me not being a frazzled, stressed, overwhelmed mess on my first day.  I will probably hang on to 1 or 2 of those characteristics even with the time off, but I haven’t decided which yet. 

Key2 Consulting is the company I’m leaving.  I love this company.  I pursued Key2 when I started to look at a career in BI Consulting.  Brian Thomas is an amazing boss, and more importantly, an amazing person.  I have friends here that I’m sorry to leave.  I have no regrets about coming to work at Key2, and I’ve truly enjoyed being a part of this family.  But, I’m moving in one direction and Key2 is moving in another.  Loving the people you work with is important, but loving the work you’re doing is more so.  For anyone who IS passionate about BI, this is a quality group of people. 

I know what you’re thinking:  Okay Audrey, you got a new job.  Big whoop.  What’s your point?  I do have a point (actually a few).

What I’ve learned about my career and life in general

1) Don’t be afraid to try new directions.  Also don’t be afraid to admit when they haven’t panned out. 
2) If you’re unhappy where you’re at, try to change where you’re at.  If you can’t do that, find a new place to be.
3) Friends are so important.  My friends validated and supported what appeared on the surface to be an impulsive decision.  But, they’d listened to me over the past few months, and each one of them knew exactly what to say.  A couple of them even had opportunites to offer up. 
4) Forget career ladders and job titles.  Figure out what aspect of this crazy career choice of ours you love and go get paid to do it. 
5) Sometimes you just KNOW.  When you do, ACT.  This doesn’t just apply to our careers.  This applies to life in general.  How often do we feel certain about what to do next?  When one of those rare moments comes along, go with it.

To my friends who read my rambly, strange e-mail that Monday and responded with kindness and encouragement… Thank you.  You know who you are, and I hope you all know that you’re awesome.  Hugs all around. 

–Audrey

SQL University – Sometimes Saying Yes is All About Not Saying No

Before we get started, a big thank you to Jorge Segarra (blog|Twitter) for inviting me to write for SQL University during Women in Technology week.  I’m honored to be in the company of such cool people and to be a part of such an awesome endeavor.  It has been so much fun planning for this with Jes Borland (blog|Twitter), Julie Smith (blog|Twitter), Jen McCown (blog|Twitter), and Wendy Pastrick (blog|Twitter).  They are an amazing bunch of women. 

I love data. I love making a living in a technical field. Is this what I wanted to be when I grew up? Well, no. I wanted to be a:

  1. Wonder Woman (my Underoos phase)
  2.  Astronaut (my Sally Ride phase)
  3.  Archaeologist (My Indiana Jones phase)
  4.  Egyptologist (An extension of my Indiana Jones phase)
  5.  Detective (My Sherlock Holmes/Harriet the Spy phase)
  6.  Field Surgeon (My MASH phase)
  7.  Engineer (The result of attending engineering conferences in High School)

See a theme? Every field I was interested in had some basis in a scientific discipline. What? You think Wonder Woman doesn’t count? You think that Invisible Plane invented itself? Anyway, I was a bit of a tomboy, and I thought digging in the yard for non-existent fossils was way cooler than playing with dolls. I was never encouraged to be who I was. I was just a kid who found this stuff interesting.

My point is this: I don’t have a technical career now because someone pulled me along a path to it. Quite the opposite. No one ever told me that I wasn’t supposed to love science. No one ever pointed out that what I wanted to do with my life didn’t fit a classic stereotype of women. This is why I’ve struggled to embrace the Women in Technology movement. I’ve never felt like being a woman in my career field was all that challenging. In fact, I know that I’ve had opportunities come my way because I’m a woman.  (p.s. — Yeah, it irks me a little.  I believe I can stand up next to anyone and hold my own.  But, at the end of the day, I’m a capitalist.  If being a woman opens the door a crack, you can be sure I’ll try to kick it wide open with experience and competence.) 

Don’t get me wrong… the women and men who volunteer for and support this organization do great work. Some kids out there aren’t as lucky as I was. They don’t have parents who humor every ridiculous science experiment and who take them to the library to check out books on ancient Egypt. And, the fact that I stand on the shoulders of thousands of women who did have to fight and claw their way into the lives they wanted isn’t lost on me. I am so thankful that I am a Gen-X baby, and wasn’t born 30 years earlier. I suspect my life would have been very different.  I know I’ve been lucky.  I know that my experience doesn’t mirror everyone’s, and I know that there are still (in 2011!) injustices happening in the workplace every single day. 

But, in the spirit of my own personal experience, I want to use this platform to honor 5 men who helped shape my outlook on life and my career. Why men? Well, I want to remind everyone that while we’re talking about women in technology this week, there are a lot of men out there who both support and need the support of all of us too. I’m a mother of two boys. My sons are being raised as I was raised, with dreams and aspirations that are never called into question**.

Audrey, circa 1981, proud token girl on the Santa Fe Roadrunners

1) Dale Bass – My Dad – My dad is what we here in the South call a Good Ol’ Boy. He’s a blue-collar kind of guy. His eyes sort of glaze over every time I try to explain what I do for a living. But, when I was a little girl, he had more influence on how I see the world than any other man in my life. He taught me how to shoot a rifle and a bow. He bought me a four-wheeler, a junior circuit board kit, a chemistry set, and a telescope as gifts throughout my childhood. When I was five he went to sign me up for soccer. He was told there wasn’t a girls’ team. Without missing a beat, he said, “Okay then, put her on the boys’ team.” He never once let me believe I couldn’t do something because I’m a girl.  I still believe him. 

2) Jeremy Hammonds – My Husband – Jeremy puts up with my various neuroses and my pathological need for self-imposed stress. That alone gets him on my list. But, he also loves that I’m smart. He loves that I have a career. He’s more likely to send me an execution plan than a love letter. I love that. And, shhh… he lets me be an emotional wreck when I need to be. When I have to put my game face on at work, it’s okay because I know I can come home at the end of the day and tell him how the project makes me feel. Then, when I’m done whining, he asks me what my solution is. I love that too.

3) Ken Smith – My High School Geometry and Algebra II Teacher – Mr. Smith was one of those all-too rare teachers who really, truly cared about his students’ futures. He sat me down in my 11th grade year, when I was imagining a senior year full of blow off electives and told me that what I really needed to do was make something of my last year of high school. He talked me into signing up for both Computer Science and Physics, two science credits I didn’t need. He told me that I needed to jump at opportunities to learn. He tutored me through sections of his class that I struggled with to make sure that I was always academically eligible to play sports. He taught me that a little extra homework was worthwhile when you were learning something cool. Like Turbo Pascal 7.0. Who could have known that that one piece of advice would set me on this path?

4) Ken Smith – My first supervisor in the Air Force – Yes, I have two Ken Smiths on this list. They couldn’t have more different personalities. Sergeant Smith took a totally different approach. He never gave me special treatment, and he never singled me out, even though I was the only woman in a shop of 60. He berated and swore and when I was pregnant with my first child, told me that if I was going to be a baby about having morning sickness I could go sit somewhere else. At the time, I didn’t understand what he was doing. But, he was doing me the greatest favor he could. By making a point of not ever treating me differently, he set a standard for everyone else around me. By never getting special treatment, the door was never opened for me to be treated poorly. He shaped my expectations for how I want to be treated in a male-dominated field.

TANGENT:  Very early in my career, I had a supervisor who was afraid to tell me when I did something poorly because his greatest fear was that he would make me cry, and he couldn’t handle crying.  I had to gently explain to him that while I am of the female persuasion, crying at work just really isn’t my thing.  (it has happened, but very rarely) Then, once I’d convinced him that I could handle criticism, he said this to me:  “You suck at T-SQL.  Like, really suck.  You think like a COBOL programmer not a DBA (which was true at the time), and you need to spend an hour a day working on this.”  So, I guess I got what I asked for, but guess what?  Because of him, I don’t suck at SQL any more. 

5) Finally, the guys I’ve interacted with throughout my careerTo those of you who aren’t afraid to tell me when you think I’m wrong and aren’t afraid for me to be right… To every one of you who got over the fact that I have hips and breasts and started treating me like just another member of the team… Thank you. If you ever invited me out to happy hour after work or weren’t afraid to tell an off-color joke in front of me, I’m indebted to you. Here’s the thing… It doesn’t matter how comfortable I am being a woman in this field. If you can’t get comfortable with me being here, then we’ll never make any progress. I’ve been so lucky to have been surrounded by men just like you every step of the way. The list of names is too long to print, but y’all know who you are. I owe you one.

Bonus embarrassing childhood photo of Audrey

To be perfectly honest, I don’t care about forcing a population in technology that mirrors the demographics of our country. What I do care about is making sure that every single person, boy or girl, never experiences any barrier to the life they want, be it as a database developer, stay at home parent, or Wonder Woman. If we can accomplish that, it’ll all work itself out naturally.

** Okay, I did tell my son Chase that he might want to have a Plan B if his aspiration was to be the next Eminem. But that’s just good parenting.

HOMEWORK  — I have one and only assignment for you: 

1) If there’s a kid in your life, boy or girl, watch and listen to them.  If they express an interest in something, support it.  Take them to a library or a museum.  Find a person who does what they want to do and let them talk to them.  If she’s digging in the yard for fossils with your best serving spoon, go get her a shovel.  The holes in your landscaping are a tiny thing compared to the beauty of watching a kid who’s engaged in her passion.  You don’t really have to do much… just don’t say no.

SQL University –We Could Be Heroines…. Not Just For One Day

Hi All, Julie here.  Welcome to day 2 of Women In Technology week here at SQL University.  Thanks to Jorge for sponsoring this topic again.  Jes Borland (Blog: Twitter) has gotten us off to a great start.  Tomorrow will be my blogging partner Audrey Hammonds (Blog | Twitter).  Thursday’s Professor will be Jen McCown (Blog | Twitter) and Friday’s will be Wendy Pastrick (Blog | Twitter).

It has proven to be a hard writing task for me.  On the one hand, there does still seem to be a problem with a lack of women going into I.T.   I have listened to women tell me some pretty horrific stories of workplace malfeisance, and in addition to other factors which may have caused the mistreatment, gender did seem to play a role.   And when you miss an opportunity or get squeezed out of an environment you want to be a part of, that sucks.  It hurts financially.  It wounds.

But on the other hand, in my experience, the trials and tribulations I have encountered as a result of being a female in I.T. have been entirely surmountable and minor.  This may not have been the case for me a generation ago.  For that I count my blessings.  And my saying that does not for a minute mean that my attitude is “oh you girls, stop complaining” or “I don’t believe you”.  But my point is that I do not approach the gender gaps in technology with feminist rage, nor do most of my female coworkers.   Really the most common attitude I encounter from people around this issue is bewilderment.  We can’t understand why more women don’t want to go into a field which we find very rewarding.  So for now, I am simply interested in getting the word out that careers in I.T. are great.  I love my job and I want to help and encourage anyone (male or female) else who may be interested in this field to pursue it to the best of his/her ability.   I want people to know one of my favorite things about I.T., which is that it is still largely a meritocracy, where ability  and hard work will get you very far. Continue reading SQL University –We Could Be Heroines…. Not Just For One Day

Time To Rewrite Julie’s Bio Again…

I am no longer the first and only DBA at GA Communications. I’ve accepted a job where I will go back to my true data love, Business Intelligence. I start on Monday, and today was my last day at GA. When I crafted this exit timeline I envisioned three days of shopping, primping and lunches with friends so that I could hit the ground at the new job refreshed.

Oh contraire, mon Chickie. This weekend I annihilated my lower back playing soccer with a bunch of 8 year olds. I spent my last two days of work hobbling around like a little old lady. Instead of pedicures and haircuts the next three days will feature a lot of time spent laying on a heating pad.

When I wasn’t hobbling around or trying to stand upright, I was cross training my replacement. What a treat! Who gets to leave a job with a competent replacement anymore? Not someone who is already overworked and is just going to try and keep your stuff from exploding until you are actually replaced, but a fresh, qualified hire, whose existence is solely due to your impending absence and who is there with you for a while, no matter how briefly. I am so grateful to my former employer for doing this; I wish more companies were able to do this more often. All the best to my former colleagues–Thanks for everything.