Twitter github

Category “Software”

Do the simplest thing first

red_kite_cropped

The road to redemption sometimes starts with a software mantra.

In test driven development, doing the simplest thing is a guide intended to keep you unblocked and moving:

  • When you are writing a new test…do the simplest thing first.
  • If you have something complicated to implement…do the simplest thing first.
  • If tests are broken…do the simplest thing first.

However, doing the simplest thing can still be a challenge and might not even look like it is immediately moving you forward. Often, the simplest thing is a hack that looks like a badly drawn picture or a step in the opposite direction.

It takes practice to rewire a bold and busy, future-driven, human brain for this type of thinking. The trick is in repeating and following the mantra. The challenge is in continuing to follow the path. Your steps and tests won’t be perfect every time and your brain won’t like the fact that you are discarding so many fancy plans, but this is the practice. You are walking a path and each next step is the smallest, simplest one you can take.

This path will wind itself further into your thinking slowly and steadily over time. Your brain will relax into the small steps. The architecture of your code will change. Your focus will sharpen until you see only the step in front of you.

Although this may look and feel like tunnel vision, you will eventually find yourself reaching for the simplest thing when you are faced with larger challenges either in software or in real life. It is this focus on taking a single simple step that will start to open some doors and help you break through limitations in your code and also within your own mind.

Often, when viewed from the outside, the simplest thing equates to something far beyond easy. It could be making a change that breaks all of your tests or it could be admitting that you were wrong about something or, even harder, wrong about someone. It’s here that doing the simplest thing means tearing down a wall you’ve built inside yourself. That’s not easy.

Although the software lesson is in the accumulation of small, simple tests that become a safety net for experimentation, the larger lesson has more to do with how we approach our own inner limits, choices and patterns. As humans, we have a tendency to remain stuck in our own lives, unable to see what is blocking us as we debug, console.log, and pry ourselves until we can’t pry anymore.

When we are in a state of discomfort, the simplest thing can appear to be a tiny kite hovering far above and out of reach, amidst the thick dark storm clouds we hang over ourselves. It might look far away, but it’s not. This is when the simplest thing turns into whatever it is that takes you one step away from frustration. This might mean walking away or it might mean doing something you feel certain is wrong or something that is scary but that will keep you moving.

In the end, that is what doing the simplest thing is all about: keeping you moving with smaller steps. This focus in a moment when you are wracked with self-doubt and frustration is not going to give you a test suite, but it will give you something far deeper: a sense of relief. With practice, relief eventually turns to confidence and you will see the clouds in your own mind begin to disperse.

Your code is a novel

What is the story told by your code?

The story in your code gives someone looking at it for the first time a sense of where they are in the codebase. The tests invite them in and give them a sense of who the code was written for and what they can expect from it. The overall structure of the code has a coherence with each piece needing to be where it is. Each line of code serves a purpose. Names have meaning in the context of what the app is doing and each line of code continues the journey of the line before it much like the sentences in a novel.

Tests tell the story

Tests are the entry point into thinking about the intersection of coding and writing. Have you looked at what your test titles look like when you execute them? If you have, do they tell a coherent story? It is easy to smash a phrase or two into a test title, but these are the first, tiny glimpse of your code to the outside world. These tests are also an expression of questions you’ve asked about what you are building. If there weren’t too many questions asked or there aren’t any tests, it is highly likely that there was never a shared understanding about the story the code is supposed to tell.

Test-driven development helps with this because, with your tests, you are creating the outline of what you are about to build. Picture writing a draft novel of 300 pages and then realizing that your main character is flat because they are not conflicted about anything. That’s a lot of writing to toss out because you didn’t do the outlining steps in the beginning.

Plot and structure

Great writing hangs together because there is a polished structure in place. Writers agonize over how conflict is exacerbated by a character’s fatal flaw or how well they have set up their character for the ultimate fall. This same attunement to structure turns into an eye for low coupling and good cohesiveness in code.

An application is not just about one method but about the patterns that emerge through classes and/or components. This shows in the way that each line of your code reads and each piece of code is in place because it needs to be where it is.

Editing as Refactoring

A friend told me that great engineers are not afraid to throw something away even if they have spent a significant amount of time working on it. I’ve frequently heard the same thing whenever I listen to novelists talk about how they edit their work. Experienced novelists won’t just throw away a scene, they will re-write everything from a different point of view or ditch a plot line completely.

Aside from larger edits, there is a joy in tightening down a piece of writing or a piece of code. Although it is important to do the simplest thing first to get something on the page or to get something working, that’s only part of the equation. It is also important to go back through a shitty first draft and excise anything that doesn’t belong, much like a sculptor winnows away until all that remains are the edges that truly tell the story.

Meaningful Brevity

There is a fine line between verbosity and names that are so short they have no meaning. In software engineering, there is a practical reason for brevity. That reason is performance. Extra loops, extra characters and extra method calls stretch out the time required for a browser to render a page just as too many words and writerly flourishes will take the reader out of a story. In a great piece of writing, every word is in place because it serves the purpose of the whole and because it must be there.

Semantics Matter

The semantic names of variables, methods, objects and classes can have a long life and are often repeated throughout a codebase. Not only do they have meaning in the context of where they are being defined but they are creating meaning every time they are reused elsewhere. What will those sentences look like to your reader and how will they live over time? Are the names you are choosing attached to some structure that is likely to be refactored away. If you are choosing names to reflect what a user will see in your app are you using the same language as your teammates who won’t be looking at your code?

It’s about the journey

While it is an accomplishment to hold the book you wrote in your hand or to point to the app you built, this is not the greatest joy of writing or coding. The joy is in the creation. The best days are the days when thought after thought and page after page comes tumbling out. As an engineer, you know what you are building and have broken the problem down into enough small pieces that challenge after challenge lasts a moment, or two moments and then you are writing the next test and building the next object. In pair programming, these are the moments when you’re deep in a two way communication and the code spills into your editor like swift waters rushing in a river and you are floating along.

Writing is a longing to experience this feeling of floating time after time. It’s about setting up your life to maximize the time that you spend in that space of words and thoughts coming together. Just as writers often figure out if they work best in the morning or at night, engineers learn about their own style and how to support it. It might be that your best work happens alone and at odd hours in your own home or it might be that you prefer an office filled with noise of collaboration because that is what comforts you.

Although software engineering has historically been pitched as an activity for people who think in logic symbols instead of words and human emotion, there is value in exploring the strong relationship between great writing and great software engineering. It is worth exploring your own relationship to writing and how that relationship expresses itself in your code. It is often the case that great engineers are also great writers which is proven out in their code. Your code is a novel.

Bringing back the Riot Grrrl

2009 was the year I rode zeitgeist like a motherfucker.

me in 2009

Portrait of a woman with her shit together

My blog became more widely read in software testing circles. I presented what still stands as one of my favorite talks on software quality and data visualization at the PNSQC Conference in Portland.  One week later, I presented that same talk, my first ever conference talk at Adobe Software in Seattle and again at Microsoft in Redmond. After graduating with an MS in Software Engineering I moved to Australia to work for a company making killer software development tools.

From the outside, my career was taking off and there were no limits.  My twitter exploded, I was in contact with a lot of conference organizers and I met so many people.  But, at work, I found my opinions being questioned and put down in ways I hadn’t expected.  In going from one job to the next, I found that, each time, what I had to say felt diminished.  I didn’t feel listened to or heard.  I was told I should be less abrasive, less aggressive, less defensive and take things less personally. When I did that, I was told that I shouldn’t bottle up my emotions.

I was #thatwoman.

Zeitgeist has a way of turning around and moving on without you.  I could feel its energy and power withdrawing as a particular stack of books grew taller on my bedside table: The No Asshole Rule, Crucial Conversations, The Sociopath Next Door, What Every Body is Saying, The Five Dysfunctions of a team, The Emotionally Abusive Relationship, Behind Closed Doors: Secrets of Great Management and Good Boss, Bad Boss.

If it made you tired reading all of those titles, think of reading each one cover to cover and making sure you apply what you learn from them every day at your job because you’re trying to survive and be the employee management seems to want.  That’s what I did over a period of 6 years.

What I found is that no matter how much I read and worked at not being an asshole or finding the “right way” to say things or get my opinions across, I could never be silent enough.  Quiet crept into my head and started to expand there like a cancer.

What? Quietness? Me?

The writing I do is smart, ambitious and full of backbone because that is who I am. These qualities, however, can lead to suffering at work…particularly for women. This is called tone policing.

Tone policing shows up in one-on-one meetings, performance reviews, chats with well-meaning co-workers, beers with friends, meet ups with strangers.  It even comes from the mouths of well meaning women and men who consider themselves feminist and/or interested in equal rights for women…that’s right. It is everywhere and it will chip away at you and chip away and chip away until it becomes something else entirely and you are being erased and even erasing yourself.

This is the equivalent of clear-cutting and terraforming your emotional acre and it can happen to anyone, even those who appear, on the outside, to be highly successful.

Here I am, on my birthday last year at the lowest point in the country, Death Valley. The low was also metaphorical. Yep, I was down. Way down. Further than ever and talking to no one.

I had erased myself. My writing no longer made sense because I couldn’t allow myself to say anything. My tweets were more polite than ever and slowed to a trickle.

What I didn’t anticipate at the bottom, was that zeitgeist, would once again, turn and present itself at a different angle, an angle I wasn’t expecting.

photo of Kathleen Hanna

Punk Singer

This is Kathleen Hanna.  She’s one of the firestarters of the Riot Grrrl movement.  I hadn’t heard of her before going to see the film about her titled “Punk Singer” on a get-to-know-you outing with San Francisco’s feminist hacker space, Double Union.  DU was, at the time, just getting started and looking for new members.

Riot Grrrl was a punk-rock, DIY focused movement born of Pacific Northwest, 90’s grunge zeitgeist.  Kathleen Hanna was the lead singer of punk band Bikini Kill and the person who spray painted the phrase “Smells Like Teen Spirit” on Kurt Cobain’s wall.  When taking the stage, she would call for all women to go to the front so that they could dance because, at the time, men had turned the front of the stage into unruly and unsafe mosh pits.

As I watched “Punk Singer,” I couldn’t stop looking at Hanna’s hair.  I couldn’t stop thinking about how I had worn that same shade of hair back in my heyday.  I fingered strands of my own long, brown hair and had a cry as the movie neared its conclusion.  After the film, I went home, cued up Bikini Kill’s Rebel Girl on YouTube and made an appointment with my hair stylist.

Sometimes finding your voice starts with a hair color.

For me, it was changing my hair color back to black and finding my place among those bringing the RiotGrrrl zeitgeist back around and into San Francisco’s tech scene where it is so sorely needed.

I got accepted as a member at Double Union and I began learning.  I’ve learned that the more smart and ambitious you are as a woman, the larger a target you become for other people’s projected insecurities and assumptions i.e. the more I follow Sheryl Sandberg’s advice to be bold, the harder and more damaging the knockbacks are likely to be.  I learned that it doesn’t matter how much I work at erasing myself, it will never be enough.  I learned that not all women are feminists and even women who think they are feminists are capable of tone policing other women.  I learned that anger is a beautiful, inspiring emotion that I’ve earned the right to feel in every cell of my body, and above all, I learned that it’s ok for me to have a voice and to use it.

I’ve been using that voice lately and sometimes it’s harsh.  Sometimes my voice shows the anger, grief and frustration of a woman who has been cut down time after time but who is still, somehow, a fighter.  Sometimes this takes people by surprise and they don’t know where the anger comes from, they only see me letting it go.  There was a time when I would have said, “don’t mind me,” or “so sorry, I don’t mean to offend,” but, I’m done with that.  To some extent, this means that I might lose some followers and that some people will shake their head and say, “she used to be so accommodating.”  So be it.  I’d rather be myself.

 

zineOver the holidays, I went to see the art exhibit Alien She: Examining the lasting impact of Riot Grrrl exhibit at Yerba Buena Arts Center.  Looking at the huge wall of Zines (pronounced zeens) assembled for the exhibit, it reminded me of the amazing zine community we have at Double Union. In looking at the hot pink, barbed wire fence made of yarn, I thought of the large number of members at Double Union who have brightly colored hair. The sound of the punk music strewn throughout the exhibit on iPods tracks not only with our collective frustration that tech is so fucked up and we’re just trying to survive it, but also with the happy chaotic noise of gatherings at DU.  The exhibit is open for another week until January 25, by the way.

In the meantime, another legendary Riot Grrrl band, Sleater Kinney has reunited and is releasing a new album today.

Between Double Union, Punk Singer, Alien She, Sleater-Kinney, Model View Culture, AdaCamp in Portland last Summer and the upcoming Alter Conf, it’s as if there is a badass, feminist zeitgeist that has ridden into San Francisco on the back of Karl the Fog.  It has, for now, decided to settle on the 4th floor of the The Fog Building in the Mission.  I show up there and breathe it in.  It, along with some great friends and a wonderful partner have helped take me back to the powerful, unafraid woman I was in 2009.  It’s help me slough off the dead weight of jobs past and prepare me to advocate for myself more, to give myself more credit and to sing and sometimes shout like a motherfucker.

The Riot Grrrls are back and so am I.

selfieThanks to all of my friends at Double Union and to my non-DU friends who have shoved the microphone back in hands. I am shouty-singing.

 

My role in the new world of testing

tweet about testing

 

Some tweets are like a Rorshach test and it’s much easier for people to project onto them what they want to see. This tweet is such a case. The quote can be interpreted in a few ways, all of them insulting. It really hits the tester nerve, especially for testers who take pride in their testing skills and have worked to make them better. I can see how it especially hits the nerve of testers who have worked to set themselves and the activity of testing apart from development as its own industry and job role with its own set of skills.

 

It makes sense that the natural reaction to this is to reach for pride and say, “I’m a tester, FUCK YEAH!!!”

 

What’s been missed, though, is that this tweet was part of a mini-rant. I was actually going for something more complicated that speaks to where testing is going within the broader context of the software industry and my place in that paradigm shift.

 

The Fun
Let’s take a moment to acknowledge the fun side of testing that we all know and love so well. We poke, we break, we question, we investigate, we discover. It’s fun!

 

The Baggage

Now, let’s examine the rest of what comes with a career in testing:

  • You will be seen as an also ran.
  • Developers (or management that doesn’t work with you day to day) will see you as not that smart or technical unless you get a chance to prove them wrong.
  • There is significantly less opportunity for promotion, especially as “testing departments” get smaller or go away completely.
  • Even if you learn how to write code, it’s assumed you will only ever work on test code and that your code will be shittier.
  • You will have far less decision power.
  • You will be paid less.

 

