Using Gource to Visualize Your Repositories

Today at the FLOSS Community Metrics meeting in Brussels, Belgium, I gave a short, 5-minute lightning talk about using Gource to visualize your source code repositories with a focus on navigating the myriad of Gource configuration options and how to tweak them to make Gource work better for your repository. In this blog post, I’ll give an overview of the talk, but for all of the details or to replicate the demo, you should have a look at the GitHub repository for the talk.

In the talk, I did a visualization of the MailingListStats (mlstats) repository from the Metrics Grimoire suite of tools, and here is the video generated using these options:

gource -f --logo images/bitergia_logo_sm.png --title "MailingListStats AKA mlstats" --key --start-date '2014-01-01' --user-image-dir images -a 1 -s .05 --path ../MailingListStats

Option Details:

  • --path /path/to/repo (or omit and run Gource from the top level of the repo dir)
  • -f show full screen
  • --logo images/bitergia_logo_sm.png
  • --title "MailingListStats AKA mlstats"
  • --key (shows color key for file types)
  • --start-date '2014-05-01'
  • --user-image-dir images (Directory with .jpg or .png images of users ‘Full Name.png’ for avatars)
  • -a 1 (auto skip to next entry if nothing happens in x seconds – default 3)
  • -s .05 (speed in seconds per day – default 10)

You can also manipulate the video while Gource is running:

  • Space bar to pause
  • Ctrl + / – to speed up or slow down
  • Use arrow keys to move camera
  • Mouse over timeline widget at the bottom and click on a date to move in time.

For additional information:

Consulting Again

Scale FactoryAs most of you know, I moved to London to start working toward a PhD last January. Now that I’m off to a good start on the PhD, I find that I actually miss working, so I’m going to start consulting again.

I’ll be working part-time at The Scale Factory here in London. I’m interested in doing consulting projects related to building communities, open source, data analysis, etc. You can find all of the details on my consulting page. I’m also open to doing other types of projects.

If you are interested in getting my help for any of your projects, please email me: dawn@scalefactory.com.

Network Analysis and Community Visualizations

dawn_presentingAs usual, I’ve been neglecting my blog; however, you may notice that I finally did a little redesign using a modern template to make it more mobile-friendly and more accessible to avoid the Google search penalties. With this fresh new design, I decided that I needed something more recent than my last post in January.

So, I thought it would be nice to talk about my presentations from OSCON and the FLOSS Community Metrics Meeting in lovely Portland, OR in July.

If you want to skip my ramblings and get right to the content, you can find all of the code, data sets, instructions and links to the presentation materials on SlideShare by visiting my OSCON 2015 GitHub repository. UPDATE (Aug 23): The video for the OSCON portion is available now, too.

If you missed this presentation and want to see it live and in person, I’ll be doing similar talks at LinuxCon Seattle in August and LinuxCon Dublin in October. You might also be interested in reading the interview that Nicole Engard did with me on Opensource.com right before the conference to give me a chance to talk about my OSCON presentation and metrics in general.

What is Network Analysis?

The presentations both centered around network analysis, which studies relationships between units and looks for patterns and structure in those relationships. This is an oversimplified definition of network analysis, since it’s a fairly complicated discipline, so the best way to describe it is with a few examples of how people use network analysis.

  • My presentations looked at relationships and activity between people participating in an open source project.
  • It’s also used to study the relationships between organizations. Examples include looking at which companies have common people on their board of directors or to look at parent / subsidiary relationships between companies.
  • People are also using it to study animal social networks, like aggression and dominance between horses or food sharing between birds.
  • Someone at the University of Greenwich is doing historical social network analysis to look at the networks of people in medieval Scotland by using data from witness signatures on legal documents.
  • Friendship networks, work relationships, and other ways that people interact are also common examples of network analysis

MetricsGrimoire Tools

Metrics GrimoireThe MetricsGrimoire is the go-to set of tools that you’ll probably want to use to gather data from your open source community and store it into a database where you can write queries to extract the information you need. In these talks, I used mlstats data, but in my research, I also make heavy use of CVSAnalY. The OSCON 2015 GitHub repository README file has more instructions, but in short, you need to install mlstats, create the database, run mlstats on your mailing list to import the data into this new mlstats database, and finally use database queries to extract the data used for this presentation. You can also use my oscon.py script from the GitHub repository to extract the data.

Static Network Visualization

Dawn OSCONI took the output from the oscon.py script and used a combination of RStudio and Visone to visualize the data and create the network using data from one of the Linux kernel mailing lists (IOMMU) from January 2015 to keep the data set to a manageable size. In the end, we created a network diagram showing mailing list replies between people. The people with the most replies (degree centrality) are shown with larger circles (nodes), and the number of replies between any two people is shown by bolder or lighter arrows. Again, the OSCON 2015 GitHub repository README file has all of the details and instructions for how to do this, so I won’t duplicate it here.

Dynamic Visualization

Gource is a tool that most people use to easily visualize source code commits by each person for any repository; however, it can also be used with custom data. If you’ve never used Gource, you might want to take a brief detour and look at some of the many Gource visualizations on YouTube. I only had time in my OSCON talk to briefly cover Gource, but luckily, I was able spend 20 minutes on the topic during the FLOSS Community Metrics Meeting the weekend before OSCON. In the presentation, I showed how to create a custom log format file using mailing list data from mlstats and feed it into Gource for visualization. See the the OSCON 2015 GitHub repository README file for details about exactly how I did this.

What Else?

There are so many different tools available to do visualization of social network analysis. I used Visone because it runs on most major operating systems, and it’s fairly easy to get started with, but there are so many other options that you might want to play around with.

Python has quite a few packages that provide social network analysis, like NetworkX, for example. I haven’t had a chance to play with this much yet, but I know others who do quite a bit of their analysis using these tools, so they are on my list to try.

The final thing that I want to stress is that network analysis is so much more than just having cool graphs that allow you to look at your data. The visualizations are often the first step to see what might be happening in your network, but for those of us doing this type of work, it’s just the first step. The next steps usually involve many different calculations and measures to really understand what might be going on in the community. One example is how we changed the node size based on degree centrality for how many links that person had. It’s easy to explain, but it’s not a particularly sophisticated measurement of network centrality, and there are others that do a better job of looking at how well-connected people are to give you a better measure for influence. For example, if I regularly talk to 2 people within the Linux kernel, and if those people are Linus Torvalds and Greg K-H, I’m likely to be better connected within the network as a whole than if I’m talking to 10 other people with little or no influence.

If you are interested in my academic research, I also did a presentation recently at an academic conference here in the UK. That presentation and others can be found on my Academic page.

Photo credits

OSCON photo by Luis Cañas-Díaz and the FLOSS Metrics Gource photo by Stephen Walli.

Your Metrics Strategy at FLOSS Community Metrics

Cat measuring TapeI’m here in Brussels today for the FLOSS Community Metrics meeting, and I just gave a presentation about how to build Your Metrics Strategy. If you are interested, have a look at my presentation materials.

Talk description:

You probably know that community metrics are important, but how do you come up with a plan and figure out what you want to measure? Most open source projects have a very diverse community infrastructure with code repositories, IRC, mailing lists, wikis and other content sites, forums, and more. Deciding where to focus and what to measure across these many technologies can be a challenge.

What you measure can have a huge impact on behavior within the community, and you want to make sure that you are encouraging people to contribute in sane ways by measuring the activities that matter for your project.

In this presentation, I’ll talk about how you decide what to measure and give you examples of how I’ve done this at Puppet Labs and in other projects.

Photo credit: Sophie on Flickr

Moving to London to get a PhD

Dawn in LondonSome people buy fancy, expensive sports cars and hook up with someone half their age during a midlife crisis. I always like to be a little different, so I’ve decided to move to London and go back to school to get a PhD for my midlife crisis. I’m still waiting on my student visa, but if everything goes as planned, I’ll be moving to London in early January.

Taking a step back from an amazing job and career is hard, but the reality is that this isn’t going to get any easier if I wait. I’m already in my mid-forties, so a rigorous academic research degree is just going to get harder to complete if I wait too long. I’m also incredibly fortunate to be able to afford to do this right now, and it gives me an opportunity to live in another country for a while, which is something I’ve been wanting to do for a long time.

I also think it is time for a bit of a change. I’ve been working with open source communities for 14 years, and I’ve been in various community leadership / management roles full-time for more than 8 years. While I love community management, I’m a bit burned out and am feeling the itch to do something a little different for a while, so I’m going to spend the next 3 (or so) years focused more on the research side of communities. I love community metrics and analysis, but while managing a community and a team, I just haven’t had time to devote to this kind of research. Getting a PhD gives me an opportunity to spend time focused on research and analysis for topics that I find interesting.

