sf-wdi-31 / block-party

[tools]

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Block Party

Why is this important?

This workshop is important because:

Collaboration is rampant in web development. Most projects are too large for one person to build and maintain alone. Companies use a wide variety of methods for collaboration, and we'd like you to get practice with different methods as well.

We've emphasized pair programming because it's a very valuable skill and a new skill for most people. You've also done stand-ups. Most companies hold some kind of stand-up meetings within each engineering team.

You're working on independent projects today, so pairing isn't a good go-to collaboration method. Still, as a cohort we're all on the same (large!) "team". Asynchronous stand-ups are a good solution for large teams and teams, teams that have engineers working very independently on similar problems. Asynch standups are often conducted with slack or a similar program, but we'll do a physical version today that we like to call a "block party!"

What are the objectives?

Developers will be able to:

  • Format technical questions with information other engineers will need in order to help.
  • Practice responding to requests for technical help.

Where should we be now?

Developers should already be able to:

  • Pair program as a "driver" or "navigator".
  • Describe progress in stand-ups.

How to Ask Technical Questions

Whether you're asking a colleague immediate help with a problem in your code, adding an issue to your project's GitHub repo, or reporting a bug in some external code, include these helpful pieces of information:

  1. What do you want/expect? What should happen?

When a user clicks the "sign up" button, a login form should pop up.

  1. What is happening instead?

When a user clicks the "sign up" button, nothing happens on the screen, and there are no errors in the console.

  1. What have you tried to get the desired result?
  • Googled the issue ("button click doesn't do anything")
  • Looked back at documentation for click handling
  • Added a console.log to the click handler

Asynchronous Stand-ups

Asynchronous stand-ups are often conducted through slack or a similar tool. For instance, each team member might answer these questions on slack every Wednesday afternoon: what have I accomplished, what am I working on now, what (if any) blocks am I facing? We definitely encourage you to use slack to express blocks and share tips.

We're also going to have a physical block party!

Independent Practice: Block Party

  1. Think of an issue you've solved recently or a block you're facing right now.
  2. Write your block on the walls of the classroom, including what you want/expect to happen and what is happening instead. (You don't need to include all the things you've tried.)
  3. When you solve the problem, write "solved" or ":)" or a brief tip next to your block.

Requesting and Giving Help in a Block Party

  1. Periodically check the wall to see if anyone else is facing the same block or if someone has solved it.
  2. If you think someone may be able to help you, start by preparing the three parts of a technical question above. You can then slack the person to ask for help. They will evaluate whether and how they can help you based on their time and resources. Keep reading to see some of the responses you might expect.
  3. If someone slacks you asking for help, you get to evaluate how to help them. All of the following are 100% acceptable options:
  • set a brief timeslot to meet with the person and go over the topic, and stick to the timeslot
  • slack a resource link
  • give a quick tip that helped you (even "check your spelling - that was the issue for me!")
  • refer the person to someone else who helped you (like a teaching team member)
  • let the person know that you don't have time to help or your issue doesn't seem related
  1. If you don't think any classmates have faced this issue, or if you've asked a classmate and they weren't able to help, go to the teaching team!

Closing Thoughts

As a web developer, you'll need to collaborate with others often.

When you're new, you'll spend a lot of time asking technical questions, so practice asking great ones!

You have a few strategies now for how to deal with a situation when you can't meet with someone to get or give as much help as you'd like (depending on which side of the problem you're on). At GA, a teaching team member is a great next person to go to. If you consistently need more help than you're getting in a work environment, set a meeting with your manager to go over strategies. Still remember to prepare specific questions and be respectful of colleagues' time.

About

[tools]