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
35%
Database Integration
25%
Testing
20%
Bug Fixes
15%
Documentation
5%

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

  1. Implement test-driven development from iteration 1
  2. Build time tracking into definition of done
  3. Conduct integration testing earlier in the cycle
  4. Allocate 20% buffer time for unexpected complexities