Goal: You've already been pair programming for weeks! However, working in larger groups will require a different workflow and series of tasks. Today we'll practice coding in larger teams and begin laying the groundwork for this week's group projects.
Complete the following exercise in the same four-person group that you signed up for a group project with. Groups will work in two pairs of two on the same app. Before you begin coding, follow the steps listed in the Workflow section below.
Using the technologies we've covered the last four weeks, create a website for an animal adoption agency with the following features:
Decide upon goals for your app. Today, potential features are provided above. Brainstorm your own features, too. Separate all goals into three general categories:
With the 'things we need' or MVP in mind, brainstorm the 'flow' of your application. This doesn't necessarily mean the styling, but how a user will interact with your site. What will greet them on the homepage? Where will they go in order to see X, Y, or Z? How many pages or sections will your site contain? Draft up a general idea of how you'd like today's project to work.
Agree upon what each pair will work on. Begin with core functionality outlined in your "things we need" list. Remember, pairs shouldn't only focus on the concepts they're already good at, but should also take this opportunity to practice the ones they may not yet feel confident in.
Also, discuss how each pair will complete the tasks assigned to them. Will they create constructors? Prototypes? Begin implementing user interface logic?
After one group has completed a main feature or requirement listed above, review their code together as a team. Provide constructive feedback. Is it well-refactored? Does it complete the task at hand? Is it easy to follow?
Merge this code into your master branch after everyone has had the opportunity to review it. No code should enter the master branch without being reviewed, refactored, and discussed. Assess and resolve any merge conflicts as a team.
Repeat steps 4 and 5 for each feature. As the project develops, you may need to re-assess goals. Sometimes features we expected to complete quickly end up taking the longest. Sometimes the things we anticipate being the most challenging are finished surprisingly quickly. Continue to merge after the completion of each main feature. After you've integrated all "things we need" goals, move on to "things we want", and eventually "wishlist" goals.
Discuss the following with your teammates at the end of the day: