Showing posts with label GitHub. Show all posts
Showing posts with label GitHub. Show all posts

Thursday, July 30, 2020

Pandemic Atlanta Lockdown - Week 20

I am a GitHub Arctic Code Vault Contributor.
I have named my project, Sintra (Self-adaptive Inter-domain Network Transfers for Radiology). Sintra is a romantic and historic town in Portugal that I love. It is touristic and quite close to Lisboa, well-connected by train and bus. I used to name a few of my projects with Portuguese town names during my PhD: Sendim, Óbidos, and Évora were those 3 towns. Now, Sintra becomes the 4th Portuguese town which name my project after. Interestingly, all those 3 projects were implemented during my stay in INESC-ID Lisboa, Portugal. This is the first time outside Portugal. But that doesn't matter anyway. I name my project whatever I want, and that makes me happy. :P

My initial plan for the work-from-home/lockdown era was to "somehow survive" it, as many of my plans came to a virtual halt. I was assuming it to last only a few weeks, maybe until May 2020. But now I come to the realization that the pandemic is here to stay, perhaps even for the whole of 2021. I cannot be in a "survival mode" for a year to come.

Seeking entertainment from my friend in class, 2012
The forced separation of families due to the pandemic and the associated travel restrictions has left many of us home alone. However, replacing that with the shallow online communications (such as Twitter) is counter-productive in the long run. Now we are looking at the scale of years, rather than weeks! Even if most people don't really care about you on Twitter (I am referring to social media as "twitter" as it is the only social medium I use), the "likes," "retweets," and supporting comments from random Twitter people can be reassuring when there is no actual human interaction for months.

An economic depression is inevitable. It will cripple the developed world. Globalization, especially working in foreign countries, will become challenging. Already nations are adopting "citizens first" approach, closing their borders to foreign employees. We received an email, informing a pay cut of 5%. This comes in addition to the removal of the annual 3% cost-of-living increment of the salary. That is sad news this week. Depending on how I will see it, 2021 can be either a challenging or a difficult year. I must prepare to fight it, rather than taken by the waves in a survival mode.

Regardless of all these, companies do not stop sending me random emails, congratulating me for being a loyal customer, which I clearly am not. I also aim to be better prepared to fight this uncertainty that waits for me in mid-2021. In the meantime, focus and optimize for the pandemic life, in a positive manner.
You know your perception of time is messed up when you go, "oh, I miss those good old days," when you refer to 2020 early January, literally just half a year ago. Crazy days, indeed. Cheers for August!

Saturday, October 29, 2011

Community Matters!!!111

Google Summer of Code Mentor Summit 2011
We had several interesting unconference sessions and talks at the Google Summer of Code Mentor Summit 2011. I proposed and coordinated the unconference session titled "Community matters", the Saturday 22nd of October 1.30 - 2.30, at the room "Algiers". We had around 12 active participants from multiple organizations, representing AbiWord, Apache, and more.
 
The session notes are recorded in the Google Summer of Code wiki, which needs the log in credentials to access. Hence I summarize the notes again for the wider audience. These notes are from the thoughts of the mentors from the communities involved in the discussion, and they might reflect the communities involved (Hence the points, may of course, disagree to each other to some extend). I represent AbiWord, and hence my views are biased towards the culture of the AbiWord community, which I consider the best of all. ;)

What is a community 
  • People with a common purpose or goal
  • Communicating with each other
  • Contributing to achieving the goal
  • Like a big family
  • It's the most important asset in an open source organization.   
Issues in building a community (and solutions)
  • Defining the goal(s)
    • Not everyone has the same goals, need to define them as a community
    • Each one's goal regarding the community should contribute to the community's common goal.
  • How to bring people in (making it easier to get started contributing)
    • Reducing the hassles involved
    • AbiWord: Helping or mentoring the interested newbies to start contributing to a project.
    • Apache Software Foundation: give people commit access early.
    • It's version control, we can roll it back!
    • Make the restrictions social rather than mechanical (e.g., give someone commit access, but encourage them to get the code reviewed before committing, commit only in their area, etc.)
    • Use GitHub, SourceForge, or something similar to have branches and pull requests, which makes people able to commit on their branch and collaborate with the community. Also GitHub allows people to not have to learn git. [barrier reduction]
    • Have a policy that someone cannot contribute a completely new module until they have been part of the dev community for a year first.
    • One thought: maybe you don't need that many people
    • Novice issue tags plus "office hours" in IRC - mentor new dev contributors in learning the contributing processes, with an easy issue  for the newbie, so the starting barrier would be reduced.
    • Have someone who is the "greeter" in the issue queue. If an issue waits for a given time (say 3 days) with no response, the current "greeter" at least says "Thanks". This duty rotates as people get tired of it.
    • Break tasks up into manageable chunks
  • Communications are a major challenge
    • Some people are always on IRC (coders usually), some never on IRC (designers).
    • Ban IRC for making decisions - has to happen on a mailing list (Apache Software Foundation and many other projects)
    • To make a mailing list work as the discussion tool, people have to be told "bring it to the mailing list"
    • Some people like asynchronous communication (e.g., mailing lists) rather than synchronous/real-time (irc), plus with a world-wide community, real-time meetings are not possible
    • Mailing lists are good for archives, but are slow for actual discussions
    • Get people together in person from time to time, if possible.
    • People are not located geographically close to each other.
    • IRC becomes active around the clock, if we have developers around the globe (AbiWord).
    • Language difficulties - English is not everyone's first language.
    • Localizers help on overcoming the language barriers to a project.
  • Have to make it feasible for users to provide feedback/issues
    • Depends on the type of project, whether that is difficult or hard
    • User community is where new developers come from
    • Figure out how to interact with them
    • Derby rarely uses mailing lists - they rather use the issue tracker. 
    • Many users are more familiar with the mailing lists.
    • So mailing lists help building the community healthy and friendly.
  • How to attract new members to the community
    • Marketing to attract users
      • Go to the competitive events and meet potential users there (if appropriate for project's target audience).
      • Get academics interested, then students will follow and they become part of the organization.
      • Cooperate and collaborate with the other FOSS project communities - Common code segments to be used by multiple communities.
  • Statistics
    • How many contribute x number of patches
    • Measure how well the new contributors are getting integrated as regular contributors
    • Community health: are we adding new contributors
    • Don't measure lines of code or number of patches - doesn't reflect community health
    • Measure how many contributors are contributing to a project or sub-project as a measure of its health
    • Apache foundation board will warn and/or ban projects that are not on-boarding new contributors and otherwise acting in a healthy way
  • 90/9/1 split
    • 90% of users do not communicate. 9% submit bugs and maybe a patch occasionally. 1% get really involved.
    • You can double the 9% part by greeting and other contributor support strategies. 

     P.S: The "!!!111" at the end of the title ("Community Matters!!!111") was intentional, and I put that on the session proposal too, to give it a kid's touch, who desperately wants to contribute to the FOSS communities. ;)
    • AbiWord community's blog roll - Planet AbiSource.