Twitter github

Category “Software”

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

A List of Distorted Thinking

I own a piece of paper which came to me through the network of mindfulness classes, meet-ups and meditation sittings that exist in the Republic of California.

 

For today, I am posting it verbatim.  It is precious enough to me that I want it preserved forever on the internet.  If I have to type it up and post it for that to happen, so be it.  I just want it to be out there and I predict others will also see the truth in it.

 

There is also a reason for my timing.  Markus Gärtner, author of the newly published ATDD by Example (and tester of Amazon’s I18n encoding) has recently posted on some of the fallacies involved in contextual testing.  What he writes about seems awfully close to distorted thinking which is not surprising given the fact that we are all human.

Being human means that if you have a bad lunch or some cloud system goes down which keeps you from your testing, the physical reaction of frustration leaves you very open to distorted thinking.  In the case of testing, some of this distorted thinking seems useful for uncovering test ideas, and yet we also need to recognize when it’s time to stop catastrophizing and time to start collaborating with our teammates.  If we can recognize the distorted thinking we use for test heuristics, perhaps we can also recognize when it is time to leave the distorted thinking behind.  Polarization is for formal methods…not friends.

 

Without further ado:

 

Filtering:  You take the negative details and magnify them while filtering out all positive aspects of a situation.

 

Polarized Thinking:  Things are black or white, good or bad.  You have to be perfect or you’re a failure.  There is no middle ground.

 

Overgeneralization:  You come to a general conclusion based on  a single incident or piece of evidence. If something bad happens once, you expect it to happen over and over again.

 

Mind Reading: Without their saying so, you know what people are feeling and why they act the way they do. In particular, you are able to divine how people are feeling toward you.

 

Catastrophizing:  You expect disaster.  You notice or hear a problem and start, “what if’s: what if tragedy strikes? What if it happens to you?”

 

Personalization: Thinking that everything people do or say is some kind of reaction to you.  You also compare yourself to others, trying to determine who’s smarter, better looking, etc.

 

Control Fallacies:  If you feel externally controlled, you see yourself as helpless, a victim of fate.  The fallacy of internal control has you responsible for the pain and happiness of everyone around you.

 

Fallacy of fairness:  You feel resentful because you think you know what’s fair, but other people won’t agree with you.

Blaming: You hold other people responsible for your pain, or take the other tack and blame yourself for every problem or reversal.

 

Should:  You have a list of ironclad rules about how you and other people should act.  People who break the rules anger you and you feel guilty if you violate the rules.

 

Emotional reasoning:  You believe what you feel must be true automatically, If you feel stupid and boring then you must be stupid and boring.

 

Fallacy of Change: You expect that other people will change to suit you if you just pressure or cajole them enough.  You need to change people because your hopes for happiness seem to depend entirely upon them.

 

Global labeling:   You generalize one or two qualities into a negative global judgement.

 

Being right:  You are continually on trial to prove that your opinions and actions are correct.  Being wrong is unthinkable and you will go to any length to demonstrate your rightness.

 

Heaven’s reward Fallacy:  You expect all your sacrifice and self-denial to pay off, as if there were someone keeping score.  You feel bitter when the reward doesn’t come.

 

There are a few of these that I recognize a little to comfortably and I’m guessing that this didn’t quite make it into the Myers-Briggs.  Who are you?

 

Enhanced by Zemanta

Credo Work: A few bits from Software History

The Cathedral & The Bazaar

The Cathedral & The Bazaar (Photo credit: Hades2k)

Even though the software credo I am writing is a personal thing, I’m not writing it in a vacuum.  We are all writing the history of software and, at this point, the history of computers and software is big enough and old enough to have it’s own corners and back alleys.

 

In this post, I’ve researched into some questions about computer & software history. I’ll be writing about some events that were important in my corner of computers, some of moments which were not the best, and the event I would most like to have witnessed.
Who are some of the important people or events in your particular area of software and what did they contribute.

I’ve already blogged about The Ultimate Nerd and my ultimate nerds so I’ll be focusing mainly on the events in computer and software history that has meant the most to me.

 

The fight between Internet Explorer and Mozilla
I may have just left Mozilla as a corporate employee, but Mozilla and its mission are still very much alive to me.  If you don’t understand what the whole fight for the open web is about, it is worth Investing 40 minutes of your time to watch Mitchell Baker talk about the history of Mozilla.

 

Back in the nineties, I remember listening to NPR every day for news about how the lawsuit between Microsoft and Mozilla was proceeding.  I hope that, at some point, a book is written about the history of Mozilla and some of its projects.  I had chills more than once as I watched Mitchell Baker give this talk on the history of Mozilla.  A lesson she learned from the Mozilla project and her most memorable quote from this talk is something I will carry around with me until I die, “Leadership depends on who will follow you.”  (It’s at 11:30 if you wish to listen for yourself)

In fact, the fight isn’t over.

 

The blossoming of the open source software movement
The theology of the open web and open source software is deep water which I’m not expecting to plumb in a couple of paragraphs, but if you give yourself the time to really dive into the history and its ideas, you will be rewarded.

 

If you wish to wade into these waters, I highly recommend reading through The Cathedral and The Bazaar by Eric Raymond.  It is beautifully written and I think I must have highlighted half of it.  Although there are frequent references to the creation of Linux, the paper itself is timeless like K&R or Unix Shell Scripting.

 

Reading through this paper, I could see some of the groundwork for agile being laid.  There is a spirit of egalitarianism coupled with a “need for speed.”  Raymond mentions in a few places that it is important to “release early, release often.”  He also writes about the very inclusive development philosophy of Linus Torvalds which was counter to the more exclusive “cathedral” model of isolating a few geniuses and letting them polish the software creating a longer release cycle.

 

This actually deserves a longer post and critique in the context of what we know about open source today.

 

The signing of the Agile Manifesto

Looking at the number of people who were present for this event, I will never understand how they were all able to agree on the document itself.  It appears to me to be one of the greater examples of consensus.  The fact that what’s in the manifesto meant enough to these guys to get together and agree on it sends a strong message.  I consider myself lucky to swim in this every day at Pivotal Labs and I hope my blog helps you push further with it in your own professional life.

 

Historical Software Defects
These are the moments in software history that are not the greatest but they have valuable lessons to teach.

Therac-25
The, “primary reason should be attributed to the bad software design and development practices, and not explicitly to several coding errors that were found. In particular, the software was designed so that it was realistically impossible to test it in a clean automated way.”

 

The Therac 25 was designed to automate the delivery of radiation therapy to cancer patients.  Tragically, it sometimes injected patients with levels that were too high, even tragically high.

My software engineering teacher, Dr. Susan Duggins, first introduced me to this in our software engineering class. It’s important because it highlights that testing should be involved earlier in the software process and that building software is not just about typing out the code.  I am in love with the idea of ecosystems as they apply in software and in open source.  This legal case points the way towards software occurring in an ecosystem.

 

The Mars Rover
Imagine that you’ve spent months working on a small vehicle that will land on Mars.  Imagine the pressure of knowing that many millions of dollars has been spent for you to do this work.  It’s a crowning achievement involving your team and other teams as well.

 

Imagine that the Rover lands and doesn’t work because you’ve been programming in standard measurement units, but an external team you’ve been working with has used the metric system.  I would have cried for days.

 

The failing of the Mars Rover demonstrates the power of good communication and how major defects can occur without it.  If you are a tester and you sometimes feel like the team therapist because you’re trying to get developers to talk with each other, I have news:  You are not alone in feeling like a therapist.  If you ever wonder if you are doing the right thing or sticking your nose where it doesn’t belong, think of the Mars rover team.

 

If you could only witness one moment in computer or software history, what would it be and why?
For this question I am brazenly cheating.  I’d like to watch one of the great visualizations being drawn just to see the tools that were used and the place where it was being drawn.  These had to be hand drawn as there was no machinery to produce them.  I’d like have a look at the instruments used to make the measurements and the drawing implements.  I’d like sit in the chair that William Playfair sat in or watch Charles Joseph Minard explain his visualization of Napoleon’s March.

 

This concludes my look at software history for my blog post, but it’s brought up some threads I’d like to push further.  I’m not quite finished reading and writing about “The Cathedral and the Bazaar.”  I’m also not finished with “Leadership depends on who will follow you.”  It’s a funny thing about these credo posts.  They tend to open more doors and windows than I have time to close.  I don’t mind leaving them open, however, as this is letting in some fresh air.  Wherever you are, I hope that when you get to the end of my post, you take a minute and just…breathe.

Enhanced by Zemanta

Pivot!

PIvotal Tracker Icon for Fluid

In a few weeks, I’ll be joining Pivotal Labs to work on the Pivotal Tracker team.  I’ll be mainly handling support requests and helping with some testing as well.

What drew me to Pivotal?  After all, I’ve got a job as a Software Engineer in Test at Mozilla working with Selenium tests all day every day, what more could one possibly want?  Judging by the number of recruiter emails I get, a Software Engineer in Test working with Selenium all day can pretty much right their own ticket, can’t they?
Well, yeah, and I <3 Selenium, but it’s just one part of testing.  In fact, writing Selenium tests is just one aspect of making software.  I’m ready to own up to being a specialist who knows a lot about testing and automation, but I’m also a generalist who helps make software.  At one point, I thought I only wanted to work on test automation infrastructure, but I’ve since learned that I prefer working with a product team.
This all came about while writing the credo posts that have pre-occupied me since January.  I’ve learned that I love writing more than any other occupation and that participating on a team making software is more important to me than identifying as a tester.
This change will move me into a world where I toss out my own self-imposed label of “tester” or “automator” and throw my bucket of skills at a highly collaborative software team.  In letting go of being “the tester,” there will be other skills that I now get to exercise:
  • Being a great teammate.  While this is important at Mozilla, I expect even more emphasis on this in the tightly coupled, rabidly agile environment of Pivotal Labs.
  • Since Tracker support is 100% email (plus whatever y’all throw me on twitter), I get to use my communication & writing skills as a primary part of my job.
  • The x-factor skill which isn’t an obvious skill in software, but will be crucial for support is having a developed sense of “mindfulness” or non-judgmental awareness.
  • This is all in addition to flexing my technical skills at bug isolation.
Despite leaving Mozilla, I still have quite a fondness for the company, its mission and my teammates there.  As a parting gift to them, I have stolen the following anonymized excerpt from deep within the bowels of irc.  I hope it gives you a chuckle and some encouragement to, “whisper to the fox:
FirefoxLvr404: come to think of it sweatsbac0n, I’ve seen you blogging, but I haven’t seen you blogging about how opensource html5 makes you opensmile
FirefoxLvr404: how much more delightful canvas web technology do you fucking need?
sweatsbac0n: *laughs*
sweatsbac0n: what the hell are you talking about?
FirefoxLvr404: I’m talking about firefox enriching your happiness & defending your freedom by exposing webgl & websockets APIs on top of a lightning-fast javascript engine
FirefoxLvr404: and all you do in return is treat their animonsters like DIRT
FirefoxLvr404: I hope you feel <yourself proud=”true”/>
sweatsbac0n: a little bit
sweatsbac0n: <yourself proud=”true” proudness=”15%”/>
FirefoxLvr404: I bet you assumed that blue mass was the world
sweatsbac0n: You mean it’s not?
sweatsbac0n: Is it an egg of some kind?
FirefoxLvr404: it’s the cold lonely heart within all of us
FirefoxLvr404: that can only be warmed by having a fox wrapped around it
sweatsbac0n: *laughs*
FirefoxLvr404: a firefox, warming your chest cavity.
FirefoxLvr404: making you whole again.
FirefoxLvr404: whisper to the fox, sweatsbac0n
FirefoxLvr404: wind your arteries gently through its fur
sweatsbac0n: Wow. I’ve never felt closer to a browser before.
FirefoxLvr404: I should hope not.
FirefoxLvr404: You deserve better than any other browser
sweatsbac0n: it feels so wrong. and yet….so right.
Enhanced by ZemantaIndeed…don’t forget to update your Firefox today and did you know that Pivotal Tracker let’s you have as many public projects as you want and 5 private ones as an individual for free?

Credo Work: My Many Manifestoes

Prologue of the Code of Hammurabi

Prologue of the Code of Hammurabi (Photo credit: Wikipedia)

 

 

 

 

Trust in your calling, make sure your calling’s true

Think of others, the others think of you
Silly rule golden words make, practice, practice makes perfect
Perfect is a fault and fault lines change

I believe, my humor’s wearing thin
And change is what I believe in

“I Believe” by R.E.M.

 

These are some words from a song I listened to on repeat in high school.  When I listen to it now, I hear some irony in the lyrics that I don’t remember hearing before.  We get handed so many rules in our lives.  When we are younger, many of us are taught about different creeds and rules at our parent’s chosen place of worship.  When we begin our professional lives, we might encounter mission statements at work or within our professional network.  What do we with all of these?

 

For this credo post, I’m examining some of the manifestos, mission statements and declarations I’ve learned from and used in my life.  Some of them are historical, some are from jobs and some are from teh tubez.

 

The Golden Rule:

Do unto others as you would have them do unto you.

This rule sets the bar for my behavior in all aspects of life.  It just doesn’t get any more basic than this.  When someone treats me like crap, this rule is what pulls me back and helps me center myself.  It also leads me to the second rule in life.

 

The Code of Hammurabi:

An eye for an eye, a tooth for a tooth…

The reason why I’m including this is because it’s an example of how not to treat people and a code that I learned about and decided to toss out.  If someone screams at me, this doesn’t give me the right to scream back and only makes a bad situation worse.  I think that the Code of Hammurabi is, in actuality, a great way to escalate a situation from bad to worse.  As the saying goes, “if we all followed the Code of Hammurabi, the world would be toothless and blind.”

 

The Declaration of Independence:

This one may come as a surprise, but if you take time to read it, I think you’ll see why I’ve included it here.  It was written 236 years ago, but people then had many of the same basic wants that we have today and at work, even.

 

Here’s my favorite bit, “We hold these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty and the pursuit of Happiness…That whenever any Form of Government becomes destructive of these ends, it is the Right of the People to alter or to abolish it.”

 

This is all about personal empowerment.  The people who wrote this were far from perfect, but they made quite a strong and enduring statement here.  Not only is it ok to want liberty and happiness in your life, but it is your right as a human.  This is strong stuff.  If the government is crushing your liberty and path to happiness, it is your right to change it.

 

It’s very easy for life to drag you down and tell you that you should be content with having a roof over your head, a flush toilet in the bathroom and decent beer in the fridge, but this document suggests that there is way more to it than that.  We have a right to find happiness and contentment in everyday life.  This includes our jobs even if they are in the tech industry.  In software today, we’re often expected to work crazy hours for a release or do our best to work with programmers who are brilliant assholes because their code is so fantastic.  I don’t think so.  It violates our right to happiness and ultimately creates software that is harder to maintain.

 

But that’s not the end of it.  There’s also an implication in the Declaration of Independence that if your rights are being violated, it’s on YOU to do something about it.  For this reason, if I see shitty software practices, I tend to stir the pot.  In some places it’s welcome.  In other places, it’s not welcome.  In the places where it’s not welcome, I know I’m not welcome either.  These truths I hold to be self-evident.

 

Agile Manifesto:

We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

There are several reasons why the Agile Manifesto is my “go-to” document when it comes to software and also when it comes to framing my own credo.

  • It is short and memorable, especially “Individuals and interactions over processes and tools.” If someone asks me what’s in the Agile Manifesto, I don’t necessarily have to look it up. When I look at the list of people involved and then see how boiled down this Manifesto is, I know that there must have been some very interesting conversations about what to include and what to leave out.  That fact that the people involved were able to come up with something that is at once concise yet filled with meaning is quite an accomplishment.
  •  Instead of talking “beliefs” this is a statement of “values.”  I noticed that the Software Craftsmanship manifesto which seems to be sprung from the Agile Manifesto is also a statement of values instead of beliefs. This gives both more flexibility because a belief seems more black-and-white but a “value” can happen on more of a sliding scale.  My sliding scale of value in the Agile Manifesto might be different from yours.  Maybe when you think of the Agile Manifesto, you think of “Working software over comprehensive documentation,” first. We can still share these values and it’s all good!
  • The content squarely places emphasis on humans and their patterns of interaction as being important to the making of software.

The Atlassian Core Values:

Open Company, No Bullshit

Build with Heart and Balance

Don’t Fuck the Customer

Play, as a team

Be the Change You Seek

Although I no longer work at Atlassian, their core values still resonate strongly with me.  As is the case with the Agile Manifesto, they are succinct, memorable and from the heart.

I especially like that they included “play as a team.”  The team work ethic I experienced at Atlassian was magnificent and has now set a high expectation of teamwork for me.  Maybe it’s just my personal stereotype, but I noticed collaboration and teamwork seems to be an understood commodity in Australia more so than in the United States and especially Silicon Valley (Note: I differentiate Silicon Valley from San Francisco).  Although I hear that Silicon Valley is what it is today because it had an open culture in the early days of tech, I’ve seen enough exclusivity and competitiveness in valley culture, that I’m convinced it needs a few lessons on collaboration and “building with heart and balance.”

These core values remain one of Atlassian’s competitive advantages, and if they stick with these, I’m sure their established freight-train of success will continue.

 

Thus concludes my look at manifestos, values and mission statements.  I’ve been writing down my beliefs and have seen the list grow week over week.  It looks like there will be “value” in distilling them down to something short and memorable.  Although a credo is supposedly a statement of beliefs, writing them as values gives them more flexibility so I plan to reframe some of the belief statements I’ve made as statements about what I value. There are more than a few of my belief statements centered around humanity in software, but I might also have a think about the heart of software.

Enhanced by Zemanta