I really like London, but my primary reason for selecting the University of Greenwich is because of the Centre for Business Network Analysis within the Business school. This group within the University of Greenwich performs quantitative research to look at the relationships between people in an organization or participating in communities, and I would like to extend this idea to look not just at the network relationships between individual people, but also between companies participating in open source communities. My specific area of research is focused on the Linux kernel community, which has large numbers of contributions from individuals being paid by organizations to contribute as part of their regular jobs. I will be studying Linux kernel code contributions from individuals who are employed by these organizations using network analysis and interviews to identify the relationships between organizations. I selected the Linux kernel because I find it interesting, and because it is a very large, neutral project with contributions from many different companies. The initial draft of my research proposal (PDF) has more details about the project.

The hardest part of this decision was the decision to leave Puppet Labs as a part of this process. We looked at a variety of options to see if I could stay in a part-time capacity, but the reality is that they need someone full-time in Portland to manage the community team. I will be staying on until the end of February to help with the transition and hiring of my replacement (we should have a job posting on the website in a week or 2). I’ll be continuing full-time here until I start my PhD program, which is currently scheduled for January 12, but could be a week or two later depending on when my student visa arrives. At that point, I will be converting over to part-time, since my student visa allows me to work for no more than 20 hours per week. Starting in March, I might be looking for a part-time community gig depending on how well I’ve been able to balance work and school during January and February.

I’ve always loved research, and this gives my an opportunity to spend some time doing research on a topic that I find interesting. I’ll be reducing my travel quite a bit, so you won’t see me at as many events, but you’ll still see me hanging around at various Linux conferences where I will be bugging people to talk to me as part of my research.

FAQ:

Q: Are you crazy?!?
A: Yes.

Q: What are you doing with all of your stuff in Portland?
A: I’m selling my house and my car. I’m in the process of donating piles of stuff to charity that I’ve accumulated and don’t really need. I’m packing 4 suitcases to take with me and putting the rest into storage. I’m actually looking forward to simplifying my life a bit and having less stuff (those of you who know me well know how much I hate extra stuff).

Q: Do you hate Portland?
A: No, I don’t hate Portland. I love Portland. I’m putting all of my stuff in storage here because I’m planning to come back someday. I still think of Portland as home, and when I’m ready to come back to the US, I’ll be coming back to Portland.

Q: Do you hate us?
A: No, I love the people in Portland. I said that leaving Puppet Labs was the hardest part of this decision, but it’s actually tied for top of the list with hating to leave all of the amazing people here in Portland. I’ll miss my friends in Portland, including everyone at Puppet Labs. Don’t forget about me while I’m gone (I’m coming back at some point), and if you make your way to London, ping me, and we’ll go out for a pint (note: the pints in the UK are bigger!) or a cup of delicious tea if pints aren’t your thing.

Q: Do you hate Puppet Labs?
A: Absolutely not! I love the company and the people. I’ve been part of the planning process, and I really do think that Puppet Labs is on a path to do really well over the next couple of years. I think they have a great team, and Luke is the best CEO that I’ve ever worked with (and I’ve worked with some good ones)!

Open Source: A Job and an Adventure

At LinuxCon in Düsseldorf, I gave a talk about the many ways that you can turn your work in open source into a career, so that you can get paid for all of the awesome work that you do in open source. If you already have a job in open source, I also talked about some of the different options that you have if you eventually want to do something different.

LinuxCon Düsseldorf

I uploaded the slides, but several people (rightly) pointed out that the slides with one sentence didn’t really capture the details that I presented, so I decided that I would take my speaker notes and turn them into this blog post. Enjoy.

My Journey

I ended up working in open source accidentally. When I was in college getting a computer science degree, one of the university sysadmins was teaching a UNIX system administration class. It was my favorite class – I liked it way better than programming, and when I was looking for my first job, I managed to luck into a junior sysadmin role at a local manufacturing company. Manufacturing companies really didn’t spend money on IT, so most of the tools that I used were open source. This was the mid-90’s, so it was way before you went to company websites to download open source products, and you didn’t want to install some random binary when you weren’t sure of the source, so I was downloading tarballs of gcc and other tools from ftp servers at places like the University of Wisconsin and CERN so that I could poke through the code before compiling and installing it on one of our UNIX boxes.

A few years later, after I had moved out of the sysadmin role and into more program management, I was at Intel in 2000 or 2001 when we were trying to get people to add support for the upcoming Itanium processors, and I was working on a team focused on working with developer tools. They needed someone to look at Linux developer tools, and especially the open source tools to see which ones were worth spending time on. Since I had used open source tools and had a UNIX background, they threw the project in my direction. A huge part of the evaluation was related to the community. Is there an active community? Are there regular releases? Are there users for the tools? I started to get more and more fascinated with how the communities worked. When I first started using open source, how a bunch of random people threw code together and actually ended up with something not only worked, but worked really well was a mystery to me. As I started looking more closely, I realized that there was actually some structure, with committers and maintainers, that just wasn’t obvious from the outside. I started getting more and more fascinated by how open source communities worked, and I started blogging about open source and speaking at conferences, which led me directly to my next open source job, which I’ll talk about a little later.

