Skip to content

Latest commit

 

History

History
655 lines (486 loc) · 29.6 KB

File metadata and controls

655 lines (486 loc) · 29.6 KB

Voyage

Team creating product backlog

All About Your Voyage

  1. What are Voyages
  2. Before you Start
  3. The Voyage Process
  4. Voyage Tips

What are Voyages❓

Voyages are 6-week long remote team projects where you'll level up your skills and build experience to help you land your dream job. This is by:

  • Putting the technical knowledge you've gained into practice in one of three tiers which match your technical skills to thoseof your teammates.
  • Improving "soft" skills like teamwork, collaboration, and project management.
  • Being accountable to your commitments to your team and yourself.
  • Adding new skills like Agile & Scrum.

Voyage Schedule 🗓️

Milestone Voyage 59 Voyage 60 Voyage 61 Voyage 62 Voyage 63
Solo Project Deadline December 31 March 11 May 20 August 19 October 21
Voyage Launch January 12 March 23 June 1 August 31 November 2
Weekly Checkin due every... Monday Monday Monday Monday Monday
Voyage ends & projects due February 22 May 10 July 19 October 18 December 20
Demo Day presentations due February 23 May 11 July 20 October 19 December 21
Demo Day February 25 May 13 July 22 October 21 December 23
Completion Certificates issued March 4 May 20 July 29 October 28 December 30
Showcase article available March 4 May 20 July 29 October 28 December 30

Before you Start

Voyages have specific requirements, milestones, and require a commitment of 8-12 hours per week from each team member.

Chingu doesn't charge for organizing & managing Voyages, but that doesn't mean they are "free". Getting the most out of your Voyage requires dedication and commitment on your part to be an active participant and to finish what you start.

A team channel is provided in Discord to every team at the start of the Voyage. You should use this to communicate and collaborate with your teammates. Access to this channel is restricted to your team, so it's the best place for open, frank, and respectful communication with your teammates.

You and your team must use only the Team Channel we provide to communicate with each other about your project. We don't monitor the content in this channel, but we do count the number of messages posted to make sure teams are communicating.

You will also be provided with a GitHub repo for your project. This is created for you in the chingu-voyages organization and everyone on your team is granted adminaccess to it. But, you must:

  • leave this as a public repo
  • not rename the repo we've provided
  • not create any additional repos on your own

If you need another repo, open a ticket and a member of the Chingu Admin team will be happy to create it for you.

The Voyage Process

---
config:
  layout: elk
  theme: dark
