All programmers are optimists. — F.P. Brooks, The Mythical Man Month, 1975

From now own, labs will comprise two parallel activities:

We’ll announce the teams and their members by the beginning of this lab period.

Using Project Management Tools

We’ll use Trello for project management and Slack for project communication. Your team should configure both as specified below.

Managing Your Project with Trello

Trello provides a project management service based on the general concept of Kanban boards.

Exercise 2.1

Your team should do the following.

  1. One team member should create a central Trello board for the team to share.
    1. Create a new board with your team name (e.g., cs262x-teamName where x is your team letter and teamName is your team name).
    2. Add each team member and us (the instructors and assistants) to the board as administrators, with full editing rights.
    3. Set up colors for the following task types:
      • management/administration: green
      • development: blue
      • quality: red
      • analysis/design: yellow
  2. Configure your board as shown in this sample board, using x==1. Familiarize yourselves with the structure of this board before going on.

  3. Add a card to your board named “Configure Trello Board” under the “Sprint 1: Doing” column. Make it a management task (green) and attach the appropriate team members as agents. When you’re finished with this exercise, move it to the “Sprint 1: Done” column.

Both we and your team members should see the team board in their Trello account.

Kanban teams often choose a common theme for their membership personas. For example, each team member could adopt a persona for their work (e.g., Star Wars or Harry Potter) and upload an appropriate image by which they’ll be identified on the board. Your team can do this if desired.

Do this…

Trello can be extended to support more specialized project management using Clockify.

  1. If not already done, each team member should do the startup and practice steps specified in Trello Time Tracking Integration.

  2. One team member should do the following for the team.

    1. Create a Clockify “Workspace” (named “cs262-teamYearLetter”, e.g., cs262-2023a).
    2. Add all team members and us (the instructor and grader) to their team.

With this done, all team members should be able to clock hours using Clockify in Trello and see the log of those hours on Clockify’s website. Include all time spent on team activities, including programming, configuration, writing, team meetings, etc. Note that five team members attending a one-hour meeting is five total team hours, one hour per team member.

Note that Clockify allows you to either run a timer as you do the task, or add task times after the fact. Use this tool to document all your work on the team project.

Exercise 2.2

Add tasks to the backlog for the current sprint (see the current project deliverable for details). Keep the following in mind as you create your tasks.

When you have the basic tasks on the sprint backlog, move the highest priority tasks to the doing column and assign them to individuals (or small groups). Keep the following in mind as you move tasks.

We’ll use the reports provided by Clockify to monitor your team progress.

Communicating with Slack

Slack provides a purpose-built, project communication environment.

Exercise 2.3

Create a Slack team and invite your teammates, stakeholders and us (the instructor and grader). We’ll use this tool to monitor and to participate in your team communication. We suggest using (at least) the following channels:

Feel free to add others for special discussions, e.g.: client; server; platform-specific hacking; …

You can communicate with using Slack direct mentions (e.g., @kvlinden) rather than email.

Note that your stakeholders have not yet been assigned. When they are, you should invite them to your Slack team as well. They’ll post to your #general channel only.

Your team Slack channel and Trello board should be alive with activity throughout the week. You may use other tools for the course, but we’ll be monitoring (and assessing) your work using these tools.

Developing Mobile Applications

Work in teams of two for this exercise.

Exercise 2.4

Do Expo’s Tutorial: Introduction, including all sections under “Get started” through “Use an image picker”. Notes:

As you are building your app, create a text file (README.md) in the root of your lab directory that documents the application and includes one-sentence or one-phrase answers to the following questions:

  1. What does the main component function in this application return?
  2. What is the value of using core components? Note that these components are not standard ReactJS components.
  3. Do you see any of the technologies from last unit’s guide that are used here to specify the styling of the application?
  4. How are curly braces ({}) used in the JSX code.
  5. What is the purpose of the asynchronous (Asyc) methods?
  6. Where does this application code use hooks?
  7. Identify one anonymous function in the code.

Be prepared to submit your App.js and README.md files.

Working with your Team

Visioning and Planning Your Team Project

In this part of the lab, you will meet with your project team and us for the first time time. Try to determine:

This meeting will kick off a semester-long process of software engineering. Be creative, diligent and gracious. Your immediate goal is to produce the deliverables specified in Project #1 (see the course schedule for due dates).

Exercise 2.5

Participate actively in your team’s visioning session. Your attendance and participation will contribute to your lab score.

Please update your Moodle "Project Teams" entry to use your real team name, and add hyperlinks for your Trello and Slack pages.

Over time, your team will have to address the following issues:

Checking in