Now, obviously not everyone can be lucky enough to accidentally end up in an awesome open source job, so I’m going to talk about a few other options. I’ll will start with why you might want to make a career out of open source, but the bulk of the talk will explore the many ways to get open source to pay your bills along with examples of real people who have taken these paths. Even if you have already have one of these jobs, this talk will provide options for additional career paths and tips for what to do improve your chances of getting that next gig and how to avoid sabotaging your career. I’ll also share some time management tips to avoid letting this work take over your entire life (unless you want it to)!

Why: Friends

A lot of my friends are people that I met in open source communities around the world, and I often use travel or vacations as an excuse to visit them. Yes, this includes occasionally attending tech meetups while on vacation 🙂

I’ve also been surprised at how many times I run across the same people in different projects. Last year, I was contacted by someone from the Openfire community, a Jabber / XMPP chat server community that I managed back in 2007 or 2008. He’s using Puppet now at the university where he works, and he was interested in working with us on a Puppet Camp.

WerewolfThis picture is from a werewolf game at a MeeGo conference years ago, and I’ve stayed in touch with some of these people. I’ve found that I tend to form lasting friendships with people that I spend a lot of time with at conferences. Werewolf is one way, but there are also people that I spend time hanging out with over dinner, drinks or other conference activities that I stay in touch with. I’m also surprised at how often my work intersects with some of these friends, and we’re often in a position to help each other out with some project or activity in the future.

Why: Travel

Dawn at MeeGo Conf DublinThis is me giving a talk at the MeeGo Conference in Dublin. Not everyone who works in open source gets to travel, but I think that we have more opportunities to travel than many of our peers who work on proprietary products.

There is a lot of Conference travel with events like the kernel summit, KDE Akademy, other gatherings of developers for the open source projects. We do Puppet Contributor Summits for project developers twice a year, once in Europe and once in the US at our annual conference, but we also do 20-30 Puppet Camps for users around the world. These are great opportunities to meet the people that I interact online in real life.

Part of this is because we are working on open source projects, so we can talk openly about the work that we do. We don’t have to worry as much about accidentally leaking some corporate secrets. Attending and especially speaking at conferences is often encouraged by employers who want people to know about the work they are doing. It also makes it easier to hire people.

If you work at a big company, there is often company travel where they send you to places like South Korea to work with other companies that are working on the same projects.

Why: Future career

Because our work is in the open where other people can see it, we have visibility that many people just don’t have. When someone is interested in hiring you, they can Google you and see all of your participation in these open source communities. Being able to see actual examples of your work is way more useful for hiring managers than reading a boring resume.

Working in open source projects also allow us to make connections with people whose companies are hiring from the community. At every company where I’ve worked, we’ve hired people out of our open source communities. This is especially true of Puppet Labs and Intel.

Why: Awesome

I love the fundamental ideals behind open source software. I have the freedom to use it, to inspect all of the details, make changes to it, and to redistribute it as I need to without getting permission from anyone else. As a result, I think that we end up with software that is innovative and interesting, and we get to work collaboratively with other people.

As community lead, I even spend a lot of time collaborating with my competitors, which may sound odd to people who haven’t worked in open source. As an example, every year, all of my favorite competitors get together to organize the Configuration Management devroom at FOSDEM and ConfigManagementCamp the following two days.

How: New Project

This is what a lot of people probably think of when they think about people who have made a career out of open source, but it’s also probably one of the hardest ways to make a career out of open source. Your options are to find a company who is interested enough in the technology to hire you to work on it full-time – that’s the easy way in this option, and it’s not really easy. The hard way might be one of the most rewarding ways to make a career out of open source, but it requires building a company around the technology, and that can be hard work. It also involves doing a lot of business-y things to build a company, which isn’t something that every developer is capable of doing or even wants to do.

  • Linus Torvalds is a well-known example of someone hired by organizations to work on Linux full-time at Transmeta, and now at the Linux Foundation.
  • Frank Karlitschek wrote the original ownCloud code, but joined up co-founders Markus Rex and Holger Dyroff to help with the business side of the new company.
  • Luke Kanies is the founder of Puppet Labs – he picked the hard way. He wrote the original code and founded the company to support the work on his code. As the CEO of Puppet Labs, he has to focus on both the technological solutions and the business, and luckily for me, he’s become really good at both sides.