---
  block-beta
    columns 1

    block:B0:1
      columns 1
      block:TOPL1
        columns 11
        A1(("    1   "))
        A4(("    4   "))
        A9(("    9   "))
        A12(("   12  "))
      end
      block:TOPL2
        columns 11
      end 
      block:TOPL3
        columns 11
        A3(("    3   "))
        A5(("    5   "))
        A11(("    11   "))
      end      
      space
      space
      space
      block:CENTER
        columns 11
        SPRINT0(" Sprint 0 ")
        space
        SPRINT1(" Sprint 1 ")
        space
        SPRINT2(" Sprint 2 ")
        space
        SPRINTS35(" Sprints 3-5 ")
        space
        SPRINT6(" Sprint 6 ")
      end
      block:BOTTOML1
        columns 11
        A2(("    2   "))
        A7(("    7   "))
        space
        A10(("    10   ")) 
      end
      block:BOTTOML2
        columns 11
      end      
      block:BOTTOML3
        columns 11
        A6(("    6   "))
        A8(("    8   "))
      end      

      A1 -- "<a style="background-color:#292d30" href="https://github.com/chingu-voyages/Handbook/blob/main/docs/guides/voyage/voyage.md#1-get-to-know-your-team-">Get to know</br>your</br> team</a>" --> SPRINT0
      A2 -- "<a style="background-color:#292d30" href="https://github.com/chingu-voyages/Handbook/blob/main/docs/guides/voyage/voyage.md#2-hold-a-realtime-team-meeting-%E2%80%8D%EF%B8%8F">Hold a</br>realtime</br>team mtg.</a>" --> SPRINT0
      A3 -- "<a style="background-color:#292d30" href="https://github.com/chingu-voyages/Handbook/blob/main/docs/guides/voyage/voyage.md#3-hold-a-kickoff-meeting-%E2%80%8D">Hold</br>Kickoff</br>Mtg.</a>" --> SPRINT1
      A4 -- "<a style="background-color:#292d30" href="https://github.com/chingu-voyages/Handbook/blob/main/docs/guides/voyage/voyage.md#4-Create-your-teams-working-agreements-">Create</br>team</br>agreements</a>" --> SPRINT1
      A5 -- "<a style="background-color:#292d30" href="https://github.com/chingu-voyages/Handbook/blob/main/docs/guides/voyage/voyage.md#5-choose-a-project--create-a-vision-statement-">Choose</br>project &</br>create vision</a>" --> SPRINT1
      A6 -- "<a style="background-color:#292d30" href="https://github.com/chingu-voyages/Handbook/blob/main/docs/guides/voyage/voyage.md#6-define--prioritize-mvp-features-">Define &</br>prioritize</br>features</a>" --> SPRINT1
      A7 -- "<a style="background-color:#292d30" href="https://github.com/chingu-voyages/Handbook/blob/main/docs/guides/voyage/voyage.md#7-add-your-info-to-the-team-list-in-your-readmemd-%EF%B8%8F">Update</br>readme.md</br>team list</a>" --> SPRINT1
      A8 -- "<a style="background-color:#292d30" href="https://github.com/chingu-voyages/Handbook/blob/main/docs/guides/voyage/voyage.md#8-select-a-technical-stack-%EF%B8%8F">Select a</br>technical</br>stack</a>" --> SPRINT1
      A9 -- "<a style="background-color:#292d30" href="https://github.com/chingu-voyages/Handbook/blob/main/docs/guides/voyage/voyage.md#9-setup-product-backlog-">Create</br>Product</br>Backlog</a>" --> SPRINT2
      A10 -- "<a style="background-color:#292d30" href="https://github.com/chingu-voyages/Handbook/blob/main/docs/guides/voyage/voyage.md#10-create-a-uiux-design-%EF%B8%8F">Create</br>UI/UX design</a>" --> SPRINT2
      A11 -- "<a style="background-color:#292d30" href="https://github.com/chingu-voyages/Handbook/blob/main/docs/guides/voyage/voyage.md#11-sprint-3-5---reaching-your-mvp-">Design, code,</br>test & deploy</a>" --> SPRINTS35
      A12 -- "<a style="background-color:#292d30" href="https://github.com/chingu-voyages/Handbook/blob/main/docs/guides/voyage/voyage.md#12-sprint-3-5---reaching-your-mvp-">Project Closure</a>" --> SPRINT6
    end

    SPRINT0 --> SPRINT1
    SPRINT1 --> SPRINT2
    SPRINT2 --> SPRINTS35
    SPRINTS35 --> SPRINT6

    style TOPL1 stroke:#292d30,fill:#292d30
    style TOPL2 stroke:#292d30,fill:#292d30
    style TOPL3 stroke:#292d30,fill:#292d30
    style CENTER stroke:#292d30,fill:#292d30
    style BOTTOML1 stroke:#292d30,fill:#292d30
    style BOTTOML2 stroke:#292d30,fill:#292d30
    style BOTTOML3 stroke:#292d30,fill:#292d30
        
    style A1 color:#f0f6fc,fill:#1d8348
    style A2 color:#f0f6fc,fill:#1d8348
    style A3 color:#f0f6fc,fill:#1d8348
    style A4 color:#f0f6fc,fill:#1d8348
    style A5 color:#f0f6fc,fill:#1d8348
    style A6 color:#f0f6fc,fill:#1d8348
    style A7 color:#f0f6fc,fill:#1d8348
    style A8 color:#f0f6fc,fill:#1d8348
    style A9 color:#f0f6fc,fill:#1d8348
    style A10 color:#f0f6fc,fill:#1d8348
    style A11 color:#f0f6fc,fill:#1d8348
    style A12 color:#f0f6fc,fill:#1d8348

    style SPRINT0 color:#f0f6fc,fill:#b9770e
    style SPRINT1 color:#f0f6fc,fill:#b9770e
    style SPRINT2 color:#f0f6fc,fill:#b9770e
    style SPRINTS35 color:#f0f6fc,fill:#b9770e
    style SPRINT6 color:#f0f6fc,fill:#b9770e
Loading

Sprint 0 - Getting to know your team

Chingu_Voyage__Sprint_0.mp4

1. Get to know your team 🤝🏻

Objective

The foundation of any project is teamwork and learning how to work as a team is just as important as your technical knowledge. This is valued by employers, so increasing your team skills is one way to set you apart from other job applicants.

Your project’s success depends on how effective your team is at working together. In fact, this is more important than how much code you create or how fast you deploy it.

Spend time in your team channel to introduce yourself, learn more about your teammates, and determine what your common goals and dislikes. Voyages are hard work and building trust within the team helps you reduce conflicts and work more productively together.

How

  • Start by introducing yourself to your team. Post an introduction in your team channel to let your teammates know about you as a professional and an individual.
  • *Share information with your team including your availability, goals, expectations, likes and dislikes with your teammates. Identify what you have in common and what differences exist so you can work to understand one another better.
  • Have Fun! Work doesn't have to be stressful or painful. In fact, the team environment you create has to be productive, but it should also one that's focused on the goal, but also relaxed and supportive.

Resources

What the different roles in a Voyage team?

2. Hold a realtime team meeting 🧑‍⚖️

Objective

Once you have met your teammates and spent a few days getting to know one another in your team channel, schedule a realtime meeting. Talking with your teammates in realtime is a more personal way to communicate and one that will reinforce the team bonding process.

How

  • When the Sprint 0 starts, the first person in the Team Channel should create a Schej meeting availability event and post it in the channel. Everyone can update add their availability so the team meeting can be scheduled.
  • Schedule this meeting for the latter half of Sprint 0 to give yourselves time to get to know one another in your team channel.
  • Consider starting the meeting with an "icebreaker". You can find some ideas for these in this article, 6 Of The Best Icebreakers For Your Next Workshop Or Meeting
  • Not everyone will feel comfortable speaking in a group meeting. Make sure to build an environment where everyone feels safe and comfortable in finding their voice and sharing with their teammates.

Pro Tip! Use the audio/visual channel for your team for meetings. This supports not only audio & video in real time, but also screen sharing.

Resources

Schej meeting availability tool


Sprint 1 - Setting up your project

Overview_Video_Sprint_1.mp4

3. Hold a kickoff meeting 🫱🏼‍🫲🏽

Objective

In the Kickoff Meeting you will meet your teammates, review the goals & steps to follow in Sprints 1 & 2, discuss the project you will be building, agree on a working agreement, plus anything else to create a solid foundation for teamwork.

How

  • When the Voyage starts, the first person in the Team Channel should create a Schej meeting availability event and post it in the channel. Everyone can update add their availability so a Kickoff meeting can be scheduled.
  • Find a time as early as possible in Sprint 1 for your Kickoff meeting. Six weeks sounds like a long time, but it’s quite short and every day you delay in getting started counts!
  • Use the Voyage Kickoff meeting agenda template to guide you and as a place to record notes and decisions. This and other helpful document templates are in the docs subdirectory in your team's repo.

Pro Tip! Use the audio/visual channel for your team for meetings. This supports not only audio & video in real time, but also screen sharing.

Resources

Document Templates (These read-only templates will be copied to the docs subdirectory in your team’s repo when the Voyage starts) Meeting template - Voyage Kickoff


4. Create your teams Working Agreements 🌊

Objective

Define how you plan to work together as a team. This includes how often you’ll share status, coding standards, git/GitHub processes, and deciding how many meetings you need each week.

How

  • Decide on the coding standards the team must follow.
  • Define the characteristics of your repo including the number of branches, branch names, & the working agreement everyone must follow.
  • Agree on the format of commit messages, how Pull Requests will be reviewed, and GitHub branch protection rules.
  • Decide on where you’ll deploy your app and the branch to be considered as ‘production’ you’ll be deploying from. We strongly recommend you deploy your development branch to the same Web host as your main branch, so you have a place to perform integration testing that's in an environment that is similar to your production environment. You should also deploy your app changes to your main branch and test them in the Web host it is deployed to in each and every sprint even before the MVP is complete.
  • Decide on what meetings you’ll need each week and to save time, schedule them as recurring meetings. You might want to look ahead to learn more about the types of meetings you’ll need.
  • Develop the App

Resources

Javascript Style Guides
Defining a Git Workflow (Chingu Handbook)
Git Branches (Chingu Handbook)
Git Commits (Chingu Handbook)
Conventional Commits
Git Pull Requests (Chingu Handbook)
Chingu Video: How to use git & GitHub in a Team


5. Choose a project & create a Vision Statement 👓

This is for Tier 3 teams only. All Tier 1 & Tier 2 teams have been assigned a project along with a link to its requirements and specifications in the team channel.

Objective

Choose a project your team will build during the Voyage. In addition to refining your technical skills you’ll also be learning new “soft” skills to help you advance your career. These include collaboration, communication,planning, & working in an Agile environment.