I’m sure there are people who would argue that the subset of baggage listed above doesn’t mean much in comparison to how much they loooooove testing and the pleasure they take in breaking things. If they want to stay in “testing” forever, that’s fine with me.

 

I disagree, however, that I should be content with less pay, a smaller set of career options and a position where I’m consistently marginalized on a team or even in tech.

 

Another testing tweet

 

It also occurs to me that the women’s restrooms at testing conferences are always crowded compared to the ghost town that is the women’s bathroom at any tech office or developer conference. There is no mystery here.

 

I started my rant because I had occasion to send someone I respect two of my favorite testing posts by Trish Khoo and Alan Page. When Trish and Alan suggest that testing teams are going away, that testing is an activity done by many on a software team and that testers should level up their coding skills, I see a role coming into focus where I am more empowered and more of an equal on a software team. I see a role where I’m even more in the thick of the software engineering process than I already am. I see a role that uses my testing skills and develops my problem solving skills as well. I see myself as a developer who is great at testing. One feeds the other and I am making great software as part of a team.  All of this fits particularly well in the Agile XP process which includes TDD.

 

I’ve been working at building my web developer skills and I’ve found a team where this type of contribution will be welcome. It hasn’t been easy and this is all still a work in progress, but I can see the tipping point fast approaching.

 

 No one can make you feel inferior without your consent.

Eleanore Roosevelt

 

By the way, the short-sighted person quoted in my original tweet wasn’t a developer. It was another tester.  I am surrounded by developers who see what I’m doing and who couldn’t be more supportive.

 

Now that you have the full story, let’s look at my tweet again.

 

tweet about testing

I just want to add…watch me.

Signal Gathering: An evening of talks with Ashe Dryden and Friends

Les Speakers photo credit Lillie Chilen (@lilliealbert)

Les Speakers photo credit Lillie Chilen (@lilliealbert)

 

In my credo, I state that I will always be a writer first.  I’m working on the 2nd draft of a novel, I write everyday and I attend a writing class every other week.  This class is precious to me, but recently, I made the extremely painful decision to skip a writing class in order to attend the event “An Evening of Talks with Double Union and Ashe Dryden.”

 

And so I gathered with others, our reflections co-mingling with the Bay lights in abstract patterns and crossing signals releasing an energy collected  through resistance into the San Francisco night.  The purpose of the evening was to raise funds for San Francisco’s first feminist hacker/maker space, Double Union.  You can read more about that effort, here.

 

The featured speakers were Ashe Dryden (@ashedryden), Valerie Aurora (@adainitiative), Missy Titus (@missytitus), Dr. Kortney Ryan Zeigler (@fakerapper), Alaina Percival (Women Who Code) @alaina, Shanley Kane @shanley, Amelia Greenhall @ameliagreenhall.

 

It was refreshing that:

  • I didn’t have the usual space bubble around me that I normally do at tech events.  Unless I go with someone, I find most meet ups and conferences are actually pretty lonely and there is usually this space bubble of a chair in every direction between me and other people even if I use double deodorant.  Ok, it’s usually guys who are at the outer edge of the bubble.  Although I didn’t know too many people, the crowd was quite friendly which cut down slightly on the terror.  (Yes, I actually am very shy like everyone else in tech).
  • Shanley’s slides emphasized the general state of fucked up-edness in tech and software and it was like basking in the harsh daylight of reality.  We need more of this.
  • There were none of those stupid, heckling, troll-types in the audience discounting the points the speakers were making or trying to play the speakers off of one another.  I get so sick of stupid people saying, “well HER blah blah blah was SO MUCH BETTER.” Like it’s only ok to allow 1 female to be good at anything.  There were 7 people on that stage and they were all awesome.

 

What I learned:

  • That I need to take stock of my own privilege.  I hadn’t heard about this before last night, but it makes sense.  Before you can understand who is different from you, it’s important to know your own self and the benefits that you’ve had in life.
  • Ashe Dryden suggested wearing a color to a conference and introducing yourself to others wearing the same color so you get a different type of cross-section.  I really want to try this and see what happens.
  • There is a need for a harassment policy at every conference, even ones that are all women because women can be homophobic and/or culturally insensitive.  I’ve reached out to Cascadia.js about their policy and pointed them towards the template on geek feminism.org
  • I’m really really really really done with tone policing myself online, on my blog, etc.  Although I’m already fairly WYSIWYG in my writing and in life, I can do better.  This includes engaging with men I know already in the tech community.  The post I wrote on Medium still stands because I’m committed to supporting people around me when they try to do better.  It’s just that I’m done with people patronizing me or playing me off of other women online.  This will likely require me to educate myself more about feminism, and I look forward to that.
  • I want to write more about diversity in tech AND THAT’S OK.  I can write as many blog posts as I want about being a woman working in tech AND THAT’S OK TOO.  I’m tired of feeling guilty every time I have an idea for a blog post on gender or diversity as if I’ve written too much about it or that the world doesn’t need to hear more.  At this point, I’ve written a few (Links: 1, 2, 3, 4, 5) and every time I think to myself, “How badly do I need to say this at the expense of looking less technical.”  This is who I am and what I want to write about it.  If you want technical, go check my Github. FUCK IT.

 

