frances-braggI was the only grand-daughter of Frances Clara Kiefer Bragg who passed away on March 11 just 15 days before her 108th birthday. She was a loving, yet formidable force in the world. As a child, we would often visit her in her home in Cambridge when we lived near Boston and when we lived in other countries, she would visit us for a few weeks or months. Small lessons were embedded in our interactions, and there was always a proper way to do things. We needed to know how to conduct ourselves in society: when you set the table, the knife points toward the plate, always hang paintings at eye-level. There was a right way to make borscht and chicken soup. I learned sewing, cooking, and appreciation of fine art from my grandmother. She told funny stories of her travels, and family history, sprinkled with anecdotes of poets, writers and presidents.

As a teenager, I rebelled and stopped doing all of the things I was told to do. I figured maybe one didn’t always need to write a thank you letter – sometimes a phone call would be even better. And also, as a teenager sometimes I just didn’t feel like doing what was right and proper.

Now, reflecting on those early lessons learned from my grandmother, I wonder if the impression stuck with me that whatever my grandmother did was the appropriate and proper thing to do in society. I followed her lead in other ways. It felt appropriate and proper for a young woman to travel alone in Europe, and that one must speak one’s mind, as long as it is done politely.

Somehow it all seemed normal that my Grandma visited my cousin in India and rode on the back of his scooter. I couldn’t find that photo, but I found this one, I think from that same trip…

fran-in-india

Fran spoke French, German and Russian quite fluently at times, along with quite a bit of Spanish and Italian, and random phrases in half a dozen other languages. She lived in the real world of typewriters and tea. She could remember when the ice-box was kept cold with real blocks of ice. She told stories of when her family got a telephone, and when her father proudly drove their first car.

In the 90s, I tried to get her connected to the internet, telling her that she could send email in an instant for $20 per month. She asked, “why would I want to do that, when sending a letter costs just 32 cents? I don’t send that many letters every month.”

While we lived on this earth in some of the same decades, during these years of my adult life, we inhabited quite different worlds. From my world of software and silicon, I recall that people used to say of Steve Jobs that he created a reality distortion field, where people would believe his vision of the future — a future which would otherwise be unrealistic, yet by believing in it, they helped him create it.

I believe Fran had that power to create her own reality distortion field where people are witty, and heroes emerge from mundane events. Memories are versed in rhyme, silliness is interwoven in adult conversation, and children are ambassadors of wisdom. Memories of my grandmother are splashed in vivid watercolor or whimsical strokes of ink. Postcards can share a moment. Words have layers of meaning, which evaporate upon inspection.

sarah-and-fran

How does someone learn leadership, especially technical leadership? I believe that leadership skills are skills you need to become a great coder. We develop software that is used by tens or hundreds or tens of thousands or hundreds of millions of people. That is a kind of leadership in action.

silhouette of a girl on a beach with shadow reflection in the wet sandTechnical leaders start leading before anyone is following them. You might be young or inexperienced. You might not manage anyone. You might think no one is noticing you or your work, and maybe nobody is.. yet.

You solve real problems. Not those imaginary ones that are really fun and require the latest library all of your friends are talking about. You refactor your code so it is reads clearly, so someone else can modify it easily later.

You read good books and thoughtful blog posts. You experiment with that new library, in a sandbox… taking a few hours every week to check out some new tech and thinking about whether it will solve a problem you actually have.

You are always learning.

You reflect on your project… not just your code, and the code that was there before you, also the code your colleagues checked in yesterday. You reflect on how we work together, are we writing code that will actually solve the problems we’re here to solve? is there anything else preventing us from doing good work?

Tips for Learning Technical Leadership Skills

1. Be Helpful

Be helpful to someone who needs it. There is always someone who knows less than you, who is much earlier along their path.

  • Mentor someone, pair programming
  • Contribute to open source
  • Write good bug reports (then fix them)
  • Review other people’s Pull Requests
  • Ask good questions & answer them (open issues on an open source project, StackOverflow)

Getting involved in open Source is a great way to hone your skills. Find an open source project in a language you like (or need to be good at).

Ask good questions

There’s an art to asking a good technical question.. Refining your ability to form a good question leads you to hone your understanding of the problem…

  1. Context. What are your dependencies? What versions are you using?
  2. Where have you already looked for an answer?
  3. Reproduce the problem in isolation
    • code snippets
    • screen shots
    • github repo with simple, standalone example

Write

  • Always leave the docs better than you found them
  • Install instructions
  • Tests are documentation
  • Start a Blog

On Blogging: start with what you are doing (simple “how tos”), then think about how to express why you are making the choices you are making at work or in one of your open source projects. The next time you try three Node packages or Ruby gems before picking one, write about it. Which Javascript promises library do you like and why?

Speak

Show your work, tell people about the open source project you just contributed to, get used to discussing your solutions technical problems (in the morning before the day starts, over lunch).

  • Present informally to your friends & colleagues
  • Volunteer to teach
  • Speak at a Meetup
  • Propose conference talks

Start by volunteering at a RailsBridge Workshop, or MobileBridge, ClojureBridge, or whatever tech you are most interested in, most want to be good at, and most want to be known for. This will give you the chance to meet people you will learn from, and to find people you can mentor.

Hone your speaking skills. Attend a meetup for a while, find one that’s friendly with a range of talks, and get to know the organizers. Propose a talk that teaches something you recently learned or whatever you are particularly excited about, then you’ll be ready to talk at a conference

Conclusion

Often software choices are driven by fashion, by what the cool kids are talking about, by what’s trending on Twitter…

You focus on the needs of the project, not the new shiny object, not your personally favorite feature. You are pragmatic, you balance between the tools at hand & those you want to learn. You balance what the project needs right now with your own personal career goals. If those are out of balance for too long, you find yourself another team, another place that needs your skills.

As leaders, we put ourselves on the path that needs making.

To create a path, you need to see it in your mind’s eye. We don’t become leaders in a vacuum. We build on the ideas, vision and creations of others. But once you see a new path… you need to figure out how to let other people know it is there… you can use words and you should, but as technologists, we have special powers. Learn to prototype, to express your ideas quickly in code.

– an excerpt from my 2016 hack.summit() talk on leadership

“Could you search up that site?” my kid asked me many years ago, and I still remember the following exchange. I felt the need to let him know, “It’s okay to use informal language when it is just us hanging out in the kitchen, but just so you know that’s incorrect grammar, I think you meant ‘search for.'” I was surprised when he corrected me. “Search for means something different,” he said. “You search for something when you are looking for something and you aren’t sure what you’ll find. If you know exactly which website you want to find, you search up the site.” This was a very precise definition. It was the accepted usage of those particular verb phrases by all the other fourth graders or middle schoolers or whatever age they all were at the time.

I wonder whether this turn of phrase was influenced by the user interface innovation that tied search engines to the URL bar in the browser. I still remember when radio ads would spell out h t t p : / / w w w before the website name. I can’t remember if we really had to type in all those letters in Netscape 2, or what year it was when the people who make the browsers realized that of all the apps in the world, this one could actually depend on the Internet being on, and maybe we could just suggest to people what they might want. After all why do we need two huge text edit boxes on our screen, one for Uniform Resource Locators that we need to parse to find a particular machine and the other for some text so we can look across many documents on many machines.

We change how we act based on the options available to us. We adapt to the reality around us. Then when enough of us have acquired new behaviors, then we can invent new ways to interact that are only possible because of the previous generation of people and tech. Our language reflects where we are and where we have been.

I still dial my phone, even though I’m actually tapping it. I rewind videos on YouTube. I wonder as I type these words on a keyboard that was designed for mechanical key to press ink into paper… what are the literal actions of today that will become the metaphors of tomorrow?