CMU597: Industry Project - Lecture 1
Orientation, Project Ideation and Specialism Mapping
Part 1: Module Introduction | Part 2: Technical Specialisms
James Williams
Birmingham Newman University
jwilliams@staff.newman.ac.uk
3-hour session • Group Projects • 2 collaborative tasks
Session Timeline
Part 1: Module Introduction (90 minutes)
30 minutes: Lecture on module aims, collaborative working, and industry projects
45 minutes: Task 1 - Team project ideation workshop
15 minutes: Break & team formation discussions
Part 2: Technical Specialisms & Team Dynamics (90 minutes)
30 minutes: Lecture on skills mapping, roles, and team composition
45 minutes: Task 2 - Team skills matrix and project proposal
15 minutes: Q&A, feedback, and next steps
Learning Objectives
- Understand the aims and collaborative nature of the Industry Project module
- Explore successful examples of team-based industry projects
- Generate project ideas through collaborative group brainstorming
- Identify team technical specialisms and complementary skills
- Understand effective team composition and role distribution
- Map project ideas to team capabilities and industry domains
- Begin forming project teams with clear roles and goals
What is the Industry Project Module?
Core Purpose: Work collaboratively in a team to apply computer science
knowledge and skills to a real-world, industry-oriented project using professional
agile project management techniques.
- Collaborative Teams: Work in groups of 3-5 students
- Open-Ended Projects: Teams choose direction and specialism
- Industry-Focused: Solve real problems with practical applications
- Professional Development: Build portfolio-quality team work
- Agile Methodology: Sprint-based development with regular reviews
- Real Collaboration: Version control, code reviews, team coordination
Why Group Projects?
Industry Reality:
- Software is built by teams, not individuals
- Collaboration is the #1 skill employers seek
- Complex projects require diverse expertise
- Peer code review is industry standard
Learning Benefits:
- Learn from teammates' strengths
- Tackle larger, more ambitious projects
- Practice communication and coordination
- Experience agile team dynamics
Team Work = Real Work: This module prepares you for professional
software development environments where collaboration is essential.
What You'll Learn
- Agile Team Management: Scrum, sprint planning, daily standups, retrospectives
- Collaborative Development: Git workflows, branch management, pull requests,
code reviews
- Technical Skills: Deepen expertise in chosen specialisms within your team
- Communication: Team coordination, stakeholder presentations, documentation
- Professional Practice: Industry ethics, legal considerations, accessibility
standards
- Role Specialization: Front-end, back-end, DevOps, testing, design, etc.
- Conflict Resolution: Managing disagreements and keeping teams productive
Assessment Structure
Component 1: Team Presentation (20%)
Format: 500-word equivalent group presentation/demonstration
Content: Present your project, technologies, team roles, and industry
application
Focus: Technical demonstration with clear team contribution explanation
Team Assessment: While the presentation is a team effort, you will also
individually reflect on your contributions and role within the team.
Key Point: Your presentation should showcase technical depth, practical
industry relevance, AND effective teamwork throughout the development process.
What Makes a Project Industry-Oriented?
- Solves Real Problems: Addresses actual industry needs or challenges
- Practical Application: Can be deployed or used in real scenarios
- Current Technologies: Uses modern, industry-standard tools and frameworks
- Scalable Architecture: Designed to handle growth and change
- Team-Built Quality: Code reviews, testing, CI/CD pipelines
- Professional Documentation: README, API docs, architecture diagrams, deployment
guides
- Ethical & Legal: GDPR compliance, accessibility (WCAG), security best practices
- Maintainable: Clean code, consistent style, well-structured for handover
Appropriate Team Project Scope
A good team project should:
- ✓ Be achievable in 12 weeks with your team size (3-5 people)
- ✓ Have clear component separation (front-end, back-end, database, etc.)
- ✓ Allow parallel development (team members work simultaneously)
- ✓ Require integration of multiple technologies/systems
- ✓ Have measurable milestones for sprint planning
- ✓ Be complex enough to justify a team effort
Avoid: Projects too simple for a team, or overly ambitious projects
that can't be completed in one semester.
Example Team Projects: E-Commerce & Business
Multi-vendor Marketplace
Platform with vendor dashboards, product management, payment integration
Team: Front-end, Back-end, Payment API, Admin Panel
Inventory Management System
Real-time stock tracking, analytics dashboard, supplier integration
Team: Dashboard, API, Database, Reporting
Booking & Scheduling Platform
Appointment system with notifications, calendar sync, payment processing
Team: UI/UX, Backend Logic, Integrations, Testing
Customer Relationship Management
CRM with contact management, sales pipeline, email automation
Team: Frontend, Backend, Email Service, Analytics
Technologies: React/Vue, Node.js/Django, PostgreSQL/MongoDB, Stripe, AWS
Example Team Projects: AI/ML & Data Science
Predictive Maintenance System
ML model for equipment failure prediction with dashboard and alerts
Team: ML Engineer, Data Pipeline, Web Dashboard, DevOps
Medical Image Classification
Computer vision for diagnostic assistance with clinician interface
Team: CV Engineer, Data Prep, Web Interface, Validation
Intelligent Chatbot Platform
NLP-powered customer service with admin dashboard and analytics
Team: NLP Dev, Backend, Frontend, Training Data
Real-time Analytics Dashboard
Data visualization platform with streaming data processing
Team: Data Engineer, Viz Specialist, Backend, Frontend
Technologies: Python, TensorFlow/PyTorch, Flask/FastAPI, React, Docker, Cloud
platforms
Example Team Projects: Mobile, IoT & Other Domains
Health & Fitness Tracker
Mobile app with wearable integration, progress tracking, social features
Team: Mobile Dev, Backend, Integration, UI/UX
Smart Home Control System
IoT device network with mobile app and web dashboard
Team: IoT Dev, Mobile, Backend, Hardware
Collaborative Learning Platform
Educational app with video, quizzes, progress tracking, gamification
Team: Frontend, Backend, Content System, UX
Security Audit Tool
Automated vulnerability scanner with reporting dashboard
Team: Security Dev, Reporting, CLI, Web Interface
Technologies: React Native/Flutter, Swift/Kotlin, Arduino/Raspberry Pi, Unity,
Python security tools
Building an Effective Team
Ideal Team Size: 3-5 Members
3-Person Team:
- Easier coordination
- Clear role definition
- Less integration complexity
- Good for focused projects
4-5 Person Team:
- More ambitious scope
- Diverse skill sets
- Better redundancy
- Richer feature sets
Complementary Skills: The best teams have members with different but
complementary technical specialisms and working styles.
Common Team Roles in Software Projects
Frontend Developer
UI/UX, user interactions, responsive design
Backend Developer
Server logic, APIs, business rules
Database Specialist
Schema design, queries, optimization
DevOps/Infrastructure
Deployment, CI/CD, hosting, monitoring
QA/Testing Lead
Test strategy, automation, quality assurance
Project Manager/Scrum Master
Sprint planning, coordination, backlog
Note: In smaller teams, members often wear multiple hats
What Makes a Successful Team Project?
- Clear Communication: Regular standups, shared documentation, defined channels
- Defined Roles: Everyone knows their responsibilities and deliverables
- Version Control Discipline: Proper branching, meaningful commits, code reviews
- Sprint-Based Development: Regular reviews, retrospectives, and adaptations
- Working Prototype: Integrated, functional system by end of semester
- Shared Ownership: Team takes collective responsibility for success
- Professional Documentation: README, setup guides, API docs, architecture
diagrams
- Equal Contribution: Balanced workload with individual accountability
Task 1: Team Project Ideation Workshop
Instructions (Working in potential team groups of 3-5):
- Form Discussion Groups (5 min): Find 2-4 other students to work with
- Individual Brainstorming (5 min): Each person writes down 2-3 project ideas
- Share Ideas (15 min): Present your ideas to your group, discuss:
- What problem does it solve?
- Who would use it? (Industry/target users)
- What are the main features? (5-7 key features)
- What technologies would we need?
- How would work be divided among team members?
- Converge on Ideas (15 min): As a group, shortlist 2-3 strongest ideas
- Feasibility Check (5 min): For each shortlisted idea, ask:
- Can we build this in 12 weeks?
- Does it need diverse skills (justifies a team)?
- Is it exciting for everyone?
- Document (5 min): Write down your top 2 team project ideas with key details
Time: 45 minutes
You don't need to finalize teams or projects today - this is exploratory!
Break Time
15 Minutes
Take a break, continue team discussions informally, or ask questions.
Think about: Which team members have complementary skills?
Next: Part 2 - Technical Specialisms and Team Dynamics
Part 2: Technical Specialisms & Team Dynamics
Now that you have team project ideas, let's map team skills, define roles,
and understand how to build effective development teams.
In This Part:
- Identify individual and team technical specialisms
- Understand different CS industry domains
- Learn how to align projects with team capabilities
- Create team skills matrices
- Define roles and responsibilities within teams
- Develop provisional team project proposals
What are Technical Specialisms?
Technical Specialism: An area of computer science where a team member has
developed expertise, interest, or wants to build deeper knowledge. Teams benefit from
diverse specialisms.
Web Development
Full-stack, front-end, back-end, REST APIs
Mobile Development
iOS, Android, cross-platform, native
AI/Machine Learning
Deep learning, NLP, computer vision, MLOps
Data Engineering
Pipelines, ETL, analytics, visualization
Cybersecurity
Penetration testing, secure coding, auditing
DevOps/Cloud
AWS/Azure, CI/CD, containers, infrastructure
Game Development
Unity, Unreal, graphics, game design
IoT/Embedded
Hardware, sensors, edge computing, protocols
Common Industry Domains
| Domain |
Example Applications |
Common Technologies |
Team Roles Needed |
| E-Commerce |
Online stores, marketplaces, payments |
React, Node.js, Stripe, PostgreSQL |
Frontend, Backend, Database, DevOps |
| Healthcare |
Patient systems, diagnostics, telemedicine |
Python, ML libs, FHIR, security |
ML Engineer, Backend, Security, Frontend |
| Finance |
Trading, analytics, risk assessment |
Java/Python, real-time, encryption |
Backend, Data Engineer, Security, Frontend |
| Education |
LMS, assessment tools, e-learning |
Web frameworks, databases, media |
Frontend, Backend, Content, UX |
| Entertainment |
Streaming, gaming, social platforms |
Unity, video APIs, CDNs, WebSockets |
Game/UI Dev, Backend, Infrastructure, Data |
| Smart Cities/IoT |
Traffic, environmental monitoring, utilities |
IoT platforms, sensors, data pipelines |
IoT Dev, Data Engineer, Backend, Viz |
How to Map Projects to Team Skills
- Audit Team Skills: What is each person good at? (Languages, frameworks, tools)
- Identify Growth Areas: What does each person want to learn?
- Match to Project Requirements: Does your project align with team capabilities?
- Check Role Coverage: Can you fill essential roles (frontend, backend, etc.)?
- Assess Feasibility: Can your team build this with current + developing skills?
- Industry Relevance: Which industry values this project type?
Example: Team has: Strong Python dev + React dev + Database expert →
Project: Full-stack e-commerce platform with ML recommendations →
Industry: Retail/E-commerce
Creating a Team Skills Matrix
| Team Member |
Primary Skills |
Want to Learn |
Project Role |
| Tom |
React (Advanced), JavaScript (Advanced) |
TypeScript, State Management |
Frontend Lead |
| Bob |
Python (Advanced), Django (Intermediate) |
FastAPI, Docker |
Backend Lead |
| Charlie |
PostgreSQL (Advanced), SQL (Advanced) |
Redis, Elasticsearch |
Database & Performance |
| Dana |
Git (Intermediate), AWS (Beginner) |
CI/CD, Kubernetes |
DevOps & Testing |
This 4-person team has complementary skills covering full-stack
development
Defining Team Roles & Responsibilities
Each team member should have:
- Primary Role: Main area of responsibility (e.g., "Frontend Developer")
- Key Deliverables: Specific features/components they own
- Secondary Responsibilities: Supporting tasks (e.g., code reviews,
documentation)
- Learning Goals: New skills they want to develop during the project
Avoid: Vague roles like "general developer" or unbalanced workloads.
Everyone needs clear ownership of specific components.
Achieving Good Team Skill Balance
✓ Good Balance:
- Mix of existing expertise and learning goals
- Coverage of all major project components
- At least one expert in each critical area
- Complementary rather than duplicate skills
- Shared interest in project domain
✗ Poor Balance:
- Everyone has the same specialism
- Critical skills gaps (e.g., no backend expertise)
- Too many learning areas, not enough expertise
- Misaligned interests within team
- Uneven skill levels across team
Essential Collaborative Tools & Practices
Tools You'll Use:
Development:
- Git/GitHub: Version control, PRs
- VS Code Live Share: Pair programming
- Docker: Consistent environments
Project Management:
- Trello/Jira: Sprint boards, backlog
- Slack/Discord: Team communication
- GitHub Projects: Issue tracking
Agile Rituals: Daily standups (15 min), Sprint planning (start of sprints),
Sprint reviews (end of sprints), Retrospectives (what went well/improve)
Team Communication Best Practices
- Daily Standups: Brief check-ins (What did you do? What will you do? Blockers?)
- Written Documentation: Don't rely on memory - document decisions, APIs, setup
- Code Reviews: All code gets reviewed before merging - improves quality
- Clear Commit Messages: Describe what and why, not just what
- Responsive Communication: Reply to team messages within 24 hours
- Constructive Feedback: Focus on code/ideas, not people
- Conflict Resolution: Address disagreements early and professionally
Remember: Good communication is the difference between functioning
teams and dysfunctional ones.
Git Workflow for Teams
# Feature Branch Workflow (Industry Standard)
# 1. Create a branch for your feature
git checkout -b feature/user-authentication
# 2. Work on your feature, commit regularly
git add .
git commit -m "Add user login endpoint with JWT auth"
# 3. Push your branch to remote
git push origin feature/user-authentication
# 4. Create a Pull Request on GitHub
# - Describe your changes
# - Request review from teammates
# - Address review comments
# 5. After approval, merge to main branch
# - Squash commits if needed
# - Delete feature branch after merge
Key Practice: Never commit directly to main branch. Always use feature
branches and pull requests with code reviews.
Managing Common Team Challenges
| Challenge |
Solution |
| Unequal Contribution |
Track commits/PRs, sprint reviews show individual work, address early |
| Schedule Conflicts |
Set core hours for meetings, use async communication, flexible standups |
| Technical Disagreements |
Prototype both approaches if time allows, majority vote, document decision |
| Merge Conflicts |
Pull from main frequently, communicate about file changes, small PRs |
| Scope Creep |
Define MVP clearly, defer nice-to-haves, sprint reviews keep focus |
| Skill Gaps |
Pair programming, code reviews as teaching, document patterns/examples |
Making Provisional Team & Project Decisions
Questions for Your Team:
- Does everyone in the team have clear, distinct roles?
- Do our combined skills cover the project requirements?
- Can we realistically complete this in one semester as a team?
- Is the project complex enough to justify teamwork?
- Will this project help us develop new skills we want?
- Is everyone excited about working on this together?
- Can we break it into parallel workstreams?
- Do we have a clear industry application/user benefit?
Remember: This is provisional - you can refine teams and projects
over the next 1-2 lectures. Better to get it right than rush!
Task 2: Team Skills Matrix & Project Proposal
Instructions (In your potential teams of 3-5):
- Individual Skills Audit (10 min): Each person lists:
- Programming languages (proficiency level: Beginner/Intermediate/Advanced)
- Frameworks & libraries they know
- Tools & platforms (Git, Docker, AWS, etc.)
- Areas they want to learn/improve
- Create Team Skills Matrix (15 min): Compile everyone's skills:
- What strengths does the team have?
- What gaps exist?
- Who would fill which role?
- Match Project to Team (10 min):
- Review your shortlisted projects from Task 1
- Which project best matches your team's skills?
- Can you fill all necessary roles?
- Write Provisional Proposal (10 min):
- Project name and description (2-3 sentences)
- Team members and their proposed roles
- Industry domain and target users
- Key technologies the team will use
- 5-7 main features/goals
- How work will be divided
Time: 45 minutes
Submit your team skills matrix and provisional proposal to Moodle by end of day.
Lecture 1 Summary
- Industry projects are collaborative and prepare you for real software teams
- Effective teams have complementary skills and clear role definitions
- Good projects balance ambition with feasibility for the team size
- Technical specialisms help teams cover all necessary areas
- Communication and agile practices are essential for team success
- Git workflows and code reviews maintain code quality
- Teams should create skills matrices to assess capabilities
- Provisional teams and projects will be refined in coming weeks
Next Lecture:
Briefs, Requirements and Early Technical Validation
Writing design briefs and testing project feasibility with "Hello World" prototypes
Before Next Lecture
- Submit to Moodle (Required):
- Team skills matrix (who's in your provisional team, their skills)
- Provisional project proposal (1-page document)
- Continue Team Discussions: Refine your team composition if needed
- Research Technologies: Look into the main technologies your project will use
- Read Agile Basics: Review Scrum Guide (link on Moodle)
- Set Up Git: Ensure everyone has Git installed and GitHub accounts
- Think About Feasibility: Can you build a "Hello World" version next week?
Help Available: Use Moodle forums for questions, or email me for team/project
advice.
Questions?
Contact & Support:
Email: jwilliams@staff.newman.ac.uk
Moodle Forum: Post questions for peer/instructor responses
Office Hours: Check Moodle for schedule
Remember: Team formation and project selection is iterative.
Take time to get it right!