Overview¶
In the real world, the first days of a software project can feel like setting sail on a long voyage. You would not simply jump into a boat and start rowing. You would choose your crew, decide where you are headed, gather supplies, and make sure your navigation tools actually work. Software development is no different. The smartest teams spend time aligning their vision, clarifying responsibilities, and setting up their tools before writing a single line of code. This is what keeps projects from drifting off course.
In this milestone, you will take those same professional first steps. Your team of three to five members will begin work on a To-Do List app designed to help busy students or professionals manage their tasks efficiently. Following practices used at companies like Amazon or Meta, you will establish your team structure, craft a clear project vision, build an initial feature backlog, and configure tools such as GitHub and GitHub Projects. These activities connect directly to what you have learned about version control, Agile methods, and team collaboration, giving you a smooth and confident start before diving into detailed requirements.
By the time this milestone is complete, your team will have a fully organized setup, a prioritized feature list, a draft project plan, and a working toolkit ready for future development cycles. Every submission will be documented through GitHub releases, giving you hands-on experience with the professional versioning practices used by real-world software teams. This is your launchpad for the rest of the semester — get it right now, and every step that follows will be easier and more effective.
Learning Objectives¶
Upon successful completion of this milestone, you will be able to:
Form and organize a team with roles, rotation, and communication plans, emphasizing collaboration and accountability.
Craft a project vision and initial feature backlog aligned with Agile principles like Scrum.
Create a preliminary plan including timelines and risks to guide development.
Set up and use tools like Git/GitHub for version control and GitHub Projects for basic task tracking.
Apply basic Agile concepts (e.g., Scrum roles, artifacts like backlogs) to start planning.
Use GitHub releases to version and document progress, mimicking industry workflows.
Tasks and Instructions¶
1. Tool Configuration¶
Before coding begins, a well-organized digital workspace must be in place. This section focuses on setting up your version control and task-tracking environment.
Initialize a GitHub Repository:
Create a new private repository under one team member’s account.
Add all team members as collaborators. Add your instructor (id: ratulalahy) with
Adminpermissions.Add folders:
/task_manager_app/src/: source code/task_manager_app/docs/: documentation and planning assets
Configure GitHub Projects:
Create a new GitHub Project private board in your repository (Projects tab).
Add your team members to the GitHub Projects workspace (Settings > Manage access).
Add instructor (id: ratulalahy) to the GitHub Projects workspace.
Enable GitHub Projects on the GitHub repository.
Add views:
Board:
Backlog,To Do,In Progress,Done,Blocked
Assign issues during your first meeting. Track progress weekly.
2. Team Formation (with rotation schedule)¶
Clear team structure and responsibilities are essential to avoid confusion during development.
Assign roles (with rotation schedule):
Scrum Master,Developers,Tester,Meeting Recorder.
Define your communication plan
Weekly synchronous meetings (at least once per week)
Use Microsoft Teams for updates and ongoing collaboration
e.g:
Monday 3:00 PM - 4:00 PM in-person
Tuesday and Friday 2:00 PM - 3:00 PM standup meetings via Microsoft Teams.
Posting progress updates using MS Teams.
Document in
/task_manager_app/docs/team_formation.md.
3. Team Meeting Execution¶
Team meetings are crucial for aligning on goals and tasks.
Hold your team meeting with clear agenda, covering roles, vision, and initial features.
Assign action items with owners and deadlines.
Document in (by meeting recorder):
/task_manager_app/docs/meeting_minutes/milestone_1/week_1.md./task_manager_app/docs/meeting_minutes/milestone_1/week_2.md.
4. Project Vision and Planning¶
A shared vision ensures alignment and motivates progress. Your plan should sketch the product’s mission, core features, early risks and other essential elements.
Vision Statement:
Describe the “why” of the project.
Mention target users, pain points, and core value.
Timeline:
List major milestones with tentative deadlines.
Example: “Feature freeze by Week 5, testing phase by Week 7.”
Risks:
Identify at least 3 risks (e.g., missed deadlines, scope creep) and their mitigation strategies.
Other Elements(if any):
Include any other relevant information that will guide your project.
Example: Market Opportunities, competitive analysis, etc.
Save this to:
/task_manager_app/docs/vision_plan.md
5. Initial Product Backlog Creation¶
Before you write any code, your team should brainstorm and capture a well-prioritized list of user-centered features.
Each team member proposes 5+ feature ideas using clear, plain text, save it to:
/task_manager_app/docs/backlog/backlog_<member_1>.md/task_manager_app/docs/backlog/backlog_<member_2>.mdExample: “Enable users to add tasks with deadlines”
Scrum Master consolidates the list:
Combine all the ideas by discussing with the team.
Remove duplicates, clarify descriptions.
Assign a basic priority (
High,Medium,Low)Format the final list in:
/task_manager_app/docs/backlog/backlog.md
6. GitHub Project Board Setup¶
Create a new GitHub Project private board in your repository (Projects tab).
Setup your github project board (tutorial)
Import all features as GitHub Project cards:
Create issues for each feature in your GitHub repository
Add the issues to your project board
Assign labels for priorities (High, Medium, Low)
Move cards to appropriate columns based on current status
7. Individual Reflections¶
Submit a
.mdfile via Canvas with links and reflection answers (see Submission Checklist).
8. GitHub Releases¶
Use GitHub Releases to version and document project checkpoints, just as professional teams do.
Progress Check (After 1 week):
Create a minor release:
v0.1Tag example:
milestone1-progress-v0.1Include drafts of all documents completed so far
Submit the release URL via Canvas
Final Submission (After 2 weeks):
Create a major release:
v1.0Tag example:
milestone1Include:
Final versions of team documents
Clean markdown formatting
Changelog summarizing what was added/edited since
v0.1
Submit (re-submit) the final release URL via Canvas
Submission Checklist¶
Submit via Canvas:¶
A .md file containing:¶
GitHub release link (e.g.,
https://github.com/user_name/project_name/releases/tag/v1.0)GitHub Project board link (e.g.,
https://github.com/user_name/project_name/projects/1)Reflection answers:
Your Contribution to the project (50–100 words): Describe your role (e.g., tool setup).
Rating team dynamics (1–5 scale, with justification, 50 words): Rate and explain collaboration.
How does the project vision align with your software engineering goals? (50–100 words): Connect to personal aspirations.
Reflection on this milestone (50 words): Reflect on your experience and learning during this milestone.
Repository Documents¶
Team Formation (suggested:
/task_manager_app/docs/team_formation.md)Project Vision and Plan (suggested:
/task_manager_app/docs/vision_plan.md)Initial Product Backlog (suggested:
/task_manager_app/docs/backlog/)First Meeting Minutes (suggested:
/task_manager_app/docs/meeting_minutes/milestone_1/)
GitHub Releases¶
Progress Check
Final Submission
GitHub Project Board¶
Complete setup of github project board (like this)
Evaluation Rubric (100 Points)¶
| Criteria | Points | Description |
|---|---|---|
| Team Formation | 10 | Clear roles, rotation, communication plan |
| Vision and Planning | 20 | Concise, user-focused vision and plan |
| Product Backlog | 35 | Prioritized list of 10+ feature items |
| Tool Setup & Releases | 20 | Functional GitHub/GitHub Projects, proper releases |
| Meeting Minutes | 10 | Detailed, actionable notes |
| Individual Reflections | 5 | Insightful responses |
Penalties: 20% for missing progress check after first week.
Resources¶
Textbook¶
Beginner Friendly Resources¶
Tutorials¶
Github Projects¶
Best Practices¶
Use semantic versioning.
Commit with descriptive messages.
Test links before submission.