Welcome to the Dragonfish Back End Practicum!
Below is a quick outline of the practicum. Remember to stay in communication with your project team, project team student lead, and your practicum lead. Slack is the best place for your questions, and you have a Slack channel for your individual project as well as for the whole practicum group.
What You Will Be Learning
As you work together to enhance the project, remember that your goals are to:
- Gain experience working on a development team
- Collaborate + integrate code with a larger project
- Solve code problems with other developers
- Develop good continuous integration habits
- Get a sense of what software developer jobs are like
- Make real-world decisions about what code to include and why
- Gain exposure to agile methods and terminology
- Gain experience on a real-world, deployable project
- Understand development, staging and production pipeline concept
- Complete work that can be added to your portfolio
Course Calendar
The calendar below shows the start date of each week of the course and includes breaks and special events.
Course Sections
Sprint | Start | End | Lessons |
---|---|---|---|
0 | July 7, 2023 | July 16, 2023 | Project Setup and Prep (see bottom of current page) Bonus: Career Concepts |
1 | July 17, 2023 | July 28, 2023 | Project Definition & Setup and Getting Started with Teamwork |
2 | July 31, 2023 | Aug 11, 2023 | Integrating Code & Resolving Conflicts and Project Work |
3 | Aug 14, 2023 | Aug 25, 2023 | Code Review and Test-Driven Development (TDD) |
4 | Aug 28, 2023 | Sept 8, 2023 | Deploying Apps and Final Presentations & Peer Evaluations |
Sept 12, 2023 | Present your Practicum Project during Weekly Cafe at 12pm EST |
Before You Begin
Keep in mind this practicum is intended to be primarily focused on student collaboration. Each team will work together to help each other through the process of working with others on one main production repository of code. The student whose project you are building on will house that repository on their GitHub account and will have to handle merging code updates, but each team member should still take an active role in collaborative decision-making among your team and should help/be aware of the process for merging and resolving merge conflicts. Don’t wait to be assigned something; think creatively about how you can contribute to your project’s success! Lean on each other and communicate often – each team should have daily check-ins (these can be asynchronous) and at least one weekly meeting where everyone can check in and update so your team can decide together if you need to adjust your work plan. Keep in mind the personal goals you had in mind when beginning practicum, and work towards those goals.
Setup and Prep
Overview
Practicum is the experiential learning component of Code the Dream classes, where you will practice the skills you learned in class, on a software development team. Each team will consist of 3-4 students from your class. You will work together over 2 months to define, build, and work towards deploying an application using the programming language you learned in class.
Each Dev Team Member is expected to spend about 10-20 hours per week on project work. Your team will start by brainstorming ideas to build on, change and/or improve the project, then you’ll begin to define the features you want to build. From there, each team member will work on small chunks of the work, and your team will collaborate to integrate each person’s code into the project and resolve any conflicts that arise within the code. It’s important to do more frequent smaller updates/changes to your code/project because smaller changes make for easier to solve merge conflicts. Throughout the practicum, your Project Lead will be your technical mentor, who can help you resolve blockers and conflicts between team members’ code.
Additional activities and resource sets each week will help you build on the knowledge you gained in class, and apply it in this team setting. As a team and as individuals you should work through the timeline below, reviewing materials as many times as you need and jumping ahead if there is something you want to learn about, or information you need for your present work. Remember that we are all here to learn and grow. The primary objective of the practicum is to get comfortable working in a group setting and building positive communication skills. The app/site you build is just a by-product of working together and cooperating with each other. There are no tests or assignments to hand in during practicum; these resources are simply here to help fill in any knowledge gaps, so you should use them however is most beneficial for you.
Your team will meet weekly, in order to:
- complete a brief standup (each person shares what they worked on over the past week, what they plan to work on this week, and blockers they’re run into)
- these details should also be shared daily, but the team does not need to meet daily. Each member should post/update daily in whatever program your team decides to use to track project progress.
- collaborate on merging code into the project’s codebase
- seek technical guidance from your Project Lead
- resolve blockers and other issues that may arise
- prioritize and assign upcoming work
If you have not agreed on a specific day and time to regularly meet, be sure to do that within the first couple days of Practicum! Your assigned mentor has been made aware of the common time window created based on your availability form you completed, but please be sure to make them aware of your final decision on day and time via your small group’s Slack channel.
Additional meetings or calls may be needed to facilitate collaboration; do what works best for your group, and use Slack often for asynchronous communication. You may wish to use Slack calls or huddles in your project channel, or a Google Meet link; decide as a group in your first week what will work best for everyone.
Roles
- Dev Team Members (students within the team) work on their projects and collaborate:
- Pick up tickets in GitHub Projects, then write + integrate code
- Collaborate to resolve merge conflicts within code
- Review one anothers’ code for practice + code optimization
- Attend weekly team meetings to provide status updates on work and collaborate with teammates
- Review supplemental resources to assist with project work
- Project Leads (mentor(s) assigned to your team) assist Dev Team with technical and project needs:
- Help to scope and clarify work to be completed
- Assist with prioritize the backlog in GitHub Project
- Troubleshoot code problems
- Oversee and help with resolving merge conflicts
- Review code for readiness to merge as needed
- Class Coordinator provides oversight of all practicum project groups:
- Arrange project teams and communication tools (Slack channels)
- Provide program-related materials for the practicum
- Troubleshoot any issues that may arise among Dev team Members and/or Project Leads throughout the practicum