How

  • Exchange ideas and share screenshots or URLs of projects you would like to build. Look at the references below to get ideas or create a project you and the team are passionate about.

    • Collect ideas from the team
    • Brainstorm with your team
    • Vote to select one idea
    • Decide on the technical stack you’ll use to construct it in
  • Create a short vision statement to capture what it does and the benefit it will bring to its users.

This should be completed by the end of Sprint 1. Keep in mind that since the Voyage is only 6-weeks long it's important to get started quickly. In addition, you'll learn and build experience no matter what project you decide to create.

Resources

How to Select a Project
Voyage Project Showcase articles (Dev.to)

These read-only document templates will be placed in the docs subdirectory of your team’s repo at the start of the Voyage.


6. Define & prioritize MVP features 🔢

Objective

The Minimum Viable Product (MVP) is the minimum number of features your users need to be able to use and get value from through your app.

How

  • Everyone should add ideas to the Project Vision & Feature Planning template before the team meeting
  • Prioritize each feature - Must Have, Should Have, Nice to Have
  • Meet with the team to review each feature & refine priorities

Once you’ve agreed on the features and their priorities you will be ready to add them to the Product Backlog.

Must Have features define your MVP, while features in the other two priorities are “stretch goals'' to be worked on when you’ve implemented all the Must Haves.

Resources

Project Vision and Feature Planning Template (These read-only templates will be copied to the docs subdirectory in your team’s repo when the Voyage starts)


7. Add your info to the team list in your README.md ✏️

Objective

Your team repo is a public GitHub repo where your team will maintain the source code for your project. Only you and your teammates have update access to it.

Every member of the team should verify that they have update access to this repo. This includes Product Owners, Scrum Masters, UI/UX Designers, and Developers.

How

Our Team topic in Team Repo

  • The README.md in your team repo has been pre-populated with a section titled "Our Team". Before the end of Sprint 1 every team member should add their information to it.

This shows not only who is on the team, but it is also a quick and easy way to verify that everyone has update access.

Resources

Defining a Git Workflow (Chingu Handbook)


8. Select a Technical Stack ⚙️

Objective

Every project is created using a specific combination of programming language(s), libraries, and tools. As a team, agreeing on these is one step in making sure the application you create will be consistent, supportable, and maintainable.

How

Developers are the primary decision makers for the choice of a Technical Stack, but teammates in other roles are contributors by asking questions to help them make sure they've made the best decision for the team.

  • As a team meet and discuss the various options available to you in either your team channel, a realtime meeting, or both.

Resources

Choosing your Techstack

Sprint 2 - Creating your Backlog Tasks & UI/UX Design

Overview_Video_Sprint_2.mp4

9. Setup Product Backlog 📋

Objective

The Product Backlog defines what needs to be completed to finish the project and to track your progress.

If you are creating your Voyage project based on specifications provided by Chingu you don't need to wait until Sprint 2 to start this task. Instead, get ahead and start it during Sprint 1.

How

  • Identify & prioritize features
  • Create an epic for each feature
  • Choose the highest priority epics & divide them into user stories
  • Add your epics & user stories to a backlog tool. In prior Voyages, teams have used tools like Jira, Miro, GitHub Projects, Trello, and others as well.
  • Prioritize the user stories

In every Sprint you’ll refine the Product Backlog as you refine your requirements and as you discover more about your technology stack.

Resources

Define Your MVP
How to Create a Product Backlog (video)
Agile Methodology 101 (article)


10. Create a UI/UX design 🖼️

Objective

Create a common understanding of the information and actions on each screen.

If you are creating your Voyage project based on specifications provided by Chingu you don't need to wait until Sprint 2 to start this task. Instead, get ahead of the game and start it during Sprint 1.

How

  • Decide what screens you’ll need and the information on each one based on the features you have identified.
  • Map the actions users will use to perform activities and navigate from screen-to-screen.
  • Create a low-fidelity wireframe using pencil and paper or a tool like Figma.

Resources

If you are in a Voyage team without a UI/UX Designer this guide can help your team create a design.

How To Wireframe A Website in 3 Easy Steps

11. Sprint 3-5 - Reaching your MVP 🪜

Overview_Video_Sprint_3-5.mp4

Objective

Create your app by using Agile and the Scrum framework. At the end of each sprint you should deploy your app to the main branch in your team repo and to your production webhost.

How

Voyage Sprint Steps

  • Sprint Planning - Select the highest priority tasks the team can realistically complete in the sprint
  • Post Daily Status - Communicating & collaborating with your team is the most important factor to success. Post answers to these questions in your team channel every day:
    • What tasks have I completed?
    • What am I currently working on and what will I work on next?
    • What issues or blockers do I need help with and from who?
  • PR & Deploy - As team members complete tasks they should create PRs for review and deploy the app. Remember that at the end of each and every sprint you should PR completed changes from your development branch into the main branch and deploy it to the Internet web host you've chosen.
  • Sprint Review & Retrospective - Meet at the end of each sprint to review how the team worked together and the processes you used. Make modifications as necessary to improve what didn’t work well and reinforce what did work well.

Many teams have found the following meeting advice helpful:

  • Schedule a Sprint Planning meeting at the beginning of each sprint, ideally on Monday, which is the first day of every sprint.
  • Schedule a second meeting later in the Sprint for a combined Sprint Review and Sprint Retrospective. Remember these are two separate meetings, so take a five minute break between them and have separate agenda for each.
  • Post your status daily in your Team Channel and use the audio/video channel we’ve created for your team for team meetings, ad hoc discussions, and pair programming.

Pro Tip! Schedule meetings to repeat on the same day and time in each Sprint so you only have to schedule them once.

Resources

How can I share Daily Standup status in my Team Channel?
Agile Methodology 101 (Chingu Handbook)
How to Plan a Sprint (video)
Schej meeting availability tool
Plagarism caution & advice

The following read-only document templates will be placed in your repos docs subdirectory at the start of the Voyage.

12. Sprint 6 - Project Closure 🏁

Your_Guide_to_Sprint_6.mp4

Objective

The team’s goal in Sprint 6 is to wrap up the project & celebrate your success.

How

flowchart TB
 A(["Complete your MVP"]) --> B(Join the Chingu</br>Discord Server);
 B --> C(Make sure your readme.md is updated);
 C --> D{PO & SM: Agile Leadership mini Course on EdApp completed?};
 D -- Yes --> E(Final deployment your Internet host);
 D -- No --> F(PO & SM: Complete your the course);
 F --> E;
 E --> H(Submit your</br><a href='https://forms.gle/zjc4F3fauDiwiz1H9' target='_blank'>team project</a> for review);
 H --> I(Submit your</br><a href='https://docs.google.com/forms/d/1U9WxiY4QSSkIwYJTDyHQBV02NSzvi0Lj_3wWo9GlLrM/' target='_blank'>presentation</a> for Demo Day);
 I --> J(Share your success on LinkedIn and other social media);
 J --> Z([End]);
Loading

Only one Voyage Project form is required per team and any teammate may submit it. This is separate from Final Project Presentation, which is only applicable to Scrum Masters and Product Owners. More information is shared in the Agile Leaders channel on Discord.

Chingu's Agile Leadership team will post information about our Demo Day event, including its schedule and location, in Discord during Sprint 6.

Two other optional activities you should consider to share your success with others, including potential employers, are:

  1. Create a Showcase video on YouTube!
    • No more than 5 minutes long
    • It should be available via a publicly accessible URL
    • Answer these simple questions:
      1. What did we build?
      2. Who participated in the team?
      3. What technology stack did we use?
      4. What did we create? Demo the app
  2. Write an article about your experience for the Chingu page on Dev.to or Hashnode (see Resources below)

Resources

Chingu Content Creators Guide

Voyage Tips

How to Prepare for your Voyage 📝

We know you have a lot of questions about our Voyages. Here are a few of those we hear most frequently.

What Level of Commitment is Required for a Voyage
What are the criteria for successfully completing a Voyage?
How do I check my Voyage Status?
What Does a Voyage Cost?
How should PO's and Scrum Masters work together?
What are the roles in a Voyage team?
What are the tiers in a Voyage?
How can I choose my Timeblock?
How are Voyage teams formed?
What "Soft Skills" are needed?
What if I need more skills?
What git & GitHub knowledge will I need?
How should my Team select a project?
How should PO's and Scrum Masters monitor the project?

Tips for all teammates ✏️

How do I make a voice channel for my team?
What should I do if I don't have access to my team repo?
How can I share Daily Standup status in my Team Channel?
How can I “pin” messages to my Team Channel?
Which team role is the most important one?
My team doesn't have a Product Owner. What should we do?
Titan - User Status & Ticketing System

Tips for Product Owners ✏️

Do PO's need to be able to develop code?
How can PO's keep from getting overwhelmed?
How can you improve your approach and identify areas for growth?

Tips for UI/UX Designers ✏️

Stay tuned for new content!

Tips for Developers ✏️

How can you integrate GitHub & Discord?