How: Participate

This is a much easier path than starting a new project, and this is probably the most common way to turn your open source work into a job. Most of the companies that I’ve worked for have hired quite a few people out of the community. We did this when I was at Intel, and we do it now at Puppet Labs.

This is one of the best ways to get your foot in the door with an open source job. Your participation in the community helps you learn the skills that you’ll need and make the right connections to get that dream job while also proving publicly that you can do the work.

  • Chris Aniszczyk, now head of open source at Twitter, got started in open source by hacking on freeBSD / Gentoo and started participating in the Gentoo community. These Linux skills helped him land his first job at IBM.
  • Selena Decklemann is currently at Mozilla and is well-known for her work with Postgres. In college, some friends taught her how to build a computer from scratch. She installed Linux on it. Within six months, she had a job in the law school at the University of Oregon as a sysadmin. When her boss quit, she was a sophomore in charge of the law school’s computers. Her active and helpful participation in other open source communities has been one key to her success and long career in open source.
  • Dirk Hohndel, currently Chief Linux and Open Source Technologist at Intel, was one of the first kernel developers in 1991 and then got involved in XFree86. In the mid 1990s, this work on Linux and related technologies turned into a full-time job when he started working at SuSE in Germany.

How: Not Just Developers

Not unlike companies, open source projects need people to do all kinds of things. You can’t really just have developers and hope that all of the other stuff magically happens. Someone needs to write the blog posts, do documentation, promote the project, and so much more.

  • Leslie Hawthorne, currently Community Manager at Elasticsearch, started her career working at Google as a staffing coordinator, and went on to create the world’s first initiative to involve pre-university students in open source software development. She’s been working in open source ever since.
  • Rikki Endsley spent her early years in open source as a managing editor for more sysadmin and Linux magazines than I can count, while gradually doing more and more community management until landing her current gig as community evangelist at Red Hat.

How: Join a Company

Another good way to start your open source career is to work for a company that does a lot of work in open source software. You can join one of these companies in all kinds of different roles: writer, marketing, system administrator, developer, lawyer, and so much more.

This is how I first turned open source into an accidental full-time job. When my manager at Intel asked me to start looking into some Linux development tools, it sounded like an interesting challenge, and I’ve been working in open source since that time.

  • Karsten Wade joined VA Linux as a project writer, moved to RH as a project writer and later moved into full-time open source project work. Contributing to the open source projects before it was part of his full-time job and networking with other people were key to his success.
  • Kim Moir worked within OTI, which was acquired by IBM when she was asked “So would you like setup servers for a little open source project called Eclipse?” 13 years later she is still in open source where she works as a release engineer at Mozilla.

How: Bring Open Source Into Your Company

As I mentioned earlier, when I was a sysadmin at a manufacturing company, we used a lot of open source software, since traditional manufacturing companies didn’t spend money on IT. Open source tools were really the only option for me.

  • Jeff Luszcz, co-founder of Palamida, a company focused on application security for open source software was working at NASA in the early 90s with a VERY small software budget. He ended up using tools, like GCC and others, which were “free” and powerful.
  • Eric Shamow, who I worked with at Puppet Labs, brought open source into an existing job to fill a need. He helped a university move from Windows and UNIX servers to mostly Linux and turned working with Linux systems into a job.

How: Get Out There

Some of my most interesting opportunities have come about as a result of my writing and speaking. My first full-time community manager gig landed in my lap when Larry Augustin and I were both speaking at a small open source event. I was talking about community, and he was on the board of a company who needed some community help. One of my first big speaking gigs was at SXSW, and I was asked to be on a panel by someone who had been reading my blog, but who I didn’t actually know. When I was consulting, a lot of my work came from people who had heard me speak at some point (often years earlier) or who were reading my blog.

  • Danese Cooper, currently the head of open source for PayPal, has done some really interesting work within open source, including creating the open source programs office at Sun and an open source strategist at the Bill and Melinda Gates Foundation. A big part of her success has come through her blogging and speaking at conferences on the topic of open source.
  • Stormy Peters, currently at Mozilla, has a similar story. She co-founded, and was later the executive director of the GNOME Foundation. She also founded the open source program office at HP, but much of her success comes from her speaking at conferences about open source.
  • Ibrahim Haddad, Head of the Open Source Innovation Group at Samsung Research America, was at university and the professor showed up holding a shoe box with Linux floppies as the first homework assignment, this was November 1994. In January of 1999, he wrote his first Linux Journal article.

How: Consulting

This is mostly a job strategy for people who are already well-known for their experience working in open source, but it’s a great career path if you want a little more flexibility from freelance consulting or if you want to build a consulting practice that fits your unique skills.

  • Christoph Hellwig’s experience with contributing to the Linux kernel and related technologies allows him to do consulting for a wide variety of companies while supporting his snowboarding habit.
  • Florian Haas has years of experience in open source and is an expert in high availability open source solutions, which allowed him to co-found Hastexo to focus on helping customers with their open source implementations.

How: Documentation

In my incredibly unscientific poll (asking people to tell me how they got started working in open source on Twitter and G+), the most common answer was that they got started with documentation. It’s a great way to get started in an open source project, which you can turn into a career by the various paths that I’ve already talked about.

  • Eric Redmond, who now works at Basho, wrote documentation and plugins for both major open source projects he’s been involved in. In one case working his way to core committer then joining a startup, and in the other case joining a company to work on core, but both cases started with docs.
  • Kris Buytaert, CTO at Inuits, started with documentation, then moved on to release management, then started submitting patches, then doing talks, then organizing conferences, like DevOpsDays.
  • Jeff Osier-Mixon (aka Jefro), Community Manager for Yocto, also got his start in open source with documentation with Cygnus.

How: Be Nice

Now, I’m going to transition into some of the things that you can do to improve your chances of getting that first job in open source or improving your chances of getting the next gig. Your interactions within the community will live forever. You never know when that random person you are talking to on IRC might have a job for you years in the future – assuming you treat them well 🙂 Be nice and avoid negative interactions with people. I continue to run into the same people in different communities, and you never know when you might end up working with or even for that person that you are interacting with online today.

How: Networking

Networking is another key to increasing your chances of being successful. This is true if you are looking for a new job in open source or just making the best of the job that you have now.

NetworkingWhen you are looking for a job is not the time to start networking. This needs to be more long-term and something you should be doing all the time. It’s also not about being weird and sleazy or about exchanging the most business cards. It’s about having interesting conversations. When I think of these activities as “networking” or even as work that it tends to feel weird. I recommend approaching it as having conversations with people that you find interesting. If someone is boring you to death, you should make a nice, graceful exit and find someone whose work is more interesting to you. Talk to a wide variety of people and learn more about what they do. If it’s something that you want to know more about, then spend more time talking to them about it. Personally, I love hearing stories about how people ended up working in open source and hearing about what people are working on.

Time: Prioritize

Once you get that awesome open source gig, one of the tricky things about working in open source is that these projects are 24×7, something is always going on, and they can suck up as much time as you allow, which can leave you exhausted and burned out. Finding the right balance between doing as much as you can, while not pushing yourself past your limits is something that I constantly struggle with. I always want to help out and do everything that I can to make the project successful, but there is only so much that I can do.

I try really hard to prioritize my activities, especially when I already feel like I’m starting to get burned out. I try to be brutal about which tasks I need to focus on because they are the most important, not necessarily the ones that other people think are the most urgent.

I also try to delegate – sometimes this is explicit, like asking someone to help out with a task, but a lot of times, it’s more subtle. I often wait to respond to requests or questions in hopes that someone else will respond. This works more often than you might expect, but it does mean that I often have to look at thread later to make sure that someone responded. Waiting also has the side effect of giving others the space to contribute. If you are answering too many of the questions, people start to expect that you will be the one to respond and won’t bother replying to questions from other people.

Time: Document

Most of us fail at documentation at some point. I know, I know, no one wants to write documents. It takes precious time, but it can save you so much time in the long run.

Documenting processes and procedures for the project is also what allows you to more easily delegate tasks. It’s way easier to delegate a task to someone else if you can point them to a document describing exactly what they need to do.

If I’ve answered the same question or written similar content 2 or 3 times, I always try to make sure that I document it. I have tons of email templates and canned responses floating around. I use canned responses as the start to my answer when I get those common questions. I usually customize it a bit, but the basic idea and usually a few links to more info are mostly the same. I also have a bunch of docs that contain email templates for common tasks, like accepting or rejecting speakers for events or asking people to do common tasks.

Time: Off

VacationI take my vacations very seriously. For someone who works and travels as much as I do for work, I need some serious downtime. I take one “real” vacation a year, which usually involves a beach, fruity drinks, a Kindle full of sci-fi books and not much else. For these vacations, I ignore everything – my work email, which is where my mailing lists go, remains unopened, and I try not to think about work or any of my open source projects. I’m lucky that I’m in a community full of really great people, which makes this a lot easier.

I’m a lot more flexible on some of my other vacations. I try to disengage from work and only do things that seem like fun. I might play with some new technology that I’ve been meaning to try or write some blog posts or attend a few meetups, especially if I’m in another city.

I also try to make sure that I take some time every day for things that I just enjoy doing that allow me to completely disengage from work and other projects. Right now, this is mostly reading sci-fi and playing a few games of Hearthstone.

Boldly Go

As a community manager working in open source communities, I’ve had a fantastic opportunity to explore strange new worlds, to seek out new life and new civilizations, to boldly go where only some people have gone before.

You can check out the slides from the presentation with many more images and a one sentence summary of each point.

I don’t have the patience for digging through the spam to find the legitimate comments on my blog, so comments here are disabled. However, I love feedback and you can reach out to me as @geekygirldawn on Twitter or via various other methods located in the sidebar.

Photo Credits:

The Past Few Months: A Recap

Since I haven’t been blogging here on my own blog lately, I thought maybe a short post talking about what I have been doing would be interesting for at least a few people!

While neglecting this blog, I have been blogging elsewhere and have been spending a lot of time traveling and speaking at conferences. I’ve also been busy with all sorts of other work, so I’ll try to give you the short recap of my activities over the past few months.

A quick summary of a few things that I’ve been doing / blogging / whatever:

The run-down of some recent talks that I’ve given:

Lastly, a few upcoming talks:

I don’t have the patience for digging through the spam to find the legitimate comments on my blog, so comments here are disabled. However, I love feedback and you can reach out to me as @geekygirldawn on Twitter or via various other methods located in the sidebar.

Lessons about Community from Studio Ghibli

Studio GhibliInstead of my traditional Lessons about Community from Science Fiction (video) talk, I decided to do something a little different for LinuxCon Japan.

The slides from my Lessons about Community from Studio Ghibli talk are available now (with speaker notes) for my presentation on Wednesday.

Abstract

Communities are one of the defining attributes that shape every open source project, and the people within them are what make communities so special, not unlike how characters like Totoro, Kiki, and Ponyo shape every Studio Ghibli film. The friendship between Ponyo and Sōsuke shows how people from different backgrounds can work together, like people in communities work together, to accomplish more than they could have alone. While we don’t get to travel by catbus or Kiki’s broom, many of us have the opportunity to travel the world interacting with community members. Unfortunately, we have to rely on online participation combined with more traditional methods of transportation. This session focuses on community tips told through Studio Ghibli films. While the topic is fun and a little silly, the lessons about communities are real and tangible.

Learn more

You can visit my speaker page for links to many other presentations from past events, including video where available.

Lessons about Community from Science Fiction

everythingisfine-drwhoIf you think you’ve seen this presentation before, you’re wrong! In the spirit of making sure that every talk at Monki Gras is handcrafted and unique, I prepared a completely new set of slides and lessons just for Monki Gras.

While it is probably obvious from the title, this talk focuses on community tips told through science fiction. While the topic is fun and a little silly, the lessons about communities are real and tangible. Here are just a few of the things that I explored in this presentation:

  • Borg assimilation and bringing new community members into your collective for new ideas.
  • Specialization is for insects. The best community members are the ones who can help in a wide variety of ways.
  • Community members are valuable, don’t treat them like minions.
  • Travel to strange new worlds and meet interesting people

You can get the slides (with my speaker notes) on SlideShare.

Note: Comments are disabled on this post, since I’m tired of dealing with spam, but please ping me on Twitter, @geekygirldawn, or at the email address in the presentation if you have any questions.

My Nerd Story: Ham Radio, Atari, and UNIX

First, a huge thank you to Crystal Beasley for encouraging me, and others, to get organized and write our nerd stories in the aftermath of the recent comments from Paul Graham.

My geek story started early, probably because my dad and grandfather were into amateur radio (ham radio) in a pretty hard core way from the time I was little. I remember my dad studying for one of the morse code exams when I was maybe 4 or 5 years old, and me being the little sponge that I was, picked it up pretty easily. Nothing like a mouthy toddler shouting the answers to motivate someone to learn. 🙂

My parents got divorced a year or two later, and a few years after that we moved onto my step-dad’s farm. I was in 4th grade at the time, which I guess would make me about 9, and it was in a rural area where people just didn’t have any extra money lying around for luxuries. It was also the late 70’s / early 80’s when computers and related technology were pretty uncommon in most houses, since this was before the PC era and way before most people had any type of online access.

Atari 400 ComputerAround this time, dad bought us an Atari 400 for Christmas. At the time, we didn’t know anyone else near where we lived who had a computer at home. I eagerly started playing games (pirated copies on tapes that required a lot of patience to load), and I got my first taste of programming. As a side note, the Atari 400 had one of the worst keyboard designs ever, the membrane keyboard, which prevented accurate typing, and as a bonus, random keys would occasionally just stop working, but I stubbornly persisted. After seeing my interest in programming, Dad later upgraded us to the Atari 800.

Atari DOSKeep in mind that this was before Windows and other modern user interfaces. There was no mouse and no point and click interface. The operating systems of the time were pretty limited, and programming was typically done in BASIC. Since we didn’t see our dad very often, and my mom and step-dad didn’t know anything about computers, I had to figure it out myself. I started by typing in programs from books or magazines (like Byte), and I began to make small changes just to see what else I could make it do. A lot of it was trial and error, but it didn’t take long for me to start writing new programs.

My dad and grandfather got more and more into computers throughout the years with my dad turning it into a career later in life. My grandfather even built some of his own computers, which he used as part of his ham radio setup. My grandfather also helped my study for my amateur radio exam, and I went on to get my ham radio license (KB8AGX) in 1986, which I continue to renew every 10 years just to keep the geek cred. 🙂

When I went to college in 1989, I started as a math major with plans to teach high school math (my favorite subject in high school). I took an Introduction to Programming class (required for the math degree), which was a Pascal class taught on a VAX/VMS system. As part of the class, we each received a temporary email address (which was deleted at the end of the semester), and I used it to email my grandfather (the only person I knew outside of the university with an email address)!

About 4 years later, I was almost done with my math degree (12 credits away from graduation – all I had to do was a semester of student teaching) when I realized that I didn’t want to teach (I’m not particularly good with kids). It was around 1993 and computers were getting a lot more attention. I remembered how much I enjoyed programming, so I changed my major to computer science. The computer science department at Kent State University was part of the math college, and it had a lot of math courses as part of the curriculum, so I was already most of the way there. Since I had taken so many of the required courses already, I was able to get through the computer science program in 3 or 4 semesters. By that time, the computer science department had moved to UNIX (mostly SunOS). I took assembly language programming, built a little operating system, wrote a compiler and took a variety of other computer classes, but my favorite was a UNIX system administration course taught by one of our university sys admins. This led to my very first job in 1995 as a UNIX system administrator for a manufacturing company in Ohio.

Since then, I’ve done a little of everything: system administration, programming, project management, market research, people management, and much more. I’ve worked for companies ranging from tiny startups to huge companies, like Intel. I finally settled into a comfortable little niche of community management with a focus on technical communities and open source communities, and since community manager is a broad role, I get to dabble in all kinds of different things. It’s also one of those fields where every day is different, which suits me perfectly!

Where I grew up, most of the people I knew worked on farms or in factories, and college degrees weren’t very common. I knew that I wanted to go to college, move to a city and be able to support myself. When I graduated and got that first tech job, I thought of it as a good job that would pay my bills. What I didn’t realize at the time, was that my computer science degree and the career that followed would completely change my life.

I’ve traveled all over the world as a part of my job: China, South Korea, Brazil, and all over Europe. I’ve presented at more conferences than I can count: SXSW in Austin; OSCON in Portland; various LinuxCon events in Prague, New Orleans, Edinburgh, Barcelona, etc.; FOSDEM in Brussels; and many more. Because I’ve been to so many conferences and have managed global open source communities, I can travel to most locations around the world and visit people that I know. I also have an amazing group of friends here in Portland, and I met most of them through the local technology community.

Dawn Foster and Jimmy Wales

I feel tremendously fortunate to have this opportunity to work in a field that I love while doing interesting things that a younger me could not have ever imagined would be part of my daily job.

I’d like to end my nerd story with some advice for how other young people, especially women, can make their own nerd story:

  • Do some programming – on your own, in a class, or as a technology major of some form. Try a few things, and find something you enjoy.
  • Use internships as a way to try out a few companies / jobs, but get paid for them (do not take a free internship doing tech work)! It’s a great way to try out a job and a company with little risk, since they are usually a 3 month gig. If it goes well, and you enjoy it, your chances of getting hired by that company are good.
  • Pick a topic you are interested in and speak about it at a conference. Most of my career opportunities are a result of speaking at conferences.
  • Watch my recent presentation about building a successful technology career for other tips.

So what now? Share this story and others on the social media platform of your choice, encourage other women to write their stories, or blog about your nerd origins and share it with the hashtag #mynerdstory. You can also check out the My Nerd Story Facebook page.

Photo Credits:

Open source, research, and other stuff I'm interested in posting.