Project Retrospective
Team 27 Reflection and Future Improvements
Introduction
This retrospective document provides a structured reflection on our python package project using the DAKI (Drop, Add, Keep, Improve) framework. The goal is to identify actionable insights for future projects, including capstone work.
DAKI Framework Analysis
🗑️ DROP
What should we stop doing? What didn’t work well?
Practices to discontinue:
- Missing github issues for tasks
- Breaking up related tasks amongst different team members
- Cross-platform communication (Slack AND Github Issues)
Rationale:
Although our workflow and communication was fairly smooth, github issues were under-utilized when assigning tasks at the beginning of each milestone and assignees were not given for each task. This ended up making tracking individual and team progress more fragmented and difficult than it needed to be, and although issues were later opened and correctly assigned for the sake of Project Views, this would have been helpful to more thoroughly implement from Milestone 1.
➕ ADD
What should we start doing? What’s missing?
New practices/tools to introduce:
- publication to PyPi
- create an issue template
Expected benefits:
Although we were told publishing to PyPi or TestPyPi was not necessary for this project, in a future iteration this would be helpful so that dependencies and versions could be automated and displayed for potential installers. Creating an issue template would help resolve some of the recounted difficulties with using github issues, as it would be easier to list out tasks and standardize the communication method across members/milestones.
✅ KEEP
What worked well? What should we continue?
Successful practices:
- evenly distributing tasks amongst group members
- incorporating TA/prof feedback when possible
- paying attention to grading rubric
Why these worked:
These practices worked to ensure we were meeting the course expectations and we were all learning more about collaborative software development. Each group member had their strengths and were assigned tasks based on those strengths, ensuring a smooth workflow, as well as an even distribution of workload. This can be seen in the Completion Rate Analytical View and in the Project Board View.
🔧 IMPROVE
What should we do differently? What needs refinement?
Areas for enhancement:
- Task breakdown granularity (create smaller issues for better tracking)
- Documentation practices
- Testing coverage
Proposed improvements:
Smaller task chunks: Break down larger tasks into mini tasks that can be completed in 1-2 hours which improves progress visibility and reduces the chance of merge conflicts
Documentation practices: Documentation should follow a standardized template shared amongst the team and ensured to be compatible with quartopub early on (for both test and function scripts)
Testing coverage: Unit tests could be made more extensive and cover more edge cases, as potential use cases become more complex
Deep Dive Analysis
1. Tools and Infrastructure
If scaling up this or another project, what tools, infrastructure, and practices would we use?
Current Toolset Assessment
| Tool/Practice | Effectiveness | Keep/Replace | Notes |
|---|---|---|---|
| GitHub Actions (CI/CD) | High | Keep & Expand | Automated testing and building worked well, expand for publishing to PyPi |
| pytest | High | Keep | Good test capability |
| GitHub Issues & Projects | Medium | Keep & Improve | Underutilized early on, templates would help standardize |
| LLMs (ChatGPT/Claude/Gemini) | High | Keep | Excellent for debugging, code review, documentation, saved significant time |
Recommendations for Future Projects
GitHub Actions & CI/CD:
- Add workflow to automatically publish to PyPI on release tags
- Add workflow to build and preview documentation on PRs
Code Quality & Testing:
- Implement integration tests in addition to unit tests
Team Collaboration:
- Use GitHub Issue templates for bugs, features, and questions
- Implement PR templates with checklists
- Set up branch protection rules requiring reviews and passing CI
Documentation & Communication:
- Add comprehensive tutorial with actual biological data analysis workthrough
Project Management:
- Create a project roadmap document
- Use GitHub Projects with automation
2. Planning Accuracy
Analysis of milestone progress and estimation accuracy
View our Milestone Progress in GitHub Projects
Estimation Patterns
Underestimated milestones:
- Milestone 4
- Milestone 3
Overestimated milestones:
- Milestone 2
Lessons learned:
- focus on good documentation and issues management from the very beginning
- have a non-team member review the documentation to ensure it makes sense and is thorough
- test installation
3. Bus Factor & Team Resilience
Assessment of knowledge distribution and team redundancy
Team Workload Distribution
See the Team Workload Distribution
Bus Factor Assessment
Current bus factor: 2-3 (losing 1-2 team members would significantly impact the project)
High-dependency areas:
| Area/Component | Primary Owner | Backup Knowledge | Risk Level |
|---|---|---|---|
| CI/CD & GitHub Actions | Victoria | Gurveer, Diana, Zhihao | Medium |
| Documentation & quartodoc | Gurveer, Diana | Zhihao, Victoria | Low |
| Testing infrastructure | Everyone | Everyone | High (everyone is responsible for their own tests) |
Knowledge concentration risks:
- Testing infrastructure knowledge is divided amongst all the members, not one consolidated knowledge base
- GitHub Actions workflows fully understood by one team member, troubleshooting only easily done by one member
- Documentation and quartodoc primarily revised and upheld by two members, not a risk
If a highest-contributing member was unavailable:
- Impact: low - moderate, everyone is capable of quickly picking up on others tasks
- Likelihood of stalling: moderate, time would be needed to read through task documentation to catch up
- Critical knowledge gaps: GitHub Workflow/Actions configuration
Strategies for Improving Resilience
Knowledge sharing practices:
- Have a task walkthrough in each scrum
- Have another team member sign off on work thoroughly (not just PRs)
Documentation improvements:
- Document setup/troubleshooting steps for CI/CD in CONTRIBUTING.md
- Add inline comments explaining “why” not just “what” in complex code sections
Action Items for Next Project
High Priority
- Implement GitHub Issues workflow from day 1
- Centralize communication on GitHub
Medium Priority
- Improve knowledge distribution
- Establish code pair review
- Better milestone planning
Nice to Have
- Publish to PyPI
- Implement branch protection rules
Team Feedback
What We’re Proud Of
- Successfully delivered a working Python package
- Maintained good team dynamics throughout
- Embraced feedback from TAs, peers, and instructors
What We Learned
- GitHub is much more than version control
- Documenation at all steps is key
- Breaking down tasks is critical
This retrospective was completed on 2026-01-30 by Group 27