The Bay Lights on Bay Bridge, San Francisco

The Bay Lights on Bay Bridge (romanboed)

I feel an awakening in the tech world and in San Francisco.

It’s needed in many ways.  Aside from the misery of the many who are marginalized, tech has been invading San Francisco’s friendly, collaborative culture and razing it to make way for Nerds Acting Like Jocks.  It’s about time some of San Francisco began bleeding into some part of the tech community because we’ve bled enough of our own city.

Ashe specifically mentioned the need for everyone in the room to bust out of our own tech bubble and put more energy into experiencing the non-tech world.  In San Francisco, we live in the heart of the counter-culture and it’s time to be more open to the lessons our neighbors and our city have to teach us.

Even without much of a membership or much of a space, the collective of people that makes up Double Union has already managed to bring us together in a way that reverberates through time and our own static-y channels.  It was a privilege to attend this signal gathering.

 

Enhanced by Zemanta

Community Learning in San Francisco

On Top of Nob Hill

On Top of Nob Hill

My process of learning code originally went something like this:

  • Find a book with lots of examples.  Favorites are Kochan & Wood’s Unix Shell Scripting, Head First Java and Kernighan & Ritchie’s C Programming, and I’m finishing up Head First Javascript.
  • Work through as many of the examples as possible.  It might take a year but that’s ok.
  • Make my own crappy stuff.

This strategy went to hell for several reasons when I decided to get more serious about learning web development for the following reasons:
1.  Any half-way useful web-stack has many pieces and a considerable amount of time can be spent just getting those to work together.
2.  The pace of the web typically outstrips any book.
3.  I’ve gotten serious about a novel I’m writing.  Every morning, I spend an hour writing creative fiction.  Between that and working 8 hours a day, when I get home, I am usually D.O.N.E.

But I’m still serious about learning more web development.  Since I work at Pivotal Labs in test and support on Tracker, when fellow Pivot, Sarah Mei mentioned a Railsbridge workshop, my ears perked up.  Railsbridge is an intensive Friday evening installfest plus all-day Saturday learning extravaganza.  Recognizing the opportunity to commit to myself with a date, I signed up and have attended a couple of Railsbridge sessions.  The thoughtful detail put into Railsbridge shows in how they divide people up by skill level, how they make sure you have what you need installed on your computer, how they have a great student:teacher ratio and do a retro at the end of the Saturday.  I honestly wish I’d had the benefit of an experience like Railsbridge in college.

Oh yeah…college
There will always be a debate about whether people should get a CS degree or not.  I have one.  Many successful people I know don’t.  Many places require them for employment, but a lot of places in San Francisco don’t.  While I believe there are benefits to college, specifically, liberal arts degrees, I’m becoming a believer in the community education system I see emerging here in San Francisco.

In the case of Railsbridge, while the program doesn’t cost money, it is a sacrifice of a Friday night and most of a Saturday so there is an opportunity cost and some commitment involved.  It’s true that there are many beginners, but I’ve met plenty of people there who are beginning to get pretty effective at building Rails apps.  In fact, at the last Railsbridge I attended, I was greeted by someone who got a job after attending and learning from Railsbridge.  I’m sure she worked really hard on her skills outside of Railsbridge as well, but she did the work and got results.

One argument I hear about meetups is that they’re full of people who don’t know how to code or who aren’t serious about their programming skills.  While there are plenty of people at these Meetups who are learning on their own schedule and may never work as a programmer or even in tech, there are plenty of people who go to Meetups such as the Javascript one and will spend the better part of 2 hours on a Wednesday night writing some code.  I’m routinely impressed whenever I show up at these events by the focus of my fellow attendees.

If you think that these types of group learning only cover a few “beginner” topics, what about Algorithms or Scala?

Part of what’s fueling this ecosystem is the proliferation and refinement of online learning.  I remember when the M.I.T. open courseware was a bunch of syllabi.  I also remember the agony of pre-millenial online classes.  Those were definitely the dark ages.  Now we have Khan Academy, Code Academy and CourseEra.  Between these and the ease of setting up a gathering with Meetup, the SF tech community is turning into it’s own community college, and I’ve learned a whole lot more about Rails.

What I like about this system is that it’s not just the students who win.  If you’ve ever taught someone how to do something you’ll understand the benefit the instructors are getting out of it too.  As a bonus, I can see that anyone who learns something out of this community system is also likely to turn around and give back.  I dream of the day when I’m good enough at web development to be the one pointing out CSS and Rails typos.

Enhanced by Zemanta

Too Far

Painting image of Joan of Arc

Painting image of Joan of Arc (Photo credit: Wikipedia)

