Project Retrospective
Evolution from Initial Vision
While the core functionality remained consistent with our initial vision, several aspects evolved significantly:
- Enhanced Data Integration: The calendar system became more central than originally planned, requiring deeper integration with other components
- Expanded Testing Scope: Our initial test coverage estimates proved insufficient for the complex interactions between features
- UI Refinements: User testing revealed the need for more intuitive navigation between fitness tracking and nutrition modules
The final product delivered 120% of our original feature set despite these adaptations.
Key Learnings
Team Development Insights
- Regular stand-ups prevented work duplication
- Clear ownership of components improved quality
- Documentation sharing saved countless hours
Process Improvements
Start:
TDD for critical path features
Keep:
Bi-weekly code reviews
Stop:
Last-minute test writing
Challenges & Solutions
Areas for Improvement
Integration Challenges
Initial iterations underestimated the complexity of maintaining data consistency across:
- User profile settings
- Workout logging components
- Meal tracking systems
Implemented Solutions:
- Added comprehensive integration tests (achieved 80% coverage)
- Implemented JUnit setup/teardown for database consistency
- Created data validation middleware
Project Tracking
Inconsistent use of GitLab's estimation features caused:
- Difficulty measuring velocity
- Unclear progress tracking
- Retrospective data gaps
Lessons Learned:
- Standardized issue templates with required estimation fields
- Scheduled weekly time-logging reminders
- Created estimation guidelines for consistency
System Architecture & Time Allocation
Android Studio
Primary IDE with emulator testing
Java
Core business logic and object modeling
HSQLDB
In-memory database for testing
Mockito
Unit test mocking framework
UI Development
Database Integration
Testing
Bug Fixes
Documentation
What We Would Do Differently
If we could restart this project, we would implement these critical changes:
GitLab Optimization
- Create standardized issue templates with required fields
- Consistently log time estimates and actual time spent
- Implement progress tracking metrics for each iteration
Testing Approach
- Adopt Test-Driven Development from the beginning
- Write tests alongside feature development, not at the end
- Allocate dedicated testing sprints within each iteration
Successes & Recommendations
What Worked Well
- Team Communication: Effective Telegram chats and weekly syncs
- Work Distribution: Balanced task assignment based on skills
- Adaptability: Successful pivots when facing technical hurdles
Future Recommendations
- Implement test-driven development from iteration 1
- Build time tracking into definition of done
- Conduct integration testing earlier in the cycle
- Allocate 20% buffer time for unexpected complexities