4 Tips to Make Your RGSoC Successful
Congratulations on being selected to participate in Rails Girls Summer of Code!
Now that you’re doing Rails Girls Summer of Code (RGSoC), you’re going to be executing on plans you originally made. Doing things is always harder than coming up with the plan, because doing things requires effort, organization, communication and more.
‘Doing’ successfully is how you can come out of RGSoC with a great experience.
This blog post is intended to be a practical guide to help you with the ‘doing’ part guide of RGSoC so that you can have a successful three months!
Tip 1: Manage your role well — that’s the dual role of teacher and student
RGSoC is a self-guided program and a crucial part of your success relies on you managing the dual the roles of “teacher” and “student” well.
Just like a teacher will set homework, the student completes it, the teacher assesses it and the loop continues—you also need to set your own “homework”, complete, assess and repeat. If you’ve just come from university or a workplace where someone manages you by giving you work and assessing you, this dual role may require adjusting to.
Don’t wait for someone to give you work — set it yourself.
So…how do you manage this dual role successfully?
It’s easy—be the teacher first.
This means putting effort and thought into how you will: * Set “homework”. Will you tag in issues? Will you follow a set guide? * Organize your schedule so you can complete your work, daily logs and anything outstanding (Suggestion: Use a Trello board to set out your to do list or “homework”). * Set up communications. What’s the best way to give updates to your mentor, coaches and supervisor? * Decide how to assess your work. How will you get feedback on your code? Will you send through a pull request?
When you’ve completed tasks under the role of the teacher, the role of student should just fit into one part—completing the work.
Tip 2: Set clear goals and figure out how RGSoC fits in with your broader life plans
Finding a job in web development is one of the common goals students going through RGSoC have. That’s a career goal and success in achieving this goal depends on interviews, finding suitable employers and more. RGSoC is not a guaranteed pathway to a job (just like university isn’t a guaranteed pathway). However, with RGSoC, you could view the work produced as being part of a portfolio to demonstrate your coding ability to potential employers.
RGSoC can be seen as a stepping-stone in the career goal of finding a job. The goal then, in RGSoC, is to come out with a high-quality portfolio of work.
Before being accepted into RGSoC, I was a user of Discourse (open source forum software) and coming into RGSoC, I wanted to work on a particular feature of Discourse. My goal was to complete work so an advertising plugin could be used. The broader goal was to get ads served on my Discourse forum and the goal in RGSoC was to complete the plugin to enable this.
In fact, I remember saying to my pair “If we don’t create a functioning plugin that serves ads, I would not consider my summer to be successful”.
It’s often harder to answer a question like “What would make my summer successful?” because there are many things that could contribute to making your summer successful. Instead, a more focused question would be “What one thing, if not achieved, would make me consider my experience in RGSoC unsuccessful?”
Clarify this, check to see if it’s a realistic goal—then make clear plans to work towards achieving your goal.
Tip 3: Over-communicate
Let’s say you’ve been working hard on fixing up an issue that has taken 2 weeks. You’ve done your daily logs and are proud that you and your pair have finally conquered this issue. You also have multiple forked repositories. To you, everything’s going fine. You’re making progress.
Let’s imagine now that you’re a coach. Your team hasn’t contacted you in a fortnight. You see a whole bunch of forked repositories but it’s difficult to know which one is relevant. You’ve volunteered to help, and want to help, but don’t know how to because no one has contacted you or updated you. You feel isolated and unwanted.
RGSoC is where you want to over-communicate. Extended periods of silence can be open to any type of interpretation and what’s clear to you may seem vague to others. People can’t read your mind; they forget things and can get distracted.
Communication is something to prioritize straightaway, even before doing work. Try using Slack as a single communication channel so you can talk to your coaches, mentor and supervisor in one place. Use Github issues and pull requests to discuss code. Tagging people in and asking clear questions while noting down a time you need a response by will help your coaches understand exactly what you need and avoid confusion (Thank you to Jo Cranford for this tip!).
Many people are supporting you and invested in your success in this program. Giving them regular updates and clear communication is courteous and shows them the respect that they deserve.
Tip 4: Take feedback, as it is — feedback on your work
Open source software is software that anyone can examine and is peer-reviewed.
What does that mean for you?
It means you’re likely to get feedback on your work. From people you know and from strangers. The feedback might be positive, it might be negative and it could be something in between or off the spectrum — regardless, it will be public.
The Internet also has a habit of creating online disinhibition, so feedback may come across in quite a direct or curt way. Just make sure that you distinguish between real feedback that is designed to help you improve your code versus bad behavior disguised under the guise of “feedback”.
Getting feedback publicly is quite a daunting thing if you are a private individual. That’s the nature of open source and the Internet.
In this way, RGSoC does prepare you for “real life” as a developer because you are:
- Collaborating with other developers on a real project,
- Coding, and
- Getting your work reviewed, albeit very publicly, before it’s merged to the codebase.
You can make the best out of this situation by making sure you review your work before it is publicly available and learn from feedback to improve your code.
There’s not one particular learning skill that I took from RGSoC, but rather, a successful RGSoC comes from a combination of:
- Managing your dual role of teacher and student well,
- Setting goals,
- Over-communicating, and
- Taking on board any feedback to improve your code.
In reality, things never go to plan perfectly. When I was doing RGSoC and in my observations as a supervisor, there were times when some of the above points could have been improved further. Don’t be too hard on yourself, if you can get the four actions above right most of the time, then you’ll be ok!
Lastly, what you get from RGSoC is an opportunity to contribute to open source with support. What you make of that opportunity now and beyond is up to you.