It’s the breaking point:  the moment when someone has pushed you too far and you know that the rest of your time with that person will be spent managing as you find a way to make your exit.

The moment you realize you’ve had enough is so awkward because, usually, in addition to feeling angry and possibly embarrassed or ashamed, you are asking yourself “how the FUCK will I get out of this.”  (If this is happening in your head, how censored are you really going to be?)

So then you start assessing how this is going to go down, how you’re going to make your escape and possibly let the other person know that you are D.O.N.E. This is when ideas of revenge start flooding through your head and you make a list.

Contemplating the list gives your rational brain a split second in which to punch through the other side and keep your anger from boiling over.

 

It’s a split second that can determine how much longer you will live with someone, how much longer you will continue in your present job or how much longer you will sit in a chair at a conference.

These situations usually involve a compromise in dignity.  Professional life seems especially rife with personal indignity because the stakes are high.  If you have a mortgage or aren’t sure how you would otherwise make money…yeah.  Work or even peer situations in our industry can require checking your dignity at the door and putting up with some awful shit.  Maybe you hate yourself for it and maybe there really isn’t a good way out even after you assess all of your options.

 

And then you get to that moment with a boss who keeps pointing out what they feel are your numerous personal failures while you’re sitting in the middle of a crowded open office with people swirling all around you in oblivion as the insults fly or you’re stuck listening to someone at a conference on or off of a stage who is saying things that offend you so deeply you just want to jump up and scream, ENOUGH!!!

 

What happens next?

 

Here is what I did:

 

I had just moved to the Bay Area and was attending my first tech Meetup in San Francisco.  It was exciting to finally talk to some people and to participate in the San Francisco “tech scene.”  I noticed that there were even a few women in the audience which made me happy.  There were 2 speakers on the schedule and the second speaker was in the middle  of his talk when he cut to a slide of naked male parts.  You know what he said?

 

“This is San Francisco, I’m sure we’re all ok with this.”

 

I was not ok.

 

I was disgusted and embarrassed.  I looked around at everyone else looking around.  My internal conversation went something like this:

 

Angry Marlena: I’m gonna stand up and scream at that motherfucker that IT IS NOT OK!!!!!!!!
Friendly Marlena: Shut up!  You came here to make friends!  Who will want to be friends with you if you shout down a speaker at this tech talk where you don’t know a soul?
Angry Marlena: (Heavy sigh) Fine!  But I’m gonna stand up anyway and just STARE HIM DOWN!
Friendly Marlena: Would you shut up! That’ll just make you look crazy.
Angry Marlena: $%^^%$$%^&(&%$%^&*(*^%$#$^&**&
Friendly Marlena: %#$%^&J#$@#$#&^((^$#&*^%$#%@#%^%^&*&$

After another 2 minutes of mortification, I noticed that the bus I needed to catch would be arriving directly across the street in 15 minutes, so I got up and quietly exited.  It was a while before I came back to San Francisco for a Meetup.

 

But that’s not my only example.

 

A few months later, I was at an internal corporate conference (for someone other than my current employer), sitting in one of those “seating areas” with some co-workers.  The conference had just wrapped up and we were all sitting around being pretty quiet as our energy was at a low ebb.  Through the thin veil of fake-conference-plants behind me, I overhead a conversation.

 

“But how do you get the motion of them so that they’re nice and bouncy?  Like you just want to grab ‘em?”

“Oh, there’s a library for that.  I love using it for 3-D tits.”

 

People who know me will know exactly the look that was on my face.

 

The conversation continued and I kept doing my best to let it go.  I was not in the best place with my job at the time, and it would have been horrific timing for me to rock any kind of boat.  This made it hard to have a realistic perspective in the moment.
Also, as an aside, I’d just like to say that I LOVE California for making people at larger companies take an online workplace harassment course created by the state.  With the B-movie actors and the hysterically cheesy script, I laughed my way through when I took it, but there have been so many times when I’ve been glad that I took it and glad that my co-workers have also taken it.  It set the right baseline.

Back to the conversation about how to create the best virtual female parts.

 

I tried to be quiet. I did. But I wasn’t.  I jumped up, turned around and screamed, “WOULD YOU STOP TALKING ABOUT ME???!!!!!!!”

 

The guy turned around with the most freaked out look on his face and he screamed back, “NO, NO, I’M NOT TALKING ABOUT YOU!!!!”

 

That was the end of it.  Was there a better way to handle this?  Of course there was!  But, the split-second opportunity for my rational brain to make a better assessment was not long enough.  I guess this was me finding my voice, and even though I’m not 100% proud of what I did, I’m glad that I did something because if I hadn’t said something, I would have been bottling my rage at this incident for the next unfortunate person who told an inappropriate joke in a professional situation.

 

And that’s the double-edged sword that gets plunged through your heart when you’ve been pushed too far:

  • If you don’t do anything and stay quiet, you bottle your emotions up for later which means you’ll be even more rage-tastic the next time something similar happens even if the offhand comment isn’t as cut-and-dried or your boss is making the only fair point he’s ever gonna make.
  • On the other hand, if you do say something, plenty of people will say you’re a crazy paranoid freak on a rant and you just might get fired (in Joan’s case, burned at the stake).

At this point, I’ve been through enough to know that no matter how bad things get immediately after you say what you need to say, even if you lose your job or popular opinion is not on your side, at least you’ve said your peace and let it go.

 

My thoughts are with Adria Richards.

Enhanced by Zemanta

Welcome to the Walled Garden: When leadership is really just bullying

holes in the garden wall

holes in the garden wall (Photo credit: Badly Drawn Dad)

There is a person in tech, let’s call the person Engineer X, who thinks I am a blight on the industry of software and that my opinions deserve to be seen nowhere other than inside of a black hole.

 

This happened after a really awful conversation on twitter that I won’t be talking about here.  Let’s just say that it happened, and it doesn’t really matter if anyone was right or what either of us said.  For Engineer X, this culminated with blocking me from their twitter and removing the link to my blog from their much viewed blog roll.

 

For me, it began a genuinely awkward couple of months.  I got in trouble at work as my then-boss thought and still thinks Engineer X hung the moon.  I showed up at a small conference typically attended by Engineer X (Engineer X was away that year) and had to introduce myself, for the first time, to people who knew ALL ABOUT the whole twitter fight.  Between my boss’s anger and my own personal anxiety, there’s not much I remember from that conference that wasn’t awkward, and it was no one’s fault but my own.

 

Eventually, though, I moved on and realized that it didn’t matter that much because there is a whole community of people who have been left behind in the wake of Engineer X publicly denouncing them, even threatening physical violence in public against them for the opinions they have expressed about software.  One of my friends tweeted to me, “Welcome to the Walled Garden.”

 

In this age of extended contact through blogs, twitter and other social sites, it’s much easier for anyone to interact with someone they view as a “leader,” and we do.  I’ve actually become pretty close friends with some of the bloggers and people from twitter I followed and originally, idolized.  Sometimes, however, it can be much harder to get a real picture of the people we idolize, and sometimes that picture is vastly different in reality from what we think it will be as we build a pedestal for our uninformed perceptions of these people.

 

I’m a big believer in forming my own opinions about things, but when you start following people on twitter and they start following you back, not to mention having conversations with you, it can be easier than you think to relinquish control over your own thoughts and opinions.  Twitter is always on and fairly asynchronous.  Thus, while I initially thought Engineer X was amazing and a thought leader, when things went so far downhill, so quickly, it hurt even worse because here was someone I had really looked up to telling me that my opinions were worthless.

 

It was upsetting for a while.  Having a harsh conversation in public is unsettling, but everyone has their own personal tipping point.  When this happened to me, I went back over what happened and found that while, in some ways, I had acted rashly, there were good reasons for doing what I did, and I wouldn’t take it back today, even if I could.  There was even a point at which I tried to apologize for my part in it to Engineer X and it didn’t work out at all.  I guess there are some people in this world I’m not meant to get along with and this person is one of them.

 

We all have favorites on twitter and in the software industry.  We all have our false idols.  We hold them up as better versions of ourselves.  Maybe they are who we want to be “when we grow up.”  The truth is, they are all humans.  They say things they don’t mean, they talk out of turn and I’m sure that there is a time, every now and then, when they take out anger and frustration on someone undeserving, just like every human does when we are at our worst.  In this age of blending professional life with personal faults and idosyncracies, where do we draw the line and how much should we be willing to forgive?  How bad is it ok for Engineer X to be?

 

Personally, I’m happy to have this person out of my life, but it still hurts when I see them dump on other people I care about.  What’s even crazier is that there is this weird silently understood reaching out that happens when Engineer X dumps on someone.  This is how often and how widely the person is known for dumping on people.

 

I hope we’re on the edge of a polar shift in software and in social networking.  The “No Asshole” rule has been read by plenty of people and we even have industry segments such as conferences beginning to recognize the importance of emotional safety.  This stuff matters and it makes me happy that it is slowly, but surely infiltrating our culture.

 

It’s time to recognize that we live in a world where our personal and professional lives mix more than ever and that this usually happens in a good way.  But, also, we deserve better than to have bullies in charge of thought leadership in software (or anywhere really), (and before you hold up Steve Jobs, I’d like to remind everyone that there was exactly one Steve Jobs, he is deader than a doornail and you are not him).

 

This blog post comes with an ask.  My ask is that you, dear reader, commit to standing up when you see someone getting bullied on twitter, at a conference or wherever and, even if the bully is someone with influence, letting the bully know that you don’t approve and that IT IS NOT OK.  If you end up being the person who steps out of line because you’re human like the rest of us, at least make the effort of a sincere apology when you are ready.  It will be humiliating and it might not be well received, but it is important to try.

 

As for people like Engineer X who don’t seem to understand how to not bully others, I believe they are in a slow process of building their own walled garden because, eventually, they will block out everyone who’s opinions don’t seem as perfect as their own.

Enhanced by Zemanta

If you do testing, you need more monitors.

Here I am at my desk, doing some cross-browser testing.  You’ll notice that I’m surrounded by screens.

three monitors

3!

I’ve been fortunate because I’ve insisted at my testing jobs that I have two or even three monitors and I have never been turned down.

 

Having more monitors leads to better testing because:
More supported browsers are open and easy to compare
More sessions are open so it is easier to see cause and effect problems
I can have more than one or even two or three users signed in with different permission levels.
Even though there are still several browsers open, I can also have some terminals open for grepping through log files and taking notes or logging bugs.

 

In the world of web application testing, this is the difference between noticing something and having it obscured behind too many screens where you will never see it.  In fact, if you have to switch to another tab or swipe to another space on your Mac YOU ARE TOO LATE.  The bugs are gone and laughing at you beneath your fingertips.

 

We live in a time of “do more with less” and, let’s face it, testing is usually where the money dries up.  It is easy to fall into the trap of thinking you will be seen as greedy if you ask for another monitor, but it makes the difference between being a good tester and being a great tester.  If your team really wants you to find all the bugs, they should make it possible for you to SEE THEM.  Believe me, they will crawl across your screens faster than you ever thought possible.

 

How do you ask for more monitors?

 

The three situations I’ve encountered from easiest to hardest (and naming no names):

 

If you see a monitor no one is using, just take it and hook it up.  This is exactly the time to ask forgiveness instead of permission, and the truth is some places really don’t care.  Hook it up, find some bugs and mention it to your boss.  On the positive side, if no one is using the monitor, you’ll be putting a resource to use that would otherwise be wasted.  At the worst, you might have to give it back and endure the “we have an allocation spreadsheet” talk from I.T., but if you can show someone the benefit before it’s taken away, you’ve got your case for more monitors started.

 

Ask in your job interview – when you are negotiating for salary is the time to ask for any special equipment you will require.  Ask for a laptop and not one, but two additional external monitors so that you have a total of three.  If the person on the other end balks, be sure you understand exactly why and be very clear that you will not find as many bugs if they don’t honor your request.

 

Here is a vga to usb adaptor I’ve had success with in the past.  The company seems to update their drivers for Macs more quickly than others vendors.

 

If you work at a place where developers (even developer interns) automatically get two monitors, argue that everyone doing cross-browser testing should get an extra too.  I’ve actually done this before and credit the group I was working with and the boss I was under for taking the argument to his superiors.  In this type of workplace, however, where management isn’t too dear with what they give to developers to get their job done, it only stands to reason that they would want those doing testing to have what they need too.  If you need to make a case, you might want to get some developer collusion going and have one of them test with you for an hour or so.  That’s usually all it takes for people to judge the effectiveness of more browsers.

 

If you work at a place where no one has an additional monitor, it is possible the assumption will be made that you are setting a dangerous precedent which means everyone will want more monitors. Go ahead and laugh but there are places where you will hear this.  If you happen upon this situation, strap on the guns and BE THE WICKED TESTER.

 

If better testing is dangerous, then I wanna go down in flames.

Flaming Skull

Flaming Skull (Photo credit: Tortured Mind Photography)

 

Enhanced by Zemanta

How’s it going with Tracker?

Pivotal Tracker

Pivotal Tracker (Photo credit: Wikipedia)

It has been nearly 3 months since I joined Pivotal Labs and the Pivotal Tracker team.  So far, the experience has been great.  While most of my time is spent writing email replies helping people get to know Tracker, I’ve also done plenty of testing and even committed a tiny fix. In short, I’ve been doing whatever the team needs done and it has all been fun.

 

There is plenty to write about with Tracker.  Aside from selling what I personally think is a great tool for managing software projects, there is how the Tracker team operates.  Obviously, we use the tool we make, but there’s another layer that is firmly grounded in the culture of trust I have found at Pivotal Labs.

 

Starting with this blog post, Tracker on the Agile Continuum, I am working along with my teammates at getting the Tracker Team’s story out.  You might want to follow the Tracker blog because I’m not sure how often I plan to do “content pointers.”  This is because I am more of a fan of having actual content in my posts, and besides, If you like my post, you might like some of my Teammates’ posts as well.

 

There are some phenomenal writers on the Tracker team, and next week, we’ll be welcoming another great writer and tester, Lisa Crispin, to our team.  Tracker’s collaborative energy is ever rising and I hope that by combining the building of an awesome tool with writing about our experiences, we can disseminate even more of that energy.  Working with it every day has been invigorating and I’d like to say thanks to all of my teammates for that.

 

Although the question in the title frames this post of how it’s going for me at Tracker, I’d love to hear about how it’s going for you with Tracker.  If you send an email to tracker at pivotallabs dot com, chances are, I’ll be the one who replies.  Send me your questions, your frustrations and your bugs!!

 

Enhanced by Zemanta