Computing Society: Session 7 Project Building Tips
Session 7: Project Development, Teamwork, and AI Support
🎯 Objective
This session covered essential skills for building projects individually and collaboratively, offering practical tips for teamwork, communicating with non-CS members, and using AI as a project assistant.
1. Introduction to Project Building 🛠️
- Stages of Project Development
- 💡 Idea: Start with a brainstorming session where every team member contributes ideas. Focus on selecting ideas that can be completed within the time frame.
- 📝 Planning: Create a shared project outline. Use tools like Google Docs or Notion for shared notes and lists to define project goals, key features, and deadlines.
- 👨💻 Execution: Divide tasks and set daily or weekly goals for each member to keep everyone on track.
- 🐞 Testing: Designate a few sessions for thorough testing and debugging. Have different team members review each other’s work.
- 🎤 Presentation: Plan a short, clear presentation. Include a project overview, demo, and discussion of any challenges.
- Example Project: Sports Website 🏅
- In your school’s sports website project, roles were clearly split: you managed backend functions, and Shane handled the frontend. Defined roles helped focus on specific areas and prevented overlap.
2. Collaboration Basics in Project Development 🤝
- Role Assignment and Communication 📢
- Define Responsibilities Early: Before starting, outline specific tasks (e.g., database setup, UI design) for each team member. This minimizes confusion and ensures everyone knows their role.
- Communication Tips: Use a chat platform like Slack or Discord with dedicated channels for each aspect of the project (e.g., “backend,” “frontend,” “content”) to streamline discussions.
- Using GitHub for Project Structure: Set up GitHub branches for each feature or task. For example, create separate branches for “backend/database,” “frontend/UI,” and “documentation” to avoid code conflicts. Assign clear naming conventions for branches, like
feature-login-system
orbugfix-header
.
- Working with Non-CS Members 👥
- Clear Communication: When explaining technical choices, use simple language. For instance, instead of “setting up the server architecture,” explain it as “creating the system that allows our site to handle multiple visitors.”
- Gathering Requirements: Host regular requirement meetings to clarify non-technical needs. Ask questions like “What’s most important to users?” and “How should content be displayed?”
- Example: Newspaper Archive Project 📰
- In this project, gathering requirements from non-technical members helped inform decisions on search functionality and UI structure. Keeping the team aligned ensured the database met user expectations.
3. Team Management Techniques 👥
- Effective Team Sizes
- Small teams, like your two-person setup for the sports website, can operate more efficiently. Fewer members mean quicker decisions and less time coordinating.
- Coordination Tips 🔄
- Daily or Weekly Updates: Have brief updates daily (in larger projects) or weekly to review progress. Use a shared task board (e.g., Trello or Asana) to keep track of what each member is working on.
- Clear Deadlines for Each Milestone: Break down the project into milestones. Set clear deadlines for each phase (e.g., “Backend setup complete by Friday”), allowing everyone to manage their tasks around these benchmarks.
- Working with Non-CS Partners
- Structured Updates and Demos 📅: Schedule structured updates or mini-demos to keep non-technical members informed and gather feedback. This could be a weekly 10-minute presentation of new features or updates.
- Clear Task Division 🗂️: Set up a task list that includes non-technical tasks, such as writing content or testing features, so everyone has visible, tangible responsibilities.
- Example: Newspaper Archive Project - In this project, maintaining a clear task list for both technical and non-technical tasks helped non-CS members contribute by organizing data while you focused on backend and search functions.
4. Using AI in Projects 🤖
- AI as a Project Assistant
- Code Scaffolding 🔧: Use tools like ChatGPT or GitHub Copilot to generate starter code for repetitive elements. For instance, let AI generate boilerplate code for common web forms, saving time.
- Debugging Support 🐞: When you encounter a bug, use AI tools to help diagnose the issue. Paste code into an AI tool with an explanation of the error, and it can offer possible fixes or identify errors.
- Content Suggestions for Non-CS Members 📝: AI tools can generate summaries or descriptions based on project data, allowing non-technical members to contribute quickly to content-heavy tasks, like organizing newspaper archives.
- Example: AI-Assisted Coding - For projects like the newspaper archive, AI can help generate structured data inputs or suggest ways to organize large data sets efficiently. This can save time on backend setup and make data management easier.
5. Group Exercise and Reflection 🧩
- Mini Project Planning Exercise: Students were divided into teams, each assuming a role (technical or non-technical) and creating a quick plan.
- Reflection Discussion:
- Highlighted the benefits of role-based tasks and structured check-ins.
- Shared strategies for handling collaboration challenges, like communication barriers between technical and non-technical roles.
6. Key Takeaways 📝
- Defined Roles and Small Teams: Smaller teams and clear responsibilities improve communication and efficiency.
- Regular Updates and Structured Check-ins 📅: Consistent, brief updates ensure alignment and help balance technical and non-technical contributions.
- Leveraging AI 🤖: AI tools enhance productivity by supporting both technical and non-technical tasks, making them useful in collaborative projects.