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

Credo Work: A few of my ultimate nerds

Previously, I blogged about “The Ultimate Nerd.”  In this post, I will introduce you to some people who make my list of Ultimate Nerds.  The only rule I made for my list is that I’m not writing about people I know personally.  I’ve done this to force myself into doing some research and thinking through the reasons why each of these people have made the list.  There were people who I initially thought were no-brainers that came off and people I added much to my own surprise.  It will be interesting to come back to this list in a few years and see how things have changed.

 

Español: Bjork en Jalisco.
Español: Bjork en Jalisco. (Photo credit: Wikipedia)

Bjork
Fans of Bjork won’t be surprised to see her on my list.  She left “has a good beat and you can dance to it” somewhere in the last millennium in favor of risking weird crazy experiments that don’t always work out but can be quite inspiring when they do.  Whenever I read about her projects, it’s not just about her singing or coming out with a new album, it’s about some new technology she’s exploring for making her music.  ReacTable?  Check!  Tesla Coil?  Check!  Swinging pendulums?  Check! Check!!  This is someone who sees technology and pushes it through music.  In my dream of dreams, she and Jack White have a love child.  But that’s another blog post.

Charles Joseph Minard
There are so many reasons why Minard makes my list of ultimate nerds.  Aside from being a pioneer in the field of data visualization, he’s a study in sticking with what you want to do even if it’s not something those around you care about or immediately understand.  He earned his living as a civil engineer and retired as a superintendent for a school of roads and bridges at a French university. It was only during his retirement that he started producing visualizations.

Charles Minard's 1869 chart showing the losses...

Beyond the fact that his visualization of Napoleon’s Russian campaign is ground breaking work, this is something he created at seventy-eight years old. There is so much focus in tech on completing your most important work in your twenties or maybe early thirties at a stretch, and it’s bullshit.

While Minard could have chosen any number of subjects for his visualizations, he chose to visualize the loss incurred by war.  Looking at his flow map of Napoleon’s Russian campaign the horrific losses of troops are immediately visible.  Minard has set an example of visualization as humanitarianism that I intend follow with the open data available on today’s web.

 

Eric Schmidt
In addition to being the former CEO of Google, Eric Schmidt wrote the forward to one of the few “business books” that managed to hold my attention, Artful Making.  You can see Chris McMahon’s blog about it here.

Recently, James Whittaker wrote a post about why he quit Google.  In the post he talks about the culture of innovation that Schmidt fostered at Google and it’s right in line with what I read in Artful Making.  In the testing world, Google has recently gone through an exodus of A-talent in testing.  It’s quite telling that a good number of the folks whose talks I most enjoyed at the last Google Test Automation Conference have quit the big G.

By all appearances, the company is undergoing a lot of change and seems to be embracing more of a top-down management.  Seeing this change and looking at the “leadership” I’ve experienced in my own career has shown me that it is much more challenging to embrace the path of trust and letting smart people do what they will than it is to throw on the black turtleneck and go all Steve Jobs on people.  Screaming may have worked for Steve Jobs, but those who decide to follow his leadership path should take a hard look in the mirror and ask themselves 1. Am I really that brilliant?  2. Am I living in the same context?  (Hint: the answer is NO.)

In my own work life, I often hear ideas that I myself would not reach for.  I work at saying, “let’s see if this will work out” instead of “you are freaking crazy.”

Eric Schmidt makes it onto my nerd-of-nerds list because he had the audacity to hire smart people, trust them and let them go.  Look at what they built. The ideas about software and software testing that came out of Google under Eric Schmidt’s leadership changed me and my career forever. I suspect I am not alone.  We need more leadership like this in software and software testing.

 

Fernanda Viégas and Martin Wattenberg
These two people are a dream team of data visualization.  Although they both do solo work, they work mostly as a team.  In fact, Google hired them as a team and they lead Google’s “Big Picture” visualization research group.  Although their work is always gorgeous, it’s also thought provoking and always has a solid basis in data.  Their first collaborative project, a visualization of Wikipedia, highlighted the controversy amongst some of the pages which, to be honest, I’d never stopped to consider before.

abortion on wikipedia
http://www.research.ibm.com/visual/projects/history_flow/gallery.htm

The artist statement on their website reveals how connected they are to what they do.  Although it’s worth reading the whole thing, (it’s not that long, actually), here are a few of my favorite bits:

“…our artwork complicates and subverts a tool that is largely used by the business and military elite. Unlike these traditional uses, we believe visualization to be an expressive medium that invites emotion.”

“Eventually we start to ask questions that can’t be answered by direct observation.”

For me, this team is an example of being open about collaborative work they do to move technology and mankind forward.

 

Ward Cunningham
There are a few reasons why Ward Cunningham makes my list of ultimate nerds.  He’s the father of the wiki which is a tool I consider mandatory to be effective for exploratory testing and can also be a framework for automated tests.  He helped lay the groundwork for design patterns.  He was also involved in the writing of the Agile Manifesto which is something I frequently reach for to remind myself about the human aspects of software.

Currently, Cunningham is a fellow in the “Code for a Better World” program at Nike where he oversees the Smallest Federated Wiki project.  This is a really neat project as the focus seems to be creating a community of wikis that can talk with each other.  It is also completely open and available on Github.  You an look back through some of the closed issues and see the constructive way in which Ward engages contributors to the project.

Part of the skill for maintaining longevity in a tech career seems to be the ability to simultaneously have a vision but also the ability to break that vision down into pieces small enough to implement.  Cunningham’s engagement with the idea of a wiki over time has shown me what this looks like.

 

So that’s my list of Ultimate Nerds.  In these people, I see what I wish for myself reflected back at me.  There are themes of collaboration, creativity, experimentation and longevity.  It’s easy to get burned out in this industry, but we are surrounded by fantastic mentors and role models if we choose to seek them out.

Last Fall, I ran a half-marathon.  Everything after mile 8 happened through a wall of exhaustion, but I stuck it out.  When I made it to the finish line, there were people lined up outside of the barricades on the street, cheering all of the finishers on.  I ran over to one side and got high-fives from anybody who would give me one, and ended the race feeling ecstatic.  When I feel burned out or when I just don’t know where I’m going with my tech career, it will be easy enough to picture these people lined up and ready to give me a high-five.  Now, there’s a visualization.

Enhanced by Zemanta

Credo Work: The Ultimate Nerd

Through this process of building my own software credo, I’ve been taking liberties with the Unitarian process of building your own theology.  For this post, I’m taking an ultimate liberty and switching the chapter on examining my personal theories about “ultimate reality” to examining my concept of the ULTIMATE NERD.

To begin this exercise, I’ll examine my take on the stereotype of nerd and “ultimate nerd” during these various phases of my life:

 

  •  As a child
  • As a young adult
  • As a Computer Science major
  • Now

As a child
Let’s just get this out of the way, because we all know it’s coming:  If you grew up in the U.S. during the ’80s, it’s highly likely you share a youthful vision of a definitive nerd with me.

English: An illustration of a stereo-typical &...

It’s quite difficult *not* to associate “nerd” with the nerds portrayed in the movie “Revenge of the Nerds.”  The stereotype was pretty abstract for me and didn’t change that much for a long time.  As I got older and went through high school and college…well…the first round of college, a nerd meant an unattractive man with glasses who liked computers.  There’s no depth to this stereotype, but that was to change…

As a young adult

If you lived in Atlanta or even possibly other places in the Southeast during the 90’s, chances were that your ISP was Mindspring.  This had a big impact on my ideas about nerds.  As I began to cultivate a healthy respect for computers and even began dabbling in programming, Mindspring became it’s own cultural nexus in my hometown of Atlanta.  I swear they must have blasted the lunchtime 80’s radio show, House of Retro Pleasure, at lunchtime in their offices since half of the song requests came from Mindspring employees.   Calling their tech support was fun!!!  Nerds were no longer the cardboard cutouts of my youth.  They were now friendly, vibrant people with enough intelligence to work with computers.  My vision of the ultimate nerd switched to a guy my age, slightly gothy with a dark sense of humor.

As a CS Major
AND THEN…I enrolled in a CS program.  Did I think of myself as a nerd in my Programming 101 class?  Not really.  I was learning C++ and conquering Computer Architecture but there was always that guy in the class who had owned a Mac or Commodore since he was 4 years old.  It is really hard to claim street cred when you are the only girl in a class and struggling to make a B (sometimes I made A’s but not always).  This eventually changed when I attended a Grace Hopper Conference and saw a presentation on what we see when we think of “nerds.”  I realized, I had assumed for many years that to be a nerd, you have to be male and/or have snuggled up to a computer like it was a security blanket every night since infancy.  It took this presentation to help me let go of those particular stereotypes.

Now
“Nerd” is definitely a stereotype and a label. As with any stereotype, it can be used for good or for bad, but in my case, I see it as a positive label and one that I’m happy to own.

I believe a nerd is someone with a deep understanding of technology, but it doesn’t end there.  A nerd is someone who has a deep understanding of technology and who also understands the connections between technology and real life.  As for “deep understanding of technology,” that can be parsed forever and I’m sure there are plenty of nerd fights about what’s more technical.  I’d rather focus on the second half of this because it means wanting to share technology with others.  What good is all of the technical knowledge in the world if you’ve locked yourself away, sneer at everyone you see as “less technical” and refuse to explain anything to them.  Good luck with that.

A nerd is someone who gives their Mom an iPad or who loves making crazy websites and having their friends play with said crazy websites.  They might wear glasses or they might not.  They might be transgendered or they might be a family guy who wears khakis and a plaid shirt everyday.  They might live in Silicon Valley, Conyers, Georgia or Mozambique, and keep in mind, this is just my version of a nerd.  Yours might be different.
The Ultimate Nerd
An ultimate nerd is someone who embodies these qualities I consider to be “nerdly,” and takes them further.  Ultimate nerds not only have a deep understanding of technology and a willingness to share it, they change what’s possible and they don’t have to put people down to do it.

This significantly narrows the field, but that’s ok.  There are plenty of asshole nerds out there who have dazzled us with one thing or another while treating the people around them horribly.  I demand more than that from anyone I consider a leader or “ultimate” anything.

While “nerd” is a label and a stereotype, it holds relevance for me because it describes something I found in myself at the end of a wild and uncertain journey.  The idea of an “ultimate nerd” points me towards places I want to go in my career but haven’t yet reached.

In my next credo post, I will indulge in labeling a few people as “ultimate” nerds.  Hopefully, they’ll be ok with that.

Credo Work: Human Nature

This credo assignment was a lesson on the different aspects of human nature.  The beginning exercise was to read through a bunch of statements about human nature.  Here are a few of the quotes on human nature that spoke to me:

 

You have millions of virtues, but you post-pone their practice.
— letter from a friend to May Sarton

I see the right, and I approve it too, condemn the wrong, and yet the wrong pursue
— Ovid

When all the doors of opportunity seem closed and your precious dreams have turned to ash, remember the human race ranks first in the realm of wonders.

— John A. Taylor

The next section is to think of historical examples of the worst and best in human nature.  Here are my answers:

 

Worst:
Genocide – any occurrence, any time period
The closing down of so many mental health hospitals in the U.S. during the 80’s

Best:
The Civil Rights movement in the 60’s
The Renaissance
Penguin Sweaters

 

The next part of the lesson was an examination of this “continuum” of human nature:
The Human Continuum
Freedom
Environment
Animal
Fate
Genetics
Spiritual

 

There were also a few questions that went along with “the continuum.”  I won’t reproduce all of the questions, but one of them really hit home:

 

Are we trapped with the ancient Greek notion of the mind as good and the body evil?

Although this question is, itself, a leading question I am a big believer in the connection between mind and body.  Our stress reactions have a lot to say to us.  Our body language is half of what we are trying to say when we talk with someone.  Perhaps in the past, all of this has been irrelevant to making software, but we are living in an age when some software processes are beginning to recognize humanity.

 

What do I mean by this?  There are some places where the release of software is a low-drama, non-heroic process.  Releasing the software does not require crazy hours or last minute herculean efforts.  It does not mean weeks of testers, developers or anyone else sleeping in their cubes.  These things are not required because it is understood that  the human brain does not function at its best under these conditions.  Our ability to be good teammates suffers when we are over-tired as does our ability to think logically, find bugs, write code, etc.

 

This is a dialog from Esther Derby and Johanna Rothman’s book, “Behind Closed Doors” that brings this together and is foremost in my mind when I hear about a release which required heroic efforts and/or serious overtime.  Their book is written partially as the story of a manager leading a team.  In this scene, Sam, the protagonist and a software manager is discussing the features that can be included in a release with Marty, his boss:

 

Thursday morning, Sam strode to Marty’s office, plan in hand.
“Marty, I’ve spent the last two days working with my team to replan
this release. We focused on the most important features based on
the list you gave us. We’ve organized it and reorganized it and
arrived at an achievable plan. These are the features we’re going to
work on.” Sam handed Marty the list. Sam waited a minute while
Marty scanned the list. “Not all the features originally planned
for this release are on the list, but the most important ones for
BigCompany are.”
Marty examined the list. “Is this the best you can do?”
“Yes. We’ve spent the last two days figuring out how to get this
much done. If you see a better way, let me know.”
“Couldn’t you just add these two features back in?” Marty asked.
“Not and meet the release date. We know what our capacity is, and
we’re at it.”
“I better talk to the sales guy if this is the best you can do. What if
you put everyone on overtime? Or hire more people?” Marty asked.
“The learning curve is too steep. If we hire people now, they won’t
be up to speed before the release date. And extended overtime—
three months—would guarantee the developers make too many
mistakes and the testers will be too tired to find them.
“I’d be happy to talk to the sales guys with you,” Sam finished.
Marty harrumphed but agreed.

This is what it looks like to recognize human nature when you are making software, and I think we all know that in reality, the dialog doesn’t typically end with “Marty harrumphed but agreed.”

 

The beginnings of my credo
I’ve now written a few posts involving work that will end with my own personal software credo.  With this chapter on human nature, I’ve written the first few belief statements in my credo:

I believe humans work best when we are allowed to be human.  To deny our humanity, our emotions, our physicality and the ways these work together to form us is to cut ourselves off from ourselves and results in work that is less than our best.
I believe that if we don’t, as individuals, understand our own human nature, we will not be able to understand anyone else or what they try to say to us.
I believe that people mis-use or over-use technology when they don’t understand or are fearful of their own humanity.
I believe that there are a few people in this world who willfully damage others.  Those people don’t belong on any software-making team.

 

 

 

Enhanced by Zemanta

On Mindfulness and California

Flag of California. This version is designed t...

Ah, to be living in the Republic of California.  It’s been described to me as “a state of consciousness.”  Between the hippies, the large number of practicing Bhuddists and the gorgeousness of the weather and outdoors, I can see why there is an emphasis in California on chilling out.

 

In the past 3 years, I’ve graduated with a Masters degree in software, sold a house I renovated, moved to Australia and back, changed jobs a couple of times and found myself feeling utterly ragged.  You could say I’ve discovered that being an adult with a great career is, well, IT’S FREAKING COMPLICATED…and stressful…and confusing.

Here in California, I’ve found some peace.  I won’t say that my life and my job are always peaceful, but I’ve found a way to dance with it.  Last summer, I found an opportunity that I think only exists in California.  I took a class called, “Mindfulness-Based Stress Reduction.”  At the base of it is using “mindfulness” to help reduce everyday stress in your life.   Much of it comes from Bhuddism, altough if you really get to the heart of it, I think most major world religions have some concept of mindfulness.  In the workbook, “Mindfulness-Based Stress Reduction,”  mindfulness is defined as, “the practice of cultivating nonjudgmental awareness in day-to-day life.”

Here is a small taste of what I’ve learned through studying mindfulness:

  • Polarized thinking is a type of thought distortion where “things are black or white, good or bad.  You have to be perfect or you’re a failure. There is no middle ground.”
  • If you start a sentence with, “She is just so…” or “He really thinks that…” you are about to judge someone.
  • Emotions are complicated and have nuance.  Just look at all the different types of anger:  aggravation, agitation, annoyance, destructiveness, disgust, envy, frustration, irritation,  grouchiness, grumpiness or rage.

At the heart of practicing mindfulness is meditating as a way of practicing self-awareness.  Everyday, for at least 15 minutes, I listen to my body and what it is telling me.  Are there areas where I am feeling stress?  If I look at my thoughts passing by as if they were in a stream, what do I see?  I now know what my stress reactions are and since I can see them and notice them, they pass away more quickly.  To study mindfulness is to study the acceptance of change and impermanence in life.  Accepting change and impermanence flows into practicing safety, forgiveness and loving-kindness.

It’s taken me a while to blog about my dedication to mindfulness, but the next chapter in my credo work is on human nature, and I can’t blog about humanity, software and building a credo without first introducing mindfulness.  The great part of it is that I am at another confluence of an interest in my personal life that is, cosmically, making it’s way into my work.  As my way of embracing California, I’ve been attending a Unitarian church.  It is purple inside and they don’t care if I wear flip-flops to their service.  To address my needs in their church, they are having a service next Sunday on Mindfulness.  I think I like California.

Sunday School Shoes

Until the next post, I’d like to leave you with something I wish for all of you whenever I meditate:
May you be safe
May you be healthy
May you have ease of body and mind
May you be at peace

May all beings, everywhere, be at peace

Enhanced by Zemanta

Credo work: That was religious.

All-Star Carter Family/Jimmie Rodgers Revival
All-Star Carter Family/Jimmie Rodgers Revival

Back when I still went to bars in Atlanta, on one particular evening, I ended up at legendary music venue Eddie’s Attic listening to Michelle Malone.  I’ve seen two of her live shows, and I along with other obsessed fans can tell you that she is a R.O.C.K. G.O.D.D.E.S.S.  As a Rock Goddess, she was especially on fire the night that I saw her play for the 2nd time.  One song she played was particularly memorable, although I didn’t know the name.  The audience was feeling it, the band was feeling it, and so was I.  When the song finished, there was this vacuum of air in the room created by the energy of the music, the band and the audience.  We were all dripping with sweat.  A breathless Michelle Malone looked out into the audience and said in her deep, sultry, rock goddessy-voice, “well…that was religious,” and the audience went nuts screaming, applauding and stomping on the floor.  I consider that show one of my peak experiences as a concert goer.

 

In continuing with working on building my own credo for software, I’m starting to really get to the heart of the matter as I ponder “religious experiences” with peaks, plateaus and valley’s in the context of making software.  I almost skipped this section because I wasn’t sure this would really fit in with looking at software.  As I was debating this in my mind, my friend, Lanette, was in town, and I mentioned it to her.  “Oh, there’s religion here.” She said. “What do you believe in strongly enough to sacrifice your standing in the community?” she asked.

 

We all end up with our own strong beliefs about software eventually.  It’s those “a-ha” moments or the sad lessons from “death march” projects that ultimately show us what works for making software and what doesn’t.  These experiences are the peaks, plateaus or valleys of our working life and we earn them.  I would even go so far as to say that it’s not just the practical experience we have in software but the lessons we bring from outside into software that also shape us as software makers.  Connecting our experiences with what we learn from them ultimately results in beliefs we feel strongly about, and when we talk about these beliefs with others they become an expression of who we are.

 

Here are a few posts that, to me, look like they revolve around a deep realization or experience the writer has had in connection to the making of software.  If you read them, think about whether each one is a peak, a plateau or a valley.

 

Word Count: A Happy Surprise by Elisabeth Hendrickson

Selenium Meetup West Coast Style by Lanette Creamer

Off the Beaten Track by Trish Khoo

Against Kanban by Chris McMahon

 

After reading through the posts, I went back through my own looking for one where I was taking a strong stand.  Even though I consider myself an opinionated person, this was more challenging than I thought it would be, but I ended up choosing “My Post About Gender and Diversity.”  When I wrote that post, I very much felt backed into a corner.  This wasn’t a post I ever would have written if I hadn’t felt unfairly pushed into it (there’s no excuse for that, not even a great post), but I guess that’s life, and ultimately, I’m quite proud of what I wrote.

 

Working through these has given me the desire to uncover more of my beliefs and to write about them.  I’m also thinking about peak or plateau experiences I’ve had as a way to round out some of the negative experiences.  I love Elisabeth’s post because she has this great peak experience that justifies opinions she already had.

 

If you’d like to consider your own experiences and how they connect to your beliefs, here are a few questions to get you started:

 

Have you ever had an ecstatic experience while working with software?
Have you ever made deep realizations about the way you work or about the work that makes you happiest?  Have you ever realized that you needed to change course with something you were doing in a big way?

 

Credo Work: Grasshopper Redux

English: Illustration of the Aesop's Fable: Th...
Image via Wikipedia

After writing my autobiography, it is time to pick a central theme and write a parable from it.  For some reason, this post where I’m writing about art, metrics and data visualization keeps coming back to me.  I also have these images of a Grasshopper playing the fiddle in my head.  Without further ado, a bit of Grasshopper redux:

 

A long time ago, on a cold, dark, Winter’s night, someone knocked on the door to the Ant family’s home.  The knocking was so hard, the door shook on its hinges.  “Oh, it must be the wind!” cried Sister Ant.  The banging started again.  “It’s a duck!!!” shouted little Brother Ant.  He had been obsessed with ducks all winter and was excited at the prospect of a duck visitation.  Winter was always a very long and boring time for the ant children.  “Go to the bedroom you two,” said Father Ant.  He wasn’t quite sure what was afoot, but knew that a knock on the door in the dead of winter could not be a good thing.  Mother Ant took the two children to the family’s small bedroom.

 

Father Ant opened the door and looked up at the shivering grasshopper on his doorstep.  Immediately, his eyes turned cold, “And what do you want?” said Father Ant.
“P-P-P-P-Please Sir!!! Just a warm place for the night.  I’ll be m-m-m-m-movin’ on in the morning.”
“Right.  As I recall, you spent the summer dancing and singing when all of us Ants were busy stockpiling food and making sure our houses were ship-shape for winter.  Would you say that’s a fair assessment.”
“Y-y-y-yes, but it’s so c-c-c-c-c-c-cold and my f-f-f-f-f-f-eet are b-b-b-lue!”
The ant glanced down at the grasshopper’s feet which were indeed blue.
“Hmm…yes…”the ant said aloud as he rubbed his shiny, black chin. It’s true that ants are a hard working lot, but that doesn’t mean they are completely heartless.  Father Ant decided to make the Grasshopper an offer.
“Well, you’ll have to earn your stay for the night.  Have you got any money or anything useful to trade?” asked Father Ant.  The grasshopper looked forlornly at his blue toes and exhaled.  “N-n-no sir.  Not really. I’ve just got me fiddle and I won’t be sellin’ that.”
Father Ant felt the small, warm hand of Brother Ant slip into his.  Brother Ant tugged on his father’s arm as if he wanted to tell a secret, “Daddy is that the music player?” he whispered into Father Ant’s ear.
“Why yes, and look what he’s come to now.”
Brother Ant tugged on his arm again, “Please, Daddy, can he play us some music!  Please!!!
Father Ant’s eye softened as he gazed down at his wee son and thought of how dark and boring winter was for the children.  They had all worked so hard during the summer. He looked at the shivering Grasshopper in his tattered cloak and bare feet.
“Oh all, right then.” he said to the Grasshopper, “You can stay the night if you play us some music.”

 

The Grasshopper stayed with the Ants for not one night, but two.  On the first night, he played all of their favorite songs including a song he made up for Brother about a duck.  On the 2nd night, he taught the children how to sing all of their favorite songs.  Father Ant was so happy that the children now had a way to amuse themselves that he referred the Grasshopper to some of the other Ant families.  Thus, the Grasshopper built up a business of helping the Ants keep themselves and their children amused during the Winter and making up new songs for everyone to learn during the summer.  Winter became a much happier time for the Ants and the Grasshopper’s toes were always green instead of blue.

 

The Lesson:   Marrying what makes us joyful during our downtime with what we do to pay the rent can help us all sing a little more.

 

It’s the middle of Winter up here in the Northern Hemisphere.  Excuse me while I pour myself a drink and dance around my living room, listening to the fiddle in Fishermen’s Blues one more time.

Enhanced by Zemanta

Credo Work: My Digital Autobiography

 

In my quest to build my own software credo, I’m starting out with writing an autobiography of my career in software.  In this post, I’ll describe what I’ve done and a few things that I learned about myself in the process.

 

When I was in 6th grade, a teacher had me write an autobiography.  It was a brain dump of pen and ink in chronological order.  Although this is still a great way to write an autobiography and is one of the steps that I took, there a couple of new ways to augment what you do online.  If and when you do the brain dump method, it’s worth going back to identify peaks, valleys and plateaus.

 

The “My Maps” capability of google maps allowed me to create a google map of my software career.  It includes places where I’ve worked, and places that shaped my ideas about software such as the elementary school were I placed “Oregon Trail.”  My google map spans 1 province, 2 hemispheres, 3 continents and a few states.

 

It’s also useful to create a temporal reference, and it’s now easy to create and share timelines online.  I put some of my important evens into a timeline with Timeglider

 

As my guide for this process, I’m using a resource from the Unitarian bookstore called, “Building Your Own Theology” by Richard S. Gilbert.  It suggests a few activities you can do after you’ve “spilled the beans” to help pull out some information that may have gotten lost in the volume of data:

  • Where did events take place in space
  • Who were the 3 or 4 people that helped you the most or meant the most to you
  • Which software communities have had a lasting impact on your development
  • Important decisions you’ve made
  • Happiest and Saddest Experiences
  • Master themes

3 or 4 people who have had the greatest impact on my software career in no particular order

Mark Burgess
Mark was my mentor and boss at Equifax.  He gave me confidence that I could write code, and stuck with me through my crazy experimental project.  He knew everything about Unix and showed me.  I have yet to meet anyone who knows half as much about the command line as Mark does.  Since I consider Unix one of the great loves of my life, this is a big deal.

 

Steve Leitner
Steve had the greatest management attitude I’ve ever seen.  He said to me, “You hire the smartest people you can find, trust them and things will be alright.”  He made me feel set up to be successful.  The fact that he saw me as a “cool kid” made me believe in myself as a cool kid. He is a tinkerer, and always had some interesting side project going on such as creating an iPhone app.  When the iPhone came out and I said they were too expensive for me to have one, he told me that I should look at things like that as an educational investment.   Steve is living proof that it is possible to be a great boss without helicoptering or micromanaging.

 

Dr. Lauren Hacker
Lauren taught me C++ and went beyond to help me when I was having a hard time with Physics II.  If it hadn’t been for Lauren helping me in physics, I would not have passed my CS degree.  She helped me write some pretty tough programs.  Lots of people in class hated her crazy assignments, but they ended up being more like the real world. They were my initiation into the chaotic reality of building software in an agile environment.

 

Mark Hrynczak
Mark and I worked side by side together at Atlassian.  Aside from having a great understanding of what real teamwork involves, Mark is a truly great tester.  He taught me all about follow through in testing and I think of him every time I go one step further in finding a bug or testing something out. He taught me to scream “Hurray!!!” every time I find a bug or someone else does. He’s also recently written a terrific blog post on security testing.  We both tested the hell out of Confluence together and would celebrate the end of every week with a Coopers and a “Cheers!” Here’s to you dude!

 

Dr. Orlando Karam

Dr. Karam shepherded me through my Masters thesis project at Southern Poly.  I also took his Summer class on game programming which is one of the most fun classes I’ve ever had.  You know the fun teacher who really knows his shit and will push you a little harder than you think you can go while still telling jokes?  That’s Dr. Karam.

(This is the absolute smallest list I can make and the truth is, I’ve had lots of help from lots of great folks.)

Communities that have had a lasting impact on my software development

My blog & twitter network
There’s no way to overstate the support I’ve gotten through friends I’ve made with blogging and twitter.  You guys know who you are and how much I appreciate you.  This support network has helped reinforce my confidence.  It’s made me a better writer, software developer & tester.  When I’m feeling burned out it keeps me inspired and interested.  It also helps me see what’s true if I end up surrounded by dysfunction as we all do at one time or another.

The Agile Community
As a pragmatist and someone obsessed with “getting shit done,” I’ve always been happy around the Agile community.  While the word “agile” itself has become ubiquitous and means many things to many people, I’ve found that other people I know who love agile typically care about how they treat people, how the software treats people and they also have a tendency to find ways of cutting through bullshit in order to get the software out the door.  While not every person who does those things self-identifies as an “Agilist,” and I’ve also met some real assholes who identify themselves as Agile, for the most part, I’m down with agile and the people in it.

AST-ers and CASTafarians
This is an organization that cares deeply about moving testing forward and their conference was a revelatory experience for me.  I’ve gotten a lot of support from the people in this group and they’ve been there for me when I’ve found myself in a dark corner.

 

Important Decisions I’ve Made
Going back to school for Computer Science
Learning how to use the VI text editor even when no one at school knew what it was

It is OK and “A good thing” to open your computer, switch out parts or even break something if you learn from it.
Pursuing my distributed research project even when I only vaguely knew why I was doing it
Pursuing data visualization over concurrency for my masters
Moving to Australia and then back to the U.S.

Happiest and Saddest Experiences
Putting together my master’s thesis and doing the research
Writing about Art and Making software on the porch of the Durango Library with Zeger von Hese
Getting my paper accepted at PNSQC and the whole process of writing the paper, presenting it and then taking it “on tour”
Finding out that something I’ve written has helped someone out or inspired them
(I’ve pickled the sad ones and shoved them way back on the top shelf of my closet.)

Master themes of my Career

Unix is one of the great loves of my life.

Treating people well has to come first.  It has to come before process.  It has to come before the code.
I’ve found confidence with building software and I’ve fought to keep that confidence in tact.
I take huge risks even if I have no assurance that things will work out.
If I’m not doing something I think is creative and artistic, I am not happy
Too often, I’ve tried to make side-steps work instead of going for what I really want.
My best accomplishments happen when I have enough downtime to get creative.
I am more successful when I have a large goal to work towards and support in obtaining it

 

I’ve learned quite a lot from this exercise in autobiography and not just about myself.  Hopefully some of the ideas above will inspire you to pursue your own autobiography.  It’s worth mentioning that although we didn’t plan this and we are posting independently, Michael Larsen is also in the midst of blogging about his autobiography.

Next up in our credo work is “A Software Parable”

In search of…

You were here and so was I
You were here and so was I

We are always on a journey in our lives and in our careers.  The journey takes us through sands that shift sometimes more quickly than we can move or even dream.  If you have ever walked on sand before, you know the feeling of uncertainty that comes with each step no matter how sure you may be of the direction in which you travel.  Although the ground is solid, it feels as if it will slide out from under you at any moment.  It is difficult for a human body walking through sand to retain balance as the ground is constantly shifting underfoot.  In fact, there are some places in the world made up of so much sand that the entire landscape will shift in a matter of weeks or months.  Welcome to your career in software.

 

In the outside world, there is little that humans control.  Eventually storms overtake us, the hail rains down and the locusts swarm around us.  There are, however, things we can control.  On a trip that I took through the American desert a few years ago, I had a good tent and a sturdy pair of boots.

 

Now that I’ve torn down my own world in software and in testing, I’m ready to rebuild.  California is a new place and, as Patrick Welsh describes it, a “State of Consciousness,” so I’m embracing a new perspective.

 

In this world of shifting sand,
What is worth keeping around?
What is it that keeps me upright and moving forword?
When I’ve gone astray, what or who has helped me right myself?
What has endured in the software industry and in my own career?

 

These are some pretty deep questions I’ve decided to probe in an effort to understand myself in relation to the fantastic mess that is the tech world.   Although I am still moving forward, I’ve decided to build a tent which will move along with me, but also be my own personal sanctuary.  In this new year of 2012, I will be working on my personal software credo.  It may appear very hand-wavy at first glance, but my intention is to connect what I find in my exploration to the value I bring in the workplace.

 

A credo is a set of personal beliefs or a personal mission statement and is a counterpart to a “Creed” which is more formal and typically created by “experts.”  These are mostly written in the context of theology, but I’ve noticed more than a few “creeds” in my professional life.  We have rules, “guidelines” and “mission statements” thrown at us whenever we join a new org, attend a conference or affiliate ourselves with a professional group.

 

Personally, I’ve tried to keep myself unbound from any of these as I prefer to define my professional life and, indeed, life on my own terms.  As such, I’ve noticed that there are certain people, places and mission statements that ring true for me.  Going through the process of writing a software credo is my way of integrating all that I’ve learned about the raw stuff of my own personal existence and making software.  My guess is that it will help guide me in making decisions and choosing my future directions.

 

I will be blogging what I do along the way and plan on unveiling my credo next June at the Better Software/Agile Development Practices conference in Las Vegas.  It is no accident that this is a joint dev/test conference experience, but it feels quite serendipitous that this is taking place at a man-made oasis in the middle of a desert.

 

My first step has been to work on my software autobiography.  I couldn’t help but notice that Michael Larsen has been doing the same as the rock star that he is.  Stay tuned…

 

CSS & Web Performance – Awakening the speed demon

Greyhound in the "roach" sleeping po...
Image via Wikipedia

This post is a wrap-up of some of the things I’ve been learning about performance.  It includes some follow-up from my last post on isolating performance problems with Firebug

One of the comments from my earlier post  suggested that this is also baked into Chrome.  Although I work for Mozilla which means I spend most of my time using Firefox, I have no problem duly noting that Chrome contains some excellent tools for looking at performance as well.   In this post, I’m actually going to show how Chrome can be used to get a sense of front-end performance.  (If you think that Mozilla and Google are adversaries, you might want to have a look at this and this.)

 

Let’s put some definition around front-end and back-end performance.  In my previous post, I was looking at calls going to the back end server and how long those were taking.  That’s back-end performance.  When we talk about front-end performance, we’re concerned with HTML, Javascript and CSS performance.  Admittedly, I knew absolutely nothing about this side of performance before attending an HTML5 conference in September aside from some googling I did which resulted in this guerilla post.  Note that I wrote that post before I saw this talk by Steve Souders, creator of YSlow.  The talk itself was quite an awakening, and afterward, I knew I had lots more homework to do. (This link is to a similar presentation done by Steve at a JS Meetup a week or so later.)

 

After the conference, in addition to hunkering down and learning more about CSS, I started looking through both of Steve’s books, High Performance Web-sites and Even Faster Websites.  Both of these show that there is a lot which can be done for performance on both the front-end and the back-end.  Since he works for Google, there is some cross-pollination of his ideas and the information you get out of  Chrome’s developer tools.  An example of this cross-pollination is Chrome’s ability to do an audit of front-end performance. To get to this functionality, open Chrome, click on the wrench in the top right corner (I hear this is a spanner in the UK) -> tools -> Developer Tools.  This will open the Developer tools, from there, click on the “Audits” tab.  If you are already on the page you want audited, you can select select “load page and refresh browser” to get more accurate results.

 

Here’s a screenshot of an audit for addons.mozilla.org.

A Chrome Audit of Addons

Some of what I noticed in here maps to suggestions in the book, “High Performance Web-Sites.”  For example, one of the suggestions is that some of the components being downloaded need to be gzipped.   This is the same as zipping files so that they are small enough to send through email only in the context of a web-page and http request.  There is a header which can be added to http requests so that the response you get back from the server is zipped.  Who knew!!!

 

Although the Google Chrome Audit will catch some things, there are other suggestions Souders makes that it doesn’t mention.  For example, it’s worth understanding which images on a webpage should be included in a sprite.  Sprites are used to aggregate several images into one.  They are laid out in a grid and are accessed by coordinates.  Here’s an example of a sprite used for the addons.mozilla.org details pages.  If you’d like to see it in action, have a look at this page.  The icons are on the top right where it says, “add to this collection” and “share this addon.”

 

An example of something I plan to question more in the next quarter, is the usage of CSS expressions in addons.  Even though CSS is used to control the layout and style of a page,  it is entirely possible to include “if” statements in CSS via the expression method and the ternary operator.  Rule #9 in “High Performance Websites” advises against using this because the expression will be evaluated when the page is rendered, resized, when the user scrolls or even moves the mouse over the page.  I’d like to understand more about the tradeoffs when I see them used such as here.

 

An early observations about looking at performance is that this is an area awash in tools and it would be easy to just keep trying new tools without digging deeper.  Opening Chrome or Firebug and pointing them at a page is easy enough, but I’m ready to look through some of the front-end code, talk with the devs and begin approaching performance in AMO with more precision.  More to come in the new year…

Enhanced